├── .gitattributes ├── .gitignore ├── .jshintrc ├── .npmignore ├── .travis.yml ├── ChangeLog.md ├── LICENSE.md ├── README.md ├── Todos.md ├── app ├── USAGE ├── index.js ├── licenses │ ├── agpl.txt │ ├── apache.txt │ ├── artistic.txt │ ├── bsd-3-clause.txt │ ├── bsd.txt │ ├── cc0.txt │ ├── eclipse.txt │ ├── gpl-v2.txt │ ├── gpl-v3.txt │ ├── isc.txt │ ├── lgpl-v2.1.txt │ ├── lgpl-v3.txt │ ├── mit.txt │ ├── mozilla.txt │ ├── no-license.html │ ├── unlicense.txt │ └── wtfpl.txt ├── prompts.js ├── templates │ ├── .jshintrc │ ├── _root.less │ ├── changelog.yml │ ├── extension-initialproperties.js │ ├── extension-properties.js │ ├── extension.js │ ├── extension.png │ ├── extension.qext │ ├── gitattributes.txt │ ├── gitignore.txt │ ├── grunt │ │ ├── .jshintrc-dev │ │ ├── .jshintrc-release │ │ ├── Gruntfile.clean.js │ │ ├── Gruntfile.cleanempty.js │ │ ├── Gruntfile.compress.js │ │ ├── Gruntfile.copy.js │ │ ├── Gruntfile.js │ │ ├── Gruntfile.jshint.js │ │ ├── Gruntfile.less.js │ │ ├── Gruntfile.projectconfig.js │ │ ├── Gruntfile.replace.js │ │ ├── Gruntfile.uglify.js │ │ ├── _package.json │ │ ├── grunt-config.yml │ │ ├── gruntReplacements.yml │ │ ├── gruntReplacements_dev.yml │ │ └── gruntReplacements_release.yml │ ├── lib │ │ └── js │ │ │ └── extensionUtils.js │ ├── license.md │ ├── readme.md │ ├── style_Less.css │ ├── style_noLess.css │ ├── styles.less │ └── variables.less └── utils.js ├── package.json ├── resources ├── qsExtension_Generator_Questions.png └── qsExtension_Generator_YouTube.png └── tests ├── 00-test-load.js ├── 01-test-creation.js ├── 02-test-grunt.js └── utils.js /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | /**/node_modules/ 3 | temp/ 4 | materials/ 5 | 6 | tests/try/ 7 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi": false, 3 | "bitwise": true, 4 | "boss": false, 5 | "browser": true, 6 | "camelcase": false, 7 | "couch": false, 8 | "curly": true, 9 | "debug": false, 10 | "devel": false, 11 | "dojo": false, 12 | "eqeqeq": true, 13 | "eqnull": true, 14 | "es5": false, 15 | "esnext": false, 16 | "evil": false, 17 | "expr": false, 18 | "forin": false, 19 | "funcscope": false, 20 | "globalstrict": false, 21 | "immed": false, 22 | "iterator": false, 23 | "jquery": false, 24 | "lastsemic": false, 25 | "latedef": true, 26 | "laxbreak": false, 27 | "laxcomma": false, 28 | "loopfunc": false, 29 | "mootools": false, 30 | "multistr": false, 31 | "newcap": false, 32 | "noarg": true, 33 | "node": false, 34 | "noempty": true, 35 | "nonew": true, 36 | "nomen": false, 37 | "nonstandard": false, 38 | "onecase": false, 39 | "onevar": false, 40 | "passfail": false, 41 | "plusplus": false, 42 | "proto": false, 43 | "prototypejs": false, 44 | "regexp": false, 45 | "regexdash": false, 46 | "rhino": false, 47 | "scripturl": false, 48 | "shadow": false, 49 | "smarttabs": false, 50 | "sub": false, 51 | "supernew": false, 52 | "strict": false, 53 | "trailing": true, 54 | "undef": true, 55 | "unused": true, 56 | "validthis": false, 57 | "white": false, 58 | "withstmt": false, 59 | "worker": false, 60 | "wsh": false, 61 | "yui": false, 62 | "globals": { 63 | "require": true, 64 | "define": true, 65 | "before": true, 66 | "beforeEach": true, 67 | "after": true, 68 | "afterEach": true, 69 | "chai": true, 70 | "sinon": true, 71 | "describe": true, 72 | "context": true, 73 | "it": true, 74 | "flush": true 75 | } 76 | } -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | try/ 2 | node-modules/ -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | - "0.11" 5 | - "iojs" 6 | install: npm install 7 | 8 | 9 | -------------------------------------------------------------------------------- /ChangeLog.md: -------------------------------------------------------------------------------- 1 | # ChangeLog 2 | 3 | # Version 0.0.35 4 | Date: 2015-06-01 5 | 6 | **Improvements:** 7 | * Switched over to a changelog.yml instead of a changelog.md 8 | 9 | ## Version 0.0.32 10 | Date: 2015-04-02 11 | 12 | **Improvements:** 13 | * Making the uglify release task more generic to work automatically with all *.js files (but excluding *.min.js files) 14 | 15 | ## Version 0.0.31 16 | Date: 2015-03-30 17 | 18 | **Fixes:** 19 | * Finally fixing the bug to fetch the local extension directory. hopefully ... ;-) 20 | 21 | ## Version 0.0.30 22 | Date: 2015-03-18 23 | 24 | **Fixes:** 25 | * Extension path in grunt-config.yml was not determined correctly during generation of the project. 26 | 27 | ## Version 0.0.29 28 | Date: 2015-03-08 29 | 30 | **Enhancements:** 31 | * There is now a default and an advanced mode (first question in the wizard). 32 | * In the advanced mode the user can select a license type, LICENSE.md will be generated accordingly. 33 | * By using the option --grunt on the grunt based deployment system will be updated. 34 | * Update to all dependencies and used modules 35 | * A default image is now added to the extension (using the correct dimensions). 36 | * Different destinations for Grunt builds (```dist```for release builds and ```dist_dev``` for dev builds) 37 | 38 | **Fixes:** 39 | * Issue with some grunt tasks being ignored because of wrong platform detection. 40 | 41 | ## Version 0.0.28 42 | Date: 2015-03-01 43 | 44 | **Enhancements:** 45 | * Finally succeeded to get travis builds to work (with a lot of minor Fixes and corrections) 46 | 47 | ## Version 0.0.27 48 | Date: 2015-03-01 49 | 50 | **Enhancements:** 51 | * Updated all grunt packages 52 | * Different jshint definitions for dev and release 53 | * jshint is disabled by default for dev, enabled for release 54 | 55 | ## Version 0.0.26 56 | Date: 2015-02-18 57 | 58 | **Fixes:** 59 | 60 | * Several minor bug fixes 61 | 62 | **Enhancements:** 63 | 64 | * New grunt task based on grunt-contrib-jshint 65 | * Optimized handling of grunt tasks in general 66 | * Improved existing tests 67 | * Improved documentation of grunt-config.yml 68 | * The extensions' version can now be defined in grunt-config.yml (general.Version) and will be re-used in several places 69 | 70 | 71 | ## Version 0.0.25 72 | Date: 2015-02-14 73 | 74 | **Enhancements:** 75 | * Default preview image for the visualization extensions 76 | * Added some further defaults for the README.md 77 | 78 | ## Version 0.0.24 79 | Date: 2015-02-11 80 | 81 | * Minor Enhancements 82 | 83 | ## Version 0.0.23 84 | Date: 2015-01-19 85 | 86 | **Fixes:** 87 | 88 | * Included namespace for the Grunt deployment to the local desktop. 89 | * Extension path sometimes not resolved correctly (folder %USERPROFILE% created instead). 90 | * Qualified name not necessary for intialproperties.js and properties.js 91 | 92 | **Enhancements:** 93 | 94 | * Added parameters $element and layout to the resize function (main.js) 95 | 96 | ## Version 0.0.20 97 | Date: 2015-01-19 98 | 99 | **Fixes:** 100 | 101 | * Fixed an issue that images in Dev get corrupted during the Grunt deployment. 102 | 103 | ## Version 0.0.19 104 | Date: 2014-11-16 105 | 106 | **Fixes:** 107 | 108 | * Fixed minor bugfix in extension file which caused an "Invalid Visualization" 109 | 110 | ## Version 0.0.18 111 | Date: 2014-10-26 112 | 113 | **Enhancements:** 114 | 115 | * Added `lib/js/extensionUtils.js` file to be able to add common functions to an extension 116 | * Improved generated `CHANGELOG.md` 117 | * Improved generated `README.md` 118 | * Added `.jshintrc` to `src` directory 119 | 120 | **Fixes:** 121 | * Fixed `npm install` test in `tests/00-test-grunt.js` 122 | 123 | ## Version 0.0.17 124 | 125 | **Fixes:** 126 | 127 | * Images were corrupted during deployment 128 | 129 | ## Version 0.0.16 130 | 131 | **Enhancements:** 132 | 133 | * Added an additional Grunt task to create a ZIP-file containing only the source (without installed Node packages) 134 | 135 | ## Version 0.0.15 136 | 137 | **Enhancements:** 138 | 139 | * Added support for the release Grunt task 140 | * Added Mocha tests for the Grunt tasks 141 | * Extended documentation (Readme.md) 142 | * All Grunt tasks (both dev and release) are fully configurable using the grunt-config.yml file 143 | * Documentation for the Grunt configuration (grunt/grunt-config.yml) 144 | 145 | ## Version 0.0.14 146 | 147 | **Enhancements:** 148 | 149 | * Added (optional) support for Less 150 | 151 | ## Version 0.0.13 152 | 153 | **Fixes:** 154 | 155 | * Restrict package only for Win32 (#2) 156 | 157 | ## Version 0.0.12 158 | 159 | **Enhancements:** 160 | 161 | * Added tests to run both the dev and release task of the generated Grunt deployments 162 | 163 | ## Version 0.0.11 164 | 165 | **Enhancements:** 166 | 167 | * Added tests to install the npm packages of the generated Grunt deployments 168 | 169 | ## Version 0.0.9 170 | 171 | **Fixes:** 172 | 173 | * Extension Name with whitespaces 174 | * Fixed script file 175 | 176 | **Enhancements:** 177 | 178 | * Separated Grunt tasks to a separate folder 179 | * Documented grunt tasks for dev 180 | * Improved tests 181 | 182 | ## Version 0.0.7 183 | 184 | * Determine folder for local deployment automatically (%USERPROFILE%\My Documents\Qlik\Sense\Extensions) 185 | 186 | ## Version 0.0.6 187 | Date: 2014-10-05 188 | 189 | * Prepared for NPM 190 | * Added basic documentation in README.md 191 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | **generator-qsExtension** is licensed under the MIT License: 2 | 3 | > The MIT License (MIT) 4 | > 5 | > Copyright (c) 2015 Stefan Walther 6 | > 7 | > Permission is hereby granted, free of charge, to any person obtaining a copy of 8 | > this software and associated documentation files (the "Software"), to deal in 9 | > the Software without restriction, including without limitation the rights to 10 | > use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 11 | > the Software, and to permit persons to whom the Software is furnished to do so, 12 | > subject to the following conditions: 13 | > 14 | > The above copyright notice and this permission notice shall be included in all 15 | > copies or substantial portions of the Software. 16 | > 17 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 | > FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 | > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 | > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 | > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # YeoMan Generator for Qlik Sense Extensions 3 | 4 | I have created this tool for my daily work. Instead of always reinventing the wheel and setting up a project structure for Qlik Sense Extensions, I prefer to let it generated. 5 | 6 | Generator-qsExtension is based on YEOMAN (http://yeoman.io/) and allows you to create a boilerplate for Qlik Sense Visualization Extensions in **less than two minutes**. 7 | 8 | 9 | ## Demo 10 | Have a look at the following video to get an idea how this tool works and can **save you a lot of time**: 11 | 12 | [![](https://raw.githubusercontent.com/QlikDev/generator-qsExtension/master/resources/qsExtension_Generator_YouTube.png)](http://youtu.be/nN85C3JxZtU) 13 | 14 | ## Installation 15 | 16 | Install nodeJs (http://nodejs.org/) 17 | Open the Node.js command prompt and install `yo` using the **Node.js command prompt** 18 | 19 | 20 | npm install -g yo 21 | 22 | 23 | Download the `qenerator-qsExtension` from GitHub 24 | 25 | npm install -g generator-qsextension 26 | 27 | ## Start the Generator 28 | 29 | Start the generator by entering the following commands into your **Node.js command prompt**: 30 | 31 | 32 | Make a new directory, and cd into it: 33 | 34 | md c:\yo\myFirstExtension 35 | cd c:\yo\myFirstExtension 36 | 37 | 38 | Run yo generator-qsextension 39 | 40 | yo qsextension 41 | 42 | Follow the instructions, you will be asked some questions: 43 | ![](resources/qsExtension_Generator_Questions.png) 44 | Based on your answers, your customized extension structure will be generated. 45 | 46 | ## Features 47 | 48 | The generator-qsExtension 49 | * Generates a default structure of a working Qlik Sense Visualization Extension 50 | * Creates a deployment system based on [Grunt](http://gruntjs.com/) 51 | 52 | ### Generated Folder Structure 53 | 54 | | Folder | Description | 55 | | --------------------- | ----------------------------------------------------- | 56 | | **`build`** | Destination of compressed automated builds (.zip-files), defined in the Grunt task "`grunt/Gruntfile.compress.js`" 57 | | **`dist`** | Distribution target of automated builds (release mode) 58 | | **`dist_dev`** | Distribution target of automated builds (dev mode) 59 | | **`grunt`** | Source of the [Grunt-based](http://gruntjs.com/) build system. 60 | | **`src`** | Root of source files. **Start working here** 61 | | **`src/lib`** | Suggested folder structure for assets included in the extension. 62 | | **`src/lib/css`** | Style sheets for your solution. If you've chosen to use Less-support, then do not modify the style.css, it will be overwritten by the `Less` task in Grunt. 63 | | **`src/lib/less`** | Folder for your Less definitions. Only applicable if you have chosen to use Less-support. 64 | | **`src/lib/external`**| Put external libraries (e.g. Javascript libraries) into this folder, they will not be modified in any of the Grunt-tasks. 65 | 66 | ### Generated Grunt Deployment 67 | The Grunt based deployment offers three different modes, `dev`, `release` and `source`: 68 | The settings for the `dev` and `release` task can be changed in `grunt/grunt-config.yml` file. 69 | 70 | **Dev Task (Development Deployment)** 71 | 72 | The `dev` task will run trough the following steps, defined in the file `grunt/Gruntfile.js`: 73 | 74 | * Preparations 75 | * Delete existing content in the distribution directory (`dist`) 76 | * Copy all directory and files from the `src` folder to the `dist` folder 77 | * Replace variables in all files of the `dist` folder. Variables are defined in the file `grunt/gruntReplacements.yml`, then `gruntReplacments_dev.yml` 78 | * If Less-Support is chosen: Generate the style sheet `dist/lib/style.css` based on the definition in `dist/lib/less/_root.less`. The generated style-sheet will not be compressed and optimized in `dev` mode. 79 | * Cleanup Tasks 80 | * Typical development files will be deleted (*.tmp, *.tmpl, *.log, *.bak, *.less) 81 | * All empty folders in `dist` will be deleted 82 | * Deployment to Qlik Sense Desktop 83 | * All modified files of the dist folder will be copied to the local Qlik Sense Extension directory (first the entire content of the target folder will be deleted) 84 | * Package 85 | * Finally the content of the extension will be zipped to a fill called `%ExtensionName%_dev.zip` and stored to the `build` directory. 86 | 87 | **Release Task (Release Deployment)** 88 | 89 | * Preparations 90 | * Delete existing content in the distribution directory (`dist`) 91 | * Copy all directory and files from the `src` folder to the `dist` folder 92 | * Replace variables in all files of the `dist` folder. Variables are defined in the file `grunt/gruntReplacements.yml`, then `gruntReplacments_release.yml` 93 | * If Less-Support is chosen: Generate the style sheet `dist/lib/style.css` based on the definition in `dist/lib/less/_root.less`. In release mode the generated style-sheet will be compressed and optimized. 94 | * Cleanup Tasks 95 | * Typical development files will be deleted (*.tmp, *.tmpl, *.log, *.bak, *.less) 96 | * All empty folders in `dist` will be deleted 97 | * Optimization & Uglification 98 | * All generated scripts will be optimized (compressed) and uglified. 99 | * Deployment to Qlik Sense Desktop 100 | * All modified files of the dist folder will be copied to the local Qlik Sense Extension directory (first the entire content of the target folder will be deleted) 101 | * Package 102 | * Finally the content of the extension will be zipped to a fill called `%ExtensionName%_dev.zip` and stored to the `build` directory. 103 | 104 | **Source Task** 105 | The source task creates a ZIP-file containing the `src` and the `grunt` folder (without installed NodeJs packages) following the schema `%ExtensionName%_**src**_v%Version%.zip`. You'll find the generated file in the `build` folder. 106 | 107 | **Grunt Task Configuration** 108 | As a result of the generator you'll find a file called `grunt-config.yml` in the `grunt` folder. 109 | This file can be used to configure the behavior of both the `dev` and the `release` task. 110 | 111 | **Run Grunt Tasks** 112 | For executing one of the two tasks, enter the following commands in your command-prompt: 113 | 114 | Release Task: 115 | 116 | cd grunt 117 | grunt release 118 | 119 | Development Task: 120 | 121 | cd grunt 122 | grunt dev 123 | 124 | ## ChangeLog 125 | 126 | See [ChangeLog](ChangeLog.md). 127 | 128 | ## Author 129 | **Stefan Walther** 130 | * [qliksite.io](http://qliksite.io) 131 | * [github.com/stefanwalther](http://github.com/stefanwalther) 132 | * [twitter.com/waltherstefan](http://twitter.com/waltherstefan) 133 | 134 | ## License 135 | Copyright (c) 2014-2015 Stefan Walther. 136 | Release under the [MIT license](LICENSE.md). 137 | -------------------------------------------------------------------------------- /Todos.md: -------------------------------------------------------------------------------- 1 | ## Todos & Ideas: 2 | 3 | ## Bugfixes 4 | - [X] Fix version replacement in .qext file 5 | - [X] LocalExtensionPath is not always initialized correctly 6 | - [ ] Change the way how paths are stored in the grunt-config.yml 7 | 8 | ### Trivial Additions/Changes 9 | - [X] Add version 10 | - [X] Add MIT license only if appropriate 11 | 12 | ### General 13 | - [ ] Re-write and document configuration system (!!!) 14 | - [ ] Add parameters to check in to a GitHub repository automatically (should also be added to gruntfile.js) 15 | - [X] Add automated tests 16 | - [X] Add LESS support (as an option) 17 | - [X] Add a default image (with the required image dimensions) 18 | - [X] Sync the usage of the version defined in grunt-config.yml 19 | - [X] Update Grunt plugins 20 | 21 | ### Documentation 22 | - [ ] Update documentation in general to reflect recent changes 23 | - [ ] Document yo `extension --grunt` 24 | - [X] License file 25 | 26 | ### Script.js template 27 | - [ ] Pre-generate some comments 28 | - [ ] Generate some console-logging (could also be placed to an optional file??) 29 | - [ ] Create options to work with Angular best-practices (controller, etc.) 30 | - [ ] Offer different templates 31 | 32 | ### Angular Support 33 | - [ ] Add some basic directives to be used in extensions (e.g. swr-simpletable) 34 | 35 | ### Build System 36 | - [x] Create a zip-file 37 | - [ ] Add a possibility to distribute at the same time also to another path (server) 38 | - [ ] Automatically upload the extension to the server using the Qlik Sense Repository API 39 | - [ ] Create some code documentation 40 | - [ ] Work on a unit-testing concept for Extensions 41 | - [X] Delete the 'dist' folder immediately after the build (??) 42 | - [ ] Create some basic log-files (?) 43 | - [X] Add parameters for 'debug', 'release' 44 | - [X] Add ~~jsLint~~ jsHint support 45 | - [ ] Separate general grunt configuration from project configuration 46 | 47 | ### Tests 48 | - [ ] Better test coverage (more scenarios) 49 | - [ ] Add some tests to double-check if all console.log etc has been removed after the release task ... 50 | - [ ] Add test for source build 51 | - [ ] Add more variants 52 | 53 | 54 | --- 55 | Version 0.2.0 56 | 57 | Collection of ideas for a completely rebuild (based on all the learnings of the first version) 58 | 59 | ### YO Generator 60 | - [ ] Update option for build system 61 | - [ ] Import option for existing projects 62 | 63 | ### Configuration System 64 | 65 | ### Build System 66 | - [ ] Separate task configuration from task execution 67 | 68 | 69 | ### Content 70 | - [ ] ChangeLog as YML with "New", "Fixed", "Improved" 71 | 72 | 73 | -------------------------------------------------------------------------------- /app/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | Creates a basic Qlik Sense visualization extension (including a Grunt based deployment system). -------------------------------------------------------------------------------- /app/index.js: -------------------------------------------------------------------------------- 1 | /*global module,define, require, console, process*/ 2 | /*jshint 3 | camelcase: false 4 | */ 5 | (function () { 6 | 'use strict'; 7 | var util = require( 'util' ); 8 | var path = require( 'path' ); 9 | var fs = require( 'fs' ); 10 | var yeoman = require( 'yeoman-generator' ); 11 | var chalk = require( 'chalk' ); 12 | var _ = require( 'underscore' ); 13 | var moment = require( 'moment' ); 14 | var utils = require( './utils' ); 15 | var promptDef = require( './prompts' ); 16 | var qlikloc = require( 'qlikloc' ); 17 | 18 | function noop () {} 19 | 20 | var qsExtension = yeoman.generators.Base.extend( { 21 | 22 | // yo qsextension --grunt 23 | constructor: function () { 24 | yeoman.generators.Base.apply( this, arguments ); 25 | this.pkg = require( "../package.json" ); 26 | 27 | if ( this.options['grunt'] ) { 28 | this.mode = 'grunt'; 29 | } else { 30 | this.mode = 'default'; 31 | } 32 | 33 | }, 34 | 35 | init: {}, 36 | 37 | askFor: function () { 38 | 39 | if ( this.mode === 'default' ) { 40 | var done = this.async(); 41 | this.log( chalk.magenta( 'You\'re using qsextension generator.' ) ); 42 | 43 | this.prompt( promptDef, function ( props ) { 44 | 45 | this.prompts = {}; 46 | 47 | this.prompts.advancedMode = props.advancedMode; 48 | this.prompts.extensionName = props.extensionName; 49 | this.prompts.extensionNameSafe = props.extensionName.replace( /\s/g, "" ); 50 | this.prompts.extensionType = props.extensionType; 51 | this.prompts.extensionNamespace = _.isEmpty( props.extensionNamespace ) ? '' : props.extensionNamespace + '-'; 52 | this.prompts.extensionDescription = props.extensionDescription; 53 | this.prompts.authorName = props.authorName; 54 | this.prompts.lessSupport = props.lessSupport; 55 | this.prompts.license = props.license || 'mit'; 56 | 57 | var d = new Date(); 58 | this.prompts.publishingYear = d.getFullYear(); 59 | this.prompts.creationDate = moment( d ).format( 'YYYY-MM-DD' ); 60 | 61 | this.prompts.licenceGenerated = utils.getLicense( this.prompts ); 62 | 63 | // Debug 64 | // this.log( 'prompts', this.prompts ); 65 | 66 | done(); 67 | 68 | }.bind( this ) ); 69 | } else { 70 | 71 | // do nothing right now ... 72 | noop(); 73 | 74 | } 75 | }, 76 | 77 | /** 78 | * Retrieve the local extension folder 79 | * 80 | * @example 81 | * e.g. %USERPROFILE%\My Documents\Qlik\Sense\Extensions\ 82 | */ 83 | getLocalExtensionDir: function () { 84 | 85 | this.log( 'getLocalExtensionDir' ); 86 | 87 | var done = this.async(); 88 | var that = this; 89 | 90 | qlikloc.getExtensionPath() 91 | .then( function ( result ) { 92 | that.prompts.localExtensionDir = result; 93 | } ) 94 | .catch( function ( err ) { 95 | that.prompts.localExtensionDir = 'PUT PATH TO EXTENSION ROOT FOLDER HERE'; 96 | console.error( 'Could not retrieve the local extension path', err ); 97 | } ) 98 | .done( function () { 99 | done(); 100 | } ); 101 | }, 102 | 103 | writing: function () { 104 | 105 | switch ( this.mode ) { 106 | case 'default': 107 | this._root(); 108 | this._dirs(); 109 | this._src(); 110 | this._srcLib(); 111 | this._styles(); 112 | this._grunt(); 113 | this._saveConfig(); 114 | break; 115 | case 'grunt': 116 | // not implemented, yet 117 | var existingConfig = this.config.getAll(); 118 | if ( !_.isEmpty( existingConfig ) ) { 119 | this.prompts = existingConfig; 120 | this._grunt(); 121 | } else { 122 | this.log.error( chalk.red( 'Grunt update not possible, cannot load existing configuration!' ) + ' .yo-rc.json is missing.' ); 123 | } 124 | break; 125 | default: 126 | break; 127 | } 128 | 129 | }, 130 | 131 | end: function () { 132 | 133 | if ( !this.options['skip-install'] ) { 134 | 135 | // for future changes check if grunt based deployment is existing 136 | if ( fs.existsSync( path.join( process.cwd() + '/grunt' ) ) ) { 137 | 138 | var npmdir = process.cwd() + '/grunt'; 139 | process.chdir( npmdir ); 140 | 141 | this.installDependencies( { 142 | bower: false, 143 | npm: true, 144 | skipMessage: true 145 | } ); 146 | 147 | } 148 | } 149 | 150 | }, 151 | 152 | _root: function () { 153 | 154 | // root 155 | this.copy( 'gitattributes.txt', '.gitattributes' ); 156 | this.copy( 'gitignore.txt', '.gitignore' ); 157 | this.template( 'readme.md', 'README.md' ); 158 | this.template( 'license.md', 'LICENSE.md' ); 159 | this.template( 'changelog.yml', 'CHANGELOG.yml' ); 160 | 161 | }, 162 | 163 | _dirs: function () { 164 | 165 | // Build Dir 166 | this.mkdir( 'build' ); 167 | this.mkdir( 'dist' ); 168 | 169 | }, 170 | 171 | _src: function () { 172 | 173 | // src dir 174 | this.mkdir( 'src' ); 175 | this.copy( '.jshintrc', 'src/.jshintrc' ); 176 | this.template( 'extension.js', 'src/' + this.prompts.extensionNamespace.toLowerCase() + this.prompts.extensionNameSafe.toLowerCase() + '.js' ); 177 | this.template( 'extension.qext', 'src/' + this.prompts.extensionNamespace.toLowerCase() + this.prompts.extensionNameSafe.toLowerCase() + '.qext' ); 178 | this.copy( 'extension.png', 'src/' + this.prompts.extensionNameSafe.toLowerCase() + '.png' ); 179 | this.template( 'extension-properties.js', 'src/properties.js' ); 180 | this.template( 'extension-initialproperties.js', 'src/initialproperties.js' ); 181 | 182 | }, 183 | 184 | _srcLib: function () { 185 | 186 | // src/lib 187 | this.mkdir( 'src/lib' ); 188 | this.mkdir( 'src/lib/css' ); 189 | this.mkdir( 'src/lib/js' ); 190 | this.mkdir( 'src/lib/external' ); 191 | this.mkdir( 'src/lib/images' ); 192 | this.mkdir( 'src/lib/fonts' ); 193 | this.mkdir( 'src/lib/icons' ); 194 | this.mkdir( 'src/lib/data' ); 195 | this.mkdir( 'src/lib/partials' ); 196 | 197 | // src/lib/content 198 | this.copy( 'lib/js/extensionUtils.js', 'src/lib/js/extensionUtils.js' ); 199 | 200 | }, 201 | 202 | _grunt: function () { 203 | 204 | // Grunt 205 | this.mkdir( 'grunt' ); 206 | this.copy( 'grunt/.jshintrc-dev', 'grunt/.jshintrc-dev' ); 207 | this.copy( 'grunt/.jshintrc-release', 'grunt/.jshintrc-release' ); 208 | this.template( 'grunt/grunt-config.yml', 'grunt/grunt-config.yml' ); 209 | this.copy( 'grunt/_package.json', 'grunt/package.json' ); 210 | this.copy( 'grunt/Gruntfile.projectconfig.js', 'grunt/Gruntfile.projectconfig.js' ); 211 | this.copy( 'grunt/Gruntfile.clean.js', 'grunt/Gruntfile.clean.js' ); 212 | this.copy( 'grunt/Gruntfile.cleanempty.js', 'grunt/Gruntfile.cleanempty.js' ); 213 | this.copy( 'grunt/Gruntfile.compress.js', 'grunt/Gruntfile.compress.js' ); 214 | this.copy( 'grunt/Gruntfile.copy.js', 'grunt/Gruntfile.copy.js' ); 215 | 216 | // Gruntfile.Less will be added in the createStyles task 217 | this.template( 'grunt/Gruntfile.js', 'grunt/Gruntfile.js' ); 218 | this.copy( 'grunt/Gruntfile.jshint.js', 'grunt/Gruntfile.jshint.js' ); 219 | this.copy( 'grunt/Gruntfile.replace.js', 'grunt/Gruntfile.replace.js' ); 220 | this.copy( 'grunt/Gruntfile.uglify.js', 'grunt/Gruntfile.uglify.js' ); 221 | this.copy( 'grunt/gruntReplacements.yml', 'grunt/gruntReplacements.yml' ); 222 | this.copy( 'grunt/gruntReplacements_dev.yml', 'grunt/gruntReplacements_dev.yml' ); 223 | this.copy( 'grunt/gruntReplacements_release.yml', 'grunt/gruntReplacements_release.yml' ); 224 | 225 | }, 226 | 227 | _styles: function () { 228 | 229 | if ( this.prompts.lessSupport === true ) { 230 | this.mkdir( 'src/lib/less' ); 231 | this.template( '_root.less', 'src/lib/less/_root.less' ); 232 | this.template( 'styles.less', 'src/lib/less/styles.less' ); 233 | this.template( 'variables.less', 'src/lib/less/variables.less' ); 234 | this.template( 'style_Less.css', 'src/lib/css/style.css' ); 235 | this.copy( 'grunt/Gruntfile.less.js', 'grunt/Gruntfile.less.js' ); 236 | 237 | } else { 238 | this.template( 'style_noLess.css', 'src/lib/css/style.css' ); 239 | } 240 | }, 241 | 242 | _saveConfig: function () { 243 | this.config.set( this.prompts ); 244 | this.config.save(); 245 | } 246 | } ); 247 | 248 | module.exports = qsExtension; 249 | }()); 250 | -------------------------------------------------------------------------------- /app/licenses/apache.txt: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "{}" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright {yyyy} {name of copyright owner} 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /app/licenses/artistic.txt: -------------------------------------------------------------------------------- 1 | 2 | The Artistic License 2.0 3 | 4 | Copyright (c) [year] [fullname] 5 | 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | This license establishes the terms under which a given free software 12 | Package may be copied, modified, distributed, and/or redistributed. 13 | The intent is that the Copyright Holder maintains some artistic 14 | control over the development of that Package while still keeping the 15 | Package available as open source and free software. 16 | 17 | You are always permitted to make arrangements wholly outside of this 18 | license directly with the Copyright Holder of a given Package. If the 19 | terms of this license do not permit the full use that you propose to 20 | make of the Package, you should contact the Copyright Holder and seek 21 | a different licensing arrangement. 22 | 23 | Definitions 24 | 25 | "Copyright Holder" means the individual(s) or organization(s) 26 | named in the copyright notice for the entire Package. 27 | 28 | "Contributor" means any party that has contributed code or other 29 | material to the Package, in accordance with the Copyright Holder's 30 | procedures. 31 | 32 | "You" and "your" means any person who would like to copy, 33 | distribute, or modify the Package. 34 | 35 | "Package" means the collection of files distributed by the 36 | Copyright Holder, and derivatives of that collection and/or of 37 | those files. A given Package may consist of either the Standard 38 | Version, or a Modified Version. 39 | 40 | "Distribute" means providing a copy of the Package or making it 41 | accessible to anyone else, or in the case of a company or 42 | organization, to others outside of your company or organization. 43 | 44 | "Distributor Fee" means any fee that you charge for Distributing 45 | this Package or providing support for this Package to another 46 | party. It does not mean licensing fees. 47 | 48 | "Standard Version" refers to the Package if it has not been 49 | modified, or has been modified only in ways explicitly requested 50 | by the Copyright Holder. 51 | 52 | "Modified Version" means the Package, if it has been changed, and 53 | such changes were not explicitly requested by the Copyright 54 | Holder. 55 | 56 | "Original License" means this Artistic License as Distributed with 57 | the Standard Version of the Package, in its current version or as 58 | it may be modified by The Perl Foundation in the future. 59 | 60 | "Source" form means the source code, documentation source, and 61 | configuration files for the Package. 62 | 63 | "Compiled" form means the compiled bytecode, object code, binary, 64 | or any other form resulting from mechanical transformation or 65 | translation of the Source form. 66 | 67 | 68 | Permission for Use and Modification Without Distribution 69 | 70 | (1) You are permitted to use the Standard Version and create and use 71 | Modified Versions for any purpose without restriction, provided that 72 | you do not Distribute the Modified Version. 73 | 74 | 75 | Permissions for Redistribution of the Standard Version 76 | 77 | (2) You may Distribute verbatim copies of the Source form of the 78 | Standard Version of this Package in any medium without restriction, 79 | either gratis or for a Distributor Fee, provided that you duplicate 80 | all of the original copyright notices and associated disclaimers. At 81 | your discretion, such verbatim copies may or may not include a 82 | Compiled form of the Package. 83 | 84 | (3) You may apply any bug fixes, portability changes, and other 85 | modifications made available from the Copyright Holder. The resulting 86 | Package will still be considered the Standard Version, and as such 87 | will be subject to the Original License. 88 | 89 | 90 | Distribution of Modified Versions of the Package as Source 91 | 92 | (4) You may Distribute your Modified Version as Source (either gratis 93 | or for a Distributor Fee, and with or without a Compiled form of the 94 | Modified Version) provided that you clearly document how it differs 95 | from the Standard Version, including, but not limited to, documenting 96 | any non-standard features, executables, or modules, and provided that 97 | you do at least ONE of the following: 98 | 99 | (a) make the Modified Version available to the Copyright Holder 100 | of the Standard Version, under the Original License, so that the 101 | Copyright Holder may include your modifications in the Standard 102 | Version. 103 | 104 | (b) ensure that installation of your Modified Version does not 105 | prevent the user installing or running the Standard Version. In 106 | addition, the Modified Version must bear a name that is different 107 | from the name of the Standard Version. 108 | 109 | (c) allow anyone who receives a copy of the Modified Version to 110 | make the Source form of the Modified Version available to others 111 | under 112 | 113 | (i) the Original License or 114 | 115 | (ii) a license that permits the licensee to freely copy, 116 | modify and redistribute the Modified Version using the same 117 | licensing terms that apply to the copy that the licensee 118 | received, and requires that the Source form of the Modified 119 | Version, and of any works derived from it, be made freely 120 | available in that license fees are prohibited but Distributor 121 | Fees are allowed. 122 | 123 | 124 | Distribution of Compiled Forms of the Standard Version 125 | or Modified Versions without the Source 126 | 127 | (5) You may Distribute Compiled forms of the Standard Version without 128 | the Source, provided that you include complete instructions on how to 129 | get the Source of the Standard Version. Such instructions must be 130 | valid at the time of your distribution. If these instructions, at any 131 | time while you are carrying out such distribution, become invalid, you 132 | must provide new instructions on demand or cease further distribution. 133 | If you provide valid instructions or cease distribution within thirty 134 | days after you become aware that the instructions are invalid, then 135 | you do not forfeit any of your rights under this license. 136 | 137 | (6) You may Distribute a Modified Version in Compiled form without 138 | the Source, provided that you comply with Section 4 with respect to 139 | the Source of the Modified Version. 140 | 141 | 142 | Aggregating or Linking the Package 143 | 144 | (7) You may aggregate the Package (either the Standard Version or 145 | Modified Version) with other packages and Distribute the resulting 146 | aggregation provided that you do not charge a licensing fee for the 147 | Package. Distributor Fees are permitted, and licensing fees for other 148 | components in the aggregation are permitted. The terms of this license 149 | apply to the use and Distribution of the Standard or Modified Versions 150 | as included in the aggregation. 151 | 152 | (8) You are permitted to link Modified and Standard Versions with 153 | other works, to embed the Package in a larger work of your own, or to 154 | build stand-alone binary or bytecode versions of applications that 155 | include the Package, and Distribute the result without restriction, 156 | provided the result does not expose a direct interface to the Package. 157 | 158 | 159 | Items That are Not Considered Part of a Modified Version 160 | 161 | (9) Works (including, but not limited to, modules and scripts) that 162 | merely extend or make use of the Package, do not, by themselves, cause 163 | the Package to be a Modified Version. In addition, such works are not 164 | considered parts of the Package itself, and are not subject to the 165 | terms of this license. 166 | 167 | 168 | General Provisions 169 | 170 | (10) Any use, modification, and distribution of the Standard or 171 | Modified Versions is governed by this Artistic License. By using, 172 | modifying or distributing the Package, you accept this license. Do not 173 | use, modify, or distribute the Package, if you do not accept this 174 | license. 175 | 176 | (11) If your Modified Version has been derived from a Modified 177 | Version made by someone other than you, you are nevertheless required 178 | to ensure that your Modified Version complies with the requirements of 179 | this license. 180 | 181 | (12) This license does not grant you the right to use any trademark, 182 | service mark, tradename, or logo of the Copyright Holder. 183 | 184 | (13) This license includes the non-exclusive, worldwide, 185 | free-of-charge patent license to make, have made, use, offer to sell, 186 | sell, import and otherwise transfer the Package with respect to any 187 | patent claims licensable by the Copyright Holder that are necessarily 188 | infringed by the Package. If you institute patent litigation 189 | (including a cross-claim or counterclaim) against any party alleging 190 | that the Package constitutes direct or contributory patent 191 | infringement, then this Artistic License to you shall terminate on the 192 | date that such litigation is filed. 193 | 194 | (14) Disclaimer of Warranty: 195 | THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS 196 | IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED 197 | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR 198 | NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL 199 | LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL 200 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 201 | DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF 202 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 203 | -------------------------------------------------------------------------------- /app/licenses/bsd-3-clause.txt: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) [year], [fullname] 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | * Neither the name of the {organization} nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /app/licenses/bsd.txt: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) [year], [fullname] 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 16 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 19 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 22 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /app/licenses/cc0.txt: -------------------------------------------------------------------------------- 1 | 2 | CC0 1.0 Universal 3 | 4 | Statement of Purpose 5 | 6 | The laws of most jurisdictions throughout the world automatically confer 7 | exclusive Copyright and Related Rights (defined below) upon the creator and 8 | subsequent owner(s) (each and all, an "owner") of an original work of 9 | authorship and/or a database (each, a "Work"). 10 | 11 | Certain owners wish to permanently relinquish those rights to a Work for the 12 | purpose of contributing to a commons of creative, cultural and scientific 13 | works ("Commons") that the public can reliably and without fear of later 14 | claims of infringement build upon, modify, incorporate in other works, reuse 15 | and redistribute as freely as possible in any form whatsoever and for any 16 | purposes, including without limitation commercial purposes. These owners may 17 | contribute to the Commons to promote the ideal of a free culture and the 18 | further production of creative, cultural and scientific works, or to gain 19 | reputation or greater distribution for their Work in part through the use and 20 | efforts of others. 21 | 22 | For these and/or other purposes and motivations, and without any expectation 23 | of additional consideration or compensation, the person associating CC0 with a 24 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 25 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 26 | and publicly distribute the Work under its terms, with knowledge of his or her 27 | Copyright and Related Rights in the Work and the meaning and intended legal 28 | effect of CC0 on those rights. 29 | 30 | 1. Copyright and Related Rights. A Work made available under CC0 may be 31 | protected by copyright and related or neighboring rights ("Copyright and 32 | Related Rights"). Copyright and Related Rights include, but are not limited 33 | to, the following: 34 | 35 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 36 | and translate a Work; 37 | 38 | ii. moral rights retained by the original author(s) and/or performer(s); 39 | 40 | iii. publicity and privacy rights pertaining to a person's image or likeness 41 | depicted in a Work; 42 | 43 | iv. rights protecting against unfair competition in regards to a Work, 44 | subject to the limitations in paragraph 4(a), below; 45 | 46 | v. rights protecting the extraction, dissemination, use and reuse of data in 47 | a Work; 48 | 49 | vi. database rights (such as those arising under Directive 96/9/EC of the 50 | European Parliament and of the Council of 11 March 1996 on the legal 51 | protection of databases, and under any national implementation thereof, 52 | including any amended or successor version of such directive); and 53 | 54 | vii. other similar, equivalent or corresponding rights throughout the world 55 | based on applicable law or treaty, and any national implementations thereof. 56 | 57 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 58 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 59 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 60 | and Related Rights and associated claims and causes of action, whether now 61 | known or unknown (including existing as well as future claims and causes of 62 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 63 | duration provided by applicable law or treaty (including future time 64 | extensions), (iii) in any current or future medium and for any number of 65 | copies, and (iv) for any purpose whatsoever, including without limitation 66 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 67 | the Waiver for the benefit of each member of the public at large and to the 68 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 69 | shall not be subject to revocation, rescission, cancellation, termination, or 70 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 71 | by the public as contemplated by Affirmer's express Statement of Purpose. 72 | 73 | 3. Public License Fallback. Should any part of the Waiver for any reason be 74 | judged legally invalid or ineffective under applicable law, then the Waiver 75 | shall be preserved to the maximum extent permitted taking into account 76 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 77 | is so judged Affirmer hereby grants to each affected person a royalty-free, 78 | non transferable, non sublicensable, non exclusive, irrevocable and 79 | unconditional license to exercise Affirmer's Copyright and Related Rights in 80 | the Work (i) in all territories worldwide, (ii) for the maximum duration 81 | provided by applicable law or treaty (including future time extensions), (iii) 82 | in any current or future medium and for any number of copies, and (iv) for any 83 | purpose whatsoever, including without limitation commercial, advertising or 84 | promotional purposes (the "License"). The License shall be deemed effective as 85 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 86 | License for any reason be judged legally invalid or ineffective under 87 | applicable law, such partial invalidity or ineffectiveness shall not 88 | invalidate the remainder of the License, and in such case Affirmer hereby 89 | affirms that he or she will not (i) exercise any of his or her remaining 90 | Copyright and Related Rights in the Work or (ii) assert any associated claims 91 | and causes of action with respect to the Work, in either case contrary to 92 | Affirmer's express Statement of Purpose. 93 | 94 | 4. Limitations and Disclaimers. 95 | 96 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 97 | surrendered, licensed or otherwise affected by this document. 98 | 99 | b. Affirmer offers the Work as-is and makes no representations or warranties 100 | of any kind concerning the Work, express, implied, statutory or otherwise, 101 | including without limitation warranties of title, merchantability, fitness 102 | for a particular purpose, non infringement, or the absence of latent or 103 | other defects, accuracy, or the present or absence of errors, whether or not 104 | discoverable, all to the greatest extent permissible under applicable law. 105 | 106 | c. Affirmer disclaims responsibility for clearing rights of other persons 107 | that may apply to the Work or any use thereof, including without limitation 108 | any person's Copyright and Related Rights in the Work. Further, Affirmer 109 | disclaims responsibility for obtaining any necessary consents, permissions 110 | or other rights required for any use of the Work. 111 | 112 | d. Affirmer understands and acknowledges that Creative Commons is not a 113 | party to this document and has no duty or obligation with respect to this 114 | CC0 or use of the Work. 115 | 116 | For more information, please see 117 | 118 | -------------------------------------------------------------------------------- /app/licenses/eclipse.txt: -------------------------------------------------------------------------------- 1 | 2 | Eclipse Public License - v 1.0 3 | 4 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC 5 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM 6 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 7 | 8 | 1. DEFINITIONS 9 | 10 | "Contribution" means: 11 | 12 | a) in the case of the initial Contributor, the initial code and documentation 13 | distributed under this Agreement, and 14 | b) in the case of each subsequent Contributor: 15 | i) changes to the Program, and 16 | ii) additions to the Program; 17 | 18 | where such changes and/or additions to the Program originate from and are 19 | distributed by that particular Contributor. A Contribution 'originates' 20 | from a Contributor if it was added to the Program by such Contributor 21 | itself or anyone acting on such Contributor's behalf. Contributions do not 22 | include additions to the Program which: (i) are separate modules of 23 | software distributed in conjunction with the Program under their own 24 | license agreement, and (ii) are not derivative works of the Program. 25 | 26 | "Contributor" means any person or entity that distributes the Program. 27 | 28 | "Licensed Patents" mean patent claims licensable by a Contributor which are 29 | necessarily infringed by the use or sale of its Contribution alone or when 30 | combined with the Program. 31 | 32 | "Program" means the Contributions distributed in accordance with this 33 | Agreement. 34 | 35 | "Recipient" means anyone who receives the Program under this Agreement, 36 | including all Contributors. 37 | 38 | 2. GRANT OF RIGHTS 39 | a) Subject to the terms of this Agreement, each Contributor hereby grants 40 | Recipient a non-exclusive, worldwide, royalty-free copyright license to 41 | reproduce, prepare derivative works of, publicly display, publicly 42 | perform, distribute and sublicense the Contribution of such Contributor, 43 | if any, and such derivative works, in source code and object code form. 44 | b) Subject to the terms of this Agreement, each Contributor hereby grants 45 | Recipient a non-exclusive, worldwide, royalty-free patent license under 46 | Licensed Patents to make, use, sell, offer to sell, import and otherwise 47 | transfer the Contribution of such Contributor, if any, in source code and 48 | object code form. This patent license shall apply to the combination of 49 | the Contribution and the Program if, at the time the Contribution is 50 | added by the Contributor, such addition of the Contribution causes such 51 | combination to be covered by the Licensed Patents. The patent license 52 | shall not apply to any other combinations which include the Contribution. 53 | No hardware per se is licensed hereunder. 54 | c) Recipient understands that although each Contributor grants the licenses 55 | to its Contributions set forth herein, no assurances are provided by any 56 | Contributor that the Program does not infringe the patent or other 57 | intellectual property rights of any other entity. Each Contributor 58 | disclaims any liability to Recipient for claims brought by any other 59 | entity based on infringement of intellectual property rights or 60 | otherwise. As a condition to exercising the rights and licenses granted 61 | hereunder, each Recipient hereby assumes sole responsibility to secure 62 | any other intellectual property rights needed, if any. For example, if a 63 | third party patent license is required to allow Recipient to distribute 64 | the Program, it is Recipient's responsibility to acquire that license 65 | before distributing the Program. 66 | d) Each Contributor represents that to its knowledge it has sufficient 67 | copyright rights in its Contribution, if any, to grant the copyright 68 | license set forth in this Agreement. 69 | 70 | 3. REQUIREMENTS 71 | 72 | A Contributor may choose to distribute the Program in object code form under 73 | its own license agreement, provided that: 74 | 75 | a) it complies with the terms and conditions of this Agreement; and 76 | b) its license agreement: 77 | i) effectively disclaims on behalf of all Contributors all warranties 78 | and conditions, express and implied, including warranties or 79 | conditions of title and non-infringement, and implied warranties or 80 | conditions of merchantability and fitness for a particular purpose; 81 | ii) effectively excludes on behalf of all Contributors all liability for 82 | damages, including direct, indirect, special, incidental and 83 | consequential damages, such as lost profits; 84 | iii) states that any provisions which differ from this Agreement are 85 | offered by that Contributor alone and not by any other party; and 86 | iv) states that source code for the Program is available from such 87 | Contributor, and informs licensees how to obtain it in a reasonable 88 | manner on or through a medium customarily used for software exchange. 89 | 90 | When the Program is made available in source code form: 91 | 92 | a) it must be made available under this Agreement; and 93 | b) a copy of this Agreement must be included with each copy of the Program. 94 | Contributors may not remove or alter any copyright notices contained 95 | within the Program. 96 | 97 | Each Contributor must identify itself as the originator of its Contribution, 98 | if 99 | any, in a manner that reasonably allows subsequent Recipients to identify the 100 | originator of the Contribution. 101 | 102 | 4. COMMERCIAL DISTRIBUTION 103 | 104 | Commercial distributors of software may accept certain responsibilities with 105 | respect to end users, business partners and the like. While this license is 106 | intended to facilitate the commercial use of the Program, the Contributor who 107 | includes the Program in a commercial product offering should do so in a manner 108 | which does not create potential liability for other Contributors. Therefore, 109 | if a Contributor includes the Program in a commercial product offering, such 110 | Contributor ("Commercial Contributor") hereby agrees to defend and indemnify 111 | every other Contributor ("Indemnified Contributor") against any losses, 112 | damages and costs (collectively "Losses") arising from claims, lawsuits and 113 | other legal actions brought by a third party against the Indemnified 114 | Contributor to the extent caused by the acts or omissions of such Commercial 115 | Contributor in connection with its distribution of the Program in a commercial 116 | product offering. The obligations in this section do not apply to any claims 117 | or Losses relating to any actual or alleged intellectual property 118 | infringement. In order to qualify, an Indemnified Contributor must: 119 | a) promptly notify the Commercial Contributor in writing of such claim, and 120 | b) allow the Commercial Contributor to control, and cooperate with the 121 | Commercial Contributor in, the defense and any related settlement 122 | negotiations. The Indemnified Contributor may participate in any such claim at 123 | its own expense. 124 | 125 | For example, a Contributor might include the Program in a commercial product 126 | offering, Product X. That Contributor is then a Commercial Contributor. If 127 | that Commercial Contributor then makes performance claims, or offers 128 | warranties related to Product X, those performance claims and warranties are 129 | such Commercial Contributor's responsibility alone. Under this section, the 130 | Commercial Contributor would have to defend claims against the other 131 | Contributors related to those performance claims and warranties, and if a 132 | court requires any other Contributor to pay any damages as a result, the 133 | Commercial Contributor must pay those damages. 134 | 135 | 5. NO WARRANTY 136 | 137 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN 138 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR 139 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, 140 | NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each 141 | Recipient is solely responsible for determining the appropriateness of using 142 | and distributing the Program and assumes all risks associated with its 143 | exercise of rights under this Agreement , including but not limited to the 144 | risks and costs of program errors, compliance with applicable laws, damage to 145 | or loss of data, programs or equipment, and unavailability or interruption of 146 | operations. 147 | 148 | 6. DISCLAIMER OF LIABILITY 149 | 150 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY 151 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, 152 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION 153 | LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 154 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 155 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 156 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY 157 | OF SUCH DAMAGES. 158 | 159 | 7. GENERAL 160 | 161 | If any provision of this Agreement is invalid or unenforceable under 162 | applicable law, it shall not affect the validity or enforceability of the 163 | remainder of the terms of this Agreement, and without further action by the 164 | parties hereto, such provision shall be reformed to the minimum extent 165 | necessary to make such provision valid and enforceable. 166 | 167 | If Recipient institutes patent litigation against any entity (including a 168 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself 169 | (excluding combinations of the Program with other software or hardware) 170 | infringes such Recipient's patent(s), then such Recipient's rights granted 171 | under Section 2(b) shall terminate as of the date such litigation is filed. 172 | 173 | All Recipient's rights under this Agreement shall terminate if it fails to 174 | comply with any of the material terms or conditions of this Agreement and does 175 | not cure such failure in a reasonable period of time after becoming aware of 176 | such noncompliance. If all Recipient's rights under this Agreement terminate, 177 | Recipient agrees to cease use and distribution of the Program as soon as 178 | reasonably practicable. However, Recipient's obligations under this Agreement 179 | and any licenses granted by Recipient relating to the Program shall continue 180 | and survive. 181 | 182 | Everyone is permitted to copy and distribute copies of this Agreement, but in 183 | order to avoid inconsistency the Agreement is copyrighted and may only be 184 | modified in the following manner. The Agreement Steward reserves the right to 185 | publish new versions (including revisions) of this Agreement from time to 186 | time. No one other than the Agreement Steward has the right to modify this 187 | Agreement. The Eclipse Foundation is the initial Agreement Steward. The 188 | Eclipse Foundation may assign the responsibility to serve as the Agreement 189 | Steward to a suitable separate entity. Each new version of the Agreement will 190 | be given a distinguishing version number. The Program (including 191 | Contributions) may always be distributed subject to the version of the 192 | Agreement under which it was received. In addition, after a new version of the 193 | Agreement is published, Contributor may elect to distribute the Program 194 | (including its Contributions) under the new version. Except as expressly 195 | stated in Sections 2(a) and 2(b) above, Recipient receives no rights or 196 | licenses to the intellectual property of any Contributor under this Agreement, 197 | whether expressly, by implication, estoppel or otherwise. All rights in the 198 | Program not expressly granted under this Agreement are reserved. 199 | 200 | This Agreement is governed by the laws of the State of New York and the 201 | intellectual property laws of the United States of America. No party to this 202 | Agreement will bring a legal action under this Agreement more than one year 203 | after the cause of action arose. Each party waives its rights to a jury trial in 204 | any resulting litigation. 205 | -------------------------------------------------------------------------------- /app/licenses/gpl-v2.txt: -------------------------------------------------------------------------------- 1 | 2 | GNU GENERAL PUBLIC LICENSE 3 | Version 2, June 1991 4 | 5 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 6 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 7 | Everyone is permitted to copy and distribute verbatim copies 8 | of this license document, but changing it is not allowed. 9 | 10 | Preamble 11 | 12 | The licenses for most software are designed to take away your 13 | freedom to share and change it. By contrast, the GNU General Public 14 | License is intended to guarantee your freedom to share and change free 15 | software--to make sure the software is free for all its users. This 16 | General Public License applies to most of the Free Software 17 | Foundation's software and to any other program whose authors commit to 18 | using it. (Some other Free Software Foundation software is covered by 19 | the GNU Lesser General Public License instead.) You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | this service if you wish), that you receive source code or can get it 26 | if you want it, that you can change the software or use pieces of it 27 | in new free programs; and that you know you can do these things. 28 | 29 | To protect your rights, we need to make restrictions that forbid 30 | anyone to deny you these rights or to ask you to surrender the rights. 31 | These restrictions translate to certain responsibilities for you if you 32 | distribute copies of the software, or if you modify it. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must give the recipients all the rights that 36 | you have. You must make sure that they, too, receive or can get the 37 | source code. And you must show them these terms so they know their 38 | rights. 39 | 40 | We protect your rights with two steps: (1) copyright the software, and 41 | (2) offer you this license which gives you legal permission to copy, 42 | distribute and/or modify the software. 43 | 44 | Also, for each author's protection and ours, we want to make certain 45 | that everyone understands that there is no warranty for this free 46 | software. If the software is modified by someone else and passed on, we 47 | want its recipients to know that what they have is not the original, so 48 | that any problems introduced by others will not reflect on the original 49 | authors' reputations. 50 | 51 | Finally, any free program is threatened constantly by software 52 | patents. We wish to avoid the danger that redistributors of a free 53 | program will individually obtain patent licenses, in effect making the 54 | program proprietary. To prevent this, we have made it clear that any 55 | patent must be licensed for everyone's free use or not licensed at all. 56 | 57 | The precise terms and conditions for copying, distribution and 58 | modification follow. 59 | 60 | GNU GENERAL PUBLIC LICENSE 61 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 62 | 63 | 0. This License applies to any program or other work which contains 64 | a notice placed by the copyright holder saying it may be distributed 65 | under the terms of this General Public License. The "Program", below, 66 | refers to any such program or work, and a "work based on the Program" 67 | means either the Program or any derivative work under copyright law: 68 | that is to say, a work containing the Program or a portion of it, 69 | either verbatim or with modifications and/or translated into another 70 | language. (Hereinafter, translation is included without limitation in 71 | the term "modification".) Each licensee is addressed as "you". 72 | 73 | Activities other than copying, distribution and modification are not 74 | covered by this License; they are outside its scope. The act of 75 | running the Program is not restricted, and the output from the Program 76 | is covered only if its contents constitute a work based on the 77 | Program (independent of having been made by running the Program). 78 | Whether that is true depends on what the Program does. 79 | 80 | 1. You may copy and distribute verbatim copies of the Program's 81 | source code as you receive it, in any medium, provided that you 82 | conspicuously and appropriately publish on each copy an appropriate 83 | copyright notice and disclaimer of warranty; keep intact all the 84 | notices that refer to this License and to the absence of any warranty; 85 | and give any other recipients of the Program a copy of this License 86 | along with the Program. 87 | 88 | You may charge a fee for the physical act of transferring a copy, and 89 | you may at your option offer warranty protection in exchange for a fee. 90 | 91 | 2. You may modify your copy or copies of the Program or any portion 92 | of it, thus forming a work based on the Program, and copy and 93 | distribute such modifications or work under the terms of Section 1 94 | above, provided that you also meet all of these conditions: 95 | 96 | a) You must cause the modified files to carry prominent notices 97 | stating that you changed the files and the date of any change. 98 | 99 | b) You must cause any work that you distribute or publish, that in 100 | whole or in part contains or is derived from the Program or any 101 | part thereof, to be licensed as a whole at no charge to all third 102 | parties under the terms of this License. 103 | 104 | c) If the modified program normally reads commands interactively 105 | when run, you must cause it, when started running for such 106 | interactive use in the most ordinary way, to print or display an 107 | announcement including an appropriate copyright notice and a 108 | notice that there is no warranty (or else, saying that you provide 109 | a warranty) and that users may redistribute the program under 110 | these conditions, and telling the user how to view a copy of this 111 | License. (Exception: if the Program itself is interactive but 112 | does not normally print such an announcement, your work based on 113 | the Program is not required to print an announcement.) 114 | 115 | These requirements apply to the modified work as a whole. If 116 | identifiable sections of that work are not derived from the Program, 117 | and can be reasonably considered independent and separate works in 118 | themselves, then this License, and its terms, do not apply to those 119 | sections when you distribute them as separate works. But when you 120 | distribute the same sections as part of a whole which is a work based 121 | on the Program, the distribution of the whole must be on the terms of 122 | this License, whose permissions for other licensees extend to the 123 | entire whole, and thus to each and every part regardless of who wrote it. 124 | 125 | Thus, it is not the intent of this section to claim rights or contest 126 | your rights to work written entirely by you; rather, the intent is to 127 | exercise the right to control the distribution of derivative or 128 | collective works based on the Program. 129 | 130 | In addition, mere aggregation of another work not based on the Program 131 | with the Program (or with a work based on the Program) on a volume of 132 | a storage or distribution medium does not bring the other work under 133 | the scope of this License. 134 | 135 | 3. You may copy and distribute the Program (or a work based on it, 136 | under Section 2) in object code or executable form under the terms of 137 | Sections 1 and 2 above provided that you also do one of the following: 138 | 139 | a) Accompany it with the complete corresponding machine-readable 140 | source code, which must be distributed under the terms of Sections 141 | 1 and 2 above on a medium customarily used for software interchange; or, 142 | 143 | b) Accompany it with a written offer, valid for at least three 144 | years, to give any third party, for a charge no more than your 145 | cost of physically performing source distribution, a complete 146 | machine-readable copy of the corresponding source code, to be 147 | distributed under the terms of Sections 1 and 2 above on a medium 148 | customarily used for software interchange; or, 149 | 150 | c) Accompany it with the information you received as to the offer 151 | to distribute corresponding source code. (This alternative is 152 | allowed only for noncommercial distribution and only if you 153 | received the program in object code or executable form with such 154 | an offer, in accord with Subsection b above.) 155 | 156 | The source code for a work means the preferred form of the work for 157 | making modifications to it. For an executable work, complete source 158 | code means all the source code for all modules it contains, plus any 159 | associated interface definition files, plus the scripts used to 160 | control compilation and installation of the executable. However, as a 161 | special exception, the source code distributed need not include 162 | anything that is normally distributed (in either source or binary 163 | form) with the major components (compiler, kernel, and so on) of the 164 | operating system on which the executable runs, unless that component 165 | itself accompanies the executable. 166 | 167 | If distribution of executable or object code is made by offering 168 | access to copy from a designated place, then offering equivalent 169 | access to copy the source code from the same place counts as 170 | distribution of the source code, even though third parties are not 171 | compelled to copy the source along with the object code. 172 | 173 | 4. You may not copy, modify, sublicense, or distribute the Program 174 | except as expressly provided under this License. Any attempt 175 | otherwise to copy, modify, sublicense or distribute the Program is 176 | void, and will automatically terminate your rights under this License. 177 | However, parties who have received copies, or rights, from you under 178 | this License will not have their licenses terminated so long as such 179 | parties remain in full compliance. 180 | 181 | 5. You are not required to accept this License, since you have not 182 | signed it. However, nothing else grants you permission to modify or 183 | distribute the Program or its derivative works. These actions are 184 | prohibited by law if you do not accept this License. Therefore, by 185 | modifying or distributing the Program (or any work based on the 186 | Program), you indicate your acceptance of this License to do so, and 187 | all its terms and conditions for copying, distributing or modifying 188 | the Program or works based on it. 189 | 190 | 6. Each time you redistribute the Program (or any work based on the 191 | Program), the recipient automatically receives a license from the 192 | original licensor to copy, distribute or modify the Program subject to 193 | these terms and conditions. You may not impose any further 194 | restrictions on the recipients' exercise of the rights granted herein. 195 | You are not responsible for enforcing compliance by third parties to 196 | this License. 197 | 198 | 7. If, as a consequence of a court judgment or allegation of patent 199 | infringement or for any other reason (not limited to patent issues), 200 | conditions are imposed on you (whether by court order, agreement or 201 | otherwise) that contradict the conditions of this License, they do not 202 | excuse you from the conditions of this License. If you cannot 203 | distribute so as to satisfy simultaneously your obligations under this 204 | License and any other pertinent obligations, then as a consequence you 205 | may not distribute the Program at all. For example, if a patent 206 | license would not permit royalty-free redistribution of the Program by 207 | all those who receive copies directly or indirectly through you, then 208 | the only way you could satisfy both it and this License would be to 209 | refrain entirely from distribution of the Program. 210 | 211 | If any portion of this section is held invalid or unenforceable under 212 | any particular circumstance, the balance of the section is intended to 213 | apply and the section as a whole is intended to apply in other 214 | circumstances. 215 | 216 | It is not the purpose of this section to induce you to infringe any 217 | patents or other property right claims or to contest validity of any 218 | such claims; this section has the sole purpose of protecting the 219 | integrity of the free software distribution system, which is 220 | implemented by public license practices. Many people have made 221 | generous contributions to the wide range of software distributed 222 | through that system in reliance on consistent application of that 223 | system; it is up to the author/donor to decide if he or she is willing 224 | to distribute software through any other system and a licensee cannot 225 | impose that choice. 226 | 227 | This section is intended to make thoroughly clear what is believed to 228 | be a consequence of the rest of this License. 229 | 230 | 8. If the distribution and/or use of the Program is restricted in 231 | certain countries either by patents or by copyrighted interfaces, the 232 | original copyright holder who places the Program under this License 233 | may add an explicit geographical distribution limitation excluding 234 | those countries, so that distribution is permitted only in or among 235 | countries not thus excluded. In such case, this License incorporates 236 | the limitation as if written in the body of this License. 237 | 238 | 9. The Free Software Foundation may publish revised and/or new versions 239 | of the General Public License from time to time. Such new versions will 240 | be similar in spirit to the present version, but may differ in detail to 241 | address new problems or concerns. 242 | 243 | Each version is given a distinguishing version number. If the Program 244 | specifies a version number of this License which applies to it and "any 245 | later version", you have the option of following the terms and conditions 246 | either of that version or of any later version published by the Free 247 | Software Foundation. If the Program does not specify a version number of 248 | this License, you may choose any version ever published by the Free Software 249 | Foundation. 250 | 251 | 10. If you wish to incorporate parts of the Program into other free 252 | programs whose distribution conditions are different, write to the author 253 | to ask for permission. For software which is copyrighted by the Free 254 | Software Foundation, write to the Free Software Foundation; we sometimes 255 | make exceptions for this. Our decision will be guided by the two goals 256 | of preserving the free status of all derivatives of our free software and 257 | of promoting the sharing and reuse of software generally. 258 | 259 | NO WARRANTY 260 | 261 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 262 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 263 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 264 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 265 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 266 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 267 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 268 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 269 | REPAIR OR CORRECTION. 270 | 271 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 272 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 273 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 274 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 275 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 276 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 277 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 278 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 279 | POSSIBILITY OF SUCH DAMAGES. 280 | 281 | END OF TERMS AND CONDITIONS 282 | 283 | How to Apply These Terms to Your New Programs 284 | 285 | If you develop a new program, and you want it to be of the greatest 286 | possible use to the public, the best way to achieve this is to make it 287 | free software which everyone can redistribute and change under these terms. 288 | 289 | To do so, attach the following notices to the program. It is safest 290 | to attach them to the start of each source file to most effectively 291 | convey the exclusion of warranty; and each file should have at least 292 | the "copyright" line and a pointer to where the full notice is found. 293 | 294 | {description} 295 | Copyright (C) [year] [fullname] 296 | 297 | This program is free software; you can redistribute it and/or modify 298 | it under the terms of the GNU General Public License as published by 299 | the Free Software Foundation; either version 2 of the License, or 300 | (at your option) any later version. 301 | 302 | This program is distributed in the hope that it will be useful, 303 | but WITHOUT ANY WARRANTY; without even the implied warranty of 304 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 305 | GNU General Public License for more details. 306 | 307 | You should have received a copy of the GNU General Public License along 308 | with this program; if not, write to the Free Software Foundation, Inc., 309 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 310 | 311 | Also add information on how to contact you by electronic and paper mail. 312 | 313 | If the program is interactive, make it output a short notice like this 314 | when it starts in an interactive mode: 315 | 316 | Gnomovision version 69, Copyright (C) year name of author 317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 318 | This is free software, and you are welcome to redistribute it 319 | under certain conditions; type `show c' for details. 320 | 321 | The hypothetical commands `show w' and `show c' should show the appropriate 322 | parts of the General Public License. Of course, the commands you use may 323 | be called something other than `show w' and `show c'; they could even be 324 | mouse-clicks or menu items--whatever suits your program. 325 | 326 | You should also get your employer (if you work as a programmer) or your 327 | school, if any, to sign a "copyright disclaimer" for the program, if 328 | necessary. Here is a sample; alter the names: 329 | 330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 331 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 332 | 333 | {signature of Ty Coon}, 1 April 1989 334 | Ty Coon, President of Vice 335 | 336 | This General Public License does not permit incorporating your program into 337 | proprietary programs. If your program is a subroutine library, you may 338 | consider it more useful to permit linking proprietary applications with the 339 | library. If this is what you want to do, use the GNU Lesser General 340 | Public License instead of this License. 341 | -------------------------------------------------------------------------------- /app/licenses/isc.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) [year], [fullname] 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | -------------------------------------------------------------------------------- /app/licenses/lgpl-v2.1.txt: -------------------------------------------------------------------------------- 1 | 2 | GNU LESSER GENERAL PUBLIC LICENSE 3 | Version 2.1, February 1999 4 | 5 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 6 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 7 | Everyone is permitted to copy and distribute verbatim copies 8 | of this license document, but changing it is not allowed. 9 | 10 | (This is the first released version of the Lesser GPL. It also counts 11 | as the successor of the GNU Library Public License, version 2, hence 12 | the version number 2.1.) 13 | 14 | Preamble 15 | 16 | The licenses for most software are designed to take away your 17 | freedom to share and change it. By contrast, the GNU General Public 18 | Licenses are intended to guarantee your freedom to share and change 19 | free software--to make sure the software is free for all its users. 20 | 21 | This license, the Lesser General Public License, applies to some 22 | specially designated software packages--typically libraries--of the 23 | Free Software Foundation and other authors who decide to use it. You 24 | can use it too, but we suggest you first think carefully about whether 25 | this license or the ordinary General Public License is the better 26 | strategy to use in any particular case, based on the explanations below. 27 | 28 | When we speak of free software, we are referring to freedom of use, 29 | not price. Our General Public Licenses are designed to make sure that 30 | you have the freedom to distribute copies of free software (and charge 31 | for this service if you wish); that you receive source code or can get 32 | it if you want it; that you can change the software and use pieces of 33 | it in new free programs; and that you are informed that you can do 34 | these things. 35 | 36 | To protect your rights, we need to make restrictions that forbid 37 | distributors to deny you these rights or to ask you to surrender these 38 | rights. These restrictions translate to certain responsibilities for 39 | you if you distribute copies of the library or if you modify it. 40 | 41 | For example, if you distribute copies of the library, whether gratis 42 | or for a fee, you must give the recipients all the rights that we gave 43 | you. You must make sure that they, too, receive or can get the source 44 | code. If you link other code with the library, you must provide 45 | complete object files to the recipients, so that they can relink them 46 | with the library after making changes to the library and recompiling 47 | it. And you must show them these terms so they know their rights. 48 | 49 | We protect your rights with a two-step method: (1) we copyright the 50 | library, and (2) we offer you this license, which gives you legal 51 | permission to copy, distribute and/or modify the library. 52 | 53 | To protect each distributor, we want to make it very clear that 54 | there is no warranty for the free library. Also, if the library is 55 | modified by someone else and passed on, the recipients should know 56 | that what they have is not the original version, so that the original 57 | author's reputation will not be affected by problems that might be 58 | introduced by others. 59 | 60 | Finally, software patents pose a constant threat to the existence of 61 | any free program. We wish to make sure that a company cannot 62 | effectively restrict the users of a free program by obtaining a 63 | restrictive license from a patent holder. Therefore, we insist that 64 | any patent license obtained for a version of the library must be 65 | consistent with the full freedom of use specified in this license. 66 | 67 | Most GNU software, including some libraries, is covered by the 68 | ordinary GNU General Public License. This license, the GNU Lesser 69 | General Public License, applies to certain designated libraries, and 70 | is quite different from the ordinary General Public License. We use 71 | this license for certain libraries in order to permit linking those 72 | libraries into non-free programs. 73 | 74 | When a program is linked with a library, whether statically or using 75 | a shared library, the combination of the two is legally speaking a 76 | combined work, a derivative of the original library. The ordinary 77 | General Public License therefore permits such linking only if the 78 | entire combination fits its criteria of freedom. The Lesser General 79 | Public License permits more lax criteria for linking other code with 80 | the library. 81 | 82 | We call this license the "Lesser" General Public License because it 83 | does Less to protect the user's freedom than the ordinary General 84 | Public License. It also provides other free software developers Less 85 | of an advantage over competing non-free programs. These disadvantages 86 | are the reason we use the ordinary General Public License for many 87 | libraries. However, the Lesser license provides advantages in certain 88 | special circumstances. 89 | 90 | For example, on rare occasions, there may be a special need to 91 | encourage the widest possible use of a certain library, so that it becomes 92 | a de-facto standard. To achieve this, non-free programs must be 93 | allowed to use the library. A more frequent case is that a free 94 | library does the same job as widely used non-free libraries. In this 95 | case, there is little to gain by limiting the free library to free 96 | software only, so we use the Lesser General Public License. 97 | 98 | In other cases, permission to use a particular library in non-free 99 | programs enables a greater number of people to use a large body of 100 | free software. For example, permission to use the GNU C Library in 101 | non-free programs enables many more people to use the whole GNU 102 | operating system, as well as its variant, the GNU/Linux operating 103 | system. 104 | 105 | Although the Lesser General Public License is Less protective of the 106 | users' freedom, it does ensure that the user of a program that is 107 | linked with the Library has the freedom and the wherewithal to run 108 | that program using a modified version of the Library. 109 | 110 | The precise terms and conditions for copying, distribution and 111 | modification follow. Pay close attention to the difference between a 112 | "work based on the library" and a "work that uses the library". The 113 | former contains code derived from the library, whereas the latter must 114 | be combined with the library in order to run. 115 | 116 | GNU LESSER GENERAL PUBLIC LICENSE 117 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 118 | 119 | 0. This License Agreement applies to any software library or other 120 | program which contains a notice placed by the copyright holder or 121 | other authorized party saying it may be distributed under the terms of 122 | this Lesser General Public License (also called "this License"). 123 | Each licensee is addressed as "you". 124 | 125 | A "library" means a collection of software functions and/or data 126 | prepared so as to be conveniently linked with application programs 127 | (which use some of those functions and data) to form executables. 128 | 129 | The "Library", below, refers to any such software library or work 130 | which has been distributed under these terms. A "work based on the 131 | Library" means either the Library or any derivative work under 132 | copyright law: that is to say, a work containing the Library or a 133 | portion of it, either verbatim or with modifications and/or translated 134 | straightforwardly into another language. (Hereinafter, translation is 135 | included without limitation in the term "modification".) 136 | 137 | "Source code" for a work means the preferred form of the work for 138 | making modifications to it. For a library, complete source code means 139 | all the source code for all modules it contains, plus any associated 140 | interface definition files, plus the scripts used to control compilation 141 | and installation of the library. 142 | 143 | Activities other than copying, distribution and modification are not 144 | covered by this License; they are outside its scope. The act of 145 | running a program using the Library is not restricted, and output from 146 | such a program is covered only if its contents constitute a work based 147 | on the Library (independent of the use of the Library in a tool for 148 | writing it). Whether that is true depends on what the Library does 149 | and what the program that uses the Library does. 150 | 151 | 1. You may copy and distribute verbatim copies of the Library's 152 | complete source code as you receive it, in any medium, provided that 153 | you conspicuously and appropriately publish on each copy an 154 | appropriate copyright notice and disclaimer of warranty; keep intact 155 | all the notices that refer to this License and to the absence of any 156 | warranty; and distribute a copy of this License along with the 157 | Library. 158 | 159 | You may charge a fee for the physical act of transferring a copy, 160 | and you may at your option offer warranty protection in exchange for a 161 | fee. 162 | 163 | 2. You may modify your copy or copies of the Library or any portion 164 | of it, thus forming a work based on the Library, and copy and 165 | distribute such modifications or work under the terms of Section 1 166 | above, provided that you also meet all of these conditions: 167 | 168 | a) The modified work must itself be a software library. 169 | 170 | b) You must cause the files modified to carry prominent notices 171 | stating that you changed the files and the date of any change. 172 | 173 | c) You must cause the whole of the work to be licensed at no 174 | charge to all third parties under the terms of this License. 175 | 176 | d) If a facility in the modified Library refers to a function or a 177 | table of data to be supplied by an application program that uses 178 | the facility, other than as an argument passed when the facility 179 | is invoked, then you must make a good faith effort to ensure that, 180 | in the event an application does not supply such function or 181 | table, the facility still operates, and performs whatever part of 182 | its purpose remains meaningful. 183 | 184 | (For example, a function in a library to compute square roots has 185 | a purpose that is entirely well-defined independent of the 186 | application. Therefore, Subsection 2d requires that any 187 | application-supplied function or table used by this function must 188 | be optional: if the application does not supply it, the square 189 | root function must still compute square roots.) 190 | 191 | These requirements apply to the modified work as a whole. If 192 | identifiable sections of that work are not derived from the Library, 193 | and can be reasonably considered independent and separate works in 194 | themselves, then this License, and its terms, do not apply to those 195 | sections when you distribute them as separate works. But when you 196 | distribute the same sections as part of a whole which is a work based 197 | on the Library, the distribution of the whole must be on the terms of 198 | this License, whose permissions for other licensees extend to the 199 | entire whole, and thus to each and every part regardless of who wrote 200 | it. 201 | 202 | Thus, it is not the intent of this section to claim rights or contest 203 | your rights to work written entirely by you; rather, the intent is to 204 | exercise the right to control the distribution of derivative or 205 | collective works based on the Library. 206 | 207 | In addition, mere aggregation of another work not based on the Library 208 | with the Library (or with a work based on the Library) on a volume of 209 | a storage or distribution medium does not bring the other work under 210 | the scope of this License. 211 | 212 | 3. You may opt to apply the terms of the ordinary GNU General Public 213 | License instead of this License to a given copy of the Library. To do 214 | this, you must alter all the notices that refer to this License, so 215 | that they refer to the ordinary GNU General Public License, version 2, 216 | instead of to this License. (If a newer version than version 2 of the 217 | ordinary GNU General Public License has appeared, then you can specify 218 | that version instead if you wish.) Do not make any other change in 219 | these notices. 220 | 221 | Once this change is made in a given copy, it is irreversible for 222 | that copy, so the ordinary GNU General Public License applies to all 223 | subsequent copies and derivative works made from that copy. 224 | 225 | This option is useful when you wish to copy part of the code of 226 | the Library into a program that is not a library. 227 | 228 | 4. You may copy and distribute the Library (or a portion or 229 | derivative of it, under Section 2) in object code or executable form 230 | under the terms of Sections 1 and 2 above provided that you accompany 231 | it with the complete corresponding machine-readable source code, which 232 | must be distributed under the terms of Sections 1 and 2 above on a 233 | medium customarily used for software interchange. 234 | 235 | If distribution of object code is made by offering access to copy 236 | from a designated place, then offering equivalent access to copy the 237 | source code from the same place satisfies the requirement to 238 | distribute the source code, even though third parties are not 239 | compelled to copy the source along with the object code. 240 | 241 | 5. A program that contains no derivative of any portion of the 242 | Library, but is designed to work with the Library by being compiled or 243 | linked with it, is called a "work that uses the Library". Such a 244 | work, in isolation, is not a derivative work of the Library, and 245 | therefore falls outside the scope of this License. 246 | 247 | However, linking a "work that uses the Library" with the Library 248 | creates an executable that is a derivative of the Library (because it 249 | contains portions of the Library), rather than a "work that uses the 250 | library". The executable is therefore covered by this License. 251 | Section 6 states terms for distribution of such executables. 252 | 253 | When a "work that uses the Library" uses material from a header file 254 | that is part of the Library, the object code for the work may be a 255 | derivative work of the Library even though the source code is not. 256 | Whether this is true is especially significant if the work can be 257 | linked without the Library, or if the work is itself a library. The 258 | threshold for this to be true is not precisely defined by law. 259 | 260 | If such an object file uses only numerical parameters, data 261 | structure layouts and accessors, and small macros and small inline 262 | functions (ten lines or less in length), then the use of the object 263 | file is unrestricted, regardless of whether it is legally a derivative 264 | work. (Executables containing this object code plus portions of the 265 | Library will still fall under Section 6.) 266 | 267 | Otherwise, if the work is a derivative of the Library, you may 268 | distribute the object code for the work under the terms of Section 6. 269 | Any executables containing that work also fall under Section 6, 270 | whether or not they are linked directly with the Library itself. 271 | 272 | 6. As an exception to the Sections above, you may also combine or 273 | link a "work that uses the Library" with the Library to produce a 274 | work containing portions of the Library, and distribute that work 275 | under terms of your choice, provided that the terms permit 276 | modification of the work for the customer's own use and reverse 277 | engineering for debugging such modifications. 278 | 279 | You must give prominent notice with each copy of the work that the 280 | Library is used in it and that the Library and its use are covered by 281 | this License. You must supply a copy of this License. If the work 282 | during execution displays copyright notices, you must include the 283 | copyright notice for the Library among them, as well as a reference 284 | directing the user to the copy of this License. Also, you must do one 285 | of these things: 286 | 287 | a) Accompany the work with the complete corresponding 288 | machine-readable source code for the Library including whatever 289 | changes were used in the work (which must be distributed under 290 | Sections 1 and 2 above); and, if the work is an executable linked 291 | with the Library, with the complete machine-readable "work that 292 | uses the Library", as object code and/or source code, so that the 293 | user can modify the Library and then relink to produce a modified 294 | executable containing the modified Library. (It is understood 295 | that the user who changes the contents of definitions files in the 296 | Library will not necessarily be able to recompile the application 297 | to use the modified definitions.) 298 | 299 | b) Use a suitable shared library mechanism for linking with the 300 | Library. A suitable mechanism is one that (1) uses at run time a 301 | copy of the library already present on the user's computer system, 302 | rather than copying library functions into the executable, and (2) 303 | will operate properly with a modified version of the library, if 304 | the user installs one, as long as the modified version is 305 | interface-compatible with the version that the work was made with. 306 | 307 | c) Accompany the work with a written offer, valid for at 308 | least three years, to give the same user the materials 309 | specified in Subsection 6a, above, for a charge no more 310 | than the cost of performing this distribution. 311 | 312 | d) If distribution of the work is made by offering access to copy 313 | from a designated place, offer equivalent access to copy the above 314 | specified materials from the same place. 315 | 316 | e) Verify that the user has already received a copy of these 317 | materials or that you have already sent this user a copy. 318 | 319 | For an executable, the required form of the "work that uses the 320 | Library" must include any data and utility programs needed for 321 | reproducing the executable from it. However, as a special exception, 322 | the materials to be distributed need not include anything that is 323 | normally distributed (in either source or binary form) with the major 324 | components (compiler, kernel, and so on) of the operating system on 325 | which the executable runs, unless that component itself accompanies 326 | the executable. 327 | 328 | It may happen that this requirement contradicts the license 329 | restrictions of other proprietary libraries that do not normally 330 | accompany the operating system. Such a contradiction means you cannot 331 | use both them and the Library together in an executable that you 332 | distribute. 333 | 334 | 7. You may place library facilities that are a work based on the 335 | Library side-by-side in a single library together with other library 336 | facilities not covered by this License, and distribute such a combined 337 | library, provided that the separate distribution of the work based on 338 | the Library and of the other library facilities is otherwise 339 | permitted, and provided that you do these two things: 340 | 341 | a) Accompany the combined library with a copy of the same work 342 | based on the Library, uncombined with any other library 343 | facilities. This must be distributed under the terms of the 344 | Sections above. 345 | 346 | b) Give prominent notice with the combined library of the fact 347 | that part of it is a work based on the Library, and explaining 348 | where to find the accompanying uncombined form of the same work. 349 | 350 | 8. You may not copy, modify, sublicense, link with, or distribute 351 | the Library except as expressly provided under this License. Any 352 | attempt otherwise to copy, modify, sublicense, link with, or 353 | distribute the Library is void, and will automatically terminate your 354 | rights under this License. However, parties who have received copies, 355 | or rights, from you under this License will not have their licenses 356 | terminated so long as such parties remain in full compliance. 357 | 358 | 9. You are not required to accept this License, since you have not 359 | signed it. However, nothing else grants you permission to modify or 360 | distribute the Library or its derivative works. These actions are 361 | prohibited by law if you do not accept this License. Therefore, by 362 | modifying or distributing the Library (or any work based on the 363 | Library), you indicate your acceptance of this License to do so, and 364 | all its terms and conditions for copying, distributing or modifying 365 | the Library or works based on it. 366 | 367 | 10. Each time you redistribute the Library (or any work based on the 368 | Library), the recipient automatically receives a license from the 369 | original licensor to copy, distribute, link with or modify the Library 370 | subject to these terms and conditions. You may not impose any further 371 | restrictions on the recipients' exercise of the rights granted herein. 372 | You are not responsible for enforcing compliance by third parties with 373 | this License. 374 | 375 | 11. If, as a consequence of a court judgment or allegation of patent 376 | infringement or for any other reason (not limited to patent issues), 377 | conditions are imposed on you (whether by court order, agreement or 378 | otherwise) that contradict the conditions of this License, they do not 379 | excuse you from the conditions of this License. If you cannot 380 | distribute so as to satisfy simultaneously your obligations under this 381 | License and any other pertinent obligations, then as a consequence you 382 | may not distribute the Library at all. For example, if a patent 383 | license would not permit royalty-free redistribution of the Library by 384 | all those who receive copies directly or indirectly through you, then 385 | the only way you could satisfy both it and this License would be to 386 | refrain entirely from distribution of the Library. 387 | 388 | If any portion of this section is held invalid or unenforceable under any 389 | particular circumstance, the balance of the section is intended to apply, 390 | and the section as a whole is intended to apply in other circumstances. 391 | 392 | It is not the purpose of this section to induce you to infringe any 393 | patents or other property right claims or to contest validity of any 394 | such claims; this section has the sole purpose of protecting the 395 | integrity of the free software distribution system which is 396 | implemented by public license practices. Many people have made 397 | generous contributions to the wide range of software distributed 398 | through that system in reliance on consistent application of that 399 | system; it is up to the author/donor to decide if he or she is willing 400 | to distribute software through any other system and a licensee cannot 401 | impose that choice. 402 | 403 | This section is intended to make thoroughly clear what is believed to 404 | be a consequence of the rest of this License. 405 | 406 | 12. If the distribution and/or use of the Library is restricted in 407 | certain countries either by patents or by copyrighted interfaces, the 408 | original copyright holder who places the Library under this License may add 409 | an explicit geographical distribution limitation excluding those countries, 410 | so that distribution is permitted only in or among countries not thus 411 | excluded. In such case, this License incorporates the limitation as if 412 | written in the body of this License. 413 | 414 | 13. The Free Software Foundation may publish revised and/or new 415 | versions of the Lesser General Public License from time to time. 416 | Such new versions will be similar in spirit to the present version, 417 | but may differ in detail to address new problems or concerns. 418 | 419 | Each version is given a distinguishing version number. If the Library 420 | specifies a version number of this License which applies to it and 421 | "any later version", you have the option of following the terms and 422 | conditions either of that version or of any later version published by 423 | the Free Software Foundation. If the Library does not specify a 424 | license version number, you may choose any version ever published by 425 | the Free Software Foundation. 426 | 427 | 14. If you wish to incorporate parts of the Library into other free 428 | programs whose distribution conditions are incompatible with these, 429 | write to the author to ask for permission. For software which is 430 | copyrighted by the Free Software Foundation, write to the Free 431 | Software Foundation; we sometimes make exceptions for this. Our 432 | decision will be guided by the two goals of preserving the free status 433 | of all derivatives of our free software and of promoting the sharing 434 | and reuse of software generally. 435 | 436 | NO WARRANTY 437 | 438 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 439 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 440 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 441 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 442 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 443 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 444 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 445 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 446 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 447 | 448 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 449 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 450 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 451 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 452 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 453 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 454 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 455 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 456 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 457 | DAMAGES. 458 | 459 | END OF TERMS AND CONDITIONS 460 | 461 | How to Apply These Terms to Your New Libraries 462 | 463 | If you develop a new library, and you want it to be of the greatest 464 | possible use to the public, we recommend making it free software that 465 | everyone can redistribute and change. You can do so by permitting 466 | redistribution under these terms (or, alternatively, under the terms of the 467 | ordinary General Public License). 468 | 469 | To apply these terms, attach the following notices to the library. It is 470 | safest to attach them to the start of each source file to most effectively 471 | convey the exclusion of warranty; and each file should have at least the 472 | "copyright" line and a pointer to where the full notice is found. 473 | 474 | {description} 475 | Copyright (C) {year} {fullname} 476 | 477 | This library is free software; you can redistribute it and/or 478 | modify it under the terms of the GNU Lesser General Public 479 | License as published by the Free Software Foundation; either 480 | version 2.1 of the License, or (at your option) any later version. 481 | 482 | This library is distributed in the hope that it will be useful, 483 | but WITHOUT ANY WARRANTY; without even the implied warranty of 484 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 485 | Lesser General Public License for more details. 486 | 487 | You should have received a copy of the GNU Lesser General Public 488 | License along with this library; if not, write to the Free Software 489 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 490 | USA 491 | 492 | Also add information on how to contact you by electronic and paper mail. 493 | 494 | You should also get your employer (if you work as a programmer) or your 495 | school, if any, to sign a "copyright disclaimer" for the library, if 496 | necessary. Here is a sample; alter the names: 497 | 498 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 499 | library `Frob' (a library for tweaking knobs) written by James Random 500 | Hacker. 501 | 502 | {signature of Ty Coon}, 1 April 1990 503 | Ty Coon, President of Vice 504 | 505 | That's all there is to it! 506 | -------------------------------------------------------------------------------- /app/licenses/lgpl-v3.txt: -------------------------------------------------------------------------------- 1 | 2 | GNU LESSER GENERAL PUBLIC LICENSE 3 | Version 3, 29 June 2007 4 | 5 | Copyright (C) 2007 Free Software Foundation, Inc. 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | 10 | This version of the GNU Lesser General Public License incorporates 11 | the terms and conditions of version 3 of the GNU General Public 12 | License, supplemented by the additional permissions listed below. 13 | 14 | 0. Additional Definitions. 15 | 16 | As used herein, "this License" refers to version 3 of the GNU Lesser 17 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 18 | General Public License. 19 | 20 | "The Library" refers to a covered work governed by this License, 21 | other than an Application or a Combined Work as defined below. 22 | 23 | An "Application" is any work that makes use of an interface provided 24 | by the Library, but which is not otherwise based on the Library. 25 | Defining a subclass of a class defined by the Library is deemed a mode 26 | of using an interface provided by the Library. 27 | 28 | A "Combined Work" is a work produced by combining or linking an 29 | Application with the Library. The particular version of the Library 30 | with which the Combined Work was made is also called the "Linked 31 | Version". 32 | 33 | The "Minimal Corresponding Source" for a Combined Work means the 34 | Corresponding Source for the Combined Work, excluding any source code 35 | for portions of the Combined Work that, considered in isolation, are 36 | based on the Application, and not on the Linked Version. 37 | 38 | The "Corresponding Application Code" for a Combined Work means the 39 | object code and/or source code for the Application, including any data 40 | and utility programs needed for reproducing the Combined Work from the 41 | Application, but excluding the System Libraries of the Combined Work. 42 | 43 | 1. Exception to Section 3 of the GNU GPL. 44 | 45 | You may convey a covered work under sections 3 and 4 of this License 46 | without being bound by section 3 of the GNU GPL. 47 | 48 | 2. Conveying Modified Versions. 49 | 50 | If you modify a copy of the Library, and, in your modifications, a 51 | facility refers to a function or data to be supplied by an Application 52 | that uses the facility (other than as an argument passed when the 53 | facility is invoked), then you may convey a copy of the modified 54 | version: 55 | 56 | a) under this License, provided that you make a good faith effort to 57 | ensure that, in the event an Application does not supply the 58 | function or data, the facility still operates, and performs 59 | whatever part of its purpose remains meaningful, or 60 | 61 | b) under the GNU GPL, with none of the additional permissions of 62 | this License applicable to that copy. 63 | 64 | 3. Object Code Incorporating Material from Library Header Files. 65 | 66 | The object code form of an Application may incorporate material from 67 | a header file that is part of the Library. You may convey such object 68 | code under terms of your choice, provided that, if the incorporated 69 | material is not limited to numerical parameters, data structure 70 | layouts and accessors, or small macros, inline functions and templates 71 | (ten or fewer lines in length), you do both of the following: 72 | 73 | a) Give prominent notice with each copy of the object code that the 74 | Library is used in it and that the Library and its use are 75 | covered by this License. 76 | 77 | b) Accompany the object code with a copy of the GNU GPL and this license 78 | document. 79 | 80 | 4. Combined Works. 81 | 82 | You may convey a Combined Work under terms of your choice that, 83 | taken together, effectively do not restrict modification of the 84 | portions of the Library contained in the Combined Work and reverse 85 | engineering for debugging such modifications, if you also do each of 86 | the following: 87 | 88 | a) Give prominent notice with each copy of the Combined Work that 89 | the Library is used in it and that the Library and its use are 90 | covered by this License. 91 | 92 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 93 | document. 94 | 95 | c) For a Combined Work that displays copyright notices during 96 | execution, include the copyright notice for the Library among 97 | these notices, as well as a reference directing the user to the 98 | copies of the GNU GPL and this license document. 99 | 100 | d) Do one of the following: 101 | 102 | 0) Convey the Minimal Corresponding Source under the terms of this 103 | License, and the Corresponding Application Code in a form 104 | suitable for, and under terms that permit, the user to 105 | recombine or relink the Application with a modified version of 106 | the Linked Version to produce a modified Combined Work, in the 107 | manner specified by section 6 of the GNU GPL for conveying 108 | Corresponding Source. 109 | 110 | 1) Use a suitable shared library mechanism for linking with the 111 | Library. A suitable mechanism is one that (a) uses at run time 112 | a copy of the Library already present on the user's computer 113 | system, and (b) will operate properly with a modified version 114 | of the Library that is interface-compatible with the Linked 115 | Version. 116 | 117 | e) Provide Installation Information, but only if you would otherwise 118 | be required to provide such information under section 6 of the 119 | GNU GPL, and only to the extent that such information is 120 | necessary to install and execute a modified version of the 121 | Combined Work produced by recombining or relinking the 122 | Application with a modified version of the Linked Version. (If 123 | you use option 4d0, the Installation Information must accompany 124 | the Minimal Corresponding Source and Corresponding Application 125 | Code. If you use option 4d1, you must provide the Installation 126 | Information in the manner specified by section 6 of the GNU GPL 127 | for conveying Corresponding Source.) 128 | 129 | 5. Combined Libraries. 130 | 131 | You may place library facilities that are a work based on the 132 | Library side by side in a single library together with other library 133 | facilities that are not Applications and are not covered by this 134 | License, and convey such a combined library under terms of your 135 | choice, if you do both of the following: 136 | 137 | a) Accompany the combined library with a copy of the same work based 138 | on the Library, uncombined with any other library facilities, 139 | conveyed under the terms of this License. 140 | 141 | b) Give prominent notice with the combined library that part of it 142 | is a work based on the Library, and explaining where to find the 143 | accompanying uncombined form of the same work. 144 | 145 | 6. Revised Versions of the GNU Lesser General Public License. 146 | 147 | The Free Software Foundation may publish revised and/or new versions 148 | of the GNU Lesser General Public License from time to time. Such new 149 | versions will be similar in spirit to the present version, but may 150 | differ in detail to address new problems or concerns. 151 | 152 | Each version is given a distinguishing version number. If the 153 | Library as you received it specifies that a certain numbered version 154 | of the GNU Lesser General Public License "or any later version" 155 | applies to it, you have the option of following the terms and 156 | conditions either of that published version or of any later version 157 | published by the Free Software Foundation. If the Library as you 158 | received it does not specify a version number of the GNU Lesser 159 | General Public License, you may choose any version of the GNU Lesser 160 | General Public License ever published by the Free Software Foundation. 161 | 162 | If the Library as you received it specifies that a proxy can decide 163 | whether future versions of the GNU Lesser General Public License shall 164 | apply, that proxy's public statement of acceptance of any version is 165 | permanent authorization for you to choose that version for the 166 | Library. 167 | -------------------------------------------------------------------------------- /app/licenses/mit.txt: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) [year] [fullname] 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /app/licenses/mozilla.txt: -------------------------------------------------------------------------------- 1 | 2 | Mozilla Public License, version 2.0 3 | 4 | 1. Definitions 5 | 6 | 1.1. "Contributor" 7 | 8 | means each individual or legal entity that creates, contributes to the 9 | creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | 13 | means the combination of the Contributions of others (if any) used by a 14 | Contributor and that particular Contributor's Contribution. 15 | 16 | 1.3. "Contribution" 17 | 18 | means Covered Software of a particular Contributor. 19 | 20 | 1.4. "Covered Software" 21 | 22 | means Source Code Form to which the initial Contributor has attached the 23 | notice in Exhibit A, the Executable Form of such Source Code Form, and 24 | Modifications of such Source Code Form, in each case including portions 25 | thereof. 26 | 27 | 1.5. "Incompatible With Secondary Licenses" 28 | means 29 | 30 | a. that the initial Contributor has attached the notice described in 31 | Exhibit B to the Covered Software; or 32 | 33 | b. that the Covered Software was made available under the terms of 34 | version 1.1 or earlier of the License, but not also under the terms of 35 | a Secondary License. 36 | 37 | 1.6. "Executable Form" 38 | 39 | means any form of the work other than Source Code Form. 40 | 41 | 1.7. "Larger Work" 42 | 43 | means a work that combines Covered Software with other material, in a 44 | separate file or files, that is not Covered Software. 45 | 46 | 1.8. "License" 47 | 48 | means this document. 49 | 50 | 1.9. "Licensable" 51 | 52 | means having the right to grant, to the maximum extent possible, whether 53 | at the time of the initial grant or subsequently, any and all of the 54 | rights conveyed by this License. 55 | 56 | 1.10. "Modifications" 57 | 58 | means any of the following: 59 | 60 | a. any file in Source Code Form that results from an addition to, 61 | deletion from, or modification of the contents of Covered Software; or 62 | 63 | b. any new file in Source Code Form that contains any Covered Software. 64 | 65 | 1.11. "Patent Claims" of a Contributor 66 | 67 | means any patent claim(s), including without limitation, method, 68 | process, and apparatus claims, in any patent Licensable by such 69 | Contributor that would be infringed, but for the grant of the License, 70 | by the making, using, selling, offering for sale, having made, import, 71 | or transfer of either its Contributions or its Contributor Version. 72 | 73 | 1.12. "Secondary License" 74 | 75 | means either the GNU General Public License, Version 2.0, the GNU Lesser 76 | General Public License, Version 2.1, the GNU Affero General Public 77 | License, Version 3.0, or any later versions of those licenses. 78 | 79 | 1.13. "Source Code Form" 80 | 81 | means the form of the work preferred for making modifications. 82 | 83 | 1.14. "You" (or "Your") 84 | 85 | means an individual or a legal entity exercising rights under this 86 | License. For legal entities, "You" includes any entity that controls, is 87 | controlled by, or is under common control with You. For purposes of this 88 | definition, "control" means (a) the power, direct or indirect, to cause 89 | the direction or management of such entity, whether by contract or 90 | otherwise, or (b) ownership of more than fifty percent (50%) of the 91 | outstanding shares or beneficial ownership of such entity. 92 | 93 | 94 | 2. License Grants and Conditions 95 | 96 | 2.1. Grants 97 | 98 | Each Contributor hereby grants You a world-wide, royalty-free, 99 | non-exclusive license: 100 | 101 | a. under intellectual property rights (other than patent or trademark) 102 | Licensable by such Contributor to use, reproduce, make available, 103 | modify, display, perform, distribute, and otherwise exploit its 104 | Contributions, either on an unmodified basis, with Modifications, or 105 | as part of a Larger Work; and 106 | 107 | b. under Patent Claims of such Contributor to make, use, sell, offer for 108 | sale, have made, import, and otherwise transfer either its 109 | Contributions or its Contributor Version. 110 | 111 | 2.2. Effective Date 112 | 113 | The licenses granted in Section 2.1 with respect to any Contribution 114 | become effective for each Contribution on the date the Contributor first 115 | distributes such Contribution. 116 | 117 | 2.3. Limitations on Grant Scope 118 | 119 | The licenses granted in this Section 2 are the only rights granted under 120 | this License. No additional rights or licenses will be implied from the 121 | distribution or licensing of Covered Software under this License. 122 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 123 | Contributor: 124 | 125 | a. for any code that a Contributor has removed from Covered Software; or 126 | 127 | b. for infringements caused by: (i) Your and any other third party's 128 | modifications of Covered Software, or (ii) the combination of its 129 | Contributions with other software (except as part of its Contributor 130 | Version); or 131 | 132 | c. under Patent Claims infringed by Covered Software in the absence of 133 | its Contributions. 134 | 135 | This License does not grant any rights in the trademarks, service marks, 136 | or logos of any Contributor (except as may be necessary to comply with 137 | the notice requirements in Section 3.4). 138 | 139 | 2.4. Subsequent Licenses 140 | 141 | No Contributor makes additional grants as a result of Your choice to 142 | distribute the Covered Software under a subsequent version of this 143 | License (see Section 10.2) or under the terms of a Secondary License (if 144 | permitted under the terms of Section 3.3). 145 | 146 | 2.5. Representation 147 | 148 | Each Contributor represents that the Contributor believes its 149 | Contributions are its original creation(s) or it has sufficient rights to 150 | grant the rights to its Contributions conveyed by this License. 151 | 152 | 2.6. Fair Use 153 | 154 | This License is not intended to limit any rights You have under 155 | applicable copyright doctrines of fair use, fair dealing, or other 156 | equivalents. 157 | 158 | 2.7. Conditions 159 | 160 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in 161 | Section 2.1. 162 | 163 | 164 | 3. Responsibilities 165 | 166 | 3.1. Distribution of Source Form 167 | 168 | All distribution of Covered Software in Source Code Form, including any 169 | Modifications that You create or to which You contribute, must be under 170 | the terms of this License. You must inform recipients that the Source 171 | Code Form of the Covered Software is governed by the terms of this 172 | License, and how they can obtain a copy of this License. You may not 173 | attempt to alter or restrict the recipients' rights in the Source Code 174 | Form. 175 | 176 | 3.2. Distribution of Executable Form 177 | 178 | If You distribute Covered Software in Executable Form then: 179 | 180 | a. such Covered Software must also be made available in Source Code Form, 181 | as described in Section 3.1, and You must inform recipients of the 182 | Executable Form how they can obtain a copy of such Source Code Form by 183 | reasonable means in a timely manner, at a charge no more than the cost 184 | of distribution to the recipient; and 185 | 186 | b. You may distribute such Executable Form under the terms of this 187 | License, or sublicense it under different terms, provided that the 188 | license for the Executable Form does not attempt to limit or alter the 189 | recipients' rights in the Source Code Form under this License. 190 | 191 | 3.3. Distribution of a Larger Work 192 | 193 | You may create and distribute a Larger Work under terms of Your choice, 194 | provided that You also comply with the requirements of this License for 195 | the Covered Software. If the Larger Work is a combination of Covered 196 | Software with a work governed by one or more Secondary Licenses, and the 197 | Covered Software is not Incompatible With Secondary Licenses, this 198 | License permits You to additionally distribute such Covered Software 199 | under the terms of such Secondary License(s), so that the recipient of 200 | the Larger Work may, at their option, further distribute the Covered 201 | Software under the terms of either this License or such Secondary 202 | License(s). 203 | 204 | 3.4. Notices 205 | 206 | You may not remove or alter the substance of any license notices 207 | (including copyright notices, patent notices, disclaimers of warranty, or 208 | limitations of liability) contained within the Source Code Form of the 209 | Covered Software, except that You may alter any license notices to the 210 | extent required to remedy known factual inaccuracies. 211 | 212 | 3.5. Application of Additional Terms 213 | 214 | You may choose to offer, and to charge a fee for, warranty, support, 215 | indemnity or liability obligations to one or more recipients of Covered 216 | Software. However, You may do so only on Your own behalf, and not on 217 | behalf of any Contributor. You must make it absolutely clear that any 218 | such warranty, support, indemnity, or liability obligation is offered by 219 | You alone, and You hereby agree to indemnify every Contributor for any 220 | liability incurred by such Contributor as a result of warranty, support, 221 | indemnity or liability terms You offer. You may include additional 222 | disclaimers of warranty and limitations of liability specific to any 223 | jurisdiction. 224 | 225 | 4. Inability to Comply Due to Statute or Regulation 226 | 227 | If it is impossible for You to comply with any of the terms of this License 228 | with respect to some or all of the Covered Software due to statute, 229 | judicial order, or regulation then You must: (a) comply with the terms of 230 | this License to the maximum extent possible; and (b) describe the 231 | limitations and the code they affect. Such description must be placed in a 232 | text file included with all distributions of the Covered Software under 233 | this License. Except to the extent prohibited by statute or regulation, 234 | such description must be sufficiently detailed for a recipient of ordinary 235 | skill to be able to understand it. 236 | 237 | 5. Termination 238 | 239 | 5.1. The rights granted under this License will terminate automatically if You 240 | fail to comply with any of its terms. However, if You become compliant, 241 | then the rights granted under this License from a particular Contributor 242 | are reinstated (a) provisionally, unless and until such Contributor 243 | explicitly and finally terminates Your grants, and (b) on an ongoing 244 | basis, if such Contributor fails to notify You of the non-compliance by 245 | some reasonable means prior to 60 days after You have come back into 246 | compliance. Moreover, Your grants from a particular Contributor are 247 | reinstated on an ongoing basis if such Contributor notifies You of the 248 | non-compliance by some reasonable means, this is the first time You have 249 | received notice of non-compliance with this License from such 250 | Contributor, and You become compliant prior to 30 days after Your receipt 251 | of the notice. 252 | 253 | 5.2. If You initiate litigation against any entity by asserting a patent 254 | infringement claim (excluding declaratory judgment actions, 255 | counter-claims, and cross-claims) alleging that a Contributor Version 256 | directly or indirectly infringes any patent, then the rights granted to 257 | You by any and all Contributors for the Covered Software under Section 258 | 2.1 of this License shall terminate. 259 | 260 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user 261 | license agreements (excluding distributors and resellers) which have been 262 | validly granted by You or Your distributors under this License prior to 263 | termination shall survive termination. 264 | 265 | 6. Disclaimer of Warranty 266 | 267 | Covered Software is provided under this License on an "as is" basis, 268 | without warranty of any kind, either expressed, implied, or statutory, 269 | including, without limitation, warranties that the Covered Software is free 270 | of defects, merchantable, fit for a particular purpose or non-infringing. 271 | The entire risk as to the quality and performance of the Covered Software 272 | is with You. Should any Covered Software prove defective in any respect, 273 | You (not any Contributor) assume the cost of any necessary servicing, 274 | repair, or correction. This disclaimer of warranty constitutes an essential 275 | part of this License. No use of any Covered Software is authorized under 276 | this License except under this disclaimer. 277 | 278 | 7. Limitation of Liability 279 | 280 | Under no circumstances and under no legal theory, whether tort (including 281 | negligence), contract, or otherwise, shall any Contributor, or anyone who 282 | distributes Covered Software as permitted above, be liable to You for any 283 | direct, indirect, special, incidental, or consequential damages of any 284 | character including, without limitation, damages for lost profits, loss of 285 | goodwill, work stoppage, computer failure or malfunction, or any and all 286 | other commercial damages or losses, even if such party shall have been 287 | informed of the possibility of such damages. This limitation of liability 288 | shall not apply to liability for death or personal injury resulting from 289 | such party's negligence to the extent applicable law prohibits such 290 | limitation. Some jurisdictions do not allow the exclusion or limitation of 291 | incidental or consequential damages, so this exclusion and limitation may 292 | not apply to You. 293 | 294 | 8. Litigation 295 | 296 | Any litigation relating to this License may be brought only in the courts 297 | of a jurisdiction where the defendant maintains its principal place of 298 | business and such litigation shall be governed by laws of that 299 | jurisdiction, without reference to its conflict-of-law provisions. Nothing 300 | in this Section shall prevent a party's ability to bring cross-claims or 301 | counter-claims. 302 | 303 | 9. Miscellaneous 304 | 305 | This License represents the complete agreement concerning the subject 306 | matter hereof. If any provision of this License is held to be 307 | unenforceable, such provision shall be reformed only to the extent 308 | necessary to make it enforceable. Any law or regulation which provides that 309 | the language of a contract shall be construed against the drafter shall not 310 | be used to construe this License against a Contributor. 311 | 312 | 313 | 10. Versions of the License 314 | 315 | 10.1. New Versions 316 | 317 | Mozilla Foundation is the license steward. Except as provided in Section 318 | 10.3, no one other than the license steward has the right to modify or 319 | publish new versions of this License. Each version will be given a 320 | distinguishing version number. 321 | 322 | 10.2. Effect of New Versions 323 | 324 | You may distribute the Covered Software under the terms of the version 325 | of the License under which You originally received the Covered Software, 326 | or under the terms of any subsequent version published by the license 327 | steward. 328 | 329 | 10.3. Modified Versions 330 | 331 | If you create software not governed by this License, and you want to 332 | create a new license for such software, you may create and use a 333 | modified version of this License if you rename the license and remove 334 | any references to the name of the license steward (except to note that 335 | such modified license differs from this License). 336 | 337 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 338 | Licenses If You choose to distribute Source Code Form that is 339 | Incompatible With Secondary Licenses under the terms of this version of 340 | the License, the notice described in Exhibit B of this License must be 341 | attached. 342 | 343 | Exhibit A - Source Code Form License Notice 344 | 345 | This Source Code Form is subject to the 346 | terms of the Mozilla Public License, v. 347 | 2.0. If a copy of the MPL was not 348 | distributed with this file, You can 349 | obtain one at 350 | http://mozilla.org/MPL/2.0/. 351 | 352 | If it is not possible or desirable to put the notice in a particular file, 353 | then You may include the notice in a location (such as a LICENSE file in a 354 | relevant directory) where a recipient would be likely to look for such a 355 | notice. 356 | 357 | You may add additional accurate notices of copyright ownership. 358 | 359 | Exhibit B - "Incompatible With Secondary Licenses" Notice 360 | 361 | This Source Code Form is "Incompatible 362 | With Secondary Licenses", as defined by 363 | the Mozilla Public License, v. 2.0. 364 | -------------------------------------------------------------------------------- /app/licenses/no-license.html: -------------------------------------------------------------------------------- 1 | 2 | Copyright [year] [fullname] 3 | -------------------------------------------------------------------------------- /app/licenses/unlicense.txt: -------------------------------------------------------------------------------- 1 | 2 | This is free and unencumbered software released into the public domain. 3 | 4 | Anyone is free to copy, modify, publish, use, compile, sell, or 5 | distribute this software, either in source code form or as a compiled 6 | binary, for any purpose, commercial or non-commercial, and by any 7 | means. 8 | 9 | In jurisdictions that recognize copyright laws, the author or authors 10 | of this software dedicate any and all copyright interest in the 11 | software to the public domain. We make this dedication for the benefit 12 | of the public at large and to the detriment of our heirs and 13 | successors. We intend this dedication to be an overt act of 14 | relinquishment in perpetuity of all present and future rights to this 15 | software under copyright law. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 21 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | 25 | For more information, please refer to 26 | -------------------------------------------------------------------------------- /app/licenses/wtfpl.txt: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) [year] [fullname] 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | -------------------------------------------------------------------------------- /app/prompts.js: -------------------------------------------------------------------------------- 1 | var prompts = [ 2 | { 3 | type: "confirm", 4 | name: "advancedMode", 5 | message: "Do you want to choose advanced mode? (Choose [N]o if you are unsure).", 6 | default: false 7 | }, 8 | { 9 | name: 'extensionName', 10 | message: 'What\'s the name of the extension?' 11 | }, 12 | { 13 | name: 'extensionDescription', 14 | message: 'Describe your extension:' 15 | }, 16 | { 17 | name: 'authorName', 18 | message: 'What\'s your name?' 19 | }, 20 | { 21 | // see https://github.com/yeoman/generator/issues/278 22 | when: function ( props ) { 23 | return props.advancedMode; 24 | }, 25 | name: 'extensionNamespace', 26 | message: 'Advanced Mode: What\'s the namespace for your extension? (Leave it blank if you are unsure).' 27 | }, 28 | { 29 | when: function ( props ) { 30 | return props.advancedMode; 31 | }, 32 | type: 'list', 33 | name: 'extensionType', 34 | message: 'Advanced Mode: What\'s the type of your extension? This will define the icon used (Default: extension).', 35 | default: "extension", 36 | choices: [ 37 | "extension", 38 | "bar-chart-vertical", 39 | "line-chart", 40 | "pie-chart", 41 | "gauge-chart", 42 | "scatter-chart", 43 | "text-image", 44 | "table", 45 | "list", 46 | "filterpane", 47 | "treemap" 48 | ] 49 | }, 50 | { 51 | when: function ( props ) { 52 | return props.advancedMode; 53 | }, 54 | type: 'confirm', 55 | name: 'lessSupport', 56 | message: 'Advanced Mode: Would you like to write your styles in Less (instead of pure CSS)?', 57 | default: false 58 | }, 59 | { 60 | when: function ( props ) { 61 | return props.advancedMode; 62 | }, 63 | type: 'list', 64 | name: 'licence', 65 | message: 'Advanced Mode: Choose the desired license.', 66 | default: "mit", 67 | choices: [ 68 | "agpl", 69 | "apache", 70 | "artistic", 71 | "bsd-3-clause", 72 | "bsd", 73 | "cc0", 74 | "eclipse", 75 | "gpl-v2", 76 | "gpl-v3", 77 | "isc", 78 | "lgpl-v2.1", 79 | "lgpl-v3", 80 | "mit", 81 | "mozilla", 82 | "no-license", 83 | "unlicense", 84 | "wtfpl" 85 | ] 86 | } 87 | ]; 88 | 89 | module.exports = prompts; -------------------------------------------------------------------------------- /app/templates/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi": false, 3 | "bitwise": true, 4 | "boss": false, 5 | "browser": true, 6 | "camelcase": false, 7 | "couch": false, 8 | "curly": true, 9 | "debug": false, 10 | "devel": false, 11 | "dojo": false, 12 | "eqeqeq": true, 13 | "eqnull": true, 14 | "es5": false, 15 | "esnext": false, 16 | "evil": false, 17 | "expr": false, 18 | "forin": false, 19 | "funcscope": false, 20 | "globalstrict": false, 21 | "immed": false, 22 | "iterator": false, 23 | "jquery": false, 24 | "lastsemic": false, 25 | "latedef": true, 26 | "laxbreak": false, 27 | "laxcomma": false, 28 | "loopfunc": false, 29 | "mootools": false, 30 | "multistr": false, 31 | "newcap": false, 32 | "noarg": true, 33 | "node": false, 34 | "noempty": true, 35 | "nonew": true, 36 | "nomen": false, 37 | "nonstandard": false, 38 | "onecase": false, 39 | "onevar": false, 40 | "passfail": false, 41 | "plusplus": false, 42 | "proto": false, 43 | "prototypejs": false, 44 | "regexp": false, 45 | "regexdash": false, 46 | "rhino": false, 47 | "scripturl": false, 48 | "shadow": false, 49 | "smarttabs": false, 50 | "sub": false, 51 | "supernew": false, 52 | "strict": false, 53 | "trailing": true, 54 | "undef": true, 55 | "unused": true, 56 | "validthis": false, 57 | "white": false, 58 | "withstmt": false, 59 | "worker": false, 60 | "wsh": false, 61 | "yui": false, 62 | "globals": { 63 | "require": true, 64 | "define": true, 65 | "before": true, 66 | "beforeEach": true, 67 | "after": true, 68 | "afterEach": true, 69 | "chai": true, 70 | "sinon": true, 71 | "describe": true, 72 | "context": true, 73 | "it": true, 74 | "flush": true 75 | } 76 | } -------------------------------------------------------------------------------- /app/templates/_root.less: -------------------------------------------------------------------------------- 1 | // ---------------------------------------------------------------------------- 2 | // This is the main Less-file for all styles you want to create 3 | // 4 | // If you want to include files, use the @import command of Less 5 | // 6 | // All results will be generated to src/lib/style.css if you run 7 | // either the "dev" or "release" Grunt task 8 | // ---------------------------------------------------------------------------- 9 | 10 | .qv-object-<%= prompts.extensionNamespace.toLowerCase()%><%= prompts.extensionNameSafe.toLowerCase()%> { 11 | 12 | @import "variables.less"; 13 | @import "styles.less"; 14 | 15 | } 16 | 17 | -------------------------------------------------------------------------------- /app/templates/changelog.yml: -------------------------------------------------------------------------------- 1 | v0.0.1: 2 | date: "<%= prompts.creationDate%>" 3 | new: 4 | - Initial Commit 5 | enhancements: 6 | -------------------------------------------------------------------------------- /app/templates/extension-initialproperties.js: -------------------------------------------------------------------------------- 1 | /*global define*/ 2 | define( [], function () { 3 | 'use strict'; 4 | return { 5 | qHyperCubeDef: { 6 | qDimensions: [], 7 | qMeasures: [], 8 | qInitialDataFetch: [ 9 | { 10 | qWidth: 2, 11 | qHeight: 50 12 | } 13 | ] 14 | } 15 | }; 16 | } ); 17 | -------------------------------------------------------------------------------- /app/templates/extension-properties.js: -------------------------------------------------------------------------------- 1 | define( [], function () { 2 | 'use strict'; 3 | 4 | // **************************************************************************************** 5 | // Dimensions & Measures 6 | // **************************************************************************************** 7 | var dimensions = { 8 | uses: "dimensions", 9 | min: 0, 10 | max: 1 11 | }; 12 | 13 | var measures = { 14 | uses: "measures", 15 | min: 0, 16 | max: 1 17 | }; 18 | 19 | var sorting = { 20 | uses: "sorting" 21 | }; 22 | 23 | // **************************************************************************************** 24 | // Other Settings 25 | // **************************************************************************************** 26 | 27 | var testSetting = { 28 | ref: "props.test", 29 | label: "Test Setting", 30 | type: "string", 31 | expression: "optional", 32 | show: true 33 | }; 34 | 35 | // **************************************************************************************** 36 | // Property Panel Definition 37 | // **************************************************************************************** 38 | 39 | // Appearance Panel 40 | var appearancePanel = { 41 | uses: "settings", 42 | items: { 43 | settings: { 44 | type: "items", 45 | label: "Settings", 46 | items: { 47 | testSetting: testSetting 48 | } 49 | } 50 | } 51 | }; 52 | 53 | // Return values 54 | return { 55 | type: "items", 56 | component: "accordion", 57 | items: { 58 | dimensions: dimensions, 59 | measures: measures, 60 | sorting: sorting, 61 | //addons: addons, 62 | appearance: appearancePanel 63 | 64 | } 65 | }; 66 | 67 | } ); 68 | -------------------------------------------------------------------------------- /app/templates/extension.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'jquery', 3 | /*'underscore',*/ 4 | './properties', 5 | './initialproperties', 6 | './lib/js/extensionUtils', 7 | 'text!./lib/css/style.css' 8 | ], 9 | function ($, /*_,*/ props, initProps, extensionUtils, cssContent) { 10 | 'use strict'; 11 | 12 | extensionUtils.addStyleToHeader(cssContent); 13 | 14 | console.log('Initializing - remove me'); 15 | 16 | return { 17 | 18 | definition: props, 19 | initialProperties: initProps, 20 | snapshot: { canTakeSnapshot: true }, 21 | resize : function( /*$element, layout*/ ) { 22 | //do nothing 23 | }, 24 | //clearSelectedValues : function($element) { 25 | // 26 | //}, 27 | // Angular Support (uncomment to use) 28 | //template: '', 29 | // Angular Controller 30 | //controller: ['$scope', function ($scope) { 31 | // 32 | //}], 33 | paint: function ( $element /*, layout*/ ) { 34 | 35 | /* 36 | console.groupCollapsed('Basic Objects'); 37 | console.info('$element:'); 38 | console.log($element); 39 | console.info('layout:'); 40 | console.log(layout); 41 | console.groupEnd(); 42 | */ 43 | 44 | $element.empty(); 45 | var $helloWorld = $(document.createElement('div')); 46 | $helloWorld.addClass('hello-world'); 47 | $helloWorld.html('Hello World from the extension "<%= prompts.extensionName%>"'); 48 | $element.append($helloWorld); 49 | 50 | } 51 | }; 52 | 53 | }); 54 | -------------------------------------------------------------------------------- /app/templates/extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stefanwalther/generator-qsExtension/cf164a0ceb11ddb98cf536f44064f9c838aabe2a/app/templates/extension.png -------------------------------------------------------------------------------- /app/templates/extension.qext: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "<%= prompts.extensionName %>", 3 | "description" : "<%= prompts.extensionDescription %>", 4 | "icon" : "<%= prompts.extensionType%>", 5 | "type" : "visualization", 6 | "version": "@@version", 7 | "preview" : "<%= prompts.extensionNameSafe.toLowerCase() %>.png", 8 | "author": "<%= prompts.authorName %>" 9 | } -------------------------------------------------------------------------------- /app/templates/gitattributes.txt: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # ========================= 5 | # Custom for Visual Studio 6 | # ========================= 7 | *.cs diff=csharp 8 | *.sln merge=union 9 | *.csproj merge=union 10 | *.vbproj merge=union 11 | *.fsproj merge=union 12 | *.dbproj merge=union 13 | 14 | # ========================= 15 | # Standard to msysgit 16 | # ========================= 17 | *.doc diff=astextplain 18 | *.DOC diff=astextplain 19 | *.docx diff=astextplain 20 | *.DOCX diff=astextplain 21 | *.dot diff=astextplain 22 | *.DOT diff=astextplain 23 | *.pdf diff=astextplain 24 | *.PDF diff=astextplain 25 | *.rtf diff=astextplain 26 | *.RTF diff=astextplain 27 | -------------------------------------------------------------------------------- /app/templates/gitignore.txt: -------------------------------------------------------------------------------- 1 | # ========================= 2 | # Project specific 3 | # ========================= 4 | [Rr]esources/ 5 | [Tt]ests/ 6 | web.*.config 7 | /dist_dev/ 8 | /**/node_modules/ 9 | /**/bower_components/ 10 | /build/*_dev.zip 11 | 12 | 13 | # ========================= 14 | # Visual Studio 15 | # ========================= 16 | #https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 17 | 18 | # User-specific files 19 | *.suo 20 | *.user 21 | *.sln.docstates 22 | 23 | # Build results 24 | 25 | [Dd]ebug/ 26 | [Rr]elease/ 27 | x64/ 28 | [Bb]in/ 29 | [Oo]bj/ 30 | 31 | # MSTest test Results 32 | [Tt]est[Rr]esult*/ 33 | [Bb]uild[Ll]og.* 34 | 35 | # Visual Studio profiler 36 | *.psess 37 | *.vsp 38 | *.vspx 39 | 40 | *_i.c 41 | *_p.c 42 | *.ilk 43 | *.meta 44 | *.obj 45 | *.pch 46 | *.pdb 47 | *.pgc 48 | *.pgd 49 | *.rsp 50 | *.sbr 51 | *.tlb 52 | *.tli 53 | *.tlh 54 | *.tmp 55 | *.tmp_proj 56 | *.log 57 | *.vspscc 58 | *.vssscc 59 | .builds 60 | *.pidb 61 | *.scc 62 | 63 | 64 | # Click-Once directory 65 | publish/ 66 | 67 | # Publish Web Output 68 | *.Publish.xml 69 | *.pubxml 70 | 71 | # Others 72 | sql/ 73 | *.Cache 74 | ClientBin/ 75 | [Ss]tyle[Cc]op.* 76 | ~$* 77 | *~ 78 | *.dbmdl 79 | *.[Pp]ublish.xml 80 | *.pfx 81 | *.publishsettings 82 | 83 | # Backup & report files from converting an old project file to a newer 84 | # Visual Studio version. Backup files are not needed, because we have git ;-) 85 | _UpgradeReport_Files/ 86 | Backup*/ 87 | UpgradeLog*.XML 88 | UpgradeLog*.htm 89 | 90 | # SQL Server files 91 | App_Data/*.mdf 92 | App_Data/*.ldf 93 | 94 | # ========================= 95 | # Webstorm 96 | # ========================= 97 | .idea/ 98 | 99 | # ========================= 100 | # Windows detritus 101 | # ========================= 102 | 103 | # Windows image file caches 104 | Thumbs.db 105 | ehthumbs.db 106 | 107 | # Folder config file 108 | Desktop.ini 109 | 110 | # Recycle Bin used on file shares 111 | $RECYCLE.BIN/ 112 | 113 | # Mac crap 114 | .DS_Store 115 | -------------------------------------------------------------------------------- /app/templates/grunt/.jshintrc-dev: -------------------------------------------------------------------------------- 1 | { 2 | "asi": false, 3 | "bitwise": true, 4 | "boss": false, 5 | "browser": true, 6 | "camelcase": false, 7 | "couch": false, 8 | "curly": true, 9 | "debug": true, 10 | "devel": false, 11 | "dojo": false, 12 | "eqeqeq": true, 13 | "eqnull": true, 14 | "es5": false, 15 | "esnext": false, 16 | "evil": false, 17 | "expr": false, 18 | "forin": false, 19 | "funcscope": false, 20 | "globalstrict": false, 21 | "immed": false, 22 | "iterator": false, 23 | "jquery": false, 24 | "lastsemic": false, 25 | "latedef": true, 26 | "laxbreak": false, 27 | "laxcomma": false, 28 | "loopfunc": false, 29 | "mootools": false, 30 | "multistr": false, 31 | "newcap": false, 32 | "noarg": true, 33 | "node": false, 34 | "noempty": true, 35 | "nonew": true, 36 | "nomen": false, 37 | "nonstandard": false, 38 | "onecase": false, 39 | "onevar": false, 40 | "passfail": false, 41 | "plusplus": false, 42 | "proto": false, 43 | "prototypejs": false, 44 | "regexp": false, 45 | "regexdash": false, 46 | "rhino": false, 47 | "scripturl": false, 48 | "shadow": false, 49 | "smarttabs": false, 50 | "sub": false, 51 | "supernew": false, 52 | "strict": false, 53 | "trailing": true, 54 | "undef": true, 55 | "unused": true, 56 | "validthis": false, 57 | "white": false, 58 | "withstmt": false, 59 | "worker": false, 60 | "wsh": false, 61 | "yui": false, 62 | "globals": { 63 | "require": true, 64 | "define": true, 65 | "before": true, 66 | "beforeEach": true, 67 | "after": true, 68 | "afterEach": true, 69 | "chai": true, 70 | "sinon": true, 71 | "describe": true, 72 | "context": true, 73 | "it": true, 74 | "flush": true, 75 | "_": true, 76 | "console": true 77 | } 78 | } -------------------------------------------------------------------------------- /app/templates/grunt/.jshintrc-release: -------------------------------------------------------------------------------- 1 | { 2 | "asi": false, 3 | "bitwise": true, 4 | "boss": false, 5 | "browser": true, 6 | "camelcase": false, 7 | "couch": false, 8 | "curly": true, 9 | "debug": false, 10 | "devel": false, 11 | "dojo": false, 12 | "eqeqeq": true, 13 | "eqnull": true, 14 | "es5": false, 15 | "esnext": false, 16 | "evil": false, 17 | "expr": false, 18 | "forin": false, 19 | "funcscope": false, 20 | "globalstrict": false, 21 | "immed": false, 22 | "iterator": false, 23 | "jquery": false, 24 | "lastsemic": false, 25 | "latedef": true, 26 | "laxbreak": false, 27 | "laxcomma": false, 28 | "loopfunc": false, 29 | "mootools": false, 30 | "multistr": false, 31 | "newcap": false, 32 | "noarg": true, 33 | "node": false, 34 | "noempty": true, 35 | "nonew": true, 36 | "nomen": false, 37 | "nonstandard": false, 38 | "onecase": false, 39 | "onevar": false, 40 | "passfail": false, 41 | "plusplus": false, 42 | "proto": false, 43 | "prototypejs": false, 44 | "regexp": false, 45 | "regexdash": false, 46 | "rhino": false, 47 | "scripturl": false, 48 | "shadow": false, 49 | "smarttabs": false, 50 | "sub": false, 51 | "supernew": false, 52 | "strict": false, 53 | "trailing": true, 54 | "undef": true, 55 | "unused": true, 56 | "validthis": false, 57 | "white": false, 58 | "withstmt": false, 59 | "worker": false, 60 | "wsh": false, 61 | "yui": false, 62 | "globals": { 63 | "require": true, 64 | "define": true, 65 | "before": true, 66 | "beforeEach": true, 67 | "after": true, 68 | "afterEach": true, 69 | "chai": true, 70 | "sinon": true, 71 | "describe": true, 72 | "context": true, 73 | "it": true, 74 | "flush": true, 75 | "_": true 76 | } 77 | } -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.clean.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function ( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks( 'grunt-contrib-clean' ); 6 | return { 7 | 8 | dev: { 9 | options: { 10 | force: true 11 | }, 12 | src: [ 13 | '../dist_dev/**/*.bak', 14 | '../dist_dev/**/*.less', 15 | '../dist_dev/**/*.tmpl' 16 | ], 17 | filter: 'isFile' 18 | }, 19 | release: { 20 | options: { 21 | force: true 22 | }, 23 | src: [ 24 | '../dist/**/*.bak', 25 | '../dist/**/*.less', 26 | '../dist/**/*.tmpl' 27 | ], 28 | filter: 'isFile' 29 | }, 30 | empty_dist_dev: { 31 | options: { 32 | force: true 33 | }, 34 | src: [ 35 | '../dist_dev/**/*' 36 | ] 37 | }, 38 | empty_dist: { 39 | options: { 40 | force: true 41 | }, 42 | src: [ 43 | '../dist/**/*' 44 | ] 45 | }, 46 | empty_desktop: { 47 | options: { 48 | force: true 49 | }, 50 | src: [ 51 | '<%=projectconfig.general.ExtensionNamespace%>/<%=projectconfig.general.ExtensionNameSafe%>/**/*' 52 | ] 53 | } 54 | }; 55 | }; -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.cleanempty.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks('grunt-cleanempty'); 6 | return { 7 | 8 | options: { 9 | force: true 10 | }, 11 | all: { 12 | options: { 13 | files: false 14 | }, 15 | src: ['../dist/**/*'] 16 | } 17 | 18 | }; 19 | }; -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.compress.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function ( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks( 'grunt-contrib-compress' ); 6 | return { 7 | 8 | dev: { 9 | options: { 10 | archive: '../build/<%=projectconfig.general.ExtensionNamespace%><%=projectconfig.general.ExtensionNameSafe.toLowerCase()%>_dev.zip' 11 | }, 12 | files: [ 13 | { 14 | expand: true, 15 | cwd: '../dist_dev/', 16 | src: ['**/*.*'], 17 | dest: '/' 18 | } 19 | ] 20 | }, 21 | release: { 22 | options: { 23 | archive: '../build/<%=projectconfig.general.ExtensionNamespace%><%=projectconfig.general.ExtensionNameSafe.toLowerCase()%>_v<%=projectconfig.general.Version%>.zip' 24 | }, 25 | files: [ 26 | { 27 | expand: true, 28 | cwd: '../dist/', 29 | src: ['**/*.*'], 30 | dest: '/' 31 | } 32 | ] 33 | }, 34 | release_latest: { 35 | options: { 36 | archive: '../build/<%=projectconfig.general.ExtensionNamespace%><%=projectconfig.general.ExtensionNameSafe.toLowerCase()%>_latest.zip' 37 | }, 38 | files: [ 39 | { 40 | expand: true, 41 | cwd: '../dist/', 42 | src: ['**/*.*'], 43 | dest: '/' 44 | } 45 | ] 46 | }, 47 | source: { 48 | options: { 49 | archive: '../build/<%=projectconfig.general.ExtensionNamespace%><%=projectconfig.general.ExtensionNameSafe%>_src_v<%=projectconfig.general.Version%>.zip' 50 | }, 51 | files: [ 52 | { 53 | expand: true, 54 | cwd: '../', 55 | src: ['src/**/*', 'grunt/**/*', '!grunt/node_modules/**/*'], 56 | dest: '/' 57 | } 58 | ] 59 | } 60 | }; 61 | }; -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.copy.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function ( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks( 'grunt-contrib-copy' ); 6 | return { 7 | options: { 8 | processContentExclude: ['**/*.{png,gif,jpg,ico,psd}'] 9 | }, 10 | copy_to_dist_dev: { 11 | expand: true, // allow dynamic building 12 | cwd: '../src/', // change base dir 13 | //src: ['**', '!docs/**'], // source files mask 14 | src: ['**'], 15 | dest: '../dist_dev/', // destination folder 16 | flatten: false // remove all unnecessary nesting 17 | }, 18 | copy_to_dist_release: { 19 | expand: true, // allow dynamic building 20 | cwd: '../src/', // change base dir 21 | //src: ['**', '!docs/**'], // source files mask 22 | src: ['**'], 23 | dest: '../dist/', // destination folder 24 | flatten: false // remove all unnecessary nesting 25 | }, 26 | copy_to_desktop_dev: { 27 | expand: true, 28 | cwd: '../dist_dev/', 29 | src: '**', 30 | dest: '<%= projectconfig.general.LocalExtensionPath%>/<%= projectconfig.general.ExtensionNamespace%><%= projectconfig.general.ExtensionNameSafe%>/' 31 | }, 32 | copy_to_desktop_release: { 33 | expand: true, 34 | cwd: '../dist/', 35 | src: '**', 36 | dest: '<%= projectconfig.general.LocalExtensionPath%>/<%= projectconfig.general.ExtensionNamespace%><%= projectconfig.general.ExtensionNameSafe%>/' 37 | } 38 | }; 39 | }; 40 | -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.js: -------------------------------------------------------------------------------- 1 | /*global module,define,require */ 2 | /*jshint 3 | camelcase: false 4 | */ 5 | var fs = require( "fs" ); 6 | 7 | module.exports = function (grunt) { 8 | 9 | grunt.option['debug'] = false; 10 | 11 | var cfg = {}; 12 | // parse all configured tasks automatically: 13 | fs.readdirSync( "./" ).forEach( function ( file ) { 14 | if ( file.indexOf( "Gruntfile." ) === 0 && file !== "Gruntfile.js" ) { 15 | var name = file.split( "Gruntfile." )[1].split( ".js" )[0]; 16 | cfg[name] = require( "./Gruntfile." + name )( grunt ); 17 | } 18 | } ); 19 | 20 | grunt.initConfig( cfg ); 21 | 22 | grunt.config('projectconfig', grunt.file.readYAML('grunt-config.yml')); 23 | 24 | /** 25 | * Add grunt tasks to a given task list. 26 | */ 27 | function addTask( taskList, task, condition ) { 28 | 29 | if (arguments.length < 3) { 30 | condition = true; 31 | } 32 | 33 | if ( condition ) { 34 | taskList.push( task ); 35 | } 36 | } 37 | 38 | // **************************************************************************************** 39 | // "dev" Task 40 | // **************************************************************************************** 41 | var devTasks = []; 42 | 43 | // Clean 'dist' and copy all relevant files to 'dist' 44 | addTask( devTasks, 'clean:empty_dist_dev'); 45 | addTask( devTasks, 'copy:copy_to_dist_dev'); 46 | 47 | // Replacements 48 | addTask( devTasks, 'replace:general_dev'); 49 | addTask( devTasks, 'replace:dev'); 50 | 51 | // JSHint 52 | addTask( devTasks, 'jshint', cfg.projectconfig.dev.jshint); 53 | 54 | // Less Support 55 | addTask( devTasks, 'less:dev', cfg.projectconfig.setup.lessSupport ); 56 | //addTask( devTasks, 'less:allInPlace_dev', cfg.projectconfig.setup.lessSupport ); 57 | 58 | // Cleanup 59 | addTask( devTasks, 'clean:dev'); 60 | addTask( devTasks, 'cleanempty:all'); 61 | 62 | // Deploy to Qlik Sense Desktop 63 | addTask( devTasks, 'clean:empty_desktop', process.platform === 'win32'); 64 | addTask( devTasks, 'copy:copy_to_desktop_dev', process.platform === 'win32'); 65 | 66 | // Zip to xxx_dev.zip 67 | addTask( devTasks, 'compress:dev'); 68 | 69 | grunt.registerTask( 'dev', devTasks ); 70 | 71 | 72 | // **************************************************************************************** 73 | // "release" Task 74 | // **************************************************************************************** 75 | 76 | var releaseTasks = []; 77 | 78 | // Clean 'dist' and copy all relevant files to 'dist' 79 | addTask( releaseTasks, 'clean:empty_dist'); 80 | addTask( releaseTasks, 'copy:copy_to_dist_release'); 81 | 82 | // Replacements 83 | addTask( releaseTasks, 'replace:general_release'); 84 | addTask( releaseTasks, 'replace:release'); 85 | 86 | addTask( releaseTasks, 'less:release', cfg.projectconfig.setup.lessSupport); 87 | 88 | // Cleanup 89 | addTask( releaseTasks, 'clean:release'); 90 | addTask( releaseTasks, 'cleanempty:all'); 91 | 92 | // Optimization & Uglification 93 | addTask( releaseTasks, 'uglify:release'); 94 | 95 | // JSHint 96 | addTask( devTasks, 'jshint', cfg.projectconfig.dev.jshint); 97 | 98 | 99 | // Deploy to Qlik Sense Desktop 100 | addTask( releaseTasks, 'clean:empty_desktop', process.platform === 'win32'); 101 | addTask( releaseTasks, 'copy:copy_to_desktop_release', process.platform === 'win32'); 102 | 103 | // Zip 104 | addTask( releaseTasks, 'compress:release'); 105 | addTask( releaseTasks, 'compress:release_latest'); 106 | 107 | grunt.registerTask('release', releaseTasks); 108 | 109 | // **************************************************************************************** 110 | // "source" Task 111 | // **************************************************************************************** 112 | grunt.registerTask('source', [ 113 | 'compress:source' 114 | ]); 115 | 116 | 117 | // **************************************************************************************** 118 | // "default" Task 119 | // **************************************************************************************** 120 | grunt.registerTask('default', 'dev'); 121 | 122 | }; -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.jshint.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function ( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks( 'grunt-contrib-jshint' ); 6 | return { 7 | dev: { 8 | options: { 9 | jshintrc: ".jshintrc-dev", 10 | ignores: [] 11 | }, 12 | defaults: ["<%=projectconfig.jsSources.dev%>"] 13 | }, 14 | release: { 15 | options: { 16 | jshintrc: ".jshintrc-release", 17 | ignores: [] 18 | }, 19 | defaults: ["<%=projectconfig.jsSources.release%>"] 20 | } 21 | 22 | }; 23 | }; 24 | -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.less.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function ( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks( 'grunt-contrib-less' ); 6 | return { 7 | 8 | // If used converts all the objects in place (mainly used for debugging purposes) 9 | allInPlace_dev: { 10 | options: { 11 | compress: false, 12 | yuicompress: false, 13 | optimization: 2, 14 | cleancss: false, 15 | paths: ['../dist_dev'] 16 | }, 17 | files: [{ 18 | expand: true, 19 | cwd: "../dist_dev", 20 | src: ["**/*.less"], 21 | ext: ".css", 22 | dest: "../dist_dev" 23 | }] 24 | }, 25 | dev: { 26 | options: { 27 | compress: '<%= projectconfig.dev.less.lessCompress%>', 28 | yuicompress: '<%= projectconfig.dev.less.lessYuiCompress%>', 29 | optimization: parseInt( 'projectconfig.dev.less.lessOptimization' ), 30 | cleancss: '<%= projectconfig.dev.less.lessCleanCss%>' 31 | }, 32 | files: { 33 | "../dist_dev/lib/css/style.css": "../src/lib/less/_root.less" 34 | } 35 | }, 36 | release: { 37 | options: { 38 | compress: '<%= projectconfig.release.less.lessCompress%>', 39 | yuicompress: '<%= projectconfig.release.less.lessYuiCompress%>', 40 | optimization: parseInt( 'projectconfig.release.less.lessOptimization' ), 41 | cleancss: '<%= projectconfig.release.less.lessCleanCss%>' 42 | }, 43 | files: { 44 | "../dist/lib/css/style.css": "../src/lib/less/_root.less" 45 | } 46 | } 47 | }; 48 | }; -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.projectconfig.js: -------------------------------------------------------------------------------- 1 | /*global module, require*/ 2 | var YAML = require( 'yamljs' ); 3 | module.exports = function ( grunt ) { 4 | 'use strict'; 5 | return YAML.load( 'grunt-config.yml' ); 6 | }; -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.replace.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | module.exports = function ( grunt ) { 3 | 'use strict'; 4 | 5 | grunt.loadNpmTasks( 'grunt-replace' ); 6 | 7 | /** 8 | * Replace variables like the Urls for the help, the version, etc. 9 | */ 10 | return { 11 | 12 | general_dev: { 13 | options: { 14 | patterns: [ 15 | { 16 | json: grunt.file.readYAML( 'gruntReplacements.yml' ) 17 | }, 18 | { 19 | match: "version", 20 | replacement: "<%= projectconfig.general.Version %>" 21 | } 22 | 23 | ] 24 | }, 25 | files: [ 26 | { 27 | expand: true, 28 | flatten: false, 29 | src: ['../dist_dev/**/*.*', '!../dist_dev/**/*.{min.js,png,gif,jpg,ico,psd,eot,svg,ttf,woff}'], 30 | dest: '../dist_dev/' 31 | } 32 | ] 33 | }, 34 | general_release: { 35 | options: { 36 | patterns: [ 37 | { 38 | json: grunt.file.readYAML( 'gruntReplacements.yml' ) 39 | }, 40 | { 41 | match: "version", 42 | replacement: "<%= projectconfig.general.Version %>" 43 | } 44 | ] 45 | }, 46 | files: [ 47 | { 48 | expand: true, 49 | flatten: false, 50 | src: ['../dist/**/*.*', '!../dist/**/*.{min.js,png,gif,jpg,ico,psd,eot,svg,ttf,woff}'], 51 | dest: '../dist/' 52 | } 53 | ] 54 | }, 55 | dev: { 56 | options: { 57 | patterns: [ 58 | { 59 | json: grunt.file.readYAML( 'gruntReplacements_dev.yml' ) 60 | } 61 | ] 62 | }, 63 | files: [ 64 | { 65 | expand: true, 66 | flatten: false, 67 | src: ['../dist_dev/*.*', '!../dist_dev/**/*.{min.js,png,gif,jpg,ico,psd,eot,svg,ttf,woff}'], 68 | dest: '../dist_dev/' 69 | } 70 | ] 71 | } 72 | , 73 | release: { 74 | options: { 75 | patterns: [ 76 | { 77 | json: grunt.file.readYAML( 'gruntReplacements_release.yml' ) 78 | } 79 | ] 80 | } 81 | , 82 | files: [ 83 | { 84 | expand: true, 85 | flatten: false, 86 | src: ['../dist/**/*.*', '!../dist/**/*.{min.js,png,gif,jpg,ico,psd,eot,svg,ttf,woff}'], 87 | dest: '../dist/' 88 | } 89 | ] 90 | } 91 | } 92 | ; 93 | } 94 | ; 95 | -------------------------------------------------------------------------------- /app/templates/grunt/Gruntfile.uglify.js: -------------------------------------------------------------------------------- 1 | /*global module*/ 2 | /*jshint 3 | camelcase: false 4 | */ 5 | module.exports = function ( grunt ) { 6 | 'use strict'; 7 | 8 | grunt.loadNpmTasks( 'grunt-contrib-uglify' ); 9 | return { 10 | 11 | options: { 12 | mangle: '<%= projectconfig.release.uglify.mangle%>', 13 | beautify: '<%= projectconfig.release.uglify.beautify%>', 14 | preserveComments: '<%= projectconfig.release.uglify.preserveComments%>', 15 | compress: { 16 | drop_console: '<%= projectconfig.release.uglify.drop_console%>' 17 | } 18 | }, 19 | release: { 20 | files: [ 21 | { 22 | src: ['./../dist/**/*.js', '!./../dist/**/*.min.js'], 23 | dest: './../dist/', 24 | expand: true 25 | } 26 | ] 27 | } 28 | }; 29 | }; -------------------------------------------------------------------------------- /app/templates/grunt/_package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Grunt-Deployment-<%= prompts.extensionNameSafe%>", 3 | "version": "0.0.1", 4 | "description": "Grunt tasks (dev + release) for the Qlik Sense extension <%= prompts.extensionName %>", 5 | "main": "gruntfile.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [ 10 | "Qlik Sense Extension", 11 | "qliksense-visualization-extension", 12 | "Qlik Sense", 13 | "QlikSense", 14 | "Extension" 15 | ], 16 | "author": "<%= prompts.authorName %>", 17 | "license": "MIT", 18 | "dependencies": { 19 | "grunt": "~0.4.5", 20 | "grunt-contrib-clean": "~0.6.0", 21 | "grunt-cleanempty": "~1.0.3", 22 | "grunt-contrib-compress": "~0.13.0", 23 | "grunt-contrib-copy": "~0.8.0", 24 | "grunt-contrib-jshint": "^0.11.0", 25 | "grunt-contrib-less": "~1.0.0", 26 | "grunt-replace": "~0.8.0", 27 | "grunt-contrib-uglify": "~0.8.0", 28 | "q": "^1.2.0", 29 | "winreg": "0.0.12", 30 | "async": "^0.9.0", 31 | "yamljs": "^0.2.1" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/templates/grunt/grunt-config.yml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------- 2 | # General Settings 3 | # ------------------------------------------------------------------- 4 | general: 5 | # Path to the extension directory in Qlik Sense Desktop 6 | LocalExtensionPath: "<%= prompts.localExtensionDir %>" 7 | 8 | # Name of the Extension as defined in the generator 9 | ExtensionName: "<%= prompts.extensionName %>" 10 | 11 | # Name of the Extension, safe to be used for file-names 12 | ExtensionNameSafe: "<%= prompts.extensionNameSafe %>" 13 | 14 | # Namespace 15 | ExtensionNamespace: "<%= prompts.extensionNamespace %>" 16 | 17 | # Description of the Extension as defined in the generator 18 | ExtensionDescription: "<%= prompts.extensionDescription %>" 19 | 20 | # Version of the extension, will be re-used in several areas, 21 | # e.g the generated .zip-file in the 'release' Grunt-task 22 | Version: "0.0.1" 23 | 24 | # ------------------------------------------------------------------- 25 | # Settings for the 'dev' Grunt task 26 | # ------------------------------------------------------------------- 27 | dev: 28 | jshint: false 29 | less: # Documentation: https://github.com/gruntjs/grunt-contrib-less 30 | lessCompress: false 31 | lessYuiCompress: false 32 | lessCleanCss: false 33 | lessOptimization: 2 34 | uglify: # Documentation: https://github.com/gruntjs/grunt-contrib-uglify 35 | mangle: false 36 | drop_console: false 37 | beautify: true 38 | preserveCommments: true 39 | compress: false 40 | 41 | # ------------------------------------------------------------------- 42 | # Settings for the 'release' Grunt task 43 | # ------------------------------------------------------------------- 44 | release: 45 | jshint: true 46 | less: # Documentation: https://github.com/gruntjs/grunt-contrib-less 47 | lessCompress: true 48 | lessYuiCompress: true 49 | lessCleanCss: true 50 | lessOptimization: 2 51 | uglify: # Documentation: https://github.com/gruntjs/grunt-contrib-uglify 52 | mangle: true 53 | drop_console: true 54 | beautify: false 55 | preserveCommments: false 56 | compress: true 57 | 58 | # ------------------------------------------------------------------- 59 | # Grunt task specific default settings 60 | # ------------------------------------------------------------------- 61 | jsSources: 62 | dev: 63 | - "../dist_dev/**/*.js" 64 | - "!../dist_dev/**/*.min.js" 65 | release: 66 | - "../dist/**/*.js" 67 | - "!../dist/**/*.min.js" 68 | 69 | # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 70 | # Do not make any changes below, this might break your project 71 | # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 72 | 73 | # ------------------------------------------------------------------- 74 | # Setup 75 | # Do not modify these changes afterwards, these settings are setup 76 | # after the questions in the Yeoman generator have been answered. 77 | # ------------------------------------------------------------------- 78 | setup: 79 | lessSupport: <%= prompts.lessSupport %> 80 | -------------------------------------------------------------------------------- /app/templates/grunt/gruntReplacements.yml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------- 2 | # General replacements 3 | # --- 4 | # Add variables here which should be replaced in both the dev and release 5 | # task 6 | # 7 | # In your code just use @@variable 8 | # ------------------------------------------------------------------- 9 | 10 | # You have to have at least one variable here 11 | dummy: false -------------------------------------------------------------------------------- /app/templates/grunt/gruntReplacements_dev.yml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------- 2 | # General replacements 3 | # --- 4 | # Add variables here which should be replaced in the dev task 5 | # 6 | # In your code just use e.g @@isDebug 7 | # ------------------------------------------------------------------- 8 | isDebug: true -------------------------------------------------------------------------------- /app/templates/grunt/gruntReplacements_release.yml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------- 2 | # General replacements 3 | # --- 4 | # Add variables here which should be replaced in the release task 5 | # 6 | # In your code just use e.g @@isDebug 7 | # ------------------------------------------------------------------- 8 | isDebug: false -------------------------------------------------------------------------------- /app/templates/lib/js/extensionUtils.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | 'jquery', 3 | 'underscore' 4 | ], function ( $, _ ) { 5 | 'use strict'; 6 | 7 | // Taken from http://www.briangrinstead.com/blog/console-log-helper-function 8 | // Full version of `log` that: 9 | // * Prevents errors on console methods when no console present. 10 | // * Exposes a global 'log' function that preserves line numbering and formatting. 11 | (function () { 12 | var method; 13 | var noop = function () { }; 14 | var methods = [ 15 | 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 16 | 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 17 | 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 18 | 'timeStamp', 'trace', 'warn' 19 | ]; 20 | var length = methods.length; 21 | var console = (window.console = window.console || {}); 22 | 23 | while ( length-- ) { 24 | method = methods[length]; 25 | 26 | // Only stub undefined methods. 27 | if ( !console[method] ) { 28 | console[method] = noop; 29 | } 30 | } 31 | 32 | if ( Function.prototype.bind ) { 33 | window.log = Function.prototype.bind.call( console.log, console ); 34 | } 35 | else { 36 | window.log = function () { 37 | Function.prototype.apply.call( console.log, console, arguments ); 38 | }; 39 | } 40 | })(); 41 | 42 | return { 43 | 44 | /** 45 | * Add a style to the document's header. 46 | * @param cssContent {String} CSS content to be added to the header 47 | * @param id {String} If id is passed, addStyleToHeader will check if there has already been added a style with the given id, if yes, the css content will not be added to the header again 48 | */ 49 | addStyleToHeader: function ( cssContent, id ) { 50 | if ( id && typeof id === 'string' ) { 51 | if ( !$( '#' + id ).length ) { 52 | $( "