From d114c3664315f0f8321f828cb1b726ddbd8b0c9e Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Fri, 6 Mar 2020 19:01:07 -0500 Subject: [PATCH 01/44] Adding app generator first version Signed-off-by: 1000TurquoisePogs --- system-apps/app-generator/.gitignore | 26 + .../app-generator/nodeServer/.gitignore | 18 + .../nodeServer/package-lock.json | 839 ++ .../app-generator/nodeServer/package.json | 29 + .../app-generator/nodeServer/scripts/copy.js | 26 + .../nodeServer/src/controller/project.ts | 47 + .../nodeServer/src/models/project.ts | 33 + .../nodeServer/src/service/project.ts | 147 + .../app-generator/nodeServer/src/starter.ts | 98 + .../app-generator/nodeServer/tsconfig.json | 24 + .../app-generator/pluginDefinition.json | 31 + .../templates/angular/Basic/.gitattributes | 53 + .../angular/Basic/web/assets/.gitkeep | 0 .../angular/Basic/web/assets/icon.png | Bin 0 -> 7747 bytes .../templates/angular/Basic/web/main.js | 2 + .../templates/angular/Basic/web/main.js.map | 1 + .../angular/Basic/web/main.js.map.gz | Bin 0 -> 4990 bytes .../angular/Basic/webClient/package.json | 43 + .../Basic/webClient/src/app/app.component.css | 0 .../webClient/src/app/app.component.html | 20 + .../Basic/webClient/src/app/app.component.ts | 10 + .../Basic/webClient/src/app/app.module.ts | 16 + .../Basic/webClient/src/assets/.gitkeep | 0 .../Basic/webClient/src/assets/icon.png | Bin 0 -> 7747 bytes .../angular/Basic/webClient/src/plugin.ts | 3 + .../angular/Basic/webClient/src/polyfills.ts | 79 + .../angular/Basic/webClient/src/typings.d.ts | 5 + .../angular/Basic/webClient/tsconfig.json | 3 + .../angular/Basic/webClient/tsedit.js | 18 + .../angular/Basic/webClient/tslint.json | 3 + .../angular/Basic/webClient/tsrestore.js | 8 + .../angular/Basic/webClient/webpack.config.js | 40 + .../angular/Basic/webClient/xliffmerge.json | 13 + .../templates/iframe/Basic/.gitattributes | 53 + .../iframe/Basic/web/assets/.gitkeep | 0 .../iframe/Basic/web/assets/icon.png | Bin 0 -> 14568 bytes .../templates/iframe/Basic/web/css/iframe.css | 4 + .../iframe/Basic/web/html/index.html | 22 + .../templates/iframe/Basic/web/js/main.js | 29 + .../templates/react/Basic/.gitattributes | 53 + .../react/Basic/pluginDefinition.json | 1 + .../templates/react/Basic/web/assets/icon.png | Bin 0 -> 6176 bytes .../templates/react/Basic/web/assets/logo.svg | 7 + .../templates/react/Basic/web/main.js | 32 + .../templates/react/Basic/web/main.js.gz | Bin 0 -> 40450 bytes .../templates/react/Basic/web/main.js.map | 1 + .../templates/react/Basic/web/main.js.map.gz | Bin 0 -> 96868 bytes .../react/Basic/webClient/package.json | 41 + .../react/Basic/webClient/src/App.css | 38 + .../react/Basic/webClient/src/App.tsx | 37 + .../react/Basic/webClient/src/assets/icon.png | Bin 0 -> 6176 bytes .../react/Basic/webClient/src/assets/logo.svg | 7 + .../react/Basic/webClient/src/global.d.ts | 2 + .../react/Basic/webClient/src/index.css | 13 + .../react/Basic/webClient/src/index.tsx | 19 + .../Basic/webClient/src/mvd-resources.ts | 3 + .../react/Basic/webClient/tsconfig.json | 6 + .../templates/react/Basic/webClient/tsedit.js | 18 + .../react/Basic/webClient/tslint.json | 3 + .../react/Basic/webClient/tsrestore.js | 8 + .../react/Basic/webClient/webpack.config.js | 67 + .../app-generator/webClient/.editorconfig | 28 + .../app-generator/webClient/.gitignore | 56 + .../app-generator/webClient/angular.json | 132 + .../webClient/e2e/app.e2e-spec.ts | 34 + .../app-generator/webClient/e2e/app.po.ts | 31 + .../webClient/e2e/tsconfig.e2e.json | 19 + .../app-generator/webClient/karma.conf.js | 62 + .../app-generator/webClient/package-lock.json | 10630 ++++++++++++++++ .../app-generator/webClient/package.json | 54 + .../app-generator/webClient/postcss.config.js | 30 + .../webClient/protractor.conf.js | 50 + .../webClient/src/app/app-routing.module.ts | 40 + .../webClient/src/app/app.component.html | 31 + .../webClient/src/app/app.component.scss | 44 + .../webClient/src/app/app.component.spec.ts | 48 + .../webClient/src/app/app.component.ts | 71 + .../webClient/src/app/app.module.ts | 50 + .../app/pages/create/create.component.html | 84 + .../app/pages/create/create.component.scss | 78 + .../app/pages/create/create.component.spec.ts | 45 + .../src/app/pages/create/create.component.ts | 133 + .../src/app/pages/edit/edit.component.html | 67 + .../src/app/pages/edit/edit.component.scss | 83 + .../src/app/pages/edit/edit.component.spec.ts | 45 + .../src/app/pages/edit/edit.component.ts | 156 + .../app/pages/landing/landing.component.html | 23 + .../app/pages/landing/landing.component.scss | 7 + .../pages/landing/landing.component.spec.ts | 45 + .../app/pages/landing/landing.component.ts | 35 + .../src/app/pages/pages-routing.module.ts | 48 + .../webClient/src/app/pages/pages.module.ts | 73 + .../src/app/shared/models/application.ts | 41 + .../webClient/src/assets/.gitkeep | 0 .../webClient/src/assets/icon.png | Bin 0 -> 7747 bytes .../src/assets/scss/base/_variables.scss | 1 + .../webClient/src/assets/scss/scss-utils.scss | 1 + .../src/environments/environment.prod.ts | 23 + .../webClient/src/environments/environment.ts | 28 + .../app-generator/webClient/src/index.html | 42 + .../app-generator/webClient/src/main.ts | 31 + .../app-generator/webClient/src/polyfills.ts | 87 + .../app-generator/webClient/src/styles.scss | 21 + .../app-generator/webClient/src/test.ts | 52 + .../webClient/src/tsconfig.app.json | 22 + .../webClient/src/tsconfig.spec.json | 28 + .../app-generator/webClient/src/typings.d.ts | 24 + .../app-generator/webClient/tsconfig.json | 19 + .../app-generator/webClient/tslint.json | 145 + 109 files changed, 14996 insertions(+) create mode 100644 system-apps/app-generator/.gitignore create mode 100644 system-apps/app-generator/nodeServer/.gitignore create mode 100644 system-apps/app-generator/nodeServer/package-lock.json create mode 100644 system-apps/app-generator/nodeServer/package.json create mode 100644 system-apps/app-generator/nodeServer/scripts/copy.js create mode 100644 system-apps/app-generator/nodeServer/src/controller/project.ts create mode 100644 system-apps/app-generator/nodeServer/src/models/project.ts create mode 100644 system-apps/app-generator/nodeServer/src/service/project.ts create mode 100644 system-apps/app-generator/nodeServer/src/starter.ts create mode 100644 system-apps/app-generator/nodeServer/tsconfig.json create mode 100644 system-apps/app-generator/pluginDefinition.json create mode 100644 system-apps/app-generator/templates/angular/Basic/.gitattributes create mode 100644 system-apps/app-generator/templates/angular/Basic/web/assets/.gitkeep create mode 100644 system-apps/app-generator/templates/angular/Basic/web/assets/icon.png create mode 100644 system-apps/app-generator/templates/angular/Basic/web/main.js create mode 100644 system-apps/app-generator/templates/angular/Basic/web/main.js.map create mode 100644 system-apps/app-generator/templates/angular/Basic/web/main.js.map.gz create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/package.json create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.component.css create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.component.html create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.component.ts create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.module.ts create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/assets/.gitkeep create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/assets/icon.png create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/plugin.ts create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/polyfills.ts create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/src/typings.d.ts create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/tsconfig.json create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/tsedit.js create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/tslint.json create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/tsrestore.js create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/webpack.config.js create mode 100644 system-apps/app-generator/templates/angular/Basic/webClient/xliffmerge.json create mode 100644 system-apps/app-generator/templates/iframe/Basic/.gitattributes create mode 100644 system-apps/app-generator/templates/iframe/Basic/web/assets/.gitkeep create mode 100644 system-apps/app-generator/templates/iframe/Basic/web/assets/icon.png create mode 100644 system-apps/app-generator/templates/iframe/Basic/web/css/iframe.css create mode 100644 system-apps/app-generator/templates/iframe/Basic/web/html/index.html create mode 100644 system-apps/app-generator/templates/iframe/Basic/web/js/main.js create mode 100644 system-apps/app-generator/templates/react/Basic/.gitattributes create mode 100644 system-apps/app-generator/templates/react/Basic/pluginDefinition.json create mode 100644 system-apps/app-generator/templates/react/Basic/web/assets/icon.png create mode 100644 system-apps/app-generator/templates/react/Basic/web/assets/logo.svg create mode 100644 system-apps/app-generator/templates/react/Basic/web/main.js create mode 100644 system-apps/app-generator/templates/react/Basic/web/main.js.gz create mode 100644 system-apps/app-generator/templates/react/Basic/web/main.js.map create mode 100644 system-apps/app-generator/templates/react/Basic/web/main.js.map.gz create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/package.json create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/App.css create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/App.tsx create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/assets/icon.png create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/assets/logo.svg create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/global.d.ts create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/index.css create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/index.tsx create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/src/mvd-resources.ts create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/tsconfig.json create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/tsedit.js create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/tslint.json create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/tsrestore.js create mode 100644 system-apps/app-generator/templates/react/Basic/webClient/webpack.config.js create mode 100644 system-apps/app-generator/webClient/.editorconfig create mode 100644 system-apps/app-generator/webClient/.gitignore create mode 100644 system-apps/app-generator/webClient/angular.json create mode 100644 system-apps/app-generator/webClient/e2e/app.e2e-spec.ts create mode 100644 system-apps/app-generator/webClient/e2e/app.po.ts create mode 100644 system-apps/app-generator/webClient/e2e/tsconfig.e2e.json create mode 100644 system-apps/app-generator/webClient/karma.conf.js create mode 100644 system-apps/app-generator/webClient/package-lock.json create mode 100644 system-apps/app-generator/webClient/package.json create mode 100644 system-apps/app-generator/webClient/postcss.config.js create mode 100644 system-apps/app-generator/webClient/protractor.conf.js create mode 100644 system-apps/app-generator/webClient/src/app/app-routing.module.ts create mode 100644 system-apps/app-generator/webClient/src/app/app.component.html create mode 100644 system-apps/app-generator/webClient/src/app/app.component.scss create mode 100644 system-apps/app-generator/webClient/src/app/app.component.spec.ts create mode 100644 system-apps/app-generator/webClient/src/app/app.component.ts create mode 100644 system-apps/app-generator/webClient/src/app/app.module.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/create/create.component.html create mode 100644 system-apps/app-generator/webClient/src/app/pages/create/create.component.scss create mode 100644 system-apps/app-generator/webClient/src/app/pages/create/create.component.spec.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/create/create.component.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/edit/edit.component.html create mode 100644 system-apps/app-generator/webClient/src/app/pages/edit/edit.component.scss create mode 100644 system-apps/app-generator/webClient/src/app/pages/edit/edit.component.spec.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/edit/edit.component.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/landing/landing.component.html create mode 100644 system-apps/app-generator/webClient/src/app/pages/landing/landing.component.scss create mode 100644 system-apps/app-generator/webClient/src/app/pages/landing/landing.component.spec.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/landing/landing.component.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/pages-routing.module.ts create mode 100644 system-apps/app-generator/webClient/src/app/pages/pages.module.ts create mode 100644 system-apps/app-generator/webClient/src/app/shared/models/application.ts create mode 100644 system-apps/app-generator/webClient/src/assets/.gitkeep create mode 100644 system-apps/app-generator/webClient/src/assets/icon.png create mode 100644 system-apps/app-generator/webClient/src/assets/scss/base/_variables.scss create mode 100644 system-apps/app-generator/webClient/src/assets/scss/scss-utils.scss create mode 100644 system-apps/app-generator/webClient/src/environments/environment.prod.ts create mode 100644 system-apps/app-generator/webClient/src/environments/environment.ts create mode 100644 system-apps/app-generator/webClient/src/index.html create mode 100644 system-apps/app-generator/webClient/src/main.ts create mode 100644 system-apps/app-generator/webClient/src/polyfills.ts create mode 100644 system-apps/app-generator/webClient/src/styles.scss create mode 100644 system-apps/app-generator/webClient/src/test.ts create mode 100644 system-apps/app-generator/webClient/src/tsconfig.app.json create mode 100644 system-apps/app-generator/webClient/src/tsconfig.spec.json create mode 100644 system-apps/app-generator/webClient/src/typings.d.ts create mode 100644 system-apps/app-generator/webClient/tsconfig.json create mode 100644 system-apps/app-generator/webClient/tslint.json diff --git a/system-apps/app-generator/.gitignore b/system-apps/app-generator/.gitignore new file mode 100644 index 000000000..7683d72c2 --- /dev/null +++ b/system-apps/app-generator/.gitignore @@ -0,0 +1,26 @@ +# This program and the accompanying materials are +# made available under the terms of the Eclipse Public License v2.0 which accompanies +# this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html +# +# SPDX-License-Identifier: EPL-2.0 +# +# Copyright Contributors to the Zowe Project. +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/web +/lib + +# templates +# /templates + +# node.js +npm-debug.log + +# This program and the accompanying materials are +# made available under the terms of the Eclipse Public License v2.0 which accompanies +# this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html +# +# SPDX-License-Identifier: EPL-2.0 +# +# Copyright Contributors to the Zowe Project. diff --git a/system-apps/app-generator/nodeServer/.gitignore b/system-apps/app-generator/nodeServer/.gitignore new file mode 100644 index 000000000..d5361f820 --- /dev/null +++ b/system-apps/app-generator/nodeServer/.gitignore @@ -0,0 +1,18 @@ +# This program and the accompanying materials are +# made available under the terms of the Eclipse Public License v2.0 which accompanies +# this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html +# +# SPDX-License-Identifier: EPL-2.0 +# +# Copyright Contributors to the Zowe Project. +# See http://help.github.com/ignore-files/ for more about ignoring files. + +/node_modules + +# This program and the accompanying materials are +# made available under the terms of the Eclipse Public License v2.0 which accompanies +# this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html +# +# SPDX-License-Identifier: EPL-2.0 +# +# Copyright Contributors to the Zowe Project. diff --git a/system-apps/app-generator/nodeServer/package-lock.json b/system-apps/app-generator/nodeServer/package-lock.json new file mode 100644 index 000000000..96fccf794 --- /dev/null +++ b/system-apps/app-generator/nodeServer/package-lock.json @@ -0,0 +1,839 @@ +{ + "name": "app-generator-back", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/bluebird": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.27.tgz", + "integrity": "sha512-6BmYWSBea18+tSjjSC3QIyV93ZKAeNWGM7R6aYt1ryTZXrlHF+QLV0G2yV0viEGVyRkyQsWfMoJ0k/YghBX5sQ==", + "dev": true + }, + "@types/body-parser": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", + "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.32", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/express": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz", + "integrity": "sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.16.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz", + "integrity": "sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/range-parser": "*" + } + }, + "@types/fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/js-beautify": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@types/js-beautify/-/js-beautify-1.8.1.tgz", + "integrity": "sha512-B1Br8yE27obcYvFx5ECZswT/947aAFNb9lHqnkUOhtOfvJqaa6Axibo4T+5G6iQlUfjgSd8am9R/9j9UBfRlrw==", + "dev": true + }, + "@types/mime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", + "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==", + "dev": true + }, + "@types/node": { + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz", + "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==", + "dev": true + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/mime": "*" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "big-integer": { + "version": "1.6.43", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.43.tgz", + "integrity": "sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg==" + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-indexof-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz", + "integrity": "sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8=" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.0.1.tgz", + "integrity": "sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "js-beautify": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.0.tgz", + "integrity": "sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q==", + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "~0.5.1", + "nopt": "~4.0.1" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.1.tgz", + "integrity": "sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unzipper": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.0.tgz", + "integrity": "sha512-Vi1fHl+isVKXAiDloz8ykI+DJ9pIzDFhwxbd6ceC8XltYQfoKPhswX3yRsccXnA8tP8LPAxZO1bVWVtGE/VHaQ==", + "requires": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } +} diff --git a/system-apps/app-generator/nodeServer/package.json b/system-apps/app-generator/nodeServer/package.json new file mode 100644 index 000000000..e280f782b --- /dev/null +++ b/system-apps/app-generator/nodeServer/package.json @@ -0,0 +1,29 @@ +{ + "name": "app-generator-back", + "version": "1.0.0", + "description": "Back-end for App Generator", + "scripts": { + "build": "rm -rf ../lib && tsc && npm run copy:modules", + "copy:modules": "node ./scripts/copy.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "MIT", + "dependencies": { + "body-parser": "^1.19.0", + "express": "^4.17.0", + "fs-extra": "^8.0.1", + "js-beautify": "^1.10.0", + "q": "^1.5.1", + "unzipper": "^0.10.0" + }, + "devDependencies": { + "@types/bluebird": "^3.5.27", + "@types/express": "^4.16.1", + "@types/fs-extra": "^7.0.0", + "@types/js-beautify": "^1.8.1", + "@types/node": "^12.0.2", + "@types/q": "^1.5.2", + "typescript": "^3.4.5" + } +} diff --git a/system-apps/app-generator/nodeServer/scripts/copy.js b/system-apps/app-generator/nodeServer/scripts/copy.js new file mode 100644 index 000000000..81a06281a --- /dev/null +++ b/system-apps/app-generator/nodeServer/scripts/copy.js @@ -0,0 +1,26 @@ + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ +const fs = require('fs-extra'); + +console.log('Copy files from nodeServer folder to lib folder.'); + +fs.copySync('./node_modules','../lib/node_modules'); + +console.log('Copy Done!'); +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ diff --git a/system-apps/app-generator/nodeServer/src/controller/project.ts b/system-apps/app-generator/nodeServer/src/controller/project.ts new file mode 100644 index 000000000..b988bbede --- /dev/null +++ b/system-apps/app-generator/nodeServer/src/controller/project.ts @@ -0,0 +1,47 @@ + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ + +import { Project } from '../models/project'; +import { ProjectService } from '../service/project'; + +export class ProjectCtrl { + private projectService:ProjectService; + + constructor(private context:any) { + this.projectService = new ProjectService(this.context); + } + get():Promise { + this.context.logger.info('Getting projects'); + return this.projectService.get(); + } + create(options: Project): Promise { + this.context.logger.info('Creating project=',options.identifier); + return this.projectService.create(options); + } + edit(options: Project): Promise { + this.context.logger.info('Editing project=',options.identifier); + return this.projectService.edit(options); + } + delete(id:string): Promise { + this.context.logger.info('Deleting project=',id); + return this.projectService.delete(id); + } +} + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ diff --git a/system-apps/app-generator/nodeServer/src/models/project.ts b/system-apps/app-generator/nodeServer/src/models/project.ts new file mode 100644 index 000000000..a08dcf262 --- /dev/null +++ b/system-apps/app-generator/nodeServer/src/models/project.ts @@ -0,0 +1,33 @@ + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ + +export interface Project { + id?: number; + identifier: string; + name: string; + webContent: WebContent; + template: string; + location?: string; +} + +export interface WebContent { + framework: string; +} + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ diff --git a/system-apps/app-generator/nodeServer/src/service/project.ts b/system-apps/app-generator/nodeServer/src/service/project.ts new file mode 100644 index 000000000..5acda8426 --- /dev/null +++ b/system-apps/app-generator/nodeServer/src/service/project.ts @@ -0,0 +1,147 @@ + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ +import * as Promise from 'bluebird'; +import * as path from 'path'; +import { Project } from '../models/project' + +const fs = require('fs-extra'); +const beautify = require('js-beautify'); +const unzipper = require('unzipper'); +const ZLUX_ROOT_FOLDER = path.join(process.env['PWD'], '../../'); +const DESTINATION = process.env['INSTANCE_DIR'] ? path.join(process.env['INSTANCE_DIR'], 'workspace/app-server/pluginFolders') : ZLUX_ROOT_FOLDER; +const installApp = require(path.join(ZLUX_ROOT_FOLDER,'zlux-server-framework/utils/install-app')); + +export class ProjectService { + logger: any; + serverConfig: any; + + constructor(private context:any) { + this.context = context; + this.logger = context.logger; + this.serverConfig = context.plugin.server.config.user; + } + + get():Promise{ + return new Promise((resolve, reject)=> { + fs.readdir(DESTINATION,(err, pluginFolders)=> { + if (err) { + reject(err); + } else { + fs.readdir(this.serverConfig.pluginsDir, (err, files)=> { + if (err) { + reject(err); + } else { + let pluginJsons = files.filter(function(file){ + if (!file.endsWith('.json')) { + return false; + } else { + const name = file.substr(0,file.length-5); + return pluginFolders.includes(name); + } + }); + if (pluginJsons.length == 0){ + return resolve([]); + } + let projects:Project[] = []; + let finishedLength = pluginJsons.length; + let processed = 0; + for (let i = 0; i < finishedLength; i++) { + let folderLocation = path.join(DESTINATION, pluginJsons[i].substr(0,pluginJsons[i].length-5)); + fs.readFile(path.join(folderLocation, 'pluginDefinition.json'),'utf8',(err, content)=> { + if (!err) { + try { + let jsonContent = JSON.parse(content); + jsonContent.location = folderLocation; + projects.push(jsonContent); + } catch (e) { + //ignore + } + } + processed++; + if (processed == finishedLength) { + return resolve(projects); + } + }); + } + } + }); + } + }); + }); + } + create(options: Project): Promise { + let jsonFileName = options.identifier; + let copyFrom = path.join(__dirname, '../../', `templates/${options.webContent.framework}/${options.template}`); + const pluginLocation = path.join(DESTINATION, options.identifier); + + return new Promise((resolve, reject) => { + options.location = pluginLocation; + this.logger.info(`Installing new plugin into=${pluginLocation}`); + fs.copy(copyFrom, pluginLocation, (err)=>{ + if (err) { + console.log('err1',err); + reject(err); + } + // update pluginDefinition + let copy = Object.assign({},options); + delete copy.location; + delete copy.template; + fs.writeFile(path.join(pluginLocation, 'pluginDefinition.json'), JSON.stringify(copy, null, 2), {encoding:'utf8'}) + .then(() => { + const installResponse = installApp.addToServer(pluginLocation, this.serverConfig.pluginsDir); + if (installResponse.success === true) { + return resolve(options); + } else { + console.log('err2',installResponse); + return reject(installResponse); + } + + }) + .catch(err => { + console.log('err3',err); + return reject(err); + }); + }); + }); + } + + edit(options: Project): Promise { + return fs.writeJson(path.join(DESTINATION, options.identifier, 'pluginDefinition.json'), JSON.parse(JSON.stringify(options))) + .then(() => { + return options; + }); + } + + delete(id: string): Promise { + return fs.remove(path.join(DESTINATION, id)) + .then(() => { + this.logger.info(`Removal of plugin folder ${id} complete`); + return fs.remove(path.join(this.serverConfig.pluginsDir, `${id}.json`)) + }) + .then(() => { + this.logger.info(`Removal of plugin locator ${id}.json complete`); + return true; + }) + .catch((err) => { + throw new Error(err.message); + }) + } +} + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ diff --git a/system-apps/app-generator/nodeServer/src/starter.ts b/system-apps/app-generator/nodeServer/src/starter.ts new file mode 100644 index 000000000..697c57789 --- /dev/null +++ b/system-apps/app-generator/nodeServer/src/starter.ts @@ -0,0 +1,98 @@ + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ +import { Response, Request } from "express"; +import { Router } from "express-serve-static-core"; + +import { Project } from './models/project'; +import { ProjectCtrl } from './controller/project'; + +const express = require('express'); +const bodyParser = require('body-parser'); +const Promise = require('bluebird'); + +class appGenDataservice { + private router: Router; + private projectCtrl: ProjectCtrl; + + constructor(private context: any) { + this.context = context; + this.projectCtrl = new ProjectCtrl(this.context); + let router = express.Router(); + let self = this; + + router.use(bodyParser.urlencoded({ extended: true })); + router.use(bodyParser.json()); + + router.get('/project/get', function (req: Request, res: Response) { + self.projectCtrl.get() + .then((projects: Project[]) => { + res.status(200).json(projects); + }) + .catch(err => { + res.status(500).json(err); + }) + }); + + router.post('/project/create', function (req: Request, res: Response) { + self.projectCtrl.create(req.body) + .then((project: Project) => { + res.status(200).json(project); + }) + .catch(err => { + res.status(500).json(err); + }) + }); + + router.put('/project/edit', function (req: Request, res: Response) { + self.projectCtrl.edit(req.body) + .then((project: Project) => { + res.status(200).json(project); + }) + .catch(err => { + res.status(500).json(err); + }) + }); + + router.delete('/project/delete/:id', function (req: Request, res: Response) { + self.projectCtrl.delete(req.params.id) + .then((success: boolean) => { + res.status(200).json(success); + }) + .catch(err => { + res.status(500).json(err); + }) + }); + + this.router = router; + } + + getRouter(): Router { + return this.router; + } + +} + +exports.genRouter = function (context): Router { + return new Promise(function (resolve, reject) { + let dataservice = new appGenDataservice(context); + resolve(dataservice.getRouter()); + }); +} + +/* + This program and the accompanying materials are + made available under the terms of the Eclipse Public License v2.0 which accompanies + this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html + + SPDX-License-Identifier: EPL-2.0 + + Copyright Contributors to the Zowe Project. +*/ diff --git a/system-apps/app-generator/nodeServer/tsconfig.json b/system-apps/app-generator/nodeServer/tsconfig.json new file mode 100644 index 000000000..452e19ff8 --- /dev/null +++ b/system-apps/app-generator/nodeServer/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compileOnSave": true, + "include": [ + "src/*.ts", + ], + "compilerOptions": { + "outDir": "../lib", + "sourceMap": true, + "moduleResolution": "node", + "typeRoots": [ + "./node_modules/@types", + ], + "types": [ + "node", + "express", + "q", + "fs-extra", + "bluebird", + ] + }, + // "exclude":[ + // "node_modules" + // ] +} \ No newline at end of file diff --git a/system-apps/app-generator/pluginDefinition.json b/system-apps/app-generator/pluginDefinition.json new file mode 100644 index 000000000..b38694939 --- /dev/null +++ b/system-apps/app-generator/pluginDefinition.json @@ -0,0 +1,31 @@ +{ + "identifier": "org.zowe.zlux.generator", + "apiVersion": "1.0.0", + "pluginVersion": "1.0.0", + "pluginType": "application", + "webContent": { + "framework": "iframe", + "launchDefinition": { + "pluginShortNameKey": "PluginName", + "pluginShortNameDefault": "Zowe App Generator", + "imageSrc": "assets/icon.png" + }, + "descriptionKey": "PluginDescription", + "descriptionDefault": "App Generator for Zowe", + "defaultWindowStyle": { + "width": 1600, + "height": 800 + } + }, + "dataServices": [ + { + "type": "router", + "name": "gen", + "initializerLookupMethod": "external", + "fileName": "starter.js", + "routerFactory": "genRouter", + "dependenciesIncluded": true, + "version": "1.0.0" + } + ] +} diff --git a/system-apps/app-generator/templates/angular/Basic/.gitattributes b/system-apps/app-generator/templates/angular/Basic/.gitattributes new file mode 100644 index 000000000..2862755be --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/.gitattributes @@ -0,0 +1,53 @@ +# This .gitattributes file will cause all text files EXCEPT for +# git's .gitattributes and .gitignore files to be encoded as EBCDIC. +# Selected binary files will not be translated at all. +# The default for text files +* git-encoding=iso8859-1 zos-working-tree-encoding=ibm-1047 +# git's files (which MUST be ASCII) +.gitattributes git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 +.gitignore git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 +# Binary files, selected by file extension. +# +# Note that "Binary" really just means "Not touched when moved +# between the git repository and the working tree." In some cases +# these are actually UTF-8 or CP1251 (the usual Windows code page). +# +# If you don't have these in your tree, removing these from the +# .gitattributes file will speed up git's processing a bit. +# +# While it would make sense to have BINARY be BINARY on all platforms, +# Other platforms don't use the BINARY term, But do recognize "binary" macro +*.jpg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.crx git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.eot git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.fdt git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.fdx git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gen git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gif git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gz git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.ico git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.jar git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.jpg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.node git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.otf git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.png git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.PNG git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.resources git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.scss git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.segments_1 git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.so git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.svg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.swp git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tar git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tgz git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tii git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tis git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tree git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.ttf git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.woff git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.woff2 git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.zip git-encoding=BINARY zos-working-tree-encoding=BINARY binary +# Always use LF for npm package files because npm cli likes to change line endings. +package*.json text eol=lf +# sonar scanning +sonar-project.properties git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 diff --git a/system-apps/app-generator/templates/angular/Basic/web/assets/.gitkeep b/system-apps/app-generator/templates/angular/Basic/web/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/system-apps/app-generator/templates/angular/Basic/web/assets/icon.png b/system-apps/app-generator/templates/angular/Basic/web/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..30cabdf9f4bfdabe4f76635d26dadc03870a08e8 GIT binary patch literal 7747 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[a])&&(u=(i<3?o(u):i>3?o(t,n,u):o(t,n))||u);return i>3&&u&&Object.defineProperty(t,n,u),u};Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),i=function(){function e(){this.title="app"}return e=r([o.Component({selector:"app-root",template:n(5),styles:[n(6)]})],e)}();t.AppComponent=i},function(e,t,n){e.exports=n(3)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(4);t.pluginModule=r.AppModule;var o=n(1);t.pluginComponent=o.AppComponent},function(e,t,n){"use strict";var r=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,u=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(u=(i<3?o(u):i>3?o(t,n,u):o(t,n))||u);return i>3&&u&&Object.defineProperty(t,n,u),u};Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),i=n(1),u=function(){function e(){}return e=r([o.NgModule({declarations:[i.AppComponent],imports:[],providers:[],bootstrap:[i.AppComponent]})],e)}();t.AppModule=u},function(e,t){e.exports='\x3c!--The content below is only a placeholder and can be replaced.--\x3e\r\n
\r\n

\r\n Welcome to {{ title }}!\r\n

\r\n Angular Logo\r\n
\r\n

Here are some links to help you start:

\r\n\r\n\r\n'},function(e,t,n){(e.exports=n(7)(!1)).push([e.i,"",""]),e.exports=e.exports.toString()},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(u=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(u))))+" */"),i=r.sources.map((function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"}));return[n].concat(i).concat([o]).join("\n")}var u;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o\\r\\n
\\r\\n

\\r\\n Welcome to {{ title }}!\\r\\n

\\r\\n \\\"Angular\\r\\n
\\r\\n

Here are some links to help you start:

\\r\\n\\r\\n\\r\\n\";","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/system-apps/app-generator/templates/angular/Basic/web/main.js.map.gz b/system-apps/app-generator/templates/angular/Basic/web/main.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..19927fe6fc5ffe4710e113948737fea731614089 GIT binary patch literal 4990 zcmV-^6M^g>iwFP!000021HC$pQ{u?8|H>?{-T}J^__24py58@S5HU(n1lC=}vOeZ{#Fq!G;@9vrD$#dbs2}16Bh5g-1A@t+GcEZB`bz$KQ z=azlHU#rz*vle?Cfi2hcN3rWPoICFE2#R zZyF8?`-8$?mN$-FE2!Ci;0y|tYD=9@D_+gpV8!pL%6XC#~?q&ZTcTS=1u1tSJh zaMM==w_!SVU=z732*KcI>_p%@(D32^Y&do7C}saV@aIktk+5Doa{_DV$~h=3{CAhL zp^um&zZ(VI8~3a+yggWMjDV3~!Xbv8&`k8?5l?|*Mfi5_AcY~Q1BZ~6gpGN|05l^% zTF!C8#0t+AUXD8q2Sge1i0~`(xt7=;Ui0nHaUHZELOZj$D_97lrBD>iOu1~2)8@#r zAr>qQOoZaI#Pq<{0|(c^c0M@gaX87T11-Qk=EWx~#!5w|+ALxEzsVCm7)Af@G<*mb;dglgg=47Hg+ z1JPE{6h*0Y6=g?LD!QVWTBWIIlLkDMP_1xPQLZ!`uWR)3L#v!A+9Lp;Dau)+(ovLt z11ENx*zQzfRnh)Xar!T{G7~dkV5y23TE$SbuUdm%DnMMIy;n~VZ=^z(b^01SmkH>oD*9Q3p1< zO-;}N;k%@jxmr1^{M357#0~H>l(hMvN+2CMLfGbKQbCiDa#hFao=QUJx|IGEkZ5{Z zhOpbs4gW-KJZUZLYM#PVJJtv-HHXMv7pC^V1LC$~lO{-{ev(KPo=@ z;EswS*Hb676m45;uanwQWgk$nh@e(6(NixK{g1}^`UJoPibufT#Z+LY^Ux4t`>J4F zFhtIKhKAK2P!SE1|6D;a`s5XzWZFF`qegG%IzIcU@1PrktuEylG`|Sf{(dBaR>7aH zh~_3R4(h_WXfJIdf&&e$oc^GGF$z+m8#k3BlMxC=GKMsBR&QDl9R^FxP4t4tx;<$dn#o zPHZUsJp06WhddNvw9jM~<09|+f*($}JDLc1L^>6?!3jXceW7#kW|T8dfDNVjgh__5 zeUjn#RH z93B_=SfaC@e%2Qa;lD`eK_D>`W5VN9G5=88IV?Gh9l-GusJAED;|h5cxQ;8h_M~Pj z3kLE+!#ECr7{%2Qf?lG@?#ScBszDJ&zS-AaAqll}>>q1H&qNDqfrunhyx0nyVuwj% zD#d|yB)Tb+P)uOAb|Uu>uykCIxGj8w!{WA~hnW=j5E_M?;Gn7eBpes}oVPJYv0HfZvlT2y!M5;ZVH?lNDX{*a=r*a~;N>k)h z>nQ>gg#tY=*D68}rlNmFi#BK#Gw#XUOI6tZNf+pG_d@W-FX8RKC{{b$qzCkUZ7wXl zBl3MDl3macn;nu7IXd4F936?Rp`Q4eUK1|5yGD?t>df@l^yHQ+7I8BX`^s}b1x`e= z$C)S7a!drJ+AtsPHaO9ArfSZ&b4H-Fu904}UIrwsleZRHPb>l!+G*aH3+Q7~f(g`& z_A#D^IUJDoVebwH{AunCp~*uGoSaK{v1jAaiODl-|E;1&2@ly7CePSq_B`+g5x*

>`RKGqjbH7_$CuCqwp*yJy-#=fV=m^{m;MQo$Y5(pwa8J^l&4H z4x&3hC?Pq{xW}wAE4@!M>E36EuYApKfK3a22;IxTdnuPhJp;s(iYdKc*C6W#P80_o z1Giy=s8(aWiIbSow(N;B@R(4`>k6IOVLTFMwApM1^Hb%N}Muo2iGk^;UBoH*ryobr-mg9;?z5uUS1SSeZFh|S}O zarpBhpG6a?s7o;XcV<13)qPNX!tFs`Z~CKS$G~xv zS#iY{Ng(FM$I4V`H9jkHa`Kz?Z?Iu`g@Ys48t2JdA*0gXXoY^&#UKk}XJzh%Fcr>D z+#LcULna}mMORr9)_Xy8iAUl{nAZiMqj+MaObj^!V$ie=@>OTRs{}iE2Yb#vH({|i zI71GdOl+bUm>P{imS7VrnEBo^(aD<>MwnKU&`&LfRmO_Mo5cl$&xcJo{MCu&d?bn5 zWOcPN`I^u(%Ldv}%$P^*y$&n79 zKw%}A{l>QU1wKrxR+?f*l{A0z*E4n?JvqS`2)HhjHDT^hcuGu3CiKErQ}{I#9leK7m_4iZIncB(x_%u-i#cV5)YSJ=`O;|B`LPXkF1LAsH?ZD{ zTCSn*=77Ca@v4HfK$FTTYZBNC*CPb-PeVwnQ;@CZSiG#VB0l6UkCtq~qY3kTZ!1Z? zGX1~leqP@FX40U~IU~yKmnl&ASm);vyS8t7IDC7}ijvFxA||^wrJha1 zF#2~;<>_@|?iBU@2LB+vClMG!dRyW)e7t0b}T=VU->o>veFf5jD5c;KzPa!O`T`LS({#ubq z?&!)9bb-7HDPHiA-VcN9>762ON5x&Zd{1;yeRT^i5akhMbWHerJl!TO+yI z{3m0i6IM7_A-9PX*)gG!m@$8a3KkHZYz4FEyOG9{m#h+Ybu7Jhh0&xhy?%whJl1!t zDYfv-5}U2L_@MCZ!`2p_F6FH(>qv8gG`b`O51{e>~zJ2flg5FrrhKuRM|De6XV&Foc-}RpohNf)HcpxbSMSfe zCvAb#T#Tm15@pmB+TWw`}$FCGhpwYv{{%S9vmzH_=kY zS2H&pHtO7{Uo|i8;h!7hD|qkqXx_HT5y#J+)^rTKkAd!$Z%*~Ny|Z{UyL-E>p7FUg zJ@MO(`?%c{eIPgX836wz=@TAjR(}Nk_JFS^ORGO2e0y21o1h<~p~Jk+qBV7YH@Na} zKK8*DiwAr6$~zw)9_AeJTMe8xX-{_kJa%AzZoz+u?&xywK18RSIPRP+{TSTa3gEN_ z4!M)eirvgLU7mAl#P`i&FawrwB6>S?E$^PZGH_h#@_bk`JrNvi5;%9%JBgxsxL>Qu ztX1WHEs9}@;Fe3w_xw1((*dySJK?vQ^=FPFjF%iE|L07NVfz*jF)t?kCBIv?%WDgM z&xuK`Ww3^C!?xFpC@ua!^Eq_=aW$twVk$`wIQSkv-)gB{<+E^*eG`@LG;^6WD_2&l zwd%kA25V3#m#7Sdn-JLO$W=k?eZ-NCYBQ2h6+gTw$@)?iPnEb;5>HY5^knrUL-O(C zN2dQcKfCC4+0n(BnG8#g7>w5j-kLzG9qAdoR7OSAK4M|iGEju@0Un!o{}=MOn7{HOjLc90?aEA;OJYv3VYc>IRd z4AsT(lb;G4c5uJxjM#7~%7dwLH%O80a`WFO$;vw(9q>CP0K2{s+fCeS23etuM$^)J zh?^5+Mx4PA905|*z$h%)|7!k;V=4p2^#DZlYr0~6rQOkA&osRVjE7=Us%4DpF=1oWPqaaQm*1> zR3&sx!P`rwW4ZIP)-;@!I&dJ>Fke3bVi`643M-W}t4JjXu|_bEpM(J;36tqCyS^4j z-4rdw(#=8c&SK*SUTKMb<+|aJ)eqq3o3OL^0t`AneR^eJj`c)@x#l<5^_#ryqyPv( zynFF%2)>>1K8QARbj_*mom74^Qy_ae)}*BGaR*+J)n$`=5LrkL@A*8fF>%R4ny6AR z6b^@7CtU$>Tj}``+pgFDn?a=CVYwI!1Pg};BVkYW3k`}TgCY0Cb~=Yt7P#^^7byd9 zR_8zs_K!2L4pkXO{O%5xbnxa3HwVe{7!5XogeBNraMxv?^8i`Vw{2KtOUKSq4p~cJ zlTpzuoMD|AR*~2nfqu#xjE7-WzoCL?Wqhx0pD`jCyj&fWP;CoV&1MxKjY%?>|k zeRY>w&R>PDeCdjD>%*B2W2Kbi;NUepe#$DA1qo7>H`1>b715isvXr4%`}kiOs>32? z{MWefb6DsXFVHBmkF{cw)nyV-5nfBJ+*HNqv!#sBa?*9ZBI}J@8H%v4DwgxwTtm4E z_agT<%E+2y$kRC;U?E{{Y&H$eurF5ze3ItEz5g%M281bEUc`k22DaIRd|K1 z66L?zH1xd#dtwD4?1kg#ZtF{ObVcil=D~^r$;dcJM5F +

+

+ Welcome to {{ title }}! +

+ Angular Logo +
+

Here are some links to help you start:

+ + diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.component.ts b/system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.component.ts new file mode 100644 index 000000000..a5f44c27c --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'] +}) +export class AppComponent { + title = 'app'; +} diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.module.ts b/system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.module.ts new file mode 100644 index 000000000..d95ac459b --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/src/app/app.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; + +import { AppComponent } from './app.component'; + + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/src/assets/.gitkeep b/system-apps/app-generator/templates/angular/Basic/webClient/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/src/assets/icon.png b/system-apps/app-generator/templates/angular/Basic/webClient/src/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..30cabdf9f4bfdabe4f76635d26dadc03870a08e8 GIT binary patch literal 7747 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 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + + +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. +import 'core-js/es7/reflect'; + + +/** + * Required to support Web Animations `@angular/platform-browser/animations`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + + // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + + /* + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + */ +// (window as any).__Zone_enable_cross_context_check = true; + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/src/typings.d.ts b/system-apps/app-generator/templates/angular/Basic/webClient/src/typings.d.ts new file mode 100644 index 000000000..3afe9fa0b --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/src/typings.d.ts @@ -0,0 +1,5 @@ +/* SystemJS module definition */ +declare var module: NodeModule; +interface NodeModule { + id: string; +} diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/tsconfig.json b/system-apps/app-generator/templates/angular/Basic/webClient/tsconfig.json new file mode 100644 index 000000000..ee7d3177f --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "${MVD_DESKTOP_DIR}/plugin-config/tsconfig.strict.json" +} diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/tsedit.js b/system-apps/app-generator/templates/angular/Basic/webClient/tsedit.js new file mode 100644 index 000000000..207072007 --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/tsedit.js @@ -0,0 +1,18 @@ +if (process.env.MVD_DESKTOP_DIR == null) { + throw new Error('You must specify MVD_DESKTOP_DIR in your environment'); +} + +const fs = require('fs'); + +fs.copyFileSync('tsconfig.json', 'tsconfig.json.tmp'); +fs.copyFileSync('tslint.json', 'tslint.json.tmp'); +let tsconfig = fs.readFileSync('tsconfig.json', {encoding: 'utf8'}); +let tslint = fs.readFileSync('tslint.json', {encoding: 'utf8'}); +tsconfig = tsconfig.replace(/\$\{MVD_DESKTOP_DIR\}/g, process.env.MVD_DESKTOP_DIR); +fs.writeFileSync('tsconfig.json',tsconfig); +console.log('Set MVD_DESKTOP_DIR references into tsconfig.json'); + +tslint = tslint.replace(/\$\{MVD_DESKTOP_DIR\}/g, process.env.MVD_DESKTOP_DIR); +fs.writeFileSync('tslint.json',tslint); + +console.log('Set MVD_DESKTOP_DIR references in tslint.json'); diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/tslint.json b/system-apps/app-generator/templates/angular/Basic/webClient/tslint.json new file mode 100644 index 000000000..c99f5eddc --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "${MVD_DESKTOP_DIR}/plugin-config/tslint.base.json" +} diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/tsrestore.js b/system-apps/app-generator/templates/angular/Basic/webClient/tsrestore.js new file mode 100644 index 000000000..28ec1f939 --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/tsrestore.js @@ -0,0 +1,8 @@ +const fs = require('fs'); + +fs.copyFileSync('tsconfig.json.tmp', 'tsconfig.json'); +console.log('Reset tsconfig.json'); +fs.copyFileSync('tslint.json.tmp', 'tslint.json'); +console.log('Reset tslint.json'); +fs.unlinkSync('tsconfig.json.tmp'); +fs.unlinkSync('tslint.json.tmp'); diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/webpack.config.js b/system-apps/app-generator/templates/angular/Basic/webClient/webpack.config.js new file mode 100644 index 000000000..b2a8ebf5a --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/webpack.config.js @@ -0,0 +1,40 @@ +const path = require('path'); +const fs = require('fs'); +const webpackConfig = require('webpack-config'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const CompressionPlugin = require('compression-webpack-plugin'); + +if (process.env.MVD_DESKTOP_DIR == null) { + throw new Error('You must specify MVD_DESKTOP_DIR in your environment'); +} +try { + var config = { + 'entry': [ + path.resolve(__dirname, './src/plugin.ts') + ], + 'output': { + 'path': path.resolve(__dirname, '../web'), + 'filename': 'main.js', + }, + 'plugins': [ + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, './src/assets'), + to: path.resolve('../web/assets') + } + ]), + new CompressionPlugin({ + threshold: 10000, + minRatio: 0.8 + }) + ] + }; + + module.exports = new webpackConfig.Config() + .extend(path.resolve(process.env.MVD_DESKTOP_DIR, 'plugin-config/webpack.base.js')) + .merge(config); +} catch (e) { + fs.copyFileSync('tsconfig.json.tmp', 'tsconfig.json'); + fs.copyFileSync('tslint.json.tmp', 'tslint.json'); + throw e; +} diff --git a/system-apps/app-generator/templates/angular/Basic/webClient/xliffmerge.json b/system-apps/app-generator/templates/angular/Basic/webClient/xliffmerge.json new file mode 100644 index 000000000..13a7713c3 --- /dev/null +++ b/system-apps/app-generator/templates/angular/Basic/webClient/xliffmerge.json @@ -0,0 +1,13 @@ +{ + "xliffmergeOptions": { + "srcDir": "src/assets/i18n", + "genDir": "src/assets/i18n", + "i18nFile": "messages.xlf", + "i18nBaseFile": "messages", + "i18nFormat": "xlf", + "encoding": "UTF-8", + "defaultLanguage": "en", + "languages": ["ru", "ja", "fr", "zh", "de"], + "useSourceAsTarget": true + } +} diff --git a/system-apps/app-generator/templates/iframe/Basic/.gitattributes b/system-apps/app-generator/templates/iframe/Basic/.gitattributes new file mode 100644 index 000000000..2862755be --- /dev/null +++ b/system-apps/app-generator/templates/iframe/Basic/.gitattributes @@ -0,0 +1,53 @@ +# This .gitattributes file will cause all text files EXCEPT for +# git's .gitattributes and .gitignore files to be encoded as EBCDIC. +# Selected binary files will not be translated at all. +# The default for text files +* git-encoding=iso8859-1 zos-working-tree-encoding=ibm-1047 +# git's files (which MUST be ASCII) +.gitattributes git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 +.gitignore git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 +# Binary files, selected by file extension. +# +# Note that "Binary" really just means "Not touched when moved +# between the git repository and the working tree." In some cases +# these are actually UTF-8 or CP1251 (the usual Windows code page). +# +# If you don't have these in your tree, removing these from the +# .gitattributes file will speed up git's processing a bit. +# +# While it would make sense to have BINARY be BINARY on all platforms, +# Other platforms don't use the BINARY term, But do recognize "binary" macro +*.jpg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.crx git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.eot git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.fdt git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.fdx git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gen git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gif git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gz git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.ico git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.jar git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.jpg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.node git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.otf git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.png git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.PNG git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.resources git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.scss git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.segments_1 git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.so git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.svg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.swp git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tar git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tgz git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tii git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tis git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tree git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.ttf git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.woff git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.woff2 git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.zip git-encoding=BINARY zos-working-tree-encoding=BINARY binary +# Always use LF for npm package files because npm cli likes to change line endings. +package*.json text eol=lf +# sonar scanning +sonar-project.properties git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 diff --git a/system-apps/app-generator/templates/iframe/Basic/web/assets/.gitkeep b/system-apps/app-generator/templates/iframe/Basic/web/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/system-apps/app-generator/templates/iframe/Basic/web/assets/icon.png b/system-apps/app-generator/templates/iframe/Basic/web/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c2dd07e5da6e88db719b4f825a228d922e3584a1 GIT binary patch literal 14568 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 SJVQ4C0000 + + + Iframe Basic + + + + + + + + + +

Loading or failed...

+ + diff --git a/system-apps/app-generator/templates/iframe/Basic/web/js/main.js b/system-apps/app-generator/templates/iframe/Basic/web/js/main.js new file mode 100644 index 000000000..4fb085998 --- /dev/null +++ b/system-apps/app-generator/templates/iframe/Basic/web/js/main.js @@ -0,0 +1,29 @@ +var isReady = false +var pluginDef; + +window.addEventListener('message', (message)=> { + const data = message.data; + if(data.constructorData){ + pluginDef = data.constructorData.pluginDef.basePlugin; + if (ready) { + greeting(); + } + } +}); + +function ready() { + isReady = true; + if (ZoweZLUX) { + ZoweZLUX.iframe.windowActions.setTitle(`Hello, world!`); + } + if (pluginDef) { + greeting(); + } +}; + +function greeting() { + const message = `Welcome to ${pluginDef.webContent.descriptionDefault} (${pluginDef.identifier})`; + document.getElementById('message').innerHTML = message; + const logger = ZoweZLUX.logger.makeComponentLogger(pluginDef.identifier); + logger.info(message); +} diff --git a/system-apps/app-generator/templates/react/Basic/.gitattributes b/system-apps/app-generator/templates/react/Basic/.gitattributes new file mode 100644 index 000000000..2862755be --- /dev/null +++ b/system-apps/app-generator/templates/react/Basic/.gitattributes @@ -0,0 +1,53 @@ +# This .gitattributes file will cause all text files EXCEPT for +# git's .gitattributes and .gitignore files to be encoded as EBCDIC. +# Selected binary files will not be translated at all. +# The default for text files +* git-encoding=iso8859-1 zos-working-tree-encoding=ibm-1047 +# git's files (which MUST be ASCII) +.gitattributes git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 +.gitignore git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 +# Binary files, selected by file extension. +# +# Note that "Binary" really just means "Not touched when moved +# between the git repository and the working tree." In some cases +# these are actually UTF-8 or CP1251 (the usual Windows code page). +# +# If you don't have these in your tree, removing these from the +# .gitattributes file will speed up git's processing a bit. +# +# While it would make sense to have BINARY be BINARY on all platforms, +# Other platforms don't use the BINARY term, But do recognize "binary" macro +*.jpg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.crx git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.eot git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.fdt git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.fdx git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gen git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gif git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.gz git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.ico git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.jar git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.jpg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.node git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.otf git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.png git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.PNG git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.resources git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.scss git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.segments_1 git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.so git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.svg git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.swp git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tar git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tgz git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tii git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tis git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.tree git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.ttf git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.woff git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.woff2 git-encoding=BINARY zos-working-tree-encoding=BINARY binary +*.zip git-encoding=BINARY zos-working-tree-encoding=BINARY binary +# Always use LF for npm package files because npm cli likes to change line endings. +package*.json text eol=lf +# sonar scanning +sonar-project.properties git-encoding=iso8859-1 zos-working-tree-encoding=iso8859-1 diff --git a/system-apps/app-generator/templates/react/Basic/pluginDefinition.json b/system-apps/app-generator/templates/react/Basic/pluginDefinition.json new file mode 100644 index 000000000..84ca4266c --- /dev/null +++ b/system-apps/app-generator/templates/react/Basic/pluginDefinition.json @@ -0,0 +1 @@ +{"identifier":"org.zowe.generator-react"} diff --git a/system-apps/app-generator/templates/react/Basic/web/assets/icon.png b/system-apps/app-generator/templates/react/Basic/web/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2a282c248471f136b11acb50f3129fa9573d66aa GIT binary patch literal 6176 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 + + + + + + diff --git a/system-apps/app-generator/templates/react/Basic/web/main.js b/system-apps/app-generator/templates/react/Basic/web/main.js new file mode 100644 index 000000000..0520e7ace --- /dev/null +++ b/system-apps/app-generator/templates/react/Basic/web/main.js @@ -0,0 +1,32 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var l=t[r]={i:r,l:!1,exports:{}};return e[r].call(l.exports,l,l.exports,n),l.l=!0,l.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(r,l,function(t){return e[t]}.bind(null,l));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=4)}([function(e,t,n){"use strict";e.exports=n(6)},function(e,t,n){"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var r=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,u=i(e),c=1;cM.length&&M.push(e)}function D(e,t,n){return null==e?0:function e(t,n,r,l){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var u=!1;if(null===t)u=!0;else switch(a){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case o:case i:u=!0}}if(u)return r(l,t,""===n?"."+A(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;cthis.eventPool.length&&this.eventPool.push(e)}function pe(e){e.eventPool=[],e.getPooled=fe,e.release=de}l(se.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ue)},persist:function(){this.isPersistent=ue},isPersistent:ce,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=ce,this._dispatchInstances=this._dispatchListeners=null}}),se.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},se.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return l(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=l({},r.Interface,e),n.extend=r.extend,pe(n),n},pe(se);var me=se.extend({data:null}),he=se.extend({data:null}),ve=[9,13,27,32],ye=q&&"CompositionEvent"in window,ge=null;q&&"documentMode"in document&&(ge=document.documentMode);var be=q&&"TextEvent"in window&&!ge,ke=q&&(!ye||ge&&8=ge),xe=String.fromCharCode(32),we={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},_e=!1;function Te(e,t){switch(e){case"keyup":return-1!==ve.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Se(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Ee=!1;var Ce={eventTypes:we,extractEvents:function(e,t,n,r){var l=void 0,o=void 0;if(ye)e:{switch(e){case"compositionstart":l=we.compositionStart;break e;case"compositionend":l=we.compositionEnd;break e;case"compositionupdate":l=we.compositionUpdate;break e}l=void 0}else Ee?Te(e,n)&&(l=we.compositionEnd):"keydown"===e&&229===n.keyCode&&(l=we.compositionStart);return l?(ke&&"ko"!==n.locale&&(Ee||l!==we.compositionStart?l===we.compositionEnd&&Ee&&(o=ae()):(oe="value"in(le=r)?le.value:le.textContent,Ee=!0)),l=me.getPooled(l,t,n,r),o?l.data=o:null!==(o=Se(n))&&(l.data=o),Q(l),o=l):o=null,(e=be?function(e,t){switch(e){case"compositionend":return Se(t);case"keypress":return 32!==t.which?null:(_e=!0,xe);case"textInput":return(e=t.data)===xe&&_e?null:e;default:return null}}(e,n):function(e,t){if(Ee)return"compositionend"===e||!ye&&Te(e,t)?(e=ae(),ie=oe=le=null,Ee=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1