diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a4e8b26..e79bcade 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,32 @@ + + +### Bug Fixes +* **sandboxes.ts:** The `sandboxes.ts` file is no longer generated in the root of the consuming application's + project. Instead, `sandboxes.ts` is modified and referenced entirely within + `angular-playground` ([1fda77f](https://github.com/SoCreate/angular-playground/commit/1fda77f)). +* **sandbox chunking:** Sandbox scenarios are individually chunked and loaded, meaning that your + component sandboxes are once again truly isolated. This functionality + was affected by the `@angular/cli` 1.6.2 update + ([1fda77f](https://github.com/SoCreate/angular-playground/commit/1fda77f)). + + Before we had you change `tsconfig.app.json` to use `esnext` modules: + ``` + # tsconfig.app.json + { + ... + "module": "esnext" + } + ``` + + Now there's no need to change it from the Angular CLI's default: + ``` + # tsconfig.app.json + { + ... + "module": "es2015" + } + ``` + # 3.0.0 (2017-12-01) diff --git a/examples/example-app-angular-cli/.angular-cli.json b/examples/cli-example/.angular-cli.json similarity index 73% rename from examples/example-app-angular-cli/.angular-cli.json rename to examples/cli-example/.angular-cli.json index 0f7e7f4b..158d8aa7 100644 --- a/examples/example-app-angular-cli/.angular-cli.json +++ b/examples/cli-example/.angular-cli.json @@ -1,7 +1,7 @@ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "project": { - "name": "angular-playground" + "name": "cli-example" }, "apps": [ { @@ -17,9 +17,9 @@ "test": "test.ts", "tsconfig": "tsconfig.app.json", "testTsconfig": "tsconfig.spec.json", - "prefix": "ex", + "prefix": "app", "styles": [ - "styles.scss" + "styles.css" ], "scripts": [], "environmentSource": "environments/environment.ts", @@ -31,7 +31,7 @@ { "name": "playground", "root": "src", - "outDir": "dist-playground", + "outDir": "dist", "assets": [ "assets", "favicon.ico" @@ -40,6 +40,7 @@ "main": "main.playground.ts", "polyfills": "polyfills.ts", "tsconfig": "tsconfig.app.json", + "prefix": "app", "environmentSource": "environments/environment.ts", "environments": { "dev": "environments/environment.ts", @@ -47,15 +48,23 @@ } } ], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, "lint": [ { - "project": "src/tsconfig.app.json" + "project": "src/tsconfig.app.json", + "exclude": "**/node_modules/**" }, { - "project": "src/tsconfig.spec.json" + "project": "src/tsconfig.spec.json", + "exclude": "**/node_modules/**" }, { - "project": "e2e/tsconfig.e2e.json" + "project": "e2e/tsconfig.e2e.json", + "exclude": "**/node_modules/**" } ], "test": { @@ -64,7 +73,7 @@ } }, "defaults": { - "styleExt": "scss", + "styleExt": "css", "component": {} } } diff --git a/examples/example-app-angular-cli/.editorconfig b/examples/cli-example/.editorconfig similarity index 100% rename from examples/example-app-angular-cli/.editorconfig rename to examples/cli-example/.editorconfig diff --git a/examples/example-app-angular-cli/.gitignore b/examples/cli-example/.gitignore similarity index 64% rename from examples/example-app-angular-cli/.gitignore rename to examples/cli-example/.gitignore index 7111de6f..b6b5f62c 100644 --- a/examples/example-app-angular-cli/.gitignore +++ b/examples/cli-example/.gitignore @@ -1,26 +1,35 @@ # See http://help.github.com/ignore-files/ for more about ignoring files. +src/sandboxes.ts + # compiled output /dist /tmp +/out-tsc # dependencies /node_modules -/bower_components # IDEs and editors /.idea -/.vscode .project .classpath .c9/ *.launch .settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json # misc /.sass-cache /connect.lock -/coverage/* +/coverage /libpeerconnection.log npm-debug.log testem.log @@ -30,9 +39,6 @@ testem.log /e2e/*.js /e2e/*.map -#System Files +# System Files .DS_Store Thumbs.db -/debug.log -/src/sandboxes.ts -/src/my-sandboxes diff --git a/examples/cli-example/README.md b/examples/cli-example/README.md new file mode 100644 index 00000000..90ca5926 --- /dev/null +++ b/examples/cli-example/README.md @@ -0,0 +1,27 @@ +# CliExample + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/examples/cli-example/angular-playground.json b/examples/cli-example/angular-playground.json new file mode 100644 index 00000000..470a5dbf --- /dev/null +++ b/examples/cli-example/angular-playground.json @@ -0,0 +1,6 @@ +{ + "sourceRoot": "src", + "angularCli": { + "appName": "playground" + } +} \ No newline at end of file diff --git a/examples/cli-example/e2e/app.e2e-spec.ts b/examples/cli-example/e2e/app.e2e-spec.ts new file mode 100644 index 00000000..0ebb7571 --- /dev/null +++ b/examples/cli-example/e2e/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { AppPage } from './app.po'; + +describe('cli-example App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getParagraphText()).toEqual('Welcome to app!'); + }); +}); diff --git a/examples/cli-example/e2e/app.po.ts b/examples/cli-example/e2e/app.po.ts new file mode 100644 index 00000000..82ea75ba --- /dev/null +++ b/examples/cli-example/e2e/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get('/'); + } + + getParagraphText() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/examples/cli-example/e2e/tsconfig.e2e.json b/examples/cli-example/e2e/tsconfig.e2e.json new file mode 100644 index 00000000..1d9e5edf --- /dev/null +++ b/examples/cli-example/e2e/tsconfig.e2e.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "baseUrl": "./", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/examples/example-app-angular-cli/karma.conf.js b/examples/cli-example/karma.conf.js similarity index 100% rename from examples/example-app-angular-cli/karma.conf.js rename to examples/cli-example/karma.conf.js diff --git a/examples/example-app-angular-cli/package-lock.json b/examples/cli-example/package-lock.json similarity index 87% rename from examples/example-app-angular-cli/package-lock.json rename to examples/cli-example/package-lock.json index c8ff0d6d..f558ad3d 100644 --- a/examples/example-app-angular-cli/package-lock.json +++ b/examples/cli-example/package-lock.json @@ -1,13 +1,13 @@ { - "name": "example-app", + "name": "cli-example", "version": "0.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@angular-devkit/build-optimizer": { - "version": "0.0.35", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.0.35.tgz", - "integrity": "sha512-7JxZZAYFSCc0tP6+NrRn3b2Cd1b9d+a3+OfwVNyNsNd2unelqUMko2hm0KLbC8BXcXt/OILg1E/ZgLAXSS47nw==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.0.36.tgz", + "integrity": "sha512-EFFF7hBbVoTOzYfXuSlGhcDr8neafmwuBAIkzAekEjzik7OaTLq7LPG7As+ebed9ll+3DAGypnrpdIE1Tp/H/A==", "dev": true, "requires": { "loader-utils": "1.1.0", @@ -34,42 +34,42 @@ } }, "@angular-devkit/schematics": { - "version": "0.0.41", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.0.41.tgz", - "integrity": "sha512-eSXyRLM7g9NvNUwDd71iPjHEL0Zutg9PcLUSCrwFXR3Z8S6iStO2FpZACNmz5/Y7ksWLy5/1wjLuDJCHS4X/ig==", + "version": "0.0.42", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.0.42.tgz", + "integrity": "sha512-elTiNL0Nx9oin2pfZTvMBU/d9sgutXaZe8n3xm2p7jfqQZry5MYYFES4hq+WIJjtV/X9gAniafncEpxuF7ikYw==", "dev": true, "requires": { "@angular-devkit/core": "0.0.22", "@ngtools/json-schema": "1.1.0", - "@schematics/schematics": "0.0.10", + "@schematics/schematics": "0.0.11", "minimist": "1.2.0", - "rxjs": "5.5.2" + "rxjs": "5.5.6" } }, "@angular/animations": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.0.0.tgz", - "integrity": "sha1-ta0ZnGf5P3WVREd+/+ZnnhVJkfs=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.1.2.tgz", + "integrity": "sha512-so2i0He4Fh5YuvujC68k2/Hzyy56/vZAUmLTXHE+9f4RatjqV68LISseFXqcS8bhVuT7AD2ZEbHnM7nWhgDaTg==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/cli": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.6.0.tgz", - "integrity": "sha512-X049QAgSKy5J48byyo3T6iBTHubTC66QBMshMpTT7PWAaSq3HpPPE1xW0WwgFIXZWMQIsmncaqPwmnFmxljUdw==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.6.2.tgz", + "integrity": "sha512-Qc6AD37ASJjhbYkDgWQOniEl+XDLWDydqPOZ0kPQhbrJk49PoM1HNZfCD1FmIZFTT/eFEVsaexc/rKw0KckvSA==", "dev": true, "requires": { - "@angular-devkit/build-optimizer": "0.0.35", - "@angular-devkit/schematics": "0.0.41", + "@angular-devkit/build-optimizer": "0.0.36", + "@angular-devkit/schematics": "0.0.42", "@ngtools/json-schema": "1.1.0", - "@ngtools/webpack": "1.9.0", - "@schematics/angular": "0.1.10", + "@ngtools/webpack": "1.9.2", + "@schematics/angular": "0.1.11", "autoprefixer": "6.7.7", "chalk": "2.2.2", "circular-dependency-plugin": "4.3.0", - "common-tags": "1.5.1", - "copy-webpack-plugin": "4.2.3", + "common-tags": "1.6.0", + "copy-webpack-plugin": "4.3.1", "core-object": "3.1.5", "css-loader": "0.28.7", "cssnano": "3.10.0", @@ -77,7 +77,7 @@ "ember-cli-string-utils": "1.1.0", "exports-loader": "0.6.4", "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", + "file-loader": "1.1.6", "fs-extra": "4.0.3", "glob": "7.1.2", "html-webpack-plugin": "2.30.1", @@ -86,6 +86,7 @@ "less": "2.7.3", "less-loader": "4.0.5", "license-webpack-plugin": "1.1.1", + "loader-utils": "1.1.0", "lodash": "4.17.4", "memory-fs": "0.4.1", "minimatch": "3.0.4", @@ -98,8 +99,8 @@ "postcss-loader": "2.0.9", "postcss-url": "7.3.0", "raw-loader": "0.5.1", - "resolve": "1.4.0", - "rxjs": "5.5.2", + "resolve": "1.5.0", + "rxjs": "5.5.6", "sass-loader": "6.0.6", "semver": "5.4.1", "silent-error": "1.1.0", @@ -108,135 +109,97 @@ "style-loader": "0.13.2", "stylus": "0.54.5", "stylus-loader": "3.0.1", - "uglifyjs-webpack-plugin": "1.1.2", + "uglifyjs-webpack-plugin": "1.1.5", "url-loader": "0.6.2", "webpack": "3.10.0", - "webpack-concat-plugin": "1.4.2", "webpack-dev-middleware": "1.12.2", "webpack-dev-server": "2.9.7", "webpack-merge": "4.1.1", "webpack-sources": "1.1.0", "webpack-subresource-integrity": "1.0.3", "zone.js": "0.8.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", - "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } } }, "@angular/common": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.0.0.tgz", - "integrity": "sha1-+W1mpRe5ldG6mygwnxXC41lnWCU=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.1.2.tgz", + "integrity": "sha512-MqgMwsHXxxx8vmQrUFwhNcAg29eqClJdnMJ81DlD7XvEexyXxxoFrxnNea+aB3BUC1AzU0fEy24ngygmhjRmfw==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/compiler": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.0.0.tgz", - "integrity": "sha1-uf+/GMijnYt9rOxHMZOpDiTMK8k=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.1.2.tgz", + "integrity": "sha512-asTrlMWRe24EzejBwBFVSfq3ZbYI9Xr9NbNtkHK4DRHutDA1wn5PQE5lHuUTNW2B/dmm9pm+5JTVtcbue0nEug==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/compiler-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.0.0.tgz", - "integrity": "sha1-Dsu5N9hKT43ZTwwqR7B9LkaUyFM=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.1.2.tgz", + "integrity": "sha512-dtSVF8RnxYCDSCDbWNv3xg379xAN/1s6odpF5lFyemUi/p2U9mkeXtHo5Y74PX/kdoVnXrTY8bCNnQPm3sHVZA==", "dev": true, "requires": { "chokidar": "1.7.0", "minimist": "1.2.0", "reflect-metadata": "0.1.10", - "tsickle": "0.24.1" + "tsickle": "0.25.6" } }, "@angular/core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.0.0.tgz", - "integrity": "sha1-T5dqIl993fNJkvLK2CTJVDpG9Mg=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.1.2.tgz", + "integrity": "sha512-nHQWvhdxg7RbhRcfV5EhWURUZBqtcBFajXTBYA2rVHPhm0lGqEUi38VW0ddO8MpPGz0pK2PNpgR3GwXp/egaNw==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/forms": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.0.0.tgz", - "integrity": "sha1-x/3fo1OWdZrphSkgowzdqMQe0d4=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.1.2.tgz", + "integrity": "sha512-IQRZ2KF4303ga9nTzjU223steFLcaRrFyakM/+x8Hu1otzLeIoFiyDaFPBHtUvoRN14JlKusIi9m407mM2oNJQ==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/http": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.0.0.tgz", - "integrity": "sha1-Byiivgz7sHhyfF64fUyF1T/smlE=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.1.2.tgz", + "integrity": "sha512-LvOgVPCxOii2TH8r8UrXQJjqrbgrt/HTNOtqqT1/CmemsnbGcBiYAnt5yiZ2aYQuop4RZLhQ/UpuSMLur9XPtg==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/language-service": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.0.0.tgz", - "integrity": "sha1-bMu2n0dXJw3QTsWFfTdjSy8CxAw=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.1.2.tgz", + "integrity": "sha512-oFov/UQyvW3CJESJvC1nI0xSsWOc4Mx5N0Tbah9g2cryShT5PoFGDUE8+Pu5Yjl3uu+iNMnQ4F+J2DDRmyJTWQ==", "dev": true }, "@angular/platform-browser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.0.0.tgz", - "integrity": "sha1-xwOPfN6AcFtiAUiXIx4YLuyXb+0=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.1.2.tgz", + "integrity": "sha512-L78ijQ81tEh6nnOq2BqCDtbhqLbARs/2A9QZvEhMTTFu5MOQH0yk0VrjNv58Lch9yOj04EH/Qi7Wep2vFqb57g==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/platform-browser-dynamic": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.0.0.tgz", - "integrity": "sha1-iH4QbIsQOwQVz2FWpCXabYP0yJ0=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.1.2.tgz", + "integrity": "sha512-LMMgG1RRngIMvU19+NFRUe2+2gKgzMpwddBVDondi71EqcfumD6NN343lNcHv5/5oWuJdaAx94A29qpAjyVt5Q==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@angular/router": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.0.0.tgz", - "integrity": "sha1-/ktSGmc4QIvOMPk6U0mRQMk6T3Y=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.1.2.tgz", + "integrity": "sha512-gNP2vPTQLlpiRE6tRdZY9CHYs+XhYsiR6wAfUInMvJAocA6a2mQs4qPILJjus8WbcASDzU51C+sgHF++4gz+Qg==", "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "@ngtools/json-schema": { @@ -246,9 +209,9 @@ "dev": true }, "@ngtools/webpack": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.9.0.tgz", - "integrity": "sha512-+9EFOELj9D7zarsKTiIFSbTL2Pr3jYdRJ/cEuSoTxzZUDq7f3urq9ILbcy3DTaDlZs2CCYKwgz+In8QnDtw4fg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.9.2.tgz", + "integrity": "sha512-jM5XMwHt94qxIe9kJS3Bmz8EfZgsC2H7fVcTSEd/dgyL5C89uZJfj5ueO9yEERpnXufvALBMfUxfODTcPX01iw==", "dev": true, "requires": { "chalk": "2.2.2", @@ -258,58 +221,21 @@ "semver": "5.4.1", "source-map": "0.5.7", "tree-kill": "1.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", - "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } } }, "@schematics/angular": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.1.10.tgz", - "integrity": "sha512-ykq4FL0WTygkpvIcGDxnxHHT2uvJMWseDeAujmfyZpzdT9X22GOTURNo3LjvOIhhVUpMVZvnAYqjV46KqB702g==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.1.11.tgz", + "integrity": "sha512-jYTantZjdYeDjxh9ZLYvGbDI0VeUxgSrcBjHvnHqMNe+YGJenY988ifWCwzjmOowj57maLrQQGrdoO7oUeNdyw==", "dev": true, "requires": { "@angular-devkit/core": "0.0.22" } }, "@schematics/schematics": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.0.10.tgz", - "integrity": "sha512-9vr9W1X6oRp42pbiGRIk3L+T6SoFtHlAGrzbh6rbFQDNXT4UCHarqDigow+DEL6PR2ptXZO9WeLcad4it7zNyA==", + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.0.11.tgz", + "integrity": "sha512-HAXgAIuuAGjiIKohGlRUkmUTWYtNmclR12KHlQQxT9pHFdEb2OrpHjUp2YoV32jiU6jIZm4pf3ODwlPA0VbwnA==", "dev": true }, "@types/jasmine": { @@ -328,9 +254,9 @@ } }, "@types/node": { - "version": "6.0.88", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", - "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==", + "version": "6.0.95", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.95.tgz", + "integrity": "sha512-d1Twx1NM49dQ7jbNZfaHTQWuYL9cFVrGxYpbc3BvMf4626lOJOZnp2aJQNB9vP/WX3UOe1TrTUMABrGRu6FZhg==", "dev": true }, "@types/q": { @@ -340,9 +266,9 @@ "dev": true }, "@types/selenium-webdriver": { - "version": "2.53.42", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz", - "integrity": "sha1-dMt3+2BS7a/yqJhN2v2I1BnyXKw=", + "version": "2.53.43", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz", + "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==", "dev": true }, "abbrev": { @@ -415,15 +341,15 @@ } }, "ajv": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", - "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -468,10 +394,13 @@ "dev": true }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } }, "anymatch": { "version": "1.3.2", @@ -633,15 +562,15 @@ } }, "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { "lodash": "4.17.4" @@ -673,7 +602,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000782", + "caniuse-db": "1.0.30000784", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.18", @@ -681,9 +610,9 @@ } }, "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true }, "aws4": { @@ -703,6 +632,12 @@ "js-tokens": "3.0.2" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -763,8 +698,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -877,9 +812,9 @@ "dev": true }, "binary-extensions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", - "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, "blob": { @@ -935,6 +870,14 @@ "qs": "6.5.1", "raw-body": "2.3.2", "type-is": "1.6.15" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } } }, "bonjour": { @@ -958,12 +901,12 @@ "dev": true }, "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "2.16.3" } }, "brace-expansion": { @@ -1069,8 +1012,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000782", - "electron-to-chromium": "1.3.28" + "caniuse-db": "1.0.30000784", + "electron-to-chromium": "1.3.30" } }, "buffer": { @@ -1174,15 +1117,15 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000782", + "caniuse-db": "1.0.30000784", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" } }, "caniuse-db": { - "version": "1.0.30000782", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000782.tgz", - "integrity": "sha1-2IFbzhV4w1Cs7REyUHMBIF4Pq1M=", + "version": "1.0.30000784", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000784.tgz", + "integrity": "sha1-G+lQEtlInHcZB0+BruV9vf/mNhs=", "dev": true }, "caseless": { @@ -1210,48 +1153,16 @@ } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", + "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "4.5.0" } }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", @@ -1316,6 +1227,12 @@ "chalk": "1.1.3" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -1337,11 +1254,6 @@ } } }, - "classlist.js": { - "version": "1.1.20150312", - "resolved": "https://registry.npmjs.org/classlist.js/-/classlist.js-1.1.20150312.tgz", - "integrity": "sha1-HXCEL3Ai8I2awIbOaeWyUPLFd4k=" - }, "clean-css": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", @@ -1402,9 +1314,9 @@ "dev": true }, "codelyzer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-3.1.2.tgz", - "integrity": "sha1-n/HwQfubXuXb60W6hm368EmDrwQ=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.0.2.tgz", + "integrity": "sha512-nYwOr49+IV09e7C4aXkVALRz0+XpHqZiUUcxHuDZH4xP1FBcHINyr3qvVhv5Gfm7XRmoLx32tsIhrQhW/gBcog==", "dev": true, "requires": { "app-root-path": "2.0.1", @@ -1422,14 +1334,14 @@ "dev": true, "requires": { "clone": "1.0.3", - "color-convert": "1.9.0", + "color-convert": "1.9.1", "color-string": "0.3.0" } }, "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { "color-name": "1.1.3" @@ -1492,9 +1404,9 @@ "dev": true }, "common-tags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.5.1.tgz", - "integrity": "sha512-NrUYGY5TApAk9KB+IZXkR3GR4tA3g26HDsoiGt4kCMHZ727gOGkC+UNfq0Z22jE15bLkc/6RV5Jw1RBW6Usg6A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.6.0.tgz", + "integrity": "sha512-sgmgEodNLbxnSSoR5a2xH23CoDJ9J5MKsJS/tqplfmJLpikG0oWMpAb+tM8ERQCMpp9I+ERf6SYl158G6GwX0w==", "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -1577,11 +1489,20 @@ "utils-merge": "1.0.1" }, "dependencies": { - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "finalhandler": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", + "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } } } }, @@ -1657,17 +1578,21 @@ } }, "copy-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-cL/Wl3Y1QmmKThl/mWeGB+HH3YH+25tn8nhqEGsZda4Yn7GqGnDZ+TbeKJ7A6zvrxyNhhuviYAxn/tCyyAqh8Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.3.1.tgz", + "integrity": "sha512-xlcFiW/U7KrpS6dFuWq3r8Wb7koJx7QVc7LDFCosqkikaVSxkaYOnwDLwilbjrszZ0LYZXThDAJKcQCSrvdShQ==", "dev": true, "requires": { - "bluebird": "3.5.1", - "glob": "7.1.2", + "cacache": "10.0.1", + "find-cache-dir": "1.0.0", + "globby": "7.1.1", "is-glob": "4.0.0", "loader-utils": "0.2.17", "lodash": "4.17.4", - "minimatch": "3.0.4" + "minimatch": "3.0.4", + "p-limit": "1.1.0", + "pify": "3.0.0", + "serialize-javascript": "1.4.0" }, "dependencies": { "loader-utils": { @@ -1685,9 +1610,9 @@ } }, "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" }, "core-object": { "version": "3.1.5", @@ -1695,7 +1620,7 @@ "integrity": "sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==", "dev": true, "requires": { - "chalk": "2.1.0" + "chalk": "2.2.2" } }, "core-util-is": { @@ -1766,30 +1691,13 @@ "which": "1.3.0" } }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.2.0" - } - } + "boom": "2.10.1" } }, "crypto-browserify": { @@ -1982,6 +1890,14 @@ "dev": true, "requires": { "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "date-now": { @@ -2050,11 +1966,26 @@ "rimraf": "2.6.2" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } } } }, @@ -2120,9 +2051,9 @@ "dev": true }, "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", "dev": true }, "diffie-hellman": { @@ -2136,6 +2067,16 @@ "randombytes": "2.0.5" } }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "path-type": "3.0.0" + } + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -2273,12 +2214,21 @@ "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.28", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.28.tgz", - "integrity": "sha1-jdTmRYCGZE6fnwoc8y4qH53/2e4=", + "electron-releases": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/electron-releases/-/electron-releases-2.1.0.tgz", + "integrity": "sha512-cyKFD1bTE/UgULXfaueIN1k5EPFzs+FRc/rvCY5tIynefAPqopQEgjr0EzY+U3Dqrk/G4m9tXSPuZ77v6dL/Rw==", "dev": true }, + "electron-to-chromium": { + "version": "1.3.30", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz", + "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==", + "dev": true, + "requires": { + "electron-releases": "2.1.0" + } + }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", @@ -2444,9 +2394,9 @@ "dev": true }, "errno": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.5.tgz", - "integrity": "sha512-tv2H+e3KBnMmNRuoVG24uorOj3XfYo+/nJJd07PUISRr0kaMKQKL5kyD+6ANXk1ZIIsvbORsjvHnCfC4KIc7uQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", "dev": true, "requires": { "prr": "1.0.1" @@ -2804,25 +2754,10 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true } } @@ -2856,7 +2791,7 @@ "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", "dev": true, "requires": { - "async": "2.5.0", + "async": "2.6.0", "loader-utils": "1.1.0", "schema-utils": "0.3.0", "webpack-sources": "1.1.0" @@ -2874,6 +2809,12 @@ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "fastparse": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", @@ -2890,9 +2831,9 @@ } }, "file-loader": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz", - "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz", + "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==", "dev": true, "requires": { "loader-utils": "1.1.0", @@ -2940,9 +2881,9 @@ } }, "finalhandler": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", - "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "dev": true, "requires": { "debug": "2.6.9", @@ -2966,13 +2907,12 @@ } }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "2.0.0" } }, "flatten": { @@ -3019,9 +2959,9 @@ "dev": true }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { "asynckit": "0.4.0", @@ -3175,6 +3115,14 @@ "dev": true, "requires": { "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "glob": { @@ -3251,16 +3199,17 @@ "dev": true }, "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { "array-union": "1.0.2", + "dir-glob": "2.0.0", "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "ignore": "3.3.7", + "pify": "3.0.0", + "slash": "1.0.0" } }, "globule": { @@ -3287,43 +3236,137 @@ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "5.2.3", - "har-schema": "2.0.0" - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } + } + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + } + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", "dev": true, "requires": { @@ -3345,9 +3388,9 @@ "dev": true }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, "has-unicode": { @@ -3376,15 +3419,15 @@ } }, "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.0.2" + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" } }, "he": { @@ -3405,9 +3448,9 @@ } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "homedir-polyfill": { @@ -3450,9 +3493,9 @@ "dev": true }, "html-minifier": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.7.tgz", - "integrity": "sha512-GISXn6oKDo7+gVpKOgZJTbHMCUI2TSGfpg/8jgencWhWJsvEmsvp3M8emX7QocsXsYznWloLib3OeSfeyb/ewg==", + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.8.tgz", + "integrity": "sha512-WX7D6PB9PFq05fZ1/CyxPUuyqXed6vh2fGOM80+zJT5wAO93D/cUjLs0CcbBFjQmlwmCgRvl97RurtArIpOnkw==", "dev": true, "requires": { "camel-case": "3.0.0", @@ -3462,7 +3505,7 @@ "ncname": "1.0.0", "param-case": "2.1.1", "relateurl": "0.2.7", - "uglify-js": "3.2.2" + "uglify-js": "3.3.2" } }, "html-webpack-plugin": { @@ -3472,7 +3515,7 @@ "dev": true, "requires": { "bluebird": "3.5.1", - "html-minifier": "3.5.7", + "html-minifier": "3.5.8", "loader-utils": "0.2.17", "lodash": "4.17.4", "pretty-error": "2.1.1", @@ -3556,6 +3599,14 @@ "inherits": "2.0.3", "setprototypeof": "1.0.3", "statuses": "1.3.1" + }, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } } }, "http-parser-js": { @@ -3598,12 +3649,12 @@ } }, "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "0.2.0", "jsprim": "1.4.1", "sshpk": "1.13.1" } @@ -3646,15 +3697,6 @@ "postcss": "6.0.14" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -3666,12 +3708,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -3688,15 +3724,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -3712,6 +3739,12 @@ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -3780,9 +3813,9 @@ "dev": true }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "internal-ip": { @@ -3845,13 +3878,13 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { @@ -3936,9 +3969,9 @@ } }, "is-my-json-valid": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", - "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz", + "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", "dev": true, "optional": true, "requires": { @@ -3969,13 +4002,13 @@ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "dev": true, "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "1.0.2" @@ -4094,19 +4127,19 @@ "dev": true }, "istanbul-api": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz", - "integrity": "sha1-JbxXAffGgMD//5E95G42GaOm5oA=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", "dev": true, "requires": { - "async": "2.5.0", + "async": "2.6.0", "fileset": "2.0.3", "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.0.7", - "istanbul-lib-instrument": "1.8.0", - "istanbul-lib-report": "1.1.1", - "istanbul-lib-source-maps": "1.2.1", - "istanbul-reports": "1.1.2", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", "js-yaml": "3.7.0", "mkdirp": "0.5.1", "once": "1.4.0" @@ -4119,7 +4152,7 @@ "dev": true, "requires": { "convert-source-map": "1.5.1", - "istanbul-lib-instrument": "1.8.0", + "istanbul-lib-instrument": "1.9.1", "loader-utils": "0.2.17", "object-assign": "4.1.1" }, @@ -4145,18 +4178,18 @@ "dev": true }, "istanbul-lib-hook": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz", - "integrity": "sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", "dev": true, "requires": { "babel-generator": "6.26.0", @@ -4169,146 +4202,67 @@ } }, "istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", "dev": true, "requires": { "istanbul-lib-coverage": "1.1.1", "mkdirp": "0.5.1", "path-parse": "1.0.5", "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, "istanbul-lib-source-maps": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", "dev": true, "requires": { - "debug": "2.6.9", + "debug": "3.1.0", "istanbul-lib-coverage": "1.1.1", "mkdirp": "0.5.1", "rimraf": "2.6.2", "source-map": "0.5.7" - } - }, - "istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=", - "dev": true, - "requires": { - "handlebars": "4.0.10" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true - } - } - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "dev": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - } - }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } - } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, - "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "ms": "2.0.0" } } } }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", @@ -4344,9 +4298,9 @@ } }, "jasminewd2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.1.0.tgz", - "integrity": "sha1-2llSddGuYx3nNqwKfH2Fyfc+9lI=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true }, "js-base64": { @@ -4461,6 +4415,14 @@ "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "karma": { @@ -4469,13 +4431,13 @@ "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", "dev": true, "requires": { - "bluebird": "3.5.0", + "bluebird": "3.5.1", "body-parser": "1.18.2", "chokidar": "1.7.0", "colors": "1.1.2", "combine-lists": "1.0.1", "connect": "3.6.5", - "core-js": "2.5.1", + "core-js": "2.5.3", "di": "0.0.1", "dom-serialize": "2.2.1", "expand-braces": "0.1.2", @@ -4485,7 +4447,7 @@ "isbinaryfile": "3.0.2", "lodash": "3.10.1", "log4js": "0.6.38", - "mime": "1.4.1", + "mime": "1.6.0", "minimatch": "3.0.4", "optimist": "0.6.1", "qjobs": "1.1.5", @@ -4498,295 +4460,111 @@ "useragent": "2.2.1" }, "dependencies": { - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", - "dev": true - }, "lodash": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true - }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } } } }, "karma-chrome-launcher": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.1.1.tgz", - "integrity": "sha1-IWh5xorATY1RQOmWGboEtZr9Rs8=", - "dev": true, - "requires": { - "fs-access": "1.0.1", - "which": "1.3.0" - } - }, - "karma-cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", - "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", - "dev": true, - "requires": { - "resolve": "1.4.0" - } - }, - "karma-coverage-istanbul-reporter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.3.0.tgz", - "integrity": "sha1-0ULNnFVzHJ42Pvc3To7xoxvr+ts=", - "dev": true, - "requires": { - "istanbul-api": "1.1.14", - "minimatch": "3.0.4" - } - }, - "karma-jasmine": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", - "integrity": "sha1-IuTAa/mhguUpTR9wXjczgRuBCs8=", - "dev": true - }, - "karma-jasmine-html-reporter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", - "dev": true, - "requires": { - "karma-jasmine": "1.1.0" - } - }, - "karma-source-map-support": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz", - "integrity": "sha1-G/gee7SwiWJ6s1LsQXnhF8QGpUA=", - "dev": true, - "requires": { - "source-map-support": "0.4.18" - } - }, - "killable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "less": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", - "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", - "dev": true, - "requires": { - "errno": "0.1.5", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.4.1", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.81.0", - "source-map": "0.5.7" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - } + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.1.1.tgz", + "integrity": "sha1-IWh5xorATY1RQOmWGboEtZr9Rs8=", + "dev": true, + "requires": { + "fs-access": "1.0.1", + "which": "1.3.0" + } + }, + "karma-cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", + "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.3.3.tgz", + "integrity": "sha512-MFkB6bh11J8nKygUdqyHb9sMz17XoBRYR4tiNxnSpi/UtDk0wk8eRGa0jRSJaILgCl4xyq1TL6Jidww1OWly/Q==", + "dev": true, + "requires": { + "istanbul-api": "1.2.1", + "minimatch": "3.0.4" + } + }, + "karma-jasmine": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.1.tgz", + "integrity": "sha1-b+hA51oRYAydkehLM8RY4cRqNSk=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "1.1.1" + } + }, + "karma-source-map-support": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz", + "integrity": "sha1-G/gee7SwiWJ6s1LsQXnhF8QGpUA=", + "dev": true, + "requires": { + "source-map-support": "0.4.18" + } + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", + "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "dev": true, + "requires": { + "errno": "0.1.6", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.6.0", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.81.0", + "source-map": "0.5.7" } }, "less-loader": { @@ -4805,6 +4583,12 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true } } }, @@ -4828,6 +4612,14 @@ "pify": "2.3.0", "pinkie-promise": "2.0.1", "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "loader-runner": { @@ -4855,14 +4647,6 @@ "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } } }, "lodash": { @@ -5026,20 +4810,12 @@ "dev": true, "requires": { "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } } }, "make-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", - "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.1.tgz", + "integrity": "sha512-J0Z9PlMgAbZyOAmVwRAdrDFKO9CmJDVu9iTyXM6NMM7P9e6FRB0XMV6Si5EbdIfNXvzQnYKs6qlWbPkVpZaQ3w==", "dev": true }, "map-obj": { @@ -5054,17 +4830,6 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, - "md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "1.1.5" - } - }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", @@ -5108,7 +4873,7 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.5", + "errno": "0.1.6", "readable-stream": "2.3.3" } }, @@ -5191,9 +4956,9 @@ } }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { @@ -5385,7 +5150,7 @@ "nopt": "3.0.6", "npmlog": "4.1.2", "osenv": "0.1.4", - "request": "2.83.0", + "request": "2.81.0", "rimraf": "2.6.2", "semver": "5.3.0", "tar": "2.2.1", @@ -5476,28 +5241,11 @@ "true-case-path": "1.0.2" }, "dependencies": { - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, "caseless": { "version": "0.11.0", @@ -5519,28 +5267,6 @@ "supports-color": "2.0.0" } }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } - }, "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", @@ -5550,41 +5276,10 @@ "requires": { "chalk": "1.1.3", "commander": "2.12.2", - "is-my-json-valid": "2.16.1", + "is-my-json-valid": "2.17.1", "pinkie-promise": "2.0.1" } }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, "qs": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", @@ -5621,16 +5316,6 @@ "uuid": "3.1.0" } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -5827,6 +5512,24 @@ "is-wsl": "1.1.0" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, "options": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", @@ -6041,13 +5744,10 @@ "dev": true }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -6080,14 +5780,12 @@ "dev": true }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "pify": "3.0.0" } }, "pbkdf2": { @@ -6104,15 +5802,15 @@ } }, "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { @@ -6137,17 +5835,6 @@ "dev": true, "requires": { "find-up": "2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - } } }, "portfinder": { @@ -6181,6 +5868,12 @@ "supports-color": "3.2.3" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -6201,6 +5894,21 @@ "dev": true } } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -6246,15 +5954,6 @@ "postcss": "6.0.14" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6266,12 +5965,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6288,15 +5981,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -6400,15 +6084,6 @@ "schema-utils": "0.3.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6420,12 +6095,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6442,15 +6111,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -6547,15 +6207,6 @@ "postcss": "6.0.14" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6567,12 +6218,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6589,15 +6234,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -6610,16 +6246,7 @@ "css-selector-tokenizer": "0.7.0", "postcss": "6.0.14" }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, + "dependencies": { "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6631,12 +6258,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6653,15 +6274,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -6675,15 +6287,6 @@ "postcss": "6.0.14" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6695,12 +6298,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6717,15 +6314,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -6739,15 +6327,6 @@ "postcss": "6.0.14" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6759,12 +6338,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6781,15 +6354,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -6894,22 +6458,13 @@ "integrity": "sha512-VBP6uf6iL3AZra23nkPkOEkS/5azj1xf/toRrjfkolfFEgg9Gyzg9UhJZeIsz12EGKZTNVeGbPa2XtaZm/iZvg==", "dev": true, "requires": { - "mime": "1.4.1", + "mime": "1.6.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", "postcss": "6.0.14", "xxhashjs": "0.2.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", @@ -6921,12 +6476,6 @@ "supports-color": "4.5.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -6943,15 +6492,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, @@ -7028,14 +6568,14 @@ "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", "dev": true, "requires": { - "@types/node": "6.0.88", + "@types/node": "6.0.95", "@types/q": "0.0.32", - "@types/selenium-webdriver": "2.53.42", + "@types/selenium-webdriver": "2.53.43", "blocking-proxy": "0.0.5", "chalk": "1.1.3", "glob": "7.1.2", "jasmine": "2.8.0", - "jasminewd2": "2.1.0", + "jasminewd2": "2.2.0", "optimist": "0.6.1", "q": "1.4.1", "saucelabs": "1.3.0", @@ -7045,6 +6585,12 @@ "webdriver-manager": "12.0.6" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -7087,22 +6633,12 @@ "pinkie-promise": "2.0.1" } }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, "q": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", @@ -7125,21 +6661,13 @@ "chalk": "1.1.3", "del": "2.2.2", "glob": "7.1.2", - "ini": "1.3.4", + "ini": "1.3.5", "minimist": "1.2.0", "q": "1.4.1", - "request": "2.83.0", + "request": "2.81.0", "rimraf": "2.6.2", "semver": "5.4.1", "xml2js": "0.4.19" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } } } @@ -7219,9 +6747,9 @@ "dev": true }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true }, "query-string": { @@ -7277,7 +6805,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } } } @@ -7288,7 +6816,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } } } @@ -7345,6 +6873,25 @@ "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", "path-type": "1.1.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "read-pkg-up": { @@ -7355,6 +6902,27 @@ "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } } }, "readable-stream": { @@ -7443,9 +7011,9 @@ "dev": true }, "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-cache": { @@ -7538,28 +7106,28 @@ } }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "requires": { - "aws-sign2": "0.7.0", + "aws-sign2": "0.6.0", "aws4": "1.6.0", "caseless": "0.12.0", "combined-stream": "1.0.5", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", "mime-types": "2.1.17", "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", + "performance-now": "0.2.0", + "qs": "6.4.0", "safe-buffer": "5.1.1", "stringstream": "0.0.5", "tough-cookie": "2.3.3", @@ -7592,9 +7160,9 @@ "dev": true }, "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -7653,11 +7221,11 @@ } }, "rxjs": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.2.tgz", - "integrity": "sha512-oRYoIKWBU3Ic37fLA5VJu31VqQO4bWubRntcHSJ+cwaDQBwdnZ9x4zmhJfm/nFQ2E82/I4loSioHnACamrKGgA==", + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", + "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", "requires": { - "symbol-observable": "1.0.4" + "symbol-observable": "1.0.1" } }, "safe-buffer": { @@ -7685,19 +7253,11 @@ "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", "dev": true, "requires": { - "async": "2.5.0", + "async": "2.6.0", "clone-deep": "0.3.0", "loader-utils": "1.1.0", "lodash.tail": "4.1.1", "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } } }, "saucelabs": { @@ -7721,7 +7281,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.2.3" + "ajv": "5.5.2" } }, "scss-tokenizer": { @@ -7819,8 +7379,22 @@ "on-finished": "2.3.0", "range-parser": "1.2.0", "statuses": "1.3.1" + }, + "dependencies": { + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + } } }, + "serialize-javascript": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", + "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=", + "dev": true + }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", @@ -7867,9 +7441,9 @@ "dev": true }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "sha.js": { @@ -7900,7 +7474,7 @@ "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", "dev": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } } } @@ -7935,13 +7509,19 @@ "debug": "2.6.9" } }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, "sntp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", - "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "2.16.3" } }, "socket.io": { @@ -8156,7 +7736,7 @@ "integrity": "sha512-MYbFX9DYxmTQFfy2v8FC1XZwpwHKYxg3SK8Wb7VPBKuhDjz8gi9re2819MsG4p49HDyiOSUKlmZ+nQBArW5CGw==", "dev": true, "requires": { - "async": "2.5.0", + "async": "2.6.0", "loader-utils": "0.2.17", "source-map": "0.6.1" }, @@ -8260,6 +7840,14 @@ "getpass": "0.1.7", "jsbn": "0.1.1", "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "ssri": { @@ -8463,12 +8051,12 @@ } }, "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "2.0.0" } }, "svgo": { @@ -8487,9 +8075,9 @@ } }, "symbol-observable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" }, "tapable": { "version": "0.2.8", @@ -8639,9 +8227,9 @@ "dev": true, "requires": { "arrify": "1.0.1", - "chalk": "2.1.0", - "diff": "3.3.1", - "make-error": "1.3.0", + "chalk": "2.2.2", + "diff": "3.4.0", + "make-error": "1.3.1", "minimist": "1.2.0", "mkdirp": "0.5.1", "source-map-support": "0.4.18", @@ -8669,9 +8257,9 @@ } }, "tsickle": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.24.1.tgz", - "integrity": "sha512-XloFQZhVhgjpQsi3u2ORNRJvuID5sflOg6HfP093IqAbhE1+fIUXznULpdDwHgG4p+v8w78KdHruQtkWUKx5AQ==", + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.25.6.tgz", + "integrity": "sha1-tZXbFrI2chgk7u2ouyYjZbR+8zQ=", "dev": true, "requires": { "minimist": "1.2.0", @@ -8681,52 +8269,35 @@ } }, "tslib": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz", - "integrity": "sha1-vIAEFkaRkjp5/oN4u+s9ogF1OOw=" + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.1.tgz", + "integrity": "sha1-aUavLR1lGnsYY7Ux1uWvpBqkTqw=" }, "tslint": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.3.2.tgz", - "integrity": "sha1-5WRZ+wlacwfxA7hAUhdPXju+9u0=", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.7.0.tgz", + "integrity": "sha1-wl4NDJL6EgHCvDDoROCOaCtPNVI=", "dev": true, "requires": { "babel-code-frame": "6.26.0", "colors": "1.1.2", - "diff": "3.3.1", + "commander": "2.12.2", + "diff": "3.4.0", "glob": "7.1.2", - "optimist": "0.6.1", - "resolve": "1.4.0", + "minimatch": "3.0.4", + "resolve": "1.5.0", "semver": "5.4.1", - "tslib": "1.7.1", - "tsutils": "2.9.0" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - } + "tslib": "1.8.1", + "tsutils": "2.14.0" } }, "tsutils": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.9.0.tgz", - "integrity": "sha1-fhU3tVa6tocvp+ZIXf9FsHbVUz0=", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.14.0.tgz", + "integrity": "sha512-f6axSMV0RoUufiKiRQgmRlN1c+Ag+mDaZjcd6bHdvplT/zyhuMCGqw3pJS8s3+0x4EVkdoQajs9PchdDZlguvw==", "dev": true, "requires": { - "tslib": "1.7.1" + "tslib": "1.8.1" } }, "tty-browserify": { @@ -8774,9 +8345,9 @@ "dev": true }, "uglify-js": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.2.2.tgz", - "integrity": "sha512-++1NO/zZIEdWf6cDIGceSJQPX31SqIpbVAHwFG5+240MtZqPG/NIPoinj8zlXQtAfMBqEt1Jyv2FiLP3n9gVhQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.2.tgz", + "integrity": "sha512-uZp2gduFfZDDfx0iIAmfKgRTANCooWcFjnFmJ2n8x/+RpBNk97lac1HU5wvZxWZCBbwHmTFDpWAsEhKnQpsM2A==", "dev": true, "requires": { "commander": "2.12.2", @@ -8799,14 +8370,15 @@ "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.2.tgz", - "integrity": "sha512-k07cmJTj+8vZMSc3BaQ9uW7qVl2MqDts4ti4KaNACXEcXSw2vQM2S8olSk/CODxvcSFGvUHzNSqA8JQlhgUJPw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.5.tgz", + "integrity": "sha512-YBGc9G7dv12Vjx8vUQs54DZgAXVf04LlG6dNNiEbTZjL3PbUqiY4uPB9Kv+fUJaqRskEGva/lS7sh08yJr7jnA==", "dev": true, "requires": { "cacache": "10.0.1", "find-cache-dir": "1.0.0", "schema-utils": "0.3.0", + "serialize-javascript": "1.4.0", "source-map": "0.6.1", "uglify-es": "3.2.2", "webpack-sources": "1.1.0", @@ -8919,7 +8491,7 @@ "dev": true, "requires": { "loader-utils": "1.1.0", - "mime": "1.4.1", + "mime": "1.6.0", "schema-utils": "0.3.0" } }, @@ -9040,6 +8612,14 @@ "assert-plus": "1.0.0", "core-util-is": "1.0.2", "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "vlq": { @@ -9069,7 +8649,7 @@ "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "dev": true, "requires": { - "async": "2.5.0", + "async": "2.6.0", "chokidar": "1.7.0", "graceful-fs": "4.1.11" } @@ -9089,7 +8669,7 @@ "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", "dev": true, "requires": { - "@types/selenium-webdriver": "2.53.42", + "@types/selenium-webdriver": "2.53.43", "selenium-webdriver": "2.53.3" }, "dependencies": { @@ -9144,9 +8724,9 @@ "requires": { "acorn": "5.2.1", "acorn-dynamic-import": "2.0.2", - "ajv": "5.2.3", + "ajv": "5.5.2", "ajv-keywords": "2.1.1", - "async": "2.5.0", + "async": "2.6.0", "enhanced-resolve": "3.4.1", "escope": "3.6.0", "interpret": "1.1.0", @@ -9189,21 +8769,6 @@ "wordwrap": "0.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -9236,6 +8801,12 @@ "pify": "2.3.0" } }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -9290,15 +8861,6 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -9341,12 +8903,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -9419,64 +8975,6 @@ } } }, - "webpack-concat-plugin": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/webpack-concat-plugin/-/webpack-concat-plugin-1.4.2.tgz", - "integrity": "sha512-HdV2xOq4twtL2ThR9NSCCQ888v1JBMpJfm3k2mA1I5LkS2+/6rv8q/bb9yTSaR0fVaMtANZi4Wkz0xc33MAt6w==", - "dev": true, - "requires": { - "md5": "2.2.1", - "uglify-js": "2.8.29" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, "webpack-core": { "version": "0.6.9", "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", @@ -9515,14 +9013,6 @@ "path-is-absolute": "1.0.1", "range-parser": "1.2.0", "time-stamp": "2.0.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - } } }, "webpack-dev-server": { @@ -9575,21 +9065,6 @@ "ms": "2.0.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, "yargs": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", @@ -9717,9 +9192,9 @@ "dev": true }, "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true }, "worker-farm": { @@ -9728,7 +9203,7 @@ "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", "dev": true, "requires": { - "errno": "0.1.5", + "errno": "0.1.6", "xtend": "4.0.1" } }, diff --git a/examples/cli-example/package.json b/examples/cli-example/package.json new file mode 100644 index 00000000..1d4c542e --- /dev/null +++ b/examples/cli-example/package.json @@ -0,0 +1,51 @@ +{ + "name": "cli-example", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build --prod", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e", + "playground": "node ./node_modules/angular-playground/dist/bin/cli.js", + "playground:build": "npm run build --prefix ../../ && node ../../scripts/copy.js && npm run playground" + }, + "private": true, + "dependencies": { + "@angular/animations": "^5.0.0", + "@angular/common": "^5.0.0", + "@angular/compiler": "^5.0.0", + "@angular/core": "^5.0.0", + "@angular/forms": "^5.0.0", + "@angular/http": "^5.0.0", + "@angular/platform-browser": "^5.0.0", + "@angular/platform-browser-dynamic": "^5.0.0", + "@angular/router": "^5.0.0", + "core-js": "^2.4.1", + "rxjs": "^5.5.2", + "zone.js": "^0.8.14" + }, + "devDependencies": { + "@angular/cli": "1.6.2", + "@angular/compiler-cli": "^5.0.0", + "@angular/language-service": "^5.0.0", + "@types/jasmine": "~2.5.53", + "@types/jasminewd2": "~2.0.2", + "@types/node": "~6.0.60", + "codelyzer": "^4.0.1", + "jasmine-core": "~2.6.2", + "jasmine-spec-reporter": "~4.1.0", + "karma": "~1.7.0", + "karma-chrome-launcher": "~2.1.1", + "karma-cli": "~1.0.1", + "karma-coverage-istanbul-reporter": "^1.2.1", + "karma-jasmine": "~1.1.0", + "karma-jasmine-html-reporter": "^0.2.2", + "protractor": "~5.1.2", + "ts-node": "~3.2.0", + "tslint": "~5.7.0", + "typescript": "~2.4.2" + } +} diff --git a/examples/cli-example/protractor.conf.js b/examples/cli-example/protractor.conf.js new file mode 100644 index 00000000..7ee3b5ee --- /dev/null +++ b/examples/cli-example/protractor.conf.js @@ -0,0 +1,28 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: 'e2e/tsconfig.e2e.json' + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/examples/example-app-angular-cli/src/assets/.gitkeep b/examples/cli-example/src/app/app.component.css similarity index 100% rename from examples/example-app-angular-cli/src/assets/.gitkeep rename to examples/cli-example/src/app/app.component.css diff --git a/examples/cli-example/src/app/app.component.html b/examples/cli-example/src/app/app.component.html new file mode 100644 index 00000000..f64caa7c --- /dev/null +++ b/examples/cli-example/src/app/app.component.html @@ -0,0 +1,8 @@ +

The host app

+ +
+ +
+Note that this is a sample app +Host app loaded +Ready for showtime! diff --git a/examples/cli-example/src/app/app.component.spec.ts b/examples/cli-example/src/app/app.component.spec.ts new file mode 100644 index 00000000..bcbdf36b --- /dev/null +++ b/examples/cli-example/src/app/app.component.spec.ts @@ -0,0 +1,27 @@ +import { TestBed, async } from '@angular/core/testing'; +import { AppComponent } from './app.component'; +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + }).compileComponents(); + })); + it('should create the app', async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + })); + it(`should have as title 'app'`, async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('app'); + })); + it('should render title in a h1 tag', async(() => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!'); + })); +}); diff --git a/examples/cli-example/src/app/app.component.ts b/examples/cli-example/src/app/app.component.ts new file mode 100644 index 00000000..7b0f6728 --- /dev/null +++ b/examples/cli-example/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/examples/example-app-angular-cli/src/app/app.module.ts b/examples/cli-example/src/app/app.module.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/app.module.ts rename to examples/cli-example/src/app/app.module.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/feature1.module.ts b/examples/cli-example/src/app/feature1/feature1.module.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/feature1.module.ts rename to examples/cli-example/src/app/feature1/feature1.module.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/person-bio.component.other.sandbox.ts b/examples/cli-example/src/app/feature1/person-bio.component.other.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/person-bio.component.other.sandbox.ts rename to examples/cli-example/src/app/feature1/person-bio.component.other.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/person-bio.component.sandbox.ts b/examples/cli-example/src/app/feature1/person-bio.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/person-bio.component.sandbox.ts rename to examples/cli-example/src/app/feature1/person-bio.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/person-bio.component.ts b/examples/cli-example/src/app/feature1/person-bio.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/person-bio.component.ts rename to examples/cli-example/src/app/feature1/person-bio.component.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/person-block.component.ts b/examples/cli-example/src/app/feature1/person-block.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/person-block.component.ts rename to examples/cli-example/src/app/feature1/person-block.component.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/person-details.component.sandbox.ts b/examples/cli-example/src/app/feature1/person-details.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/person-details.component.sandbox.ts rename to examples/cli-example/src/app/feature1/person-details.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/feature1/person-details.component.ts b/examples/cli-example/src/app/feature1/person-details.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature1/person-details.component.ts rename to examples/cli-example/src/app/feature1/person-details.component.ts diff --git a/examples/example-app-angular-cli/src/app/feature2/feature2.module.ts b/examples/cli-example/src/app/feature2/feature2.module.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature2/feature2.module.ts rename to examples/cli-example/src/app/feature2/feature2.module.ts diff --git a/examples/example-app-angular-cli/src/app/feature2/info-block.component.sandbox.ts b/examples/cli-example/src/app/feature2/info-block.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature2/info-block.component.sandbox.ts rename to examples/cli-example/src/app/feature2/info-block.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/feature2/info-block.component.ts b/examples/cli-example/src/app/feature2/info-block.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature2/info-block.component.ts rename to examples/cli-example/src/app/feature2/info-block.component.ts diff --git a/examples/example-app-angular-cli/src/app/feature3/feature3.module.ts b/examples/cli-example/src/app/feature3/feature3.module.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature3/feature3.module.ts rename to examples/cli-example/src/app/feature3/feature3.module.ts diff --git a/examples/example-app-angular-cli/src/app/feature3/star-rating.component.sandbox.ts b/examples/cli-example/src/app/feature3/star-rating.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature3/star-rating.component.sandbox.ts rename to examples/cli-example/src/app/feature3/star-rating.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/feature3/star-rating.component.ts b/examples/cli-example/src/app/feature3/star-rating.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/feature3/star-rating.component.ts rename to examples/cli-example/src/app/feature3/star-rating.component.ts diff --git a/examples/example-app-angular-cli/src/app/shared/animated.component.sandbox.ts b/examples/cli-example/src/app/shared/animated.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/animated.component.sandbox.ts rename to examples/cli-example/src/app/shared/animated.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/shared/animated.component.ts b/examples/cli-example/src/app/shared/animated.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/animated.component.ts rename to examples/cli-example/src/app/shared/animated.component.ts diff --git a/examples/example-app-angular-cli/src/app/shared/counter.service.ts b/examples/cli-example/src/app/shared/counter.service.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/counter.service.ts rename to examples/cli-example/src/app/shared/counter.service.ts diff --git a/examples/example-app-angular-cli/src/app/shared/notice.component.sandbox.ts b/examples/cli-example/src/app/shared/notice.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/notice.component.sandbox.ts rename to examples/cli-example/src/app/shared/notice.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/shared/notice.component.ts b/examples/cli-example/src/app/shared/notice.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/notice.component.ts rename to examples/cli-example/src/app/shared/notice.component.ts diff --git a/examples/example-app-angular-cli/src/app/shared/person-bio.component.sandbox.ts b/examples/cli-example/src/app/shared/person-bio.component.sandbox.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/person-bio.component.sandbox.ts rename to examples/cli-example/src/app/shared/person-bio.component.sandbox.ts diff --git a/examples/example-app-angular-cli/src/app/shared/person-bio.component.ts b/examples/cli-example/src/app/shared/person-bio.component.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/person-bio.component.ts rename to examples/cli-example/src/app/shared/person-bio.component.ts diff --git a/examples/example-app-angular-cli/src/app/shared/shared.module.ts b/examples/cli-example/src/app/shared/shared.module.ts similarity index 100% rename from examples/example-app-angular-cli/src/app/shared/shared.module.ts rename to examples/cli-example/src/app/shared/shared.module.ts diff --git a/examples/cli-example/src/assets/.gitkeep b/examples/cli-example/src/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/examples/example-app-angular-cli/src/environments/environment.prod.ts b/examples/cli-example/src/environments/environment.prod.ts similarity index 100% rename from examples/example-app-angular-cli/src/environments/environment.prod.ts rename to examples/cli-example/src/environments/environment.prod.ts diff --git a/examples/example-app-angular-cli/src/environments/environment.ts b/examples/cli-example/src/environments/environment.ts similarity index 100% rename from examples/example-app-angular-cli/src/environments/environment.ts rename to examples/cli-example/src/environments/environment.ts diff --git a/examples/example-app-angular-cli/src/favicon.ico b/examples/cli-example/src/favicon.ico similarity index 100% rename from examples/example-app-angular-cli/src/favicon.ico rename to examples/cli-example/src/favicon.ico diff --git a/examples/cli-example/src/index.html b/examples/cli-example/src/index.html new file mode 100644 index 00000000..96f2dd4f --- /dev/null +++ b/examples/cli-example/src/index.html @@ -0,0 +1,14 @@ + + + + + CliExample + + + + + + + + + diff --git a/examples/example-app-angular-cli/src/main.playground.ts b/examples/cli-example/src/main.playground.ts similarity index 64% rename from examples/example-app-angular-cli/src/main.playground.ts rename to examples/cli-example/src/main.playground.ts index e6f0f478..df2afaf7 100644 --- a/examples/example-app-angular-cli/src/main.playground.ts +++ b/examples/cli-example/src/main.playground.ts @@ -1,6 +1,6 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { initializePlayground } from 'angular-playground'; +import { initializePlayground, PlaygroundModule } from 'angular-playground'; import { MyPlaygroundModule } from './my-playground.module'; -initializePlayground('ng-app'); +initializePlayground('app-root'); platformBrowserDynamic().bootstrapModule(MyPlaygroundModule); diff --git a/examples/example-app-angular-cli/src/main.ts b/examples/cli-example/src/main.ts similarity index 64% rename from examples/example-app-angular-cli/src/main.ts rename to examples/cli-example/src/main.ts index 39779a4d..91ec6da5 100644 --- a/examples/example-app-angular-cli/src/main.ts +++ b/examples/cli-example/src/main.ts @@ -1,11 +1,12 @@ import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from 'app/app.module'; +import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } -platformBrowserDynamic().bootstrapModule(AppModule); +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.log(err)); diff --git a/examples/example-app-angular-cli/src/my-playground.module.ts b/examples/cli-example/src/my-playground.module.ts similarity index 100% rename from examples/example-app-angular-cli/src/my-playground.module.ts rename to examples/cli-example/src/my-playground.module.ts diff --git a/examples/example-app-angular-cli/src/polyfills.ts b/examples/cli-example/src/polyfills.ts similarity index 63% rename from examples/example-app-angular-cli/src/polyfills.ts rename to examples/cli-example/src/polyfills.ts index 47ee44e5..d68672ff 100644 --- a/examples/example-app-angular-cli/src/polyfills.ts +++ b/examples/cli-example/src/polyfills.ts @@ -19,31 +19,35 @@ */ /** 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'; +// 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`. +// 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. **/ -import 'core-js/es6/reflect'; +// 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/animation`. + * 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`. @@ -51,7 +55,7 @@ import 'core-js/es7/reflect'; /*************************************************************************************************** - * Zone JS is required by Angular itself. + * Zone JS is required by default for Angular itself. */ import 'zone.js/dist/zone'; // Included with Angular CLI. @@ -60,13 +64,3 @@ import 'zone.js/dist/zone'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS */ - -/** - * Date, currency, decimal and percent pipes. - * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 - */ -// import 'intl'; // Run `npm install --save intl`. -/** - * Need to import at least one locale-data with intl. - */ -// import 'intl/locale-data/jsonp/en'; diff --git a/examples/example-app-angular-cli/src/styles.scss b/examples/cli-example/src/styles.css similarity index 100% rename from examples/example-app-angular-cli/src/styles.scss rename to examples/cli-example/src/styles.css diff --git a/examples/example-app-angular-cli/src/test.ts b/examples/cli-example/src/test.ts similarity index 100% rename from examples/example-app-angular-cli/src/test.ts rename to examples/cli-example/src/test.ts diff --git a/examples/example-app-angular-cli/src/tsconfig.app.json b/examples/cli-example/src/tsconfig.app.json similarity index 88% rename from examples/example-app-angular-cli/src/tsconfig.app.json rename to examples/cli-example/src/tsconfig.app.json index 8a983991..39ba8dba 100644 --- a/examples/example-app-angular-cli/src/tsconfig.app.json +++ b/examples/cli-example/src/tsconfig.app.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "../out-tsc/app", "baseUrl": "./", - "module": "esnext", + "module": "es2015", "types": [] }, "exclude": [ diff --git a/examples/example-app-angular-cli/src/tsconfig.spec.json b/examples/cli-example/src/tsconfig.spec.json similarity index 100% rename from examples/example-app-angular-cli/src/tsconfig.spec.json rename to examples/cli-example/src/tsconfig.spec.json diff --git a/examples/example-app-angular-cli/src/typings.d.ts b/examples/cli-example/src/typings.d.ts similarity index 100% rename from examples/example-app-angular-cli/src/typings.d.ts rename to examples/cli-example/src/typings.d.ts diff --git a/examples/example-app-angular-cli/tsconfig.json b/examples/cli-example/tsconfig.json similarity index 100% rename from examples/example-app-angular-cli/tsconfig.json rename to examples/cli-example/tsconfig.json diff --git a/examples/example-app-angular-cli/tslint.json b/examples/cli-example/tslint.json similarity index 95% rename from examples/example-app-angular-cli/tslint.json rename to examples/cli-example/tslint.json index 0db5751c..a2e30eff 100644 --- a/examples/example-app-angular-cli/tslint.json +++ b/examples/cli-example/tslint.json @@ -11,11 +11,15 @@ "check-space" ], "curly": true, + "deprecation": { + "severity": "warn" + }, "eofline": true, "forin": true, "import-blacklist": [ true, - "rxjs" + "rxjs", + "rxjs/Rx" ], "import-spacing": true, "indent": [ @@ -126,6 +130,7 @@ "app", "kebab-case" ], + "no-output-on-prefix": true, "use-input-property-decorator": true, "use-output-property-decorator": true, "use-host-property-decorator": true, @@ -134,9 +139,6 @@ "use-life-cycle-interface": true, "use-pipe-transform-interface": true, "component-class-suffix": true, - "directive-class-suffix": true, - "no-access-missing-member": true, - "templates-use-public": true, - "invoke-injectable": true + "directive-class-suffix": true } } diff --git a/examples/example-app-angular-cli/README.md b/examples/example-app-angular-cli/README.md deleted file mode 100644 index a75bcc8b..00000000 --- a/examples/example-app-angular-cli/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Example App for Playground - -Development Steps: -1. `npm i` in root (`angular-playground/`) -2. `npm i` in this directory (`example-app-angular-cli`) -3. `npm run playground` \ No newline at end of file diff --git a/examples/example-app-angular-cli/angular-playground.json b/examples/example-app-angular-cli/angular-playground.json deleted file mode 100644 index 81be589d..00000000 --- a/examples/example-app-angular-cli/angular-playground.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "sourceRoot": "./src", - "angularCli": { - "appName": "playground", - "port": 4201 - } -} diff --git a/examples/example-app-angular-cli/angular-playground2.json b/examples/example-app-angular-cli/angular-playground2.json deleted file mode 100644 index 2355bbc2..00000000 --- a/examples/example-app-angular-cli/angular-playground2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "sourceRoot": "./src", - "angularCli": { - "appName": "playground", - "port": 4201, - "args": ["--prod", "-no-aot"] - } -} diff --git a/examples/example-app-angular-cli/package.json b/examples/example-app-angular-cli/package.json deleted file mode 100644 index f4163388..00000000 --- a/examples/example-app-angular-cli/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "example-app", - "version": "0.0.0", - "license": "MIT", - "angular-cli": {}, - "scripts": { - "ng": "ng", - "playground:copy": "node ../../scripts/copy.js", - "playground:run": "node ./node_modules/angular-playground/dist/bin/cli.js", - "playground:test": "node ./node_modules/angular-playground/dist/bin/cli.js --check-errors --random-scenario", - "playground": "npm run playground:copy && npm run playground:run", - "playground:dev": "npm run build --prefix ../../ && npm run playground", - "playground2:run": "node ./node_modules/angular-playground/dist/bin/cli.js angular-playground2.json", - "cli": "ts-node --project ../../src/cli ../../src/cli/cli.ts", - "cli:build": "ts-node --project ../../src/cli ../../src/cli/cli.ts --no-watch --no-serve", - "start": "ng serve -no-progress", - "build": "ng build -prod -a=app", - "lint": "ng lint", - "test": "ng test" - }, - "private": true, - "dependencies": { - "@angular/animations": "^5.0.0", - "@angular/common": "^5.0.0", - "@angular/compiler": "^5.0.0", - "@angular/core": "^5.0.0", - "@angular/forms": "^5.0.0", - "@angular/http": "^5.0.0", - "@angular/platform-browser": "^5.0.0", - "@angular/platform-browser-dynamic": "^5.0.0", - "@angular/router": "^5.0.0", - "classlist.js": "^1.1.20150312", - "core-js": "^2.4.1", - "rxjs": "^5.5.2", - "zone.js": "^0.8.14" - }, - "devDependencies": { - "@angular/cli": "^1.6.0", - "@angular/compiler-cli": "5.0.0", - "@angular/language-service": "5.0.0", - "@types/jasmine": "~2.5.53", - "@types/jasminewd2": "~2.0.2", - "@types/node": "~6.0.60", - "codelyzer": "~3.1.1", - "jasmine-core": "~2.6.2", - "jasmine-spec-reporter": "~4.1.0", - "karma": "~1.7.0", - "karma-chrome-launcher": "~2.1.1", - "karma-cli": "~1.0.1", - "karma-coverage-istanbul-reporter": "^1.2.1", - "karma-jasmine": "~1.1.0", - "karma-jasmine-html-reporter": "^0.2.2", - "protractor": "~5.1.2", - "ts-node": "~3.2.0", - "tslint": "~5.3.2", - "typescript": "2.4.2" - } -} diff --git a/examples/example-app-angular-cli/src/app/app.component.ts b/examples/example-app-angular-cli/src/app/app.component.ts deleted file mode 100644 index 847d03d9..00000000 --- a/examples/example-app-angular-cli/src/app/app.component.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'ng-app', - template: ` -

The host app

- -
- -
- Note that this is a sample app - Host app loaded - Ready for showtime! - ` -}) -export class AppComponent {} diff --git a/examples/example-app-angular-cli/src/app/index.ts b/examples/example-app-angular-cli/src/app/index.ts deleted file mode 100644 index 875bdb2f..00000000 --- a/examples/example-app-angular-cli/src/app/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './app.component'; -export * from './app.module'; diff --git a/examples/example-app-angular-cli/src/app/inline-component.sandbox.ts b/examples/example-app-angular-cli/src/app/inline-component.sandbox.ts deleted file mode 100644 index 442951a2..00000000 --- a/examples/example-app-angular-cli/src/app/inline-component.sandbox.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from '@angular/core'; -import { sandboxOf } from 'angular-playground'; - -@Component({ - selector: 'ex-inline', - template: `I was created in a .sandbox.ts file...super easy!` -}) -class InlineComponent {} - -export default sandboxOf(InlineComponent) - .add('default', { - template: `` - }); diff --git a/examples/example-app-angular-cli/src/index.html b/examples/example-app-angular-cli/src/index.html deleted file mode 100644 index 86721fb6..00000000 --- a/examples/example-app-angular-cli/src/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - Example App - - - - - - - - -

- - Loading... -

-
- - diff --git a/scripts/copy.js b/scripts/copy.js index 8307b691..7036fb54 100644 --- a/scripts/copy.js +++ b/scripts/copy.js @@ -1,7 +1,7 @@ const path = require('path'); const fs = require('fs-extra'); -const examples = ['example-app-angular-cli', 'example-app-embed-mode', 'example-app-webpack']; +const examples = ['example-app-embed-mode', 'example-app-webpack', 'cli-example']; moveDistToExamples(examples) .then(() => console.log('Build successfully copied.')) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 31f5ee9b..1de40431 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,7 +1,6 @@ import { ChangeDetectionStrategy, Component, ElementRef, Inject, QueryList, ViewChildren } from '@angular/core'; import { FormControl } from '@angular/forms'; import { SandboxMenuItem, SelectedSandboxAndScenarioKeys } from './shared/app-state'; -import { SANDBOX_MENU_ITEMS } from './shared/tokens'; import 'rxjs/add/operator/debounceTime'; import 'rxjs/add/operator/distinctUntilChanged'; import { StateService } from './shared/state.service'; @@ -9,6 +8,7 @@ import { EventManager } from '@angular/platform-browser'; import { UrlService } from './shared/url.service'; import { fuzzySearch } from './shared/fuzzy-search.function'; import { LevenshteinDistance } from './shared/levenshtein-distance'; +import { LoaderService } from './shared/loader.service'; @Component({ selector: 'ap-root', @@ -25,11 +25,12 @@ export class AppComponent { shortcuts = this.getShortcuts(); @ViewChildren('scenarioElement') scenarioLinkElements: QueryList; - constructor(@Inject(SANDBOX_MENU_ITEMS) sandboxMenuItems: SandboxMenuItem[], + constructor(private loaderService: LoaderService, private stateService: StateService, private urlService: UrlService, private eventManager: EventManager, private levenshteinDistance: LevenshteinDistance) { + const sandboxMenuItems = this.loaderService.getSandboxMenuItems(); if (this.urlService.embed) { this.selectedSandboxAndScenarioKeys = { diff --git a/src/app/load-sandboxes.ts b/src/app/load-sandboxes.ts deleted file mode 100644 index e08732f1..00000000 --- a/src/app/load-sandboxes.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Sandbox, SandboxMenuItem } from './shared/app-state'; -declare const require: any; - -export function sandboxLoaderFactory(): Function { - return (path: string): Promise => require('sandboxes').getSandbox(path); -} - -export function loadSandboxMenuItems(): SandboxMenuItem[] { - return require('sandboxes').getSandboxMenuItems(); -} diff --git a/src/app/playground-common.module.ts b/src/app/playground-common.module.ts index 4388f41c..5ccc0d96 100644 --- a/src/app/playground-common.module.ts +++ b/src/app/playground-common.module.ts @@ -2,14 +2,13 @@ import { NgModule } from '@angular/core'; import { CommonModule, Location, LocationStrategy, PathLocationStrategy } from '@angular/common'; import { ReactiveFormsModule } from '@angular/forms'; import { ScenarioComponent } from './scenario/scenario.component'; -import { SANDBOX_LOADER, SANDBOX_MENU_ITEMS } from './shared/tokens'; import { StateService } from './shared/state.service'; -import { loadSandboxMenuItems, sandboxLoaderFactory } from './load-sandboxes'; import { FocusDirective } from './shared/focus.directive'; import { UrlService } from './shared/url.service'; import { AppComponent } from './app.component'; import { LevenshteinDistance } from './shared/levenshtein-distance'; import { HighlightSearchMatchPipe } from './shared/highlight-search-match.pipe'; +import { LoaderService } from './shared/loader.service'; declare let require: any; @@ -21,8 +20,7 @@ declare let require: any; providers: [ Location, {provide: LocationStrategy, useClass: PathLocationStrategy}, - {provide: SANDBOX_MENU_ITEMS, useFactory: loadSandboxMenuItems}, - {provide: SANDBOX_LOADER, useFactory: sandboxLoaderFactory}, + LoaderService, StateService, UrlService, LevenshteinDistance diff --git a/src/app/scenario/scenario.component.ts b/src/app/scenario/scenario.component.ts index ccf2df30..dd98a8e1 100644 --- a/src/app/scenario/scenario.component.ts +++ b/src/app/scenario/scenario.component.ts @@ -10,7 +10,7 @@ import { } from '@angular/core'; import { CommonModule } from '@angular/common'; import { Sandbox, Scenario, SelectedSandboxAndScenarioKeys } from '../shared/app-state'; -import { SANDBOX_LOADER } from '../shared/tokens'; +import { LoaderService } from '../shared/loader.service'; @Component({ selector: 'ap-scenario', @@ -21,7 +21,7 @@ export class ScenarioComponent { @Input() set selectedSandboxAndScenarioKeys(selectedSandboxAndScenarioKeys: SelectedSandboxAndScenarioKeys) { this.view.clear(); if (selectedSandboxAndScenarioKeys) { - this.sandboxLoader(selectedSandboxAndScenarioKeys.sandboxKey).then(sandbox => { + this.loaderService.loadSandbox(selectedSandboxAndScenarioKeys.sandboxKey).then(sandbox => { if (sandbox) { let scenario = sandbox.scenarios.find((s: Scenario) => s.key === selectedSandboxAndScenarioKeys.scenarioKey); if (scenario) { @@ -32,7 +32,7 @@ export class ScenarioComponent { } } - constructor(@Inject(SANDBOX_LOADER) private sandboxLoader: (key: string) => Promise, + constructor(private loaderService: LoaderService, private compiler: Compiler, private injector: Injector, private view: ViewContainerRef) { diff --git a/src/app/shared/loader.service.ts b/src/app/shared/loader.service.ts new file mode 100644 index 00000000..2c0489ac --- /dev/null +++ b/src/app/shared/loader.service.ts @@ -0,0 +1,14 @@ +import { Injectable } from '@angular/core'; +import { SandboxMenuItem } from './app-state'; +import { getSandbox, getSandboxMenuItems } from './sandboxes'; + +@Injectable() +export class LoaderService { + loadSandbox(path: string): any { + return getSandbox(path); + } + + getSandboxMenuItems(): SandboxMenuItem[] { + return getSandboxMenuItems(); + } +} diff --git a/src/app/shared/sandboxes.ts b/src/app/shared/sandboxes.ts new file mode 100644 index 00000000..1e83a4d1 --- /dev/null +++ b/src/app/shared/sandboxes.ts @@ -0,0 +1,9 @@ +// This file is filled in via the Playground CLI. +// Empty functions are the expected initial value. + +export function getSandbox (path) { +} + +export function getSandboxMenuItems() { + return null; +} diff --git a/src/app/shared/tokens.ts b/src/app/shared/tokens.ts deleted file mode 100644 index 13ad167c..00000000 --- a/src/app/shared/tokens.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const SANDBOX_MENU_ITEMS = 'SANDBOX_MENU_ITEMS'; -export const SANDBOX_LOADER = 'SANDBOX_LOADER'; diff --git a/src/app/shared/url.service.ts b/src/app/shared/url.service.ts index bd62abce..e23a3539 100644 --- a/src/app/shared/url.service.ts +++ b/src/app/shared/url.service.ts @@ -1,13 +1,15 @@ import { Inject, Injectable } from '@angular/core'; import { Location } from '@angular/common'; -import { SANDBOX_MENU_ITEMS } from './tokens'; import { SandboxMenuItem } from './app-state'; +import { LoaderService } from './loader.service'; @Injectable() export class UrlService { private _embed: boolean = null; private _select: any = null; + sandboxMenuItems: SandboxMenuItem[]; + get embed() { return this._embed; } @@ -16,11 +18,12 @@ export class UrlService { return this._select; } - constructor(@Inject(SANDBOX_MENU_ITEMS) private sandboxMenuItems: SandboxMenuItem[], + constructor(private loaderService: LoaderService, private location: Location) { + this.sandboxMenuItems = this.loaderService.getSandboxMenuItems(); let urlPath = location.path(); this._embed = /[?|&]embed=1/.exec(urlPath) !== null; - this._select = this.parse('scenario', sandboxMenuItems, urlPath); + this._select = this.parse('scenario', this.sandboxMenuItems, urlPath); if (this._select) { if (this._select.sandboxKey === null && this._select.scenarioKey === null) { this.location.replaceState(''); diff --git a/src/cli/build.ts b/src/cli/build.ts index d90a8cc9..809f77cc 100644 --- a/src/cli/build.ts +++ b/src/cli/build.ts @@ -3,10 +3,40 @@ import { StringBuilder } from './string-builder'; import * as fs from 'fs'; import * as path from 'path'; +interface SandboxFileInformation { + key: string; + searchKey: string; + name: string; + label: string; + scenarioMenuItems: { + key: string; + description: string; + }[]; +} + export async function build(rootPath): Promise { - let content = new StringBuilder(); - let home = path.resolve(rootPath); - let sandboxes = []; + const home = path.resolve(rootPath); + const sandboxes = findSandboxes(home); + const filePath = path.resolve(__dirname, '../build/app/shared/sandboxes.js'); + const fileContent = buildSandboxFileContents(sandboxes, home); + + // TODO: Remove next release post 3.1.0 + deleteDeprecatedSandboxFileIfNecessary(home); + + return new Promise((resolve, reject) => { + fs.writeFile(filePath, fileContent, function (err) { + if (err) { + reject(err); + } else { + console.log(`Created file: ${filePath}`); + resolve(filePath); + } + }); + }); +} + +export function findSandboxes(home: string): SandboxFileInformation[] { + const sandboxes = []; fromDir(home, /\.sandbox.ts$/, (filename) => { let sandboxPath = filename.replace(home, '.').replace(/.ts$/, '').replace(/\\/g, '/'); @@ -37,28 +67,50 @@ export async function build(rootPath): Promise { } }); - content.addLine(`export function getSandboxMenuItems() {`); + return sandboxes; +} + +export function buildSandboxFileContents(sandboxes: SandboxFileInformation[], home: string): string { + const content = new StringBuilder(); + content.addLine(`function getSandboxMenuItems() {`); content.addLine(`return ${JSON.stringify(sandboxes)};`); content.addLine(`}`); - content.addLine(`export function getSandbox(path: string) {`); + content.addLine(`function getSandbox(path) {`); content.addLine(`switch(path) {`); + sandboxes.forEach(({ key }) => { + let fullPath = path.join(home, key); + // Normalize slash syntax for Windows/Unix filepaths + fullPath = slash(fullPath); content.addLine(`case '${key}':`); - content.addLine(`return import('${key}').then(sandbox => { return sandbox.default.serialize('${key}'); });`); + content.addLine(` return import('${fullPath}')`); + content.addLine(` .then(function (sandbox) { return sandbox.default.serialize('${key}'); })`); }); - content.addLine(`}}`); + content.addLine(`}`); + content.addLine(`}`); + content.addLine('export { getSandbox, getSandboxMenuItems };'); - let filePath = path.resolve(home, './sandboxes.ts'); + return content.dump(); +} - return new Promise((resolve, reject) => { - fs.writeFile(filePath, content.dump(), function (err) { - if (err) { - reject(err); - } else { - console.log(`Created file: ${filePath}`); - resolve(filePath); - } - }); - }); +// Provided for minor release post sandboxes.ts resolution changes +function deleteDeprecatedSandboxFileIfNecessary(home: string) { + const sandboxesFile = path.resolve(home, './sandboxes.ts'); + if (fs.existsSync(sandboxesFile)) { + fs.unlinkSync(sandboxesFile); + } +} + +// Turns windows URL string ('c:\\etc\\') into URL node expects ('c:/etc/') +// https://github.com/sindresorhus/slash +function slash(input: string) { + const isExtendedLengthPath = /^\\\\\?\\/.test(input); + const hasNonAscii = /[^\u0000-\u0080]+/.test(input); + + if (isExtendedLengthPath || hasNonAscii) { + return input; + } + + return input.replace(/\\/g, '/'); } diff --git a/src/cli/from-dir.ts b/src/cli/from-dir.ts index 3dfd465b..e2f005e1 100644 --- a/src/cli/from-dir.ts +++ b/src/cli/from-dir.ts @@ -3,16 +3,17 @@ import * as path from 'path'; export const fromDir = (startPath, filter, callback) => { if (!fs.existsSync(startPath)) { - console.log("no dir ", startPath); - return; + throw new Error(`No Directory Found: ${startPath}`); } - let files = fs.readdirSync(startPath); + + const files = fs.readdirSync(startPath); for (let i = 0; i < files.length; i++) { - let filename = path.join(startPath, files[i]); - let stat = fs.lstatSync(filename); + const filename = path.join(startPath, files[i]); + const stat = fs.lstatSync(filename); if (stat.isDirectory()) { - fromDir(filename, filter, callback); //recurse + fromDir(filename, filter, callback); + } else if (filter.test(filename)) { + callback(filename); } - else if (filter.test(filename)) callback(filename); } }; diff --git a/src/cli/run-angular-cli.ts b/src/cli/run-angular-cli.ts index 1387d27d..7a02ad18 100644 --- a/src/cli/run-angular-cli.ts +++ b/src/cli/run-angular-cli.ts @@ -2,26 +2,16 @@ import { Configuration } from './shared/configuration'; const fs = require('fs'); const path = require('path'); -const childProcess = require('child_process'); +const { spawn } = require('child_process'); export const runAngularCli = (config: Configuration, angularCliConfig: any) => { - const cliConfig = config.flags.angularCli; - let args = [cliConfig.cmdPath.value, 'serve', '-no-progress']; - args.push('--port'); - args.push(cliConfig.port.value.toString()); - if (cliConfig.appName.value) { - args.push(`-a=${cliConfig.appName.value}`); - } - if (cliConfig.environment.value) { - args.push(`-e=${cliConfig.environment.value}`); - } - if (angularCliConfig.args) { - args = args.concat(angularCliConfig.args); - } - const ngServe = childProcess.spawn('node', args, { maxBuffer: 1024 * 500 }); + const args = configureArguments(config, angularCliConfig.args); + const ngServe = spawn('node', args, { maxBuffer: 1024 * 500 }); + ngServe.stdout.on('data', (data) => { write(process.stdout, data); }); + ngServe.stderr.on('data', (data) => { write(process.stderr, data); }); @@ -31,3 +21,25 @@ export const runAngularCli = (config: Configuration, angularCliConfig: any) => { handler.write(`[ng serve]: ${message}\n`); } }; + +function configureArguments(config: Configuration, additionalArgs: any[]) { + const cliConfig = config.flags.angularCli; + let args = [cliConfig.cmdPath.value, 'serve', '-no-progress']; + + args.push('--port'); + args.push(cliConfig.port.value.toString()); + + if (cliConfig.appName.value) { + args.push(`-a=${cliConfig.appName.value}`); + } + + if (cliConfig.environment.value) { + args.push(`-e=${cliConfig.environment.value}`); + } + + if (additionalArgs) { + args = args.concat(additionalArgs); + } + + return args; +} diff --git a/src/cli/verify-sandboxes.ts b/src/cli/verify-sandboxes.ts index 7aeb10c9..ad25e688 100644 --- a/src/cli/verify-sandboxes.ts +++ b/src/cli/verify-sandboxes.ts @@ -1,4 +1,3 @@ -import * as puppeteer from 'puppeteer'; import * as process from 'process'; import * as path from 'path'; import { ErrorReporter, REPORT_TYPE } from './shared/error-reporter'; @@ -34,6 +33,7 @@ export async function verifySandboxes(configuration: Configuration, sandboxesPat async function main (configuration: Configuration, sandboxesPath: string, port: number) { const timeoutAttempts = configuration.flags.timeout.value; + const puppeteer = await import('puppeteer'); browser = await puppeteer.launch({ headless: true, handleSIGINT: false, @@ -116,7 +116,7 @@ function getSandboxMetadata(baseUrl: string, selectRandomScenario: boolean, path } /** - * Attemtp to load sandboxes.ts and provide menu items + * Attempt to load sandboxes.ts and provide menu items * @param path - Path to sandboxes.ts */ function loadSandboxMenuItems(path: string): any[] {