├── .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 | [](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 | 
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 | $( "