├── .editorconfig
├── .gitattributes
├── .gitignore
├── .gitmodules
├── .idea
├── .name
├── codeStyleSettings.xml
├── encodings.xml
├── icenium-cli.iml
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── jsLibraryMappings.xml
├── jsLinters
│ └── jshint.xml
├── libraries
│ ├── Generated_files.xml
│ └── Node_js_Dependencies_for_icenium_cli.xml
├── modules.xml
├── scopes
│ ├── Ice_CLI_TypeScript.xml
│ └── scope_settings.xml
├── vcs.xml
└── watcherTasks.xml
├── .jshintignore
├── .jshintrc
├── .npmignore
├── .travis.yml
├── .vscode
├── launch.json
└── settings.json
├── ABIGNORE.md
├── BuildPackage.cmd
├── CONTRIBUTING.md
├── Gruntfile.js
├── LICENSE
├── README.md
├── ab-logo.png
├── bin
├── appbuilder
├── appbuilder.cmd
└── appbuilder.js
├── for-developers.md
├── icenium-cli.sublime-project
├── lib
├── declarations.d.ts
└── version-validator.ts
├── package.json
├── prepublish.js
├── publish.cmd
├── test.cmd
├── tsconfig.json
└── tslint.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Manage common editor configurations
2 | # set for example indentation tab and space
3 | # VS Extension: https://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328
4 | # more extensions and plugins for your favorite editor here: http://editorconfig.org/#download
5 |
6 | ; Top-most EditorConfig file
7 | root = true
8 |
9 | ; 4-column space indentation
10 | [*]
11 | indent_style = tab
12 | indent_size = 4
13 | insert_final_newline = true
14 | trim_trailing_whitespace = true
15 |
16 | [*.md]
17 | trim_trailing_whitespace = false
18 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Ensure that the shebang of our start script can be correctly interpreted
2 |
3 | bin/appbuilder.js eol=lf
4 |
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.js
2 | !/*.js
3 | !bin/appbuilder.js
4 | !vendor/*.js
5 | *.js.map
6 |
7 | coverage
8 | lib-cov
9 | *.seed
10 | *.log
11 | *.csv
12 | *.dat
13 | *.out
14 | *.pid
15 | *.gz
16 | *.tgz
17 | *.tmp
18 | *.sublime-workspace
19 | tscommand*.tmp.txt
20 | .tscache/
21 | /lib/.d.ts
22 | /config/config.json
23 |
24 | pids
25 | logs
26 | results
27 | scratch/
28 | .idea/workspace.xml
29 | .idea/tasks.xml
30 | .idea/watcherTasks.xml
31 |
32 | test-reports.xml
33 | xunit.xml
34 |
35 | npm-debug.log
36 | node_modules
37 | resources/App_Resources
38 | resources/Cordova
39 | resources/NativeScript
40 | resources/ItemTemplates
41 | resources/ProjectTemplates
42 | resources/json-schemas
43 | resources/image-definitions.json
44 | docs/html
45 | **/obj
46 | **/bin/Microsoft.NodejsTools.WebRole.dll
47 | **/.vs
48 | **/.vscode
49 | **/.ntvs_analysis.dat
50 | !lib/hooks/before-*.js
51 | !lib/hooks/after-*.js
52 | .DS_Store
53 |
54 | !test-scripts/*.js
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Icenium/icenium-cli/9c5e03632989e58dfc0a67c4f201210d9b50c7a3/.gitmodules
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | icenium-cli
--------------------------------------------------------------------------------
/.idea/codeStyleSettings.xml:
--------------------------------------------------------------------------------
1 |
2 |
For more information about glob syntax, see Glob in the Linux Programmer's Manual.
For more information about minimatch syntax, see Comparisons to other fnmatch/glob implementations.
83 |
84 | When you create and modify your `.abignore` file, keep in mind the following specifics.
85 |
86 | * Each rule must start on a new line.
87 | * Empty lines are ignored.
88 | * By default, all rules are exclude rules.
89 | * Starting with [AppBuilder 2.6\*](#troubleshooting), newly created projects contain a default `.abignore` file. This file excludes the following files and subdirectories from your application package.
90 | * All `Thumbs.db` files: Thumbnails cache files managed by Windows.
91 | * All `.DS_Store` files: Hidden OS X system files.
92 | * All `__MACOSX` directories and their contents: Hidden OS X system directories.
93 | * The `bin` directory and its contents: A subdirectory in projects created with Visual Studio. It contains your latest built application packages.
94 | * The `obj` directory and its contents: A subdirectory in projects created with Visual Studio. It contains the archived project files that AppBuilder sends to the build server.
95 | * The `.vs` directory and its contents: A subdirectory in projects created with Visual Studio 2015. It contains information, related specifically to your project in Visual Studio.
96 | * `.gitignore`: A file that Git uses to determine which files and directories to ignore when you are making a commit.
97 | * The `.git` directory and its contents: A subdirectory in which Git stores your version control history and other relevant version control data.
98 | * `.abignore`: This file contains exclude and include rules for your application package.
99 | * The `.ab` directory and its contents: The AppBuilder CLI creates and manages this subdirectory. It contains temporary working files which the AppBuilder CLI uses.
100 | * `.app.json`: This file contains configuration information about projects created with Screen Builder.
101 | * Files associated with popular development environments.
102 | * For projects created with AppBuilder 2.5.2 or earlier, you need to manually create `.abignore`. For such projects, by default, the AppBuilder CLI excludes the following files and subdirectories. You do not need to manually list these files in your `.abignore` file.
103 | * `.ab:` The AppBuilder CLI creates and manages this subdirectory. It contains temporary working files which the AppBuilder CLI uses.
104 | * `.abignore:` This file contains exclude and include rules for your application package.
105 | * `IPA, APK, and XAP:` The application packages for iOS, Android, and Windows Phone 8, respectively.
106 | * To introduce a comment, place a hash (`#`) before the text.
For example:
107 |
108 | ```
109 | # This file contains exclude and include rules for my application package.
110 | ```
111 | * Each rule must be a glob that complies with the minimatch syntax.
For example:
112 |
113 | ```
114 | # The following rule excludes all HTML files from the root.
115 | *.html
116 |
117 | # The following rule excludes all files whose names consist of six characters, starting with index, and that are located in the root.
118 | # For example: index1.html, index2.js, etc.
119 | index?.*
120 | ```
121 |
122 | For more information about glob syntax, see Glob in the Linux Programmer's Manual.
For more information about minimatch syntax, see Comparisons to other fnmatch/glob implementations.
123 | * File paths must be relative to the location of `.abignore` and must be in the following format: `directory/subdirectory/file`.
For example:
124 |
125 | ```
126 | # The following rule excludes the views directory, its subdirectories and their contents.
127 | views/**/*
128 |
129 | # The following rule excludes the build.js file located in the scripts subdirectory.
130 | scripts/build.js
131 | ```
132 | * To include or exclude a build configuration-specific file, reference the configuration-specific file.
For example:
133 |
134 | ```
135 | # The following rule excludes the main.debug.js file located in the scripts subdirectory.
136 | scripts/main.debug.js
137 | ```
138 |
139 | For more information about configuration-specific files in AppBuilder, see [Managing Configuration-Specific Files](http://docs.telerik.com/platform/appbuilder/build-configurations/configuration-specific-files).
140 | * Preserve the casing of file paths to ensure that your `.abignore` file works across Windows, OS X, and Linux.
141 | * To introduce an include rule, place an exclamation mark (`!`) before the rule.
For example:
142 |
143 | ```
144 | # The following rule excludes all HTML files located in the root except for index.html.
145 | *.html
146 | !index.html
147 | ```
148 | * To refer to files and subdirectories whose names contain an exclamation mark (`!`) or a hash (`#`), place a backslash (`\`) before the exclamation mark or the hash.
For example:
149 |
150 | ```
151 | # The following rule excludes the !name.js file located in the root.
152 | \!name.js
153 |
154 | # The following rule includes the #cordova.js file located in the root.
155 | !\#cordova.js
156 | ```
157 |
158 | ## Sample .abignore
159 |
160 | This is the markup of a sample `.abignore` file. This sample is based on the default `.abignore` file included in projects created with AppBuilder 2.6 or later.
161 |
162 | ```
163 | # This file contains sample exclude and include rules for my application package.
164 |
165 | # The following rule excludes any .DS_Store files and __MACOSX subdirectories and their contents from your project. This rule is useful for projects developed on OS X systems or projects in which you have added files or subdirectories created on an OS X system.
166 | **/.DS_Store
167 | **/__MACOSX/**/*
168 |
169 | # The following rule excludes any Thumbs.db files from your projects. Thumbs.db is a thumbnails cache file managed by Windows. This rule is useful for projects developed on Windows systems or projects in which you have added files or subdirectories created on a Windows system.
170 | **/Thumbs.db
171 |
172 | # The following rule excludes .git subdirectories and their contents and the .gitignore file. This rule is useful for projects developed with Git version control.
173 | .git/**/*
174 | .gitignore
175 |
176 | # The following rule excludes the bin and obj subdirectories. This rule is useful for projects developed with or migrated from Microsoft Visual Studio.
177 | bin/**/*
178 | obj/**/*
179 |
180 | # The following rule excludes all files with a selected name, located anywhere in your project. For example, views/my_views/my_page.html.
181 | **/my_page.html
182 |
183 | # The following rule excludes all files that begin with a selected prefix. For example, the test prefix.
184 | **/test*.*
185 |
186 | # The following rule excludes all files that end in a selected suffix. For example, the debug suffix.
187 | **/*debug.*
188 |
189 | # The following rule excludes all files with a selected extension. For example, Windows PowerShell scripts.
190 | **/*.ps1
191 |
192 | ```
193 |
194 | ## Troubleshooting
195 |
196 | Between AppBuilder 2.6 and 2.7.3, the default `.abignore` file contained exclude rules with incorrect syntax. If you have created your project with an AppBuilder version between 2.6 and 2.7.3, you need to manually replace the contents of your default `.abignore` file with the following markup.
197 |
198 | ```
199 | # .abignore lets you configure which of your files and folders should be excluded from your application package during the build process.
200 | # Each project created with AppBuilder 2.6 or later contains a default .abignore which lists a number of system files and folders that might affect the size of your app or might prevent build operations from completing successfully.
201 | #
202 | # For more information about .abignore and how to write exclude and include rules for your projects, see http://docs.telerik.com/platform/appbuilder/testing-your-app/abignore
203 |
204 | # Windows files
205 | **/Thumbs.db
206 |
207 | # Mac OS files
208 | **/.DS_Store
209 | **/__MACOSX/**/*
210 |
211 | # Visual Studio files
212 | bin/**/*
213 | obj/**/*
214 | **/*.obj
215 | **/*.pdb
216 | **/*.user
217 | **/*.aps
218 | **/*.pch
219 | **/*.vspscc
220 | **/*_i.c
221 | **/*_p.c
222 | **/*.ncb
223 | **/*.suo
224 | **/*.tlb
225 | **/*.tlh
226 | **/*.ilk
227 | **/*.lib
228 | **/*.sbr
229 |
230 | # Source control files
231 | .gitignore
232 | .git/**/*
233 |
234 | # AppBuilder files
235 | .abignore
236 | .ab/**/*
237 | .app.json
238 |
239 | # TypeScript files
240 | **/*.ts
241 | **/*.map
242 |
243 | # Other
244 | **/*.bak
245 | **/*.cache
246 | **/*.log
247 | ```
248 |
--------------------------------------------------------------------------------
/BuildPackage.cmd:
--------------------------------------------------------------------------------
1 | call "c:\Program Files (x86)\nodejs\nodevars.bat"
2 | call npm.cmd install -g grunt-cli
3 |
4 | set APPBUILDER_SKIP_POSTINSTALL_TASKS=1
5 | call npm.cmd install
6 | set APPBUILDER_SKIP_POSTINSTALL_TASKS=
7 |
8 | call grunt.cmd pack --no-color
9 |
10 | call npm.cmd cache rm appbuilder
11 | call npm.cmd install -g rimraf
12 | call rimraf.cmd node_modules
13 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | Contribute to the Progress Telerik AppBuilder Command-Line Interface
2 | ===
3 |
4 | *Help us improve the AppBuilder CLI*
5 |
6 | [](http://www.telerik.com/appbuilder "The Telerik AppBuilder web site")
7 |
8 | The AppBuilder CLI lets you build, test, deploy, and publish hybrid mobile apps for iOS, Android, and Windows Phone 8 from your favorite IDE or code editor. You can develop your projects locally from the convenience of your favorite code editor and run the command-line to test, build, deploy in the simulator or on devices, and publish your applications to the App Store or Google Play.
9 |
10 | * [Report an Issue](#bug "Learn how to report an issue")
11 | * [Request a Feature](#request "Learn how to submit a feature or improvement request")
12 | * [Contribute to the Code Base](#contribute "Learn how to submit your own improvements to the code")
13 |
14 | Report an Issue
15 | ===
16 | If you find a bug in the source code or a mistake in the documentation, you can submit an issue to our GitHub Repository.
17 | Before you submit your issue, search the archive to check if a similar issues has been logged or addressed. This will let us focus on fixing issues and adding new features.
18 | If your issue appears to be a bug, and hasn't been reported, open a new issue. To help us investigate your issue and respond in a timely manner, you can provide is with the following details.
19 |
20 | * **Overview of the issue:** Provide a short description of the visible symptoms. If applicable, include error messages, screen shots, and stack traces.
21 | * **Motivation for or use case:** Let us know how this particular issue affects your work.
22 | * **Telerik AppBuilder version(s):** List the current version and build number of the CLI interface. You can get it by running `$ appbuilder --version`. Let us know if you have not observed this behavior in earlier versions and if you consider it a regression.
23 | * **System configuration:** Provide us with relevant system configuration information such as operating system, network connection, proxy usage, etc. Let us know if you have been able to reproduce the issue on multiple setups.
24 | * **Steps to reproduce:** If applicable, submit a step-by-step walkthrough of how to reproduce the issue.
25 | * **Related issues:** If you discover a similar issue in our archive, give us a heads up - it might help us identify the culprit.
26 | * **Suggest a fix:** You are welcome to suggest a bug fix or pinpoint the line of code or the commit that you believe has introduced the issue.
27 |
28 | [Back to Top][1]
29 |
30 | Request a Feature
31 | ===
32 | You can request a new feature by submitting an issue with the *enhancement* label to our GitHub Repository.
33 | If you want to implement a new feature yourself, consider submitting it to the GitHub Repository as a Pull Request.
34 |
35 | [Back to Top][1]
36 |
37 | Contribute to the Code Base
38 | ===
39 | First, read our developers documentation.
40 |
41 | Before you submit a Pull Request, consider the following guidelines.
42 |
43 | * Search GitHub for an open or closed Pull Request that relates to your submission.
44 | * Clone the repository.
45 | ```bash
46 | git clone git@github.com:Icenium/icenium-cli.git
47 | ```
48 | * Initialize the submodule.
49 | ```bash
50 | git submodule init
51 | ```
52 | * Fetch data from the submodule.
53 | ```bash
54 | git submodule update
55 | ```
56 | * Make your changes in a new `git` branch. We use the Gitflow branching model so you will have to branch from our master branch.
57 | ```bash
58 | git checkout -b my-fix-branch master
59 | ```
60 | * Create your patch and include appropriate test cases.
61 | * Build your changes locally.
62 | ```bash
63 | grunt
64 | ```
65 | * Ensure all the tests pass.
66 | ```bash
67 | grunt ts:devall
68 | npm test
69 | ```
70 | * Commit your changes and create a descriptive commit message (the commit message is used to generate release notes).
71 | ```bash
72 | git commit -a
73 | ```
74 | * Push your branch to GitHub.
75 | ```bash
76 | git push origin my-fix-branch
77 | ```
78 | * In GitHub, send a Pull Request to icenium-cli:master.
79 | * If we suggest changes, you can modify your branch, rebase, and force a new push to your GitHub repository to update the Pull Request.
80 | ```bash
81 | git rebase master -i
82 | git push -f
83 | ```
84 |
85 | That's it! Thank you for your contribution!
86 |
87 | When the patch is reviewed and merged, you can safely delete your branch and pull the changes from the main (upstream) repository.
88 |
89 | * Delete the remote branch on GitHub.
90 | ```bash
91 | git push origin --delete my-fix-branch
92 | ```
93 | * Check out the master branch.
94 | ```bash
95 | git checkout master -f
96 | ```
97 | * Delete the local branch.
98 | ```bash
99 | git branch -D my-fix-branch
100 | ```
101 | * Update your master branch with the latest upstream version.
102 | ```
103 | git pull --ff upstream master
104 | ```
105 |
106 | [Back to Top][1]
107 |
108 | [1]: #contribute-to-the-telerik-appbuilder-command-line-interface
109 |
--------------------------------------------------------------------------------
/Gruntfile.js:
--------------------------------------------------------------------------------
1 | var os = require("os");
2 |
3 | var now = new Date().toISOString();
4 |
5 | function shallowCopy(obj) {
6 | var result = {};
7 | Object.keys(obj).forEach(function (key) {
8 | result[key] = obj[key];
9 | });
10 | return result;
11 | }
12 |
13 | function getBuildVersion(version) {
14 | var buildVersion = version !== undefined ? version : process.env["BUILD_NUMBER"];
15 | if (process.env["BUILD_CAUSE_GHPRBCAUSE"]) {
16 | buildVersion = "PR" + buildVersion;
17 | }
18 |
19 | return buildVersion;
20 | }
21 |
22 | module.exports = function (grunt) {
23 |
24 | // Windows cmd does not accept paths with / and unix shell does not accept paths with \\ and we need to execute from a sub-dir.
25 | // To circumvent the issue, hack our environment's PATH and let the OS deal with it, which in practice works
26 | process.env.path = process.env.path + (os.platform() === "win32" ? ";" : ":") + "node_modules/.bin";
27 |
28 | var isPackageJsonModified = false;
29 |
30 | var defaultEnvironment = "sit";
31 | // When there are node_modules inside lib\common directory, CLI behaves incorrectly, so delete this dir.
32 | grunt.initConfig({
33 | deploymentEnvironment: process.env["DeploymentEnvironment"] || defaultEnvironment,
34 | resourceDownloadEnvironment: process.env["ResourceDownloadEnvironment"] || defaultEnvironment,
35 | jobName: process.env["JOB_NAME"] || defaultEnvironment,
36 | buildNumber: process.env["BUILD_NUMBER"] || "non-ci",
37 | dateString: now.substr(0, now.indexOf("T")),
38 |
39 | pkg: grunt.file.readJSON("package.json"),
40 | ts: {
41 | options: grunt.file.readJSON("tsconfig.json").compilerOptions,
42 |
43 | devlib: {
44 | src: ["lib/**/*.ts", "!lib/common/node_modules/**/*.ts", "!lib/common/messages/**/*.ts"],
45 | reference: "lib/.d.ts"
46 | },
47 |
48 | devall: {
49 | src: ["lib/**/*.ts", "test/**/*.ts", "!lib/common/node_modules/**/*.ts", "lib/common/test/unit-tests/**/*.ts", "definitions/**/*.ts", "!lib/common/test/.d.ts", "!lib/common/messages/**/*.ts"],
50 | reference: "lib/.d.ts"
51 | },
52 |
53 | release_build: {
54 | src: ["lib/**/*.ts", "test/**/*.ts", "!lib/common/node_modules/**/*.ts", "!lib/common/messages/**/*.ts"],
55 | reference: "lib/.d.ts",
56 | options: {
57 | sourceMap: false,
58 | removeComments: true
59 | }
60 | }
61 | },
62 |
63 | tslint: {
64 | build: {
65 | files: {
66 | src: ["lib/**/*.ts", "test/**/*.ts", "!lib/common/node_modules/**/*.ts", "!lib/common/messages/**/*.ts", "lib/common/test/unit-tests/**/*.ts", "definitions/**/*.ts", "!**/*.d.ts"]
67 | },
68 | options: {
69 | configuration: grunt.file.readJSON("./tslint.json")
70 | }
71 | }
72 | },
73 |
74 | watch: {
75 | devall: {
76 | files: ["lib/**/*.ts", 'test/**/*.ts', "!lib/common/node_modules/**/*.ts", "!lib/common/messages/**/*.ts"],
77 | tasks: ['ts:devall'],
78 | options: {
79 | atBegin: true,
80 | interrupt: true
81 | }
82 | }
83 | },
84 |
85 | shell: {
86 | options: {
87 | stdout: true,
88 | stderr: true
89 | },
90 |
91 | apply_resources_environment: {
92 | command: "node bin/appbuilder dev-config-apply <%= resourceDownloadEnvironment %>"
93 | },
94 |
95 | prepare_resources: {
96 | command: "node bin/appbuilder dev-prepackage"
97 | },
98 |
99 | apply_deployment_environment: {
100 | command: "node bin/appbuilder dev-config-apply <%= deploymentEnvironment %>"
101 | },
102 |
103 | build_package: {
104 | command: "npm pack",
105 | options: {
106 | execOptions: {
107 | env: (function () {
108 | var env = shallowCopy(process.env);
109 | env["APPBUILDER_SKIP_POSTINSTALL_TASKS"] = "1";
110 | return env;
111 | })()
112 | }
113 | }
114 | }
115 | },
116 |
117 | clean: {
118 | src: ["test/**/*.js*",
119 | "lib/**/*.js*",
120 | "!test-scripts/**/*",
121 | "!lib/common/vendor/*.js",
122 | "!lib/hooks/**/*.js",
123 | "!lib/common/**/*.json",
124 | "!lib/common/Gruntfile.js",
125 | "!lib/common/node_modules/**/*",
126 | "!lib/common/hooks/**/*.js",
127 | "!lib/common/bin/*.js",
128 | "!lib/common/test-scripts/**/*",
129 | "!lib/common/scripts/**/*",
130 | "*.tgz"]
131 | }
132 | });
133 |
134 | grunt.loadNpmTasks("grunt-contrib-clean");
135 | grunt.loadNpmTasks("grunt-contrib-watch");
136 | grunt.loadNpmTasks("grunt-shell");
137 | grunt.loadNpmTasks("grunt-ts");
138 | grunt.loadNpmTasks("grunt-tslint");
139 |
140 | grunt.registerTask("set_package_version", function (version) {
141 | var buildVersion = getBuildVersion(version);
142 | var packageJson = grunt.file.readJSON("package.json");
143 | packageJson.buildVersion = buildVersion;
144 | grunt.file.write("package.json", JSON.stringify(packageJson, null, " "));
145 | });
146 |
147 | grunt.registerTask("setBundleDependencies", function (version) {
148 | var buildVersion = getBuildVersion(version);
149 | var packageJson = grunt.file.readJSON("package.json");
150 | packageJson.bundleDependencies = Object.keys(packageJson.dependencies);
151 | grunt.file.write("package.json", JSON.stringify(packageJson, null, " "));
152 | });
153 |
154 | grunt.registerTask("setPackageName", function (version) {
155 | var fs = require("fs");
156 | var fileExtension = ".tgz";
157 | var buildVersion = getBuildVersion(version);
158 | var packageJson = grunt.file.readJSON("package.json");
159 | var oldFileName = packageJson.name + "-" + packageJson.version;
160 | var newFileName = oldFileName + "-" + buildVersion;
161 | fs.renameSync(oldFileName + fileExtension, newFileName + fileExtension);
162 | });
163 |
164 | grunt.registerTask("delete_coverage_dir", function () {
165 | var done = this.async();
166 | var rimraf = require("rimraf");
167 | rimraf("coverage", function (err) {
168 | if (err) {
169 | console.log("Error while deleting coverage directory from the package.");
170 | done(false);
171 | }
172 |
173 | done();
174 | });
175 | });
176 |
177 | grunt.registerTask("test", ["ts:devall"]);
178 |
179 | grunt.registerTask("remove_prepublish_script", function () {
180 | var packageJson = grunt.file.readJSON("package.json");
181 | if (packageJson && packageJson.scripts && packageJson.scripts.prepublish) {
182 | delete packageJson.scripts.prepublish;
183 | grunt.file.write("package.json", JSON.stringify(packageJson, null, " "));
184 | isPackageJsonModified = true;
185 | }
186 | });
187 |
188 | grunt.registerTask("printPackageJsonWarning", function () {
189 | if (isPackageJsonModified) {
190 | require("colors");
191 | console.log("NOTE: `grunt pack` command modified package.json. DO NOT COMMIT these changes, they are required only for the produced .tgz.".red.bold);
192 | }
193 | });
194 |
195 | grunt.registerTask("pack", [
196 | "clean",
197 |
198 | "ts:release_build",
199 |
200 | "remove_prepublish_script",
201 |
202 | "set_package_version",
203 | "delete_coverage_dir",
204 | "shell:build_package",
205 | "setPackageName",
206 | "printPackageJsonWarning"
207 | ]);
208 | grunt.registerTask("bundle-pack", ["setBundleDependencies", "pack"]);
209 | grunt.registerTask("lint", ["tslint:build"]);
210 | grunt.registerTask("all", ["clean", "test", "lint"]);
211 | grunt.registerTask("rebuild", ["clean", "ts:devlib"]);
212 | grunt.registerTask("default", "ts:devlib");
213 | };
214 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
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 (C) 2014-2018 Progress Software Corporation. All rights reserved.
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](http://www.telerik.com/appbuilder "The AppBuilder web site")
2 |
3 |