diff --git a/.gitignore b/.gitignore
index fc442f3..e27df68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,21 +1,8 @@
-node_modules
-typings
-*.info.txt
-*.log
-*.js
-*.js.map
-!karma-test-shim.js
-!karma-test-main.js
-!karma.conf.js
-!webpack.karma.config.js
-!webpack.config.js
-.idea
-abaplan-core.iml
-/*.png
-output
-bower_components
-/assets/
-*secret.ts
-!example.*secret.ts
+/.idea/
+/.DS_STORE/
+/dist/
+/doc/
+/node_modules/
+/output/
-.DS_STORE
\ No newline at end of file
+abaplan-core.iml
diff --git a/.travis.yml b/.travis.yml
index 1aecc52..f18579a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,7 @@ sudo: required
dist: trusty
language: node_js
node_js:
- - '4.2'
+ - '9.10'
addons:
apt:
@@ -21,10 +21,7 @@ before_script:
- npm install -g typescript
- npm install -g karma
- npm install
-- npm install bower
-- bower install
-- grep -v '^///' < node_modules/angular-in-memory-web-api/in-memory-backend.service.d.ts > node_modules/angular-in-memory-web-api/in-memory-backend.service2.d.ts && mv node_modules/angular-in-memory-web-api/in-memory-backend.service2.d.ts node_modules/angular-in-memory-web-api/in-memory-backend.service.d.ts
-- echo "export let GOOGLE_GEOCODE_KEY = '$GOOGLE_API_KEY';" > src/app/core/secret.ts
+- echo "export let GOOGLE_GEOCODE_KEY = '$GOOGLE_API_KEY';" > src/conf/secret.ts
- tsc
script: npm test
diff --git a/assets/css/abaplans.css b/assets/css/abaplans.css
new file mode 100644
index 0000000..881498d
--- /dev/null
+++ b/assets/css/abaplans.css
@@ -0,0 +1,6 @@
+@media print{
+ @page {
+ margin: 0;
+ size: landscape
+ }
+}
\ No newline at end of file
diff --git a/src/app/editor/toolbar/img/delete.png b/assets/img/icons/mouseActions/delete.png
similarity index 100%
rename from src/app/editor/toolbar/img/delete.png
rename to assets/img/icons/mouseActions/delete.png
diff --git a/src/app/editor/toolbar/img/move.png b/assets/img/icons/mouseActions/move.png
similarity index 100%
rename from src/app/editor/toolbar/img/move.png
rename to assets/img/icons/mouseActions/move.png
diff --git a/src/app/editor/toolbar/img/select.png b/assets/img/icons/mouseActions/select.png
similarity index 100%
rename from src/app/editor/toolbar/img/select.png
rename to assets/img/icons/mouseActions/select.png
diff --git a/src/app/editor/toolbar/img/open.png b/assets/img/icons/operations/open.png
similarity index 100%
rename from src/app/editor/toolbar/img/open.png
rename to assets/img/icons/operations/open.png
diff --git a/src/app/editor/toolbar/img/print.png b/assets/img/icons/operations/print.png
similarity index 100%
rename from src/app/editor/toolbar/img/print.png
rename to assets/img/icons/operations/print.png
diff --git a/src/app/editor/toolbar/img/save.png b/assets/img/icons/operations/save.png
similarity index 100%
rename from src/app/editor/toolbar/img/save.png
rename to assets/img/icons/operations/save.png
diff --git a/src/app/editor/toolbar/img/circle.png b/assets/img/icons/shapes/circle.png
similarity index 100%
rename from src/app/editor/toolbar/img/circle.png
rename to assets/img/icons/shapes/circle.png
diff --git a/src/app/editor/toolbar/img/pedestrian.png b/assets/img/icons/shapes/pedestrian.png
similarity index 100%
rename from src/app/editor/toolbar/img/pedestrian.png
rename to assets/img/icons/shapes/pedestrian.png
diff --git a/src/app/editor/toolbar/img/polygon.png b/assets/img/icons/shapes/polygon.png
similarity index 100%
rename from src/app/editor/toolbar/img/polygon.png
rename to assets/img/icons/shapes/polygon.png
diff --git a/src/app/editor/toolbar/img/dotted.png b/assets/img/icons/shapes/tiledLines.png
similarity index 100%
rename from src/app/editor/toolbar/img/dotted.png
rename to assets/img/icons/shapes/tiledLines.png
diff --git a/src/app/editor/toolbar/img/blackTextureFill.png b/assets/img/icons/textures/black.png
similarity index 100%
rename from src/app/editor/toolbar/img/blackTextureFill.png
rename to assets/img/icons/textures/black.png
diff --git a/assets/img/icons/textures/vegetation.png b/assets/img/icons/textures/vegetation.png
new file mode 100644
index 0000000..4d30e5d
Binary files /dev/null and b/assets/img/icons/textures/vegetation.png differ
diff --git a/src/app/editor/toolbar/img/water.png b/assets/img/icons/textures/water.png
similarity index 100%
rename from src/app/editor/toolbar/img/water.png
rename to assets/img/icons/textures/water.png
diff --git a/src/app/editor/toolbar/img/whiteTextureFill.png b/assets/img/icons/textures/white.png
similarity index 100%
rename from src/app/editor/toolbar/img/whiteTextureFill.png
rename to assets/img/icons/textures/white.png
diff --git a/img/spin.gif b/assets/img/spin.gif
similarity index 100%
rename from img/spin.gif
rename to assets/img/spin.gif
diff --git a/assets/img/textures/blackDot.png b/assets/img/textures/blackDot.png
new file mode 100644
index 0000000..d12ae2f
Binary files /dev/null and b/assets/img/textures/blackDot.png differ
diff --git a/assets/img/textures/traitilles.png b/assets/img/textures/traitilles.png
new file mode 100644
index 0000000..2c0562f
Binary files /dev/null and b/assets/img/textures/traitilles.png differ
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 03f8e79..0000000
--- a/bower.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "abaplan-core",
- "private": true,
- "dependencies": {
- "purescript-console": "^2.0.0",
- "purescript-eff": "^2.0.0",
- "purescript-prelude": "^2.1.0",
- "purescript-arrays": "~3.2.1"
- }
-}
diff --git a/build/webpack.config.js b/build/webpack.config.js
new file mode 100644
index 0000000..0a1abe5
--- /dev/null
+++ b/build/webpack.config.js
@@ -0,0 +1,119 @@
+const path = require("path");
+
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
+const HtmlWebpackIncludeAssetsPlugin = require('html-webpack-include-assets-plugin');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+
+// May be improved by selecting only the needed files
+const copyWebpackPluginConfig = [
+ 'i18n/*.json',
+ {
+ from: 'assets/css/abaplans.css',
+ to: 'css/abaplans.css',
+ },
+];
+
+const htmlWebpackIncludeAssetsPluginConfig = {
+ assets: [
+ 'css/abaplans.css',
+ '//js.arcgis.com/3.20/esri/css/esri.css',
+ '//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',
+ '//code.jquery.com/jquery-3.3.1.min.js',
+ '//js.arcgis.com/3.20/init.js',// must be after jquery
+ ],
+ append: false
+};
+
+const HtmlWebpackPluginConfig = {
+ meta: {
+ viewport: 'width=device-width, initial-scale=1',
+ },
+ template: path.resolve(__dirname, "../src/index.html"),
+ inject: 'head',
+ chunks: [],
+};
+
+module.exports = {
+ entry: {
+ main: ["./src/app/boot.ts"],
+ vendor: [
+ // put your third party libs here
+ "@angular/common",
+ "@angular/compiler",
+ "@angular/core",
+ "@angular/http",
+ "@angular/platform-browser",
+ "@angular/platform-browser-dynamic",
+ "@angular/router",
+ "angular-in-memory-web-api",
+ "core-js",
+ "ngx-bootstrap",
+ "rxjs",
+ "zone.js"
+ ]
+ },
+ externals: [
+ function(context, request, callback) {
+ if (
+ /^dojo/.test(request) ||
+ /^dojox/.test(request) ||
+ /^dijit/.test(request) ||
+ /^esri/.test(request)
+ ) {
+ return callback(null, "amd " + request);
+ }
+ callback();
+ }
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.(gif|png)$/,
+ use: {
+ loader: 'file-loader',
+ options: {
+ outputPath: "assets/",
+ publicPath: "assets/",
+ }
+ }
+ },
+ {
+ test: /\.ts$/,
+ use: [
+ {
+ loader: "ts-loader",
+ options: {
+ // disable type checker - we will use it in fork plugin
+ transpileOnly: true,
+ }
+ },
+ {
+ loader: "angular2-template-loader",
+ }
+ ],
+ },
+ {
+ test: /\.(html|css)$/,
+ loaders: "raw-loader"
+ },
+ ]
+ },
+ output: {
+ filename: "[name].bundle.js",
+ libraryTarget: "amd", // necessary for esri (arcgis)
+ path: path.resolve(__dirname, "../dist"),
+ },
+ plugins: [
+ new CopyWebpackPlugin(copyWebpackPluginConfig),
+ new ForkTsCheckerWebpackPlugin(),
+ new HtmlWebpackPlugin(HtmlWebpackPluginConfig),
+ new HtmlWebpackIncludeAssetsPlugin(htmlWebpackIncludeAssetsPluginConfig),
+ ],
+ resolve: {
+ alias: {
+ Assets: path.resolve(__dirname, "../assets"),
+ },
+ extensions: [".ts", ".tsx", ".js"]
+ }
+};
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644
index 0000000..84943ba
--- /dev/null
+++ b/gulpfile.js
@@ -0,0 +1,10 @@
+var gulp = require('gulp');
+var cleanCompiledTypeScript = require('gulp-clean-compiled-typescript');
+
+gulp.task('clear', function () {
+ return gulp.src('./src/**/*.ts').pipe(cleanCompiledTypeScript());
+});
+
+gulp.task('default', function() {
+ console.log('No default task exists');
+});
\ No newline at end of file
diff --git a/i18n/de.json b/i18n/de.json
index d328678..4e192fa 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -33,9 +33,12 @@
"draw_polygon":"Polygon",
"draw_traits": "Linie",
"draw_pedestrian": "Vorübergehen Fussgänger",
- "fill": "Textur",
+ "texture_black": "Schwarz",
+ "texture_white": "Weiss",
+ "texture_water": "Wasser",
+ "texture_vegetation": "Vegetation",
"print": "Drucken",
- "open" : "öffnen",
+ "open" : "Öffnen",
"save": "Sichern",
"_comment": "Map",
@@ -68,7 +71,8 @@
"itineraryEndHelp": " Dieser Befehl aus der Mode dieser Route löscht alle Inhalte eingefügt",
"readId": [
- { "value": "Lesung" }
+ { "value": "Lesung" },
+ { "value": "Plan" }
],
"readDescri": "Lesung, Voreinstellung",
"readActive": "Weise Lesung, die aktiviert ist",
@@ -89,8 +93,8 @@
"search_lower_left":"unten links",
"search_lower_right":"unten rechts",
"search_center":"im Mittelpunkt",
- "searchKilometer":"Kilometer",
- "searchMeter":"Meter",
+ "si_unit_km":"Kilometer",
+ "si_unit_m":"Meter",
"searchArrived":"Sie kamen",
"searchTo":"In",
diff --git a/i18n/en.json b/i18n/en.json
index ff0e47f..b670157 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -33,7 +33,10 @@
"draw_polygon":"Polygon",
"draw_traits": "Traits",
"draw_pedestrian": "Pedestrian pathway",
- "fill": "Texture",
+ "texture_black": "Black",
+ "texture_white": "White",
+ "texture_water": "Water",
+ "texture_vegetation": "Vegetation",
"print": "Print",
"open" : "Open",
"save": "Save",
@@ -68,7 +71,8 @@
"itineraryEndHelp": " This command exits the route mode, which removes all the inserted contents",
"readId": [
- { "value": "read" }
+ { "value": "read" },
+ { "value": "plan" }
],
"readDescri": "Read, default mode",
"readActive": "Read Mode",
@@ -89,8 +93,8 @@
"search_lower_left":"at the bottom left",
"search_lower_right":"at the bottom right",
"search_center":"in middle",
- "searchKilometer":"kilometer",
- "searchMeter":"meter",
+ "si_unit_km":"kilometer",
+ "si_unit_m":"meter",
"searchArrived":"You have arrived",
"searchTo":"to",
diff --git a/i18n/fr.json b/i18n/fr.json
index 16f7911..9cac175 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -33,7 +33,10 @@
"draw_polygon":"Polygone",
"draw_traits": "Traitillés",
"draw_pedestrian": "Passage piétons",
- "fill": "Texture",
+ "texture_black": "Noir",
+ "texture_white": "Blanc",
+ "texture_water": "Eau",
+ "texture_vegetation": "Végétation",
"print": "Imprimer",
"open" : "Ouvrir",
"save": "Sauvegarder",
@@ -68,7 +71,8 @@
"itineraryEndHelp": " Cette commande permet de sortir du mode itinéraire cela supprime tous le contenu insérer",
"readId": [
- { "value": "lecture" }
+ { "value": "lecture" },
+ { "value": "plan" }
],
"readDescri": "obtenir une adresses",
"readActive": "Mode lecture activé",
@@ -92,8 +96,8 @@
"search_lower_left":"en bas à gauche",
"search_lower_right":"en bas à droite",
"search_center":"au centre",
- "searchKilometer":"kilomètre",
- "searchMeter":"mètres",
+ "si_unit_km":"kilomètre",
+ "si_unit_m":"mètre",
"searchArrived":"Vous êtes arrivé",
"searchTo":"à",
diff --git a/i18n/it.json b/i18n/it.json
index 5e30e92..c2734b4 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -33,7 +33,10 @@
"draw_polygon": "Poligono",
"draw_traits": "puntinato",
"draw_pedestrian": "Passaggio pedoni",
- "fill": "Struttura",
+ "texture_black": "Nero",
+ "texture_white": "Bianco",
+ "texture_water": "Acqua",
+ "texture_vegetation": "Vegetazione",
"print": "Stampare",
"open": "Aprire",
"save": "Salvaguardare",
@@ -68,7 +71,8 @@
"itineraryEndHelp": " Questo ordine permette di estrarre del modo itinerario ciò sopprimo tutto il contenuto inserire",
"readId": [
- { "value": "lettura" }
+ { "value": "lettura" },
+ { "value": "piano" }
],
"readDescri": "ottenere un indirizzi",
"readActive": "Moda lettura attivata",
@@ -91,8 +95,8 @@
"search_lower_left":"in basso a sinistra",
"search_lower_right":"in basso a destra",
"search_center":"al centro",
- "searchKilometer":"chilometro",
- "searchMeter":"metri",
+ "si_unit_km":"chilometro",
+ "si_unit_m":"metri",
"searchArrived":"sei arrivato",
"searchTo":"al",
diff --git a/index.html b/index.html
deleted file mode 100644
index 437ad4f..0000000
--- a/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
- Projet AbaPlans
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Loading...
-
-
-
diff --git a/package-lock.json b/package-lock.json
index 443b071..10ca158 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,61 +5,119 @@
"requires": true,
"dependencies": {
"@angular/common": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-2.4.10.tgz",
- "integrity": "sha1-o6aC0iKPow7CPdDrV8joh/uiaZc="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.10.tgz",
+ "integrity": "sha512-4zgI/Q6bo/KCvrDPf8gc2IpTJ3PFKgd9RF4jZuh1uc+uEYTAj396tDF8o412AJ/iwtYOHWUx+YgzAvT8dHXZ5Q==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/compiler": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-2.4.10.tgz",
- "integrity": "sha1-9R/TSCCyoCx8th+89JhzxYBW+ww="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.10.tgz",
+ "integrity": "sha512-FI9ip+aWGpKQB+VfNbFQ+wyh0K4Th8Q/MrHxW6CN4BYVAfFtfORRohvyyYk0sRxuQO8JFN3W/FFfdXjuL+cZKw==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/core": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-2.4.10.tgz",
- "integrity": "sha1-C4MgplBlll2ZhkWx9c0892m0Qeo="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.10.tgz",
+ "integrity": "sha512-glDuTtHTcAVhfU3NVewxz/W+Iweq5IaeW2tnMa+RKLopYk9fRs8eR5iTixTGvegwKR770vfXg/gR7P6Ii5cYGQ==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/forms": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-2.4.10.tgz",
- "integrity": "sha1-BiEzqq3h87PJYvFZMgjFQbYi/QY="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.10.tgz",
+ "integrity": "sha512-XQR4cd1Eey9aDT3CxQ6pbBWSBEg1408ZV/EUblKgMgt4k8PfDiuLSbF+MI/TOYAg3UkcVAxN1no4hWtkou8Rpw==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/http": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/http/-/http-2.4.10.tgz",
- "integrity": "sha1-/2vq3ls5yYnr8jk8SbNO69Q+lVU="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.10.tgz",
+ "integrity": "sha512-euEJbxpH+pKBAwGUSo7XvNdods/kY6I4s8OUaJPUMtraQkhE6TJ0OMYvnqmGbdLimsg3ZMxqm54jCOjj9saEOQ==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/platform-browser": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-2.4.10.tgz",
- "integrity": "sha1-y/JWCBSPtP/vlsxQBbpdez4JOQY="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.10.tgz",
+ "integrity": "sha512-oF1A0BS1wpTlxfv6YytkFCkztvvtVllnh5IUnoyV+siVT3qogKat9ZmzCmcDJ5SvIDYkY+rXBhumyFzBZ5ufFg==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/platform-browser-dynamic": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.4.10.tgz",
- "integrity": "sha1-jfJd7CsGrcaQzJvCZEjezK682Ow="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.10.tgz",
+ "integrity": "sha512-TquhIkyR6uXfmzk6RiEl5+8Kk653Wqe4F+pKn5gFi+Z6cDm4nkDlT9kgT3e6c08JHw9fGGAvNmsalq7oS+PnNg==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/router": {
- "version": "3.4.10",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-3.4.10.tgz",
- "integrity": "sha1-pGagkY/CiC7OGMoSvVrqKYBQ6R4="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.10.tgz",
+ "integrity": "sha512-63op4yExVsm+Ng4dlCeexQdXKYMnzxtmX116V3hY/mHi1MPTR20uPCx55U8xR0kQvxs0ea8tmJxHdMpz76edqA==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
},
"@angular/upgrade": {
- "version": "2.4.10",
- "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-2.4.10.tgz",
- "integrity": "sha1-tpo+4yTURQ6xaW3cm97RpuwGylI="
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-5.2.10.tgz",
+ "integrity": "sha512-y0mirVO58mSrUsKEA1yp3rWWITiK6wSEO+60T39S7KlswJTN8MoD59OUCzaX20nAldjlhPnjCGOJRnkFJdVbTw==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
+ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="
},
"@types/arcgis-js-api": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-3.22.0.tgz",
- "integrity": "sha512-Eokfe09wHOjw9QAz0ybFdz+7xjAO+DGTKKyLOOwmDkaE/6+nZJ+yPXyXb/mr/cMoWjLrGN6Vx7vTfp00A97Vrw==",
- "dev": true
+ "version": "3.23.0",
+ "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-3.23.0.tgz",
+ "integrity": "sha512-m+elCoVYXOkbeXQKaK4hwbSbkNpJ9SyReL7ITbRK7+kgKX+yx5xVtKmnLaX0+pl1BP3xOB2avcmHLygroC1UvA=="
},
"@types/chai": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.4.tgz",
- "integrity": "sha512-cvU0HomQ7/aGDQJZsbtJXqBQ7w4J4TqLB0Z/h8mKrpRjfeZEvTbygkfJEb7fWdmwpIeDeFmIVwAEqS0OYuUv3Q==",
- "dev": true
+ "integrity": "sha512-cvU0HomQ7/aGDQJZsbtJXqBQ7w4J4TqLB0Z/h8mKrpRjfeZEvTbygkfJEb7fWdmwpIeDeFmIVwAEqS0OYuUv3Q=="
+ },
+ "@types/events": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz",
+ "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA=="
+ },
+ "@types/file-saver": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-1.3.0.tgz",
+ "integrity": "sha512-fC12hKtEzVkrV/ZRcrmqvpHG/TMYDZtgpAmgMUA4F7KneDaQeFMwmPz8AfygKKJMqsdTi8bL+E+fciaaMLxUhg=="
+ },
+ "@types/fs-extra": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz",
+ "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==",
+ "requires": {
+ "@types/node": "9.6.5"
+ }
+ },
+ "@types/glob": {
+ "version": "5.0.35",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz",
+ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==",
+ "requires": {
+ "@types/events": "1.2.0",
+ "@types/minimatch": "3.0.3",
+ "@types/node": "9.6.5"
+ }
},
"@types/google-maps": {
"version": "3.2.0",
@@ -74,22 +132,63 @@
"resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.29.2.tgz",
"integrity": "sha512-PeqmedweehsgKDZsqEMuIkL2gJEQv4IRhzBcuZ4yx+GSnbWJVXOzGaeOXgvYN4TlWuMvmNt04m97zRAcZD4wRQ=="
},
+ "@types/handlebars": {
+ "version": "4.0.36",
+ "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.0.36.tgz",
+ "integrity": "sha512-LjNiTX7TY7wtuC6y3QwC93hKMuqYhgV9A1uXBKNvZtVC8ZvyWAjZkJ5BvT0K7RKqORRYRLMrqCxpw5RgS+MdrQ=="
+ },
+ "@types/highlight.js": {
+ "version": "9.12.2",
+ "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.2.tgz",
+ "integrity": "sha512-y5x0XD/WXDaGSyiTaTcKS4FurULJtSiYbGTeQd0m2LYZGBcZZ/7fM6t5H/DzeUF+kv8y6UfmF6yJABQsHcp9VQ=="
+ },
"@types/jasmine": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.6.2.tgz",
- "integrity": "sha512-MycZLb931+dfAUzz27JeIOrvKjqyWUk27PhJzYWpIJ9nEyPi2bb1AOc/X9bvmvYnekpNrGNqYXwvoXMmpaeoCw==",
- "dev": true
+ "version": "2.8.6",
+ "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.6.tgz",
+ "integrity": "sha512-clg9raJTY0EOo5pVZKX3ZlMjlYzVU73L71q5OV1jhE2Uezb7oF94jh4CvwrW6wInquQAdhOxJz5VDF2TLUGmmA=="
},
"@types/lodash": {
- "version": "4.14.42",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.42.tgz",
- "integrity": "sha1-4nihHutSJRtltL6V/UyciqpFkJ4="
+ "version": "4.14.107",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.107.tgz",
+ "integrity": "sha512-afvjfP2rl3yvtv2qrCRN23zIQcDinF+munMJCoHEw2BXF22QJogTlVfNPTACQ6ieDyA6VnyKT4WLuN/wK368ng=="
+ },
+ "@types/marked": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz",
+ "integrity": "sha512-CSf9YWJdX1DkTNu9zcNtdCcn6hkRtB5ILjbhRId4ZOQqx30fXmdecuaXhugQL6eyrhuXtaHJ7PHI+Vm7k9ZJjg=="
+ },
+ "@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
+ },
+ "@types/mousetrap": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.0.tgz",
+ "integrity": "sha512-Jn2cF8X6RAMiSmJaATGjf2r3GzIfpZQpvnQhKprQ5sAbMaNXc7hc9sA2XHdMl3bEMEQhTV79JVW7n4Pgg7sjtg=="
},
"@types/node": {
- "version": "8.0.47",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.47.tgz",
- "integrity": "sha512-kOwL746WVvt/9Phf6/JgX/bsGQvbrK5iUgzyfwZNcKVFcjAUVSpF9HxevLTld2SG9aywYHOILj38arDdY1r/iQ==",
- "dev": true
+ "version": "9.6.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.5.tgz",
+ "integrity": "sha512-NOLEgsT6UiDTjnWG5Hd2Mg25LRyz/oe8ql3wbjzgSFeRzRROhPmtlsvIrei4B46UjERF0td9SZ1ZXPLOdcrBHg=="
+ },
+ "@types/shelljs": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha512-M2giRw93PxKS7YjU6GZjtdV9HASdB7TWqizBXe4Ju7AqbKlWvTr0gNO92XH56D/gMxqD/jNHLNfC5hA34yGqrQ==",
+ "requires": {
+ "@types/glob": "5.0.35",
+ "@types/node": "9.6.5"
+ }
+ },
+ "JSONStream": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
+ "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=",
+ "requires": {
+ "jsonparse": "1.3.1",
+ "through": "2.3.8"
+ }
},
"abbrev": {
"version": "1.1.1",
@@ -106,39 +205,74 @@
}
},
"acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
- "dev": true
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
+ "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ=="
+ },
+ "acorn-dynamic-import": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
+ "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
+ "requires": {
+ "acorn": "5.5.3"
+ }
+ },
+ "acorn-node": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.3.0.tgz",
+ "integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==",
+ "requires": {
+ "acorn": "5.5.3",
+ "xtend": "4.0.1"
+ }
+ },
+ "addressparser": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz",
+ "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=",
+ "optional": true
},
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
},
- "ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "dev": true,
+ "agent-base": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz",
+ "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
"requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
+ "extend": "3.0.1",
+ "semver": "5.0.3"
},
"dependencies": {
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
+ "semver": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
+ "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no="
}
}
},
+ "ajv": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz",
+ "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=",
+ "requires": {
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1",
+ "uri-js": "3.0.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz",
+ "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74="
+ },
"align-text": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "dev": true,
"requires": {
"kind-of": "3.2.2",
"longest": "1.0.1",
@@ -148,23 +282,74 @@
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
- "dev": true
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ },
+ "amqplib": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz",
+ "integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==",
+ "optional": true,
+ "requires": {
+ "bitsyntax": "0.0.4",
+ "bluebird": "3.5.1",
+ "buffer-more-ints": "0.0.2",
+ "readable-stream": "1.1.14",
+ "safe-buffer": "5.1.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ }
+ }
},
"angular-in-memory-web-api": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/angular-in-memory-web-api/-/angular-in-memory-web-api-0.2.5.tgz",
- "integrity": "sha1-vVmexvW4b6UXPde7VxDzk+gE3QU="
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/angular-in-memory-web-api/-/angular-in-memory-web-api-0.5.4.tgz",
+ "integrity": "sha512-Im5ZMXAaXE8rRwUEWSGNs5jDyrHC4vXRCxY2ZFqIZL5wBVeeZNVla3fIvpuVvNxw4JKyEUMOlOpMZE5QaPdDEg=="
+ },
+ "angular2-hotkeys": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/angular2-hotkeys/-/angular2-hotkeys-2.0.4.tgz",
+ "integrity": "sha512-TtBsgOp3lluUi6rJxPd8SsBO+8X/WjHqeEgFvq2+e4FoS8TCm0emd+K4sKxqoqs9oawJz+tCvzLZquuj1NL2BQ==",
+ "requires": {
+ "@types/mousetrap": "1.6.0",
+ "mousetrap": "1.6.1"
+ }
},
"angular2-template-loader": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz",
"integrity": "sha1-wNROkP/w+sleiyPwQ6zaf9HFHXw=",
- "dev": true,
"requires": {
"loader-utils": "0.2.17"
}
},
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw=="
+ },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -175,6 +360,11 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
+ "any-observable": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz",
+ "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI="
+ },
"anymatch": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
@@ -184,12 +374,22 @@
"normalize-path": "2.1.1"
}
},
- "archive-type": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
- "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=",
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "archy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
- "file-type": "3.9.0"
+ "sprintf-js": "1.0.3"
}
},
"arr-diff": {
@@ -205,16 +405,41 @@
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
"array-differ": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
},
+ "array-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
+ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
+ },
+ "array-filter": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+ "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw="
+ },
"array-find-index": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
},
+ "array-map": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="
+ },
"array-slice": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
@@ -224,7 +449,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "dev": true,
"requires": {
"array-uniq": "1.0.3"
}
@@ -247,25 +471,32 @@
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
- "dev": true
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
},
"artyom.js": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/artyom.js/-/artyom.js-1.0.5.tgz",
- "integrity": "sha1-/mCrJgEB8KfW4Zhgjpjz7lsqwCE="
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/artyom.js/-/artyom.js-1.0.6.tgz",
+ "integrity": "sha512-dNxvqJy9x2wHVIDu5DVYvdKKrsUBp/9K0FPPXo2YX/8saYBOtLvnoWNHW41NS1Jq+bD4RFqfwhXeLSXgeaDZYQ=="
},
"asn1": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
},
"assert": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
"integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
- "dev": true,
"requires": {
"util": "0.10.3"
}
@@ -273,376 +504,1161 @@
"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
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ },
+ "ast-types": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz",
+ "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA=="
+ },
+ "astw": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz",
+ "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
+ }
+ }
},
"async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
- "dev": true
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
},
"async-each": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
"integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
},
- "async-each-series": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz",
- "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg="
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "atob": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz",
+ "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10="
},
"aws-sign2": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
- "dev": true
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
},
"aws4": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
- "dev": true
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
},
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
+ "axios": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz",
+ "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=",
+ "optional": true,
+ "requires": {
+ "follow-redirects": "1.0.0"
+ }
},
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "babel-core": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-generator": "6.26.1",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "convert-source-map": "1.5.1",
+ "debug": "2.6.9",
+ "json5": "0.5.1",
+ "lodash": "4.17.5",
+ "minimatch": "3.0.4",
+ "path-is-absolute": "1.0.1",
+ "private": "0.1.8",
+ "slash": "1.0.0",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ }
+ }
},
- "base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+ "babel-generator": {
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "requires": {
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.5",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
+ }
+ }
},
- "base64-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
- "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==",
- "dev": true
+ "babel-helper-bindify-decorators": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
+ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
},
- "base64id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
- "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
+ "requires": {
+ "babel-helper-explode-assignable-expression": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
},
- "batch": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz",
- "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=",
- "dev": true
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
},
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "dev": true,
- "optional": true,
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
"requires": {
- "tweetnacl": "0.14.5"
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.5"
}
},
- "beeper": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
- "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
},
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+ "babel-helper-explode-class": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
+ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
"requires": {
- "callsite": "1.0.0"
+ "babel-helper-bindify-decorators": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "big.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "requires": {
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
},
- "bin-build": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
- "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=",
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
"requires": {
- "archive-type": "3.2.0",
- "decompress": "3.0.0",
- "download": "4.4.3",
- "exec-series": "1.0.3",
- "rimraf": "2.6.2",
- "tempfile": "1.1.1",
- "url-regex": "3.2.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "bin-check": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz",
- "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=",
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
"requires": {
- "executable": "1.1.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "bin-version": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
- "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=",
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
"requires": {
- "find-versions": "1.2.1"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "bin-version-check": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
- "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=",
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
"requires": {
- "bin-version": "1.0.4",
- "minimist": "1.2.0",
- "semver": "4.3.6",
- "semver-truncate": "1.1.2"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- }
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.5"
}
},
- "bin-wrapper": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
- "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=",
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
"requires": {
- "bin-check": "2.0.0",
- "bin-version-check": "2.1.0",
- "download": "4.4.3",
- "each-async": "1.1.1",
- "lazy-req": "1.1.0",
- "os-filter-obj": "1.0.3"
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "binary-extensions": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
- "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA="
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "requires": {
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
},
- "bl": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
- "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
"requires": {
- "readable-stream": "2.3.3"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
- "blob": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
- "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE="
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
},
- "bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
},
- "body-parser": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
- "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="
+ },
+ "babel-plugin-syntax-async-generators": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
+ "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o="
+ },
+ "babel-plugin-syntax-class-constructor-call": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz",
+ "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY="
+ },
+ "babel-plugin-syntax-class-properties": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94="
+ },
+ "babel-plugin-syntax-decorators": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs="
+ },
+ "babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo="
+ },
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4="
+ },
+ "babel-plugin-syntax-export-extensions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz",
+ "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE="
+ },
+ "babel-plugin-syntax-flow": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
+ "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0="
+ },
+ "babel-plugin-syntax-object-rest-spread": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U="
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM="
+ },
+ "babel-plugin-transform-async-generator-functions": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
+ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
"requires": {
- "bytes": "3.0.0",
- "content-type": "1.0.4",
- "debug": "2.6.9",
- "depd": "1.1.1",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.19",
- "on-finished": "2.3.0",
- "qs": "6.5.1",
- "raw-body": "2.3.2",
- "type-is": "1.6.15"
+ "babel-helper-remap-async-to-generator": "6.24.1",
+ "babel-plugin-syntax-async-generators": "6.13.0",
+ "babel-runtime": "6.26.0"
}
},
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true,
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
"requires": {
- "hoek": "2.16.3"
+ "babel-helper-remap-async-to-generator": "6.24.1",
+ "babel-plugin-syntax-async-functions": "6.13.0",
+ "babel-runtime": "6.26.0"
}
},
- "bootstrap": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
- "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
+ "babel-plugin-transform-class-constructor-call": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz",
+ "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=",
+ "requires": {
+ "babel-plugin-syntax-class-constructor-call": "6.18.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
},
- "bower": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz",
- "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc="
+ "babel-plugin-transform-class-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-plugin-syntax-class-properties": "6.13.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
},
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "babel-plugin-transform-decorators": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
+ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
"requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
+ "babel-helper-explode-class": "6.24.1",
+ "babel-plugin-syntax-decorators": "6.13.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
"requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
+ "babel-runtime": "6.26.0"
}
},
- "braille": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/braille/-/braille-1.1.0.tgz",
- "integrity": "sha1-NIQZWEomm9L1YSsHYf0grUeZ1NQ="
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
},
- "browser-sync": {
- "version": "2.18.13",
- "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.13.tgz",
- "integrity": "sha512-qhdrmgshVGwweogT/bdOKkZDxVxqiF4+9mibaDeAxvDBeoUtdgABk5x7YQ1KCcLRchAfv8AVtp9NuITl5CTNqg==",
- "dev": true,
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
"requires": {
- "browser-sync-client": "2.5.1",
- "browser-sync-ui": "0.6.3",
- "bs-recipes": "1.3.4",
- "chokidar": "1.7.0",
- "connect": "3.5.0",
- "dev-ip": "1.0.1",
- "easy-extender": "2.3.2",
- "eazy-logger": "3.0.2",
- "emitter-steward": "1.0.0",
- "fs-extra": "3.0.1",
- "http-proxy": "1.15.2",
- "immutable": "3.8.1",
- "localtunnel": "1.8.3",
- "micromatch": "2.3.11",
- "opn": "4.0.2",
- "portscanner": "2.1.1",
- "qs": "6.2.1",
- "resp-modifier": "6.0.2",
- "rx": "4.1.0",
- "serve-index": "1.8.0",
- "serve-static": "1.12.2",
- "server-destroy": "1.0.1",
- "socket.io": "1.6.0",
- "socket.io-client": "1.6.0",
- "ua-parser-js": "0.7.12",
- "yargs": "6.4.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.5"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "requires": {
+ "babel-helper-define-map": "6.26.0",
+ "babel-helper-function-name": "6.24.1",
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
+ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
+ "requires": {
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "requires": {
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "requires": {
+ "babel-helper-call-delegate": "6.24.1",
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "regexpu-core": "2.0.0"
+ }
+ },
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
+ "requires": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "6.13.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-export-extensions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz",
+ "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=",
+ "requires": {
+ "babel-plugin-syntax-export-extensions": "6.13.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-flow-strip-types": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
+ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
+ "requires": {
+ "babel-plugin-syntax-flow": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-object-rest-spread": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
+ "requires": {
+ "babel-plugin-syntax-object-rest-spread": "6.13.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "requires": {
+ "regenerator-transform": "0.10.1"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-preset-es2015": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
+ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
+ "requires": {
+ "babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "6.26.0",
+ "babel-plugin-transform-es2015-classes": "6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
+ "babel-plugin-transform-es2015-for-of": "6.23.0",
+ "babel-plugin-transform-es2015-function-name": "6.24.1",
+ "babel-plugin-transform-es2015-literals": "6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
+ "babel-plugin-transform-es2015-modules-umd": "6.24.1",
+ "babel-plugin-transform-es2015-object-super": "6.24.1",
+ "babel-plugin-transform-es2015-parameters": "6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
+ "babel-plugin-transform-es2015-spread": "6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
+ "babel-plugin-transform-es2015-template-literals": "6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
+ "babel-plugin-transform-regenerator": "6.26.0"
+ }
+ },
+ "babel-preset-stage-1": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz",
+ "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=",
+ "requires": {
+ "babel-plugin-transform-class-constructor-call": "6.24.1",
+ "babel-plugin-transform-export-extensions": "6.22.0",
+ "babel-preset-stage-2": "6.24.1"
+ }
+ },
+ "babel-preset-stage-2": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
+ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
+ "requires": {
+ "babel-plugin-syntax-dynamic-import": "6.18.0",
+ "babel-plugin-transform-class-properties": "6.24.1",
+ "babel-plugin-transform-decorators": "6.24.1",
+ "babel-preset-stage-3": "6.24.1"
+ }
+ },
+ "babel-preset-stage-3": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
+ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
+ "requires": {
+ "babel-plugin-syntax-trailing-function-commas": "6.22.0",
+ "babel-plugin-transform-async-generator-functions": "6.24.1",
+ "babel-plugin-transform-async-to-generator": "6.24.1",
+ "babel-plugin-transform-exponentiation-operator": "6.24.1",
+ "babel-plugin-transform-object-rest-spread": "6.26.0"
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.5",
+ "home-or-tmp": "2.0.0",
+ "lodash": "4.17.5",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.18"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "requires": {
+ "core-js": "2.5.5",
+ "regenerator-runtime": "0.11.1"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.5"
+ },
+ "dependencies": {
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ }
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.4",
+ "lodash": "4.17.5"
+ },
+ "dependencies": {
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.5",
+ "to-fast-properties": "1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "requires": {
+ "cache-base": "1.0.1",
+ "class-utils": "0.3.6",
+ "component-emitter": "1.2.1",
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "mixin-deep": "1.3.1",
+ "pascalcase": "0.1.1"
},
"dependencies": {
- "after": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz",
- "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=",
- "dev": true
- },
- "base64id": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
- "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=",
- "dev": true
- },
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
- "connect": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz",
- "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=",
- "dev": true,
- "requires": {
- "debug": "2.2.0",
- "finalhandler": "0.5.0",
- "parseurl": "1.3.2",
- "utils-merge": "1.0.0"
- }
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "ms": "0.7.1"
+ "is-descriptor": "1.0.2"
}
},
- "engine.io": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz",
- "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=",
- "dev": true,
- "requires": {
- "accepts": "1.3.3",
- "base64id": "0.1.0",
- "cookie": "0.3.1",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.1",
- "ws": "1.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "base64-arraybuffer": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+ "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+ },
+ "base64-js": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz",
+ "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w=="
+ },
+ "base64id": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+ "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
+ },
+ "batch": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz",
+ "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "beeper": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
+ "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
+ },
+ "better-assert": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+ "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+ "requires": {
+ "callsite": "1.0.0"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
+ },
+ "binary-extensions": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
+ "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA="
+ },
+ "binaryextensions": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz",
+ "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA=="
+ },
+ "bitsyntax": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz",
+ "integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=",
+ "optional": true,
+ "requires": {
+ "buffer-more-ints": "0.0.2"
+ }
+ },
+ "bl": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
+ "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=",
+ "optional": true,
+ "requires": {
+ "readable-stream": "2.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
},
- "engine.io-client": {
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ }
+ }
+ },
+ "blob": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
+ "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE="
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "1.6.16"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
+ }
+ },
+ "braille": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/braille/-/braille-1.1.0.tgz",
+ "integrity": "sha1-NIQZWEomm9L1YSsHYf0grUeZ1NQ="
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+ },
+ "browser-pack": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.4.tgz",
+ "integrity": "sha512-Q4Rvn7P6ObyWfc4stqLWHtG1MJ8vVtjgT24Zbu+8UTzxYuZouqZsmNRRTFVMY/Ux0eIKv1d+JWzsInTX+fdHPQ==",
+ "requires": {
+ "JSONStream": "1.3.2",
+ "combine-source-map": "0.8.0",
+ "defined": "1.0.0",
+ "safe-buffer": "5.1.1",
+ "through2": "2.0.3",
+ "umd": "3.0.3"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ }
+ }
+ },
+ "browser-resolve": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
+ "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
+ "requires": {
+ "resolve": "1.1.7"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
+ }
+ }
+ },
+ "browser-sync": {
+ "version": "2.18.13",
+ "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.13.tgz",
+ "integrity": "sha512-qhdrmgshVGwweogT/bdOKkZDxVxqiF4+9mibaDeAxvDBeoUtdgABk5x7YQ1KCcLRchAfv8AVtp9NuITl5CTNqg==",
+ "requires": {
+ "browser-sync-client": "2.5.1",
+ "browser-sync-ui": "0.6.3",
+ "bs-recipes": "1.3.4",
+ "chokidar": "1.7.0",
+ "connect": "3.5.0",
+ "dev-ip": "1.0.1",
+ "easy-extender": "2.3.2",
+ "eazy-logger": "3.0.2",
+ "emitter-steward": "1.0.0",
+ "fs-extra": "3.0.1",
+ "http-proxy": "1.15.2",
+ "immutable": "3.8.1",
+ "localtunnel": "1.8.3",
+ "micromatch": "2.3.11",
+ "opn": "4.0.2",
+ "portscanner": "2.1.1",
+ "qs": "6.2.1",
+ "resp-modifier": "6.0.2",
+ "rx": "4.1.0",
+ "serve-index": "1.8.0",
+ "serve-static": "1.12.2",
+ "server-destroy": "1.0.1",
+ "socket.io": "1.6.0",
+ "socket.io-client": "1.6.0",
+ "ua-parser-js": "0.7.12",
+ "yargs": "6.4.0"
+ },
+ "dependencies": {
+ "after": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz",
+ "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic="
+ },
+ "base64id": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
+ "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8="
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "connect": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz",
+ "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=",
+ "requires": {
+ "debug": "2.2.0",
+ "finalhandler": "0.5.0",
+ "parseurl": "1.3.2",
+ "utils-merge": "1.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "engine.io": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz",
- "integrity": "sha1-e3MOQSdBQIdZbZvjyI0rxf22z1w=",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz",
+ "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=",
"requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
+ "accepts": "1.3.3",
+ "base64id": "0.1.0",
+ "cookie": "0.3.1",
"debug": "2.3.3",
"engine.io-parser": "1.3.1",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parsejson": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "1.1.1",
- "xmlhttprequest-ssl": "1.5.3",
- "yeast": "0.1.2"
+ "ws": "1.1.1"
},
"dependencies": {
"debug": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
"requires": {
"ms": "0.7.2"
}
@@ -650,16 +1666,48 @@
"ms": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
}
}
},
- "engine.io-parser": {
- "version": "1.3.1",
+ "engine.io-client": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz",
+ "integrity": "sha1-e3MOQSdBQIdZbZvjyI0rxf22z1w=",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "component-inherit": "0.0.3",
+ "debug": "2.3.3",
+ "engine.io-parser": "1.3.1",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parsejson": "0.0.3",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "ws": "1.1.1",
+ "xmlhttprequest-ssl": "1.5.3",
+ "yeast": "0.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "requires": {
+ "ms": "0.7.2"
+ }
+ },
+ "ms": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "1.3.1",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz",
"integrity": "sha1-lVTxrjMQfW+9FwylRm0vgz9qB88=",
- "dev": true,
"requires": {
"after": "0.8.1",
"arraybuffer.slice": "0.0.6",
@@ -673,7 +1721,6 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz",
"integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=",
- "dev": true,
"requires": {
"isarray": "0.0.1"
}
@@ -684,7 +1731,6 @@
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz",
"integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=",
- "dev": true,
"requires": {
"debug": "2.2.0",
"escape-html": "1.0.3",
@@ -697,7 +1743,6 @@
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
"integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
- "dev": true,
"requires": {
"eventemitter3": "1.2.0",
"requires-port": "1.0.0"
@@ -706,32 +1751,27 @@
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"ms": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg="
},
"qs": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz",
- "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=",
- "dev": true
+ "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU="
},
"rx": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
- "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
- "dev": true
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
},
"socket.io": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz",
"integrity": "sha1-PkDZMmN+a9kjmBslyvfFPoO24uE=",
- "dev": true,
"requires": {
"debug": "2.3.3",
"engine.io": "1.8.0",
@@ -746,7 +1786,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
"requires": {
"ms": "0.7.2"
}
@@ -754,8 +1793,7 @@
"ms": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
}
}
},
@@ -763,7 +1801,6 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz",
"integrity": "sha1-W2aPT3cTBN/u0XkGRwg4b6ZxeFM=",
- "dev": true,
"requires": {
"backo2": "1.0.2",
"component-bind": "1.0.0",
@@ -782,7 +1819,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
"requires": {
"ms": "0.7.2"
}
@@ -790,28 +1826,24 @@
"ms": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
}
}
},
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
- "dev": true
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
},
"utils-merge": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
- "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
- "dev": true
+ "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
},
"ws": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz",
"integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg=",
- "dev": true,
"requires": {
"options": "0.0.6",
"ultron": "1.0.2"
@@ -823,7 +1855,6 @@
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.5.1.tgz",
"integrity": "sha1-7BrWmknC4tS2RbGLHAbCmz2a+Os=",
- "dev": true,
"requires": {
"etag": "1.8.1",
"fresh": "0.3.0"
@@ -833,7 +1864,6 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.3.tgz",
"integrity": "sha1-ZApTfBgGiTA9W+krxHa568RBwLw=",
- "dev": true,
"requires": {
"async-each-series": "0.1.1",
"connect-history-api-fallback": "1.4.0",
@@ -846,65 +1876,239 @@
"async-each-series": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz",
- "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=",
- "dev": true
+ "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI="
+ }
+ }
+ },
+ "browserify": {
+ "version": "14.5.0",
+ "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz",
+ "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==",
+ "requires": {
+ "JSONStream": "1.3.2",
+ "assert": "1.4.1",
+ "browser-pack": "6.0.4",
+ "browser-resolve": "1.11.2",
+ "browserify-zlib": "0.2.0",
+ "buffer": "5.1.0",
+ "cached-path-relative": "1.0.1",
+ "concat-stream": "1.5.2",
+ "console-browserify": "1.1.0",
+ "constants-browserify": "1.0.0",
+ "crypto-browserify": "3.12.0",
+ "defined": "1.0.0",
+ "deps-sort": "2.0.0",
+ "domain-browser": "1.1.7",
+ "duplexer2": "0.1.4",
+ "events": "1.1.1",
+ "glob": "7.1.2",
+ "has": "1.0.1",
+ "htmlescape": "1.1.1",
+ "https-browserify": "1.0.0",
+ "inherits": "2.0.3",
+ "insert-module-globals": "7.0.2",
+ "labeled-stream-splicer": "2.0.0",
+ "module-deps": "4.1.1",
+ "os-browserify": "0.3.0",
+ "parents": "1.0.1",
+ "path-browserify": "0.0.0",
+ "process": "0.11.10",
+ "punycode": "1.4.1",
+ "querystring-es3": "0.2.1",
+ "read-only-stream": "2.0.0",
+ "readable-stream": "2.3.3",
+ "resolve": "1.5.0",
+ "shasum": "1.0.2",
+ "shell-quote": "1.6.1",
+ "stream-browserify": "2.0.1",
+ "stream-http": "2.8.1",
+ "string_decoder": "1.0.3",
+ "subarg": "1.0.0",
+ "syntax-error": "1.4.0",
+ "through2": "2.0.3",
+ "timers-browserify": "1.4.2",
+ "tty-browserify": "0.0.0",
+ "url": "0.11.0",
+ "util": "0.10.3",
+ "vm-browserify": "0.0.4",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz",
+ "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==",
+ "requires": {
+ "base64-js": "1.2.3",
+ "ieee754": "1.1.10"
+ }
+ },
+ "concat-stream": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
+ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.0.6",
+ "typedarray": "0.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ },
+ "timers-browserify": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
+ "requires": {
+ "process": "0.11.10"
+ }
}
}
},
"browserify-aes": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz",
- "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=",
- "dev": true,
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
+ "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
+ "requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "requires": {
+ "browserify-aes": "1.1.1",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
"requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
"inherits": "2.0.3"
}
},
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.6"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.0"
+ }
+ },
"browserify-zlib": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
- "dev": true,
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
"requires": {
- "pako": "0.2.9"
+ "pako": "1.0.6"
}
},
"bs-recipes": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
- "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=",
- "dev": true
+ "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU="
},
"buffer": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
- "dev": true,
"requires": {
- "base64-js": "1.2.1",
- "ieee754": "1.1.8",
+ "base64-js": "1.2.3",
+ "ieee754": "1.1.10",
"isarray": "1.0.0"
}
},
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
- },
"buffer-equal": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.2.tgz",
"integrity": "sha1-7Lt5D1aNQAmKYkK1SAXHWAXrk48="
},
- "buffer-to-vinyl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
- "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=",
+ "buffer-from": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
+ "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA=="
+ },
+ "buffer-more-ints": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz",
+ "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw="
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+ },
+ "buildmail": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz",
+ "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=",
+ "optional": true,
"requires": {
- "file-type": "3.9.0",
- "readable-stream": "2.3.3",
- "uuid": "2.0.3",
- "vinyl": "1.2.0"
+ "addressparser": "1.0.1",
+ "libbase64": "0.1.0",
+ "libmime": "3.0.0",
+ "libqp": "1.1.0",
+ "nodemailer-fetch": "1.6.0",
+ "nodemailer-shared": "1.1.0",
+ "punycode": "1.4.1"
}
},
"builtin-modules": {
@@ -915,8 +2119,7 @@
"builtin-status-codes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
- "dev": true
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
},
"bunker": {
"version": "0.1.2",
@@ -947,59 +2150,125 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "requires": {
+ "bluebird": "3.5.1",
+ "chownr": "1.0.1",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "lru-cache": "4.1.2",
+ "mississippi": "2.0.0",
+ "mkdirp": "0.5.1",
+ "move-concurrently": "1.0.1",
+ "promise-inflight": "1.0.1",
+ "rimraf": "2.6.2",
+ "ssri": "5.3.0",
+ "unique-filename": "1.1.0",
+ "y18n": "4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ }
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "requires": {
+ "collection-visit": "1.0.0",
+ "component-emitter": "1.2.1",
+ "get-value": "2.0.6",
+ "has-value": "1.0.0",
+ "isobject": "3.0.1",
+ "set-value": "2.0.0",
+ "to-object-path": "0.3.0",
+ "union-value": "1.0.0",
+ "unset-value": "1.0.0"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "cacheable-request": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
+ "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=",
+ "requires": {
+ "clone-response": "1.0.2",
+ "get-stream": "3.0.0",
+ "http-cache-semantics": "3.8.1",
+ "keyv": "3.0.0",
+ "lowercase-keys": "1.0.0",
+ "normalize-url": "2.0.1",
+ "responselike": "1.0.2"
+ },
+ "dependencies": {
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+ }
+ }
+ },
+ "cached-path-relative": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
+ "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc="
+ },
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
},
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
- },
- "camelcase-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
"requires": {
- "camelcase": "2.1.1",
- "map-obj": "1.0.1"
+ "no-case": "2.3.2",
+ "upper-case": "1.1.3"
}
},
- "capture-stack-trace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
- "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0="
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
- },
- "caw": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
- "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
- "requires": {
- "get-proxy": "1.1.0",
- "is-obj": "1.0.1",
- "object-assign": "3.0.0",
- "tunnel-agent": "0.4.3"
- },
- "dependencies": {
- "object-assign": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
- }
- }
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"center-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dev": true,
+ "optional": true,
"requires": {
"align-text": "0.1.4",
"lazy-cache": "1.0.4"
@@ -1017,6 +2286,11 @@
"supports-color": "2.0.0"
}
},
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
+ },
"charm": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz",
@@ -1029,7 +2303,7 @@
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.1",
- "fsevents": "1.1.2",
+ "fsevents": "1.1.3",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
@@ -1038,77 +2312,323 @@
"readdirp": "2.1.0"
}
},
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
- }
- },
- "clone": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
- "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk="
- },
- "clone-stats": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
- "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
- },
- "co": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
- "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g="
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "dev": true
- },
- "colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
- },
- "combine-lists": {
+ "chownr": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
- "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
- "requires": {
- "lodash": "4.17.2"
- }
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
+ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
},
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "dev": true,
- "requires": {
- "delayed-stream": "1.0.0"
- }
+ "chrome-trace-event": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz",
+ "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A=="
},
- "commander": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
- "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"requires": {
- "graceful-readlink": "1.0.1"
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
}
},
- "component-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
- "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
- },
- "component-emitter": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
- "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM="
+ "circular-json": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.1.tgz",
+ "integrity": "sha512-UjgcRlTAhAkLeXmDe2wK7ktwy/tgAqxiSndTIPiFZuIPLZmzHzWMwUIe9h9m/OokypG7snxCDEuwJshGBdPvaw=="
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "requires": {
+ "arr-union": "3.1.0",
+ "define-property": "0.2.5",
+ "isobject": "3.0.1",
+ "static-extend": "0.1.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
+ "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "requires": {
+ "restore-cursor": "2.0.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
+ "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw="
+ },
+ "cli-table": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
+ "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=",
+ "requires": {
+ "colors": "1.0.3"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
+ }
+ }
+ },
+ "cli-truncate": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+ "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+ "requires": {
+ "slice-ansi": "0.0.4",
+ "string-width": "1.0.2"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk="
+ },
+ "clone-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
+ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg="
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "requires": {
+ "mimic-response": "1.0.0"
+ }
+ },
+ "clone-stats": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
+ },
+ "cloneable-readable": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
+ "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
+ "requires": {
+ "inherits": "2.0.3",
+ "process-nextick-args": "2.0.0",
+ "readable-stream": "2.3.6"
+ },
+ "dependencies": {
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "co": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/co/-/co-3.0.6.tgz",
+ "integrity": "sha1-FEXyJsXrlWE45oyawwFn6n0ua9o=",
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "requires": {
+ "map-visit": "1.0.0",
+ "object-visit": "1.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
+ },
+ "combine-lists": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
+ "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
+ "requires": {
+ "lodash": "4.17.5"
+ }
+ },
+ "combine-source-map": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",
+ "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=",
+ "requires": {
+ "convert-source-map": "1.1.3",
+ "inline-source-map": "0.6.2",
+ "lodash.memoize": "3.0.4",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "convert-source-map": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
+ "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA="
+ }
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ },
+ "component-bind": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
+ },
+ "component-emitter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
+ "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM="
},
"component-inherit": {
"version": "0.0.3",
@@ -1121,25 +2641,25 @@
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
+ "buffer-from": "1.0.0",
"inherits": "2.0.3",
"readable-stream": "2.3.3",
"typedarray": "0.0.6"
}
},
"concurrently": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.0.tgz",
- "integrity": "sha1-jPG3cHppFqeKT/W3e7BN7FSzebI=",
- "dev": true,
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz",
+ "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==",
"requires": {
"chalk": "0.5.1",
"commander": "2.6.0",
"date-fns": "1.29.0",
- "lodash": "4.17.2",
+ "lodash": "4.17.5",
"rx": "2.3.24",
"spawn-command": "0.0.2-1",
"supports-color": "3.2.3",
@@ -1149,20 +2669,17 @@
"ansi-regex": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
- "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
- "dev": true
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk="
},
"ansi-styles": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
- "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
- "dev": true
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94="
},
"chalk": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
"integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
- "dev": true,
"requires": {
"ansi-styles": "1.1.0",
"escape-string-regexp": "1.0.5",
@@ -1174,31 +2691,32 @@
"supports-color": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
- "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
- "dev": true
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo="
}
}
},
"commander": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
- "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=",
- "dev": true
+ "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0="
},
"has-ansi": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
"integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
- "dev": true,
"requires": {
"ansi-regex": "0.2.1"
}
},
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
+ },
"strip-ansi": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
"integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
- "dev": true,
"requires": {
"ansi-regex": "0.2.1"
}
@@ -1207,7 +2725,6 @@
"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"
}
@@ -1215,12 +2732,12 @@
}
},
"connect": {
- "version": "3.6.5",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz",
- "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=",
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
+ "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
"requires": {
"debug": "2.6.9",
- "finalhandler": "1.0.6",
+ "finalhandler": "1.1.0",
"parseurl": "1.3.2",
"utils-merge": "1.0.1"
}
@@ -1228,14 +2745,12 @@
"connect-history-api-fallback": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz",
- "integrity": "sha1-PbJPlz9LkjsOgvYZzg3wJBHKYj0=",
- "dev": true
+ "integrity": "sha1-PbJPlz9LkjsOgvYZzg3wJBHKYj0="
},
"connect-logger": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/connect-logger/-/connect-logger-0.0.1.tgz",
"integrity": "sha1-TZmZeKHSC7RgjnzUNNdBZSJVF0s=",
- "dev": true,
"requires": {
"moment": "2.18.1"
}
@@ -1244,21 +2759,14 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
"integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "dev": true,
"requires": {
"date-now": "0.1.4"
}
},
- "console-stream": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
- "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ="
- },
"constants-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
- "dev": true
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
},
"content-type": {
"version": "1.0.4",
@@ -1266,52 +2774,150 @@
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"convert-source-map": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
- "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU="
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
},
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "requires": {
+ "aproba": "1.2.0",
+ "fs-write-stream-atomic": "1.0.10",
+ "iferr": "0.1.5",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2",
+ "run-queue": "1.0.3"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ },
+ "copy-webpack-plugin": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz",
+ "integrity": "sha512-OlTo6DYg0XfTKOF8eLf79wcHm4Ut10xU2cRBRPMW/NA5F9VMjZGTfRHWDIYC3s+1kObGYrBLshXWU1K0hILkNQ==",
+ "requires": {
+ "cacache": "10.0.4",
+ "find-cache-dir": "1.0.0",
+ "globby": "7.1.1",
+ "is-glob": "4.0.0",
+ "loader-utils": "1.1.0",
+ "minimatch": "3.0.4",
+ "p-limit": "1.2.0",
+ "serialize-javascript": "1.4.0"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "requires": {
+ "array-union": "1.0.2",
+ "dir-glob": "2.0.0",
+ "glob": "7.1.2",
+ "ignore": "3.3.7",
+ "pify": "3.0.0",
+ "slash": "1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
+ }
+ },
"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.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz",
+ "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "create-error-class": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
- "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+ "create-ecdh": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
"requires": {
- "capture-stack-trace": "1.0.0"
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.0"
}
},
- "cross-spawn": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
- "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
- "dev": true,
+ "create-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
+ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.11"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
+ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
"requires": {
- "lru-cache": "4.1.1",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.11"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "1.0.4",
+ "path-key": "2.0.1",
+ "semver": "5.5.0",
+ "shebang-command": "1.2.0",
"which": "1.3.0"
},
"dependencies": {
- "lru-cache": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
- "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
- "dev": true,
- "requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
- }
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
}
}
},
@@ -1319,23 +2925,44 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "dev": true,
"requires": {
"boom": "2.10.1"
}
},
"crypto-browserify": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz",
- "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=",
- "dev": true,
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "requires": {
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.14",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.6",
+ "randomfill": "1.0.4"
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
"requires": {
- "browserify-aes": "0.4.0",
- "pbkdf2-compat": "2.0.1",
- "ripemd160": "0.2.0",
- "sha.js": "2.2.6"
+ "boolbase": "1.0.0",
+ "css-what": "2.1.0",
+ "domutils": "1.5.1",
+ "nth-check": "1.0.1"
}
},
+ "css-what": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0="
+ },
"currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -1349,17 +2976,20 @@
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
"integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU="
},
- "dargs": {
+ "cyclist": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA="
+ },
+ "dargs": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz",
- "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=",
- "dev": true
+ "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk="
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0"
},
@@ -1367,22 +2997,30 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}
}
},
+ "data-uri-to-buffer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz",
+ "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==",
+ "optional": true
+ },
"date-fns": {
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
- "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
- "dev": true
+ "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw=="
+ },
+ "date-format": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
+ "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg="
},
"date-now": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
- "dev": true
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
},
"dateformat": {
"version": "2.2.0",
@@ -1402,137 +3040,129 @@
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
- "decompress": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
- "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=",
- "requires": {
- "buffer-to-vinyl": "1.1.0",
- "concat-stream": "1.6.0",
- "decompress-tar": "3.1.0",
- "decompress-tarbz2": "3.1.0",
- "decompress-targz": "3.1.0",
- "decompress-unzip": "3.4.0",
- "stream-combiner2": "1.1.1",
- "vinyl-assign": "1.2.1",
- "vinyl-fs": "2.4.4"
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "1.0.0"
}
},
- "decompress-tar": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
- "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
+ "deep-equal": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz",
+ "integrity": "sha1-mWedO70EcVb81FDT0B7rkGhpHoM="
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
"requires": {
- "is-tar": "1.0.0",
- "object-assign": "2.1.1",
- "strip-dirs": "1.1.1",
- "tar-stream": "1.5.4",
- "through2": "0.6.5",
- "vinyl": "0.4.6"
- },
- "dependencies": {
- "clone": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
- },
- "object-assign": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
- "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
- },
- "vinyl": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
- "requires": {
- "clone": "0.2.0",
- "clone-stats": "0.0.1"
- }
- }
+ "clone": "1.0.2"
}
},
- "decompress-tarbz2": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
- "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
"requires": {
- "is-bzip2": "1.0.0",
- "object-assign": "2.1.1",
- "seek-bzip": "1.0.5",
- "strip-dirs": "1.1.1",
- "tar-stream": "1.5.4",
- "through2": "0.6.5",
- "vinyl": "0.4.6"
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "requires": {
+ "is-descriptor": "1.0.2",
+ "isobject": "3.0.1"
},
"dependencies": {
- "clone": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
- },
- "object-assign": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
- "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
- },
- "vinyl": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
- "requires": {
- "clone": "0.2.0",
- "clone-stats": "0.0.1"
- }
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
}
}
},
- "decompress-targz": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
- "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
+ },
+ "degenerator": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz",
+ "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=",
+ "optional": true,
"requires": {
- "is-gzip": "1.0.0",
- "object-assign": "2.1.1",
- "strip-dirs": "1.1.1",
- "tar-stream": "1.5.4",
- "through2": "0.6.5",
- "vinyl": "0.4.6"
+ "ast-types": "0.11.3",
+ "escodegen": "1.9.1",
+ "esprima": "3.1.3"
},
"dependencies": {
- "clone": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
- },
- "object-assign": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
- "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
- },
- "vinyl": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
- "requires": {
- "clone": "0.2.0",
- "clone-stats": "0.0.1"
- }
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "optional": true
}
}
},
- "decompress-unzip": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
- "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=",
+ "del": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz",
+ "integrity": "sha1-mlDwS/NzJeKDtPROmFM2wlJFa9U=",
+ "requires": {
+ "globby": "4.1.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "object-assign": "4.1.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "depd": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
+ "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
+ },
+ "deprecated": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
+ "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk="
+ },
+ "deps-sort": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
+ "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
"requires": {
- "is-zip": "1.0.0",
- "read-all-stream": "3.1.0",
- "stat-mode": "0.2.2",
- "strip-dirs": "1.1.1",
- "through2": "2.0.3",
- "vinyl": "1.2.0",
- "yauzl": "2.9.0"
+ "JSONStream": "1.3.2",
+ "shasum": "1.0.2",
+ "subarg": "1.0.0",
+ "through2": "2.0.3"
},
"dependencies": {
"through2": {
@@ -1546,49 +3176,72 @@
}
}
},
- "deep-equal": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz",
- "integrity": "sha1-mWedO70EcVb81FDT0B7rkGhpHoM="
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
},
- "deep-extend": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ "detect-conflict": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz",
+ "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24="
},
- "delayed-stream": {
+ "detect-file": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
},
- "depd": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
- "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "requires": {
+ "repeating": "2.0.1"
+ }
},
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
- "dev": true
+ "detective": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz",
+ "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==",
+ "requires": {
+ "acorn": "5.5.3",
+ "defined": "1.0.0"
+ }
},
"dev-ip": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
- "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=",
- "dev": true
+ "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA="
},
"di": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
"integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw="
},
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ },
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.6"
+ }
+ },
"difflet": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/difflet/-/difflet-0.2.6.tgz",
@@ -1599,15 +3252,53 @@
"traverse": "0.6.6"
}
},
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
+ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "requires": {
+ "arrify": "1.0.1",
+ "path-type": "3.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "requires": {
+ "pify": "3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
+ }
+ },
"dojo-typings": {
"version": "1.11.9",
"resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
"integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
- "dev": true,
"requires": {
"@types/chai": "4.0.4"
}
},
+ "dom-converter": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz",
+ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=",
+ "requires": {
+ "utila": "0.3.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY="
+ }
+ }
+ },
"dom-serialize": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
@@ -1619,34 +3310,55 @@
"void-elements": "2.0.1"
}
},
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "requires": {
+ "domelementtype": "1.1.3",
+ "entities": "1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
+ }
+ }
+ },
"domain-browser": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
- "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
- "dev": true
- },
- "download": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
- "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=",
- "requires": {
- "caw": "1.2.0",
- "concat-stream": "1.6.0",
- "each-async": "1.1.1",
- "filenamify": "1.2.1",
- "got": "5.7.1",
- "gulp-decompress": "1.2.0",
- "gulp-rename": "1.2.2",
- "is-url": "1.2.2",
- "object-assign": "4.1.0",
- "read-all-stream": "3.1.0",
- "readable-stream": "2.3.3",
- "stream-combiner2": "1.1.1",
- "vinyl": "1.2.0",
- "vinyl-fs": "2.4.4",
- "ware": "1.3.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
+ },
+ "domhandler": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
+ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "requires": {
+ "dom-serializer": "0.1.0",
+ "domelementtype": "1.3.0"
}
},
+ "double-ended-queue": {
+ "version": "2.1.0-0",
+ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
+ "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=",
+ "optional": true
+ },
"duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
@@ -1655,31 +3367,26 @@
"readable-stream": "2.3.3"
}
},
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+ },
"duplexify": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
- "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==",
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz",
+ "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==",
"requires": {
- "end-of-stream": "1.4.0",
+ "end-of-stream": "1.4.1",
"inherits": "2.0.3",
"readable-stream": "2.3.3",
"stream-shift": "1.0.0"
}
},
- "each-async": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
- "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
- "requires": {
- "onetime": "1.1.0",
- "set-immediate-shim": "1.0.1"
- }
- },
"easy-extender": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz",
"integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=",
- "dev": true,
"requires": {
"lodash": "3.10.1"
},
@@ -1687,8 +3394,7 @@
"lodash": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
}
}
},
@@ -1696,7 +3402,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
"integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
- "dev": true,
"requires": {
"tfunk": "3.1.0"
}
@@ -1705,22 +3410,49 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "dev": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
+ "editions": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz",
+ "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg=="
+ },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
+ "ejs": {
+ "version": "2.5.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.8.tgz",
+ "integrity": "sha512-QIDZL54fyV8MDcAsO91BMH1ft2qGGaHIJsJIA/+t+7uvXol1dm413fPcUgUb4k8F/9457rx4/KFE4XfDifrQxQ=="
+ },
+ "elegant-spinner": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+ "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4="
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
+ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.3",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
"emitter-steward": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz",
- "integrity": "sha1-80Ea3pdYp1Zd+Eiy2gy70bRsvWQ=",
- "dev": true
+ "integrity": "sha1-80Ea3pdYp1Zd+Eiy2gy70bRsvWQ="
},
"emojis-list": {
"version": "2.1.0",
@@ -1733,57 +3465,74 @@
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
},
"end-of-stream": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
- "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"requires": {
"once": "1.4.0"
}
},
"engine.io": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz",
- "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz",
+ "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==",
"requires": {
- "accepts": "1.3.3",
+ "accepts": "1.3.5",
"base64id": "1.0.0",
"cookie": "0.3.1",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.2",
- "ws": "1.1.2"
+ "debug": "3.1.0",
+ "engine.io-parser": "2.1.2",
+ "uws": "9.14.0",
+ "ws": "3.3.3"
},
"dependencies": {
+ "accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+ "requires": {
+ "mime-types": "2.1.18",
+ "negotiator": "0.6.1"
+ }
+ },
"debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
- "ms": "0.7.2"
+ "ms": "2.0.0"
}
},
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ "mime-db": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.18",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "requires": {
+ "mime-db": "1.33.0"
+ }
}
}
},
"engine.io-client": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz",
- "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz",
+ "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==",
"requires": {
"component-emitter": "1.2.1",
"component-inherit": "0.0.3",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.2",
+ "debug": "3.1.0",
+ "engine.io-parser": "2.1.2",
"has-cors": "1.1.0",
"indexof": "0.0.1",
- "parsejson": "0.0.3",
"parseqs": "0.0.5",
"parseuri": "0.0.5",
- "ws": "1.1.2",
- "xmlhttprequest-ssl": "1.5.3",
+ "ws": "3.3.3",
+ "xmlhttprequest-ssl": "1.5.5",
"yeast": "0.1.2"
},
"dependencies": {
@@ -1793,42 +3542,47 @@
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
"debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
- "ms": "0.7.2"
+ "ms": "2.0.0"
}
},
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ "xmlhttprequest-ssl": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+ "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
}
}
},
"engine.io-parser": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz",
- "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz",
+ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
"requires": {
"after": "0.8.2",
- "arraybuffer.slice": "0.0.6",
+ "arraybuffer.slice": "0.0.7",
"base64-arraybuffer": "0.1.5",
"blob": "0.0.4",
- "has-binary": "0.1.7",
- "wtf-8": "1.0.0"
- }
+ "has-binary2": "1.0.2"
+ },
+ "dependencies": {
+ "arraybuffer.slice": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
+ }
+ }
},
"enhanced-resolve": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
- "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz",
+ "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==",
"requires": {
"graceful-fs": "4.1.11",
"memory-fs": "0.4.1",
- "object-assign": "4.1.0",
- "tapable": "0.2.8"
+ "tapable": "1.0.0"
}
},
"ent": {
@@ -1836,11 +3590,20 @@
"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
"integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0="
},
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
+ },
+ "envinfo": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-4.4.2.tgz",
+ "integrity": "sha512-5rfRs+m+6pwoKRCFqpsA5+qsLngFms1aWPrxfKbrObCzQaPc3M3yPloZx+BL9UE3dK58cxw36XVQbFRSCCfGSQ=="
+ },
"err-code": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
- "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
- "dev": true
+ "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA="
},
"errno": {
"version": "0.1.4",
@@ -1850,6 +3613,15 @@
"prr": "0.0.0"
}
},
+ "error": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
+ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
+ "requires": {
+ "string-template": "0.2.1",
+ "xtend": "4.0.1"
+ }
+ },
"error-ex": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
@@ -1858,6 +3630,28 @@
"is-arrayish": "0.2.1"
}
},
+ "es-abstract": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz",
+ "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==",
+ "requires": {
+ "es-to-primitive": "1.1.1",
+ "function-bind": "1.1.1",
+ "has": "1.0.1",
+ "is-callable": "1.1.3",
+ "is-regex": "1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "requires": {
+ "is-callable": "1.1.3",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.1"
+ }
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -1868,16 +3662,74 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
+ "escodegen": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
+ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
+ "optional": true,
+ "requires": {
+ "esprima": "3.1.3",
+ "estraverse": "4.2.0",
+ "esutils": "2.0.2",
+ "optionator": "0.8.2",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "optional": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "requires": {
+ "esrecurse": "4.2.1",
+ "estraverse": "4.2.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw=="
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
"esri-system-js": {
"version": "1.0.0-beta.0",
"resolved": "https://registry.npmjs.org/esri-system-js/-/esri-system-js-1.0.0-beta.0.tgz",
"integrity": "sha1-xy386x8WfI1xYxxEPwLfTYtvVSQ="
},
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ },
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
- "dev": true
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"eventemitter3": {
"version": "1.2.0",
@@ -1887,26 +3739,57 @@
"events": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
- "dev": true
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
},
- "exec-series": {
+ "evp_bytestokey": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz",
- "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
"requires": {
- "async-each-series": "1.1.0",
- "object-assign": "4.1.0"
+ "md5.js": "1.3.4",
+ "safe-buffer": "5.1.1"
}
},
- "executable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz",
- "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=",
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"requires": {
- "meow": "3.7.0"
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "requires": {
+ "lru-cache": "4.1.2",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ }
}
},
+ "exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
+ },
"expand-braces": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
@@ -1962,11 +3845,18 @@
"fill-range": "2.2.3"
}
},
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "requires": {
+ "homedir-polyfill": "1.0.1"
+ }
+ },
"express": {
"version": "2.5.11",
"resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz",
"integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=",
- "dev": true,
"requires": {
"connect": "1.9.2",
"mime": "1.2.4",
@@ -1978,7 +3868,6 @@
"version": "1.9.2",
"resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz",
"integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=",
- "dev": true,
"requires": {
"formidable": "1.0.17",
"mime": "1.2.4",
@@ -1988,20 +3877,17 @@
"mime": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz",
- "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=",
- "dev": true
+ "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc="
},
"mkdirp": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
- "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
- "dev": true
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4="
},
"qs": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz",
- "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=",
- "dev": true
+ "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8="
}
}
},
@@ -2018,6 +3904,16 @@
"is-extendable": "0.1.1"
}
},
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
"extglob": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
@@ -2029,8 +3925,7 @@
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fancy-log": {
"version": "1.3.0",
@@ -2041,62 +3936,67 @@
"time-stamp": "1.1.0"
}
},
- "fd-slicer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
- "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
- "requires": {
- "pend": "1.2.0"
- }
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ },
+ "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="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "optional": true
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.0"
+ "escape-string-regexp": "1.0.5"
}
},
"file-loader": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz",
- "integrity": "sha1-HS2t3UJM5tGwfP4/eXMb7TYXq0I=",
- "dev": true,
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz",
+ "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==",
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.4.5"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ }
}
},
"file-saver": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.3.tgz",
- "integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI="
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz",
+ "integrity": "sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg=="
},
- "file-type": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
- "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "optional": true
},
"filename-regex": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
},
- "filename-reserved-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
- "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q="
- },
- "filenamify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
- "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
- "requires": {
- "filename-reserved-regex": "1.0.0",
- "strip-outer": "1.0.0",
- "trim-repeated": "1.0.0"
- }
- },
"fill-range": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
@@ -2110,9 +4010,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=",
"requires": {
"debug": "2.6.9",
"encodeurl": "1.0.1",
@@ -2130,6 +4030,21 @@
}
}
},
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "requires": {
+ "commondir": "1.0.1",
+ "make-dir": "1.2.0",
+ "pkg-dir": "2.0.0"
+ }
+ },
+ "find-index": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
+ "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ="
+ },
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
@@ -2139,135 +4054,486 @@
"pinkie-promise": "2.0.1"
}
},
- "find-versions": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
- "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=",
- "requires": {
- "array-uniq": "1.0.3",
- "get-stdin": "4.0.1",
- "meow": "3.7.0",
- "semver-regex": "1.0.0"
- }
- },
- "first-chunk-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
- "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "requires": {
- "for-in": "1.0.2"
- }
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
- },
- "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,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.17"
- }
- },
- "formidable": {
- "version": "1.0.17",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz",
- "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=",
- "dev": true
- },
- "fresh": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
- "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=",
- "dev": true
- },
- "fs-access": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
- "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
- "dev": true,
- "requires": {
- "null-check": "1.0.0"
- }
- },
- "fs-extra": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
- "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "3.0.1",
- "universalify": "0.1.1"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz",
- "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
- "optional": true,
+ "findup-sync": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
+ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
"requires": {
- "nan": "2.7.0",
- "node-pre-gyp": "0.6.36"
+ "detect-file": "1.0.0",
+ "is-glob": "3.1.0",
+ "micromatch": "3.1.9",
+ "resolve-dir": "1.0.1"
},
"dependencies": {
- "abbrev": {
- "version": "1.1.0",
- "bundled": true,
- "optional": true
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
},
- "ajv": {
- "version": "4.11.8",
- "bundled": true,
- "optional": true,
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "braces": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz",
+ "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==",
"requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "kind-of": "6.0.2",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
}
},
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true
- },
- "aproba": {
- "version": "1.1.1",
- "bundled": true,
- "optional": true
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
},
- "are-we-there-yet": {
- "version": "1.1.4",
- "bundled": true,
- "optional": true,
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.2.9"
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
}
},
- "asn1": {
- "version": "0.2.3",
- "bundled": true,
- "optional": true
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
+ "micromatch": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz",
+ "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.1",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ }
+ }
+ },
+ "fined": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
+ "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "is-plain-object": "2.0.4",
+ "object.defaults": "1.1.0",
+ "object.pick": "1.3.0",
+ "parse-filepath": "1.0.2"
+ }
+ },
+ "first-chunk-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+ "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
+ },
+ "flagged-respawn": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz",
+ "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c="
+ },
+ "flow-parser": {
+ "version": "0.70.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.70.0.tgz",
+ "integrity": "sha512-gGdyVUZWswG5jcINrVDHd3RY4nJptBTAx9mR9thGsrGGmAUR7omgJXQSpR+fXrLtxSTAea3HpAZNU/yzRJc2Cg=="
+ },
+ "flush-write-stream": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
+ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz",
+ "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=",
+ "optional": true,
+ "requires": {
+ "debug": "2.6.9"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-0.4.1.tgz",
+ "integrity": "sha512-UckdUYL51F5t9t/2Uqk0xatxz8Cf75a1THNIrDYajjcAcg2Q64SXNP7BTQPxXm0bU1chzjR3brXIaianbFqI3Q==",
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "chalk": "1.1.3",
+ "chokidar": "1.7.0",
+ "lodash.endswith": "4.2.1",
+ "lodash.isfunction": "3.0.9",
+ "lodash.isstring": "4.0.1",
+ "lodash.startswith": "4.2.1",
+ "minimatch": "3.0.4",
+ "resolve": "1.5.0",
+ "tapable": "1.0.0",
+ "vue-parser": "1.1.6"
+ }
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "formidable": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz",
+ "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "requires": {
+ "map-cache": "0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
+ "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8="
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "fs-access": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
+ "requires": {
+ "null-check": "1.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
+ "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "3.0.1",
+ "universalify": "0.1.1"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "iferr": "0.1.5",
+ "imurmurhash": "0.1.4",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
+ "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
+ "optional": true,
+ "requires": {
+ "nan": "2.10.0",
+ "node-pre-gyp": "0.6.39"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.2.9"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true,
+ "optional": true
},
"assert-plus": {
"version": "0.2.0",
@@ -2363,7 +4629,6 @@
"cryptiles": {
"version": "2.0.5",
"bundled": true,
- "optional": true,
"requires": {
"boom": "2.10.1"
}
@@ -2405,6 +4670,11 @@
"bundled": true,
"optional": true
},
+ "detect-libc": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
"ecc-jsbn": {
"version": "0.1.1",
"bundled": true,
@@ -2529,7 +4799,6 @@
"hawk": {
"version": "3.1.3",
"bundled": true,
- "optional": true,
"requires": {
"boom": "2.10.1",
"cryptiles": "2.0.5",
@@ -2678,10 +4947,12 @@
"optional": true
},
"node-pre-gyp": {
- "version": "0.6.36",
+ "version": "0.6.39",
"bundled": true,
"optional": true,
"requires": {
+ "detect-libc": "1.0.2",
+ "hawk": "3.1.3",
"mkdirp": "0.5.1",
"nopt": "4.0.1",
"npmlog": "4.1.0",
@@ -2865,7 +5136,6 @@
"sntp": {
"version": "1.0.9",
"bundled": true,
- "optional": true,
"requires": {
"hoek": "2.16.3"
}
@@ -2893,13 +5163,6 @@
}
}
},
- "string_decoder": {
- "version": "1.0.1",
- "bundled": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
"string-width": {
"version": "1.0.2",
"bundled": true,
@@ -2909,6 +5172,13 @@
"strip-ansi": "3.0.1"
}
},
+ "string_decoder": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
"stringstream": {
"version": "0.0.5",
"bundled": true,
@@ -3007,35 +5277,108 @@
}
}
},
- "geojson": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.4.1.tgz",
- "integrity": "sha1-wO3EGiL8n0ZnxAL5ZrFRWPQ8Adg="
- },
- "get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
- "dev": true
- },
- "get-proxy": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
- "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=",
+ "ftp": {
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
+ "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=",
+ "optional": true,
"requires": {
- "rc": "1.2.2"
+ "readable-stream": "1.1.14",
+ "xregexp": "2.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ }
}
},
- "get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "gaze": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
+ "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
+ "requires": {
+ "globule": "0.1.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "optional": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "optional": true,
+ "requires": {
+ "is-property": "1.0.2"
+ }
+ },
+ "geojson": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.5.0.tgz",
+ "integrity": "sha1-PNbJY5m+ZbVu5VWWEW/pGRznAcA="
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ },
+ "get-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz",
+ "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==",
+ "optional": true,
+ "requires": {
+ "data-uri-to-buffer": "1.2.0",
+ "debug": "2.6.9",
+ "extend": "3.0.1",
+ "file-uri-to-path": "1.0.0",
+ "ftp": "0.3.10",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0"
},
@@ -3043,11 +5386,76 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "gh-got": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz",
+ "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==",
+ "requires": {
+ "got": "7.1.0",
+ "is-plain-obj": "1.1.0"
+ },
+ "dependencies": {
+ "got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+ "requires": {
+ "decompress-response": "3.3.0",
+ "duplexer3": "0.1.4",
+ "get-stream": "3.0.0",
+ "is-plain-obj": "1.1.0",
+ "is-retry-allowed": "1.1.0",
+ "is-stream": "1.1.0",
+ "isurl": "1.0.0",
+ "lowercase-keys": "1.0.1",
+ "p-cancelable": "0.3.0",
+ "p-timeout": "1.2.1",
+ "safe-buffer": "5.1.1",
+ "timed-out": "4.0.1",
+ "url-parse-lax": "1.0.0",
+ "url-to-options": "1.0.1"
+ }
+ },
+ "p-cancelable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw=="
+ },
+ "p-timeout": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
+ "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "requires": {
+ "p-finally": "1.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "requires": {
+ "prepend-http": "1.0.4"
+ }
}
}
},
+ "github-username": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz",
+ "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=",
+ "requires": {
+ "gh-got": "6.0.0"
+ }
+ },
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -3061,6 +5469,30 @@
"path-is-absolute": "1.0.1"
}
},
+ "glob-all": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz",
+ "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=",
+ "requires": {
+ "glob": "7.1.2",
+ "yargs": "1.2.6"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz",
+ "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4="
+ },
+ "yargs": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz",
+ "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=",
+ "requires": {
+ "minimist": "0.1.0"
+ }
+ }
+ }
+ },
"glob-base": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
@@ -3078,62 +5510,53 @@
"is-glob": "2.0.1"
}
},
- "glob-stream": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
- "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
+ "glob-watcher": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
+ "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
"requires": {
- "extend": "3.0.1",
- "glob": "5.0.15",
- "glob-parent": "3.1.0",
- "micromatch": "2.3.11",
- "ordered-read-streams": "0.3.0",
- "through2": "0.6.5",
- "to-absolute-glob": "0.1.1",
- "unique-stream": "2.2.1"
- },
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "requires": {
- "is-glob": "3.1.0",
- "path-dirname": "1.0.2"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "requires": {
- "is-extglob": "2.1.1"
- }
- }
+ "gaze": "0.5.2"
+ }
+ },
+ "glob2base": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
+ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+ "requires": {
+ "find-index": "0.1.1"
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "requires": {
+ "global-prefix": "1.0.2",
+ "is-windows": "1.0.2",
+ "resolve-dir": "1.0.1"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "homedir-polyfill": "1.0.1",
+ "ini": "1.3.4",
+ "is-windows": "1.0.2",
+ "which": "1.3.0"
}
},
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
+ },
"globby": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz",
"integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=",
- "dev": true,
"requires": {
"array-union": "1.0.2",
"arrify": "1.0.1",
@@ -3147,7 +5570,6 @@
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
- "dev": true,
"requires": {
"inflight": "1.0.6",
"inherits": "2.0.3",
@@ -3158,6 +5580,52 @@
}
}
},
+ "globule": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
+ "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
+ "requires": {
+ "glob": "3.1.21",
+ "lodash": "1.0.2",
+ "minimatch": "0.2.14"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "3.1.21",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "requires": {
+ "graceful-fs": "1.2.3",
+ "inherits": "1.0.2",
+ "minimatch": "0.2.14"
+ }
+ },
+ "graceful-fs": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
+ },
+ "inherits": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
+ },
+ "lodash": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+ "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "requires": {
+ "lru-cache": "2.2.4",
+ "sigmund": "1.0.1"
+ }
+ }
+ }
+ },
"glogg": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
@@ -3172,25 +5640,34 @@
"integrity": "sha1-wHWPKxdaSo0RDBq7H8TMOMEXbgY="
},
"got": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
- "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
- "requires": {
- "create-error-class": "3.0.2",
- "duplexer2": "0.1.4",
- "is-redirect": "1.0.0",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-8.3.0.tgz",
+ "integrity": "sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==",
+ "requires": {
+ "@sindresorhus/is": "0.7.0",
+ "cacheable-request": "2.1.4",
+ "decompress-response": "3.3.0",
+ "duplexer3": "0.1.4",
+ "get-stream": "3.0.0",
+ "into-stream": "3.1.0",
"is-retry-allowed": "1.1.0",
- "is-stream": "1.1.0",
- "lowercase-keys": "1.0.0",
- "node-status-codes": "1.0.0",
- "object-assign": "4.1.0",
- "parse-json": "2.2.0",
- "pinkie-promise": "2.0.1",
- "read-all-stream": "3.1.0",
- "readable-stream": "2.3.3",
- "timed-out": "3.1.3",
- "unzip-response": "1.0.2",
- "url-parse-lax": "1.0.0"
+ "isurl": "1.0.0",
+ "lowercase-keys": "1.0.1",
+ "mimic-response": "1.0.0",
+ "p-cancelable": "0.4.1",
+ "p-timeout": "2.0.1",
+ "pify": "3.0.0",
+ "safe-buffer": "5.1.1",
+ "timed-out": "4.0.1",
+ "url-parse-lax": "3.0.0",
+ "url-to-options": "1.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
}
},
"graceful-fs": {
@@ -3203,93 +5680,220 @@
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
},
- "gulp-decompress": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
- "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=",
- "requires": {
- "archive-type": "3.2.0",
- "decompress": "3.0.0",
- "gulp-util": "3.0.8",
- "readable-stream": "2.3.3"
- }
- },
- "gulp-rename": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
- "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc="
- },
- "gulp-sourcemaps": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
- "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
+ "grouped-queue": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz",
+ "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=",
"requires": {
- "convert-source-map": "1.5.0",
- "graceful-fs": "4.1.11",
- "strip-bom": "2.0.0",
- "through2": "2.0.3",
- "vinyl": "1.2.0"
- },
- "dependencies": {
- "through2": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
- "requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
- }
- }
+ "lodash": "4.17.5"
}
},
- "gulp-util": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
- "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
+ "gulp": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
+ "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
"requires": {
- "array-differ": "1.0.0",
- "array-uniq": "1.0.3",
- "beeper": "1.1.1",
+ "archy": "1.0.0",
"chalk": "1.1.3",
- "dateformat": "2.2.0",
- "fancy-log": "1.3.0",
- "gulplog": "1.0.0",
- "has-gulplog": "0.1.0",
- "lodash._reescape": "3.0.0",
- "lodash._reevaluate": "3.0.0",
- "lodash._reinterpolate": "3.0.0",
- "lodash.template": "3.6.2",
+ "deprecated": "0.0.1",
+ "gulp-util": "3.0.8",
+ "interpret": "1.1.0",
+ "liftoff": "2.5.0",
"minimist": "1.2.0",
- "multipipe": "0.1.2",
- "object-assign": "3.0.0",
- "replace-ext": "0.0.1",
- "through2": "2.0.3",
- "vinyl": "0.5.3"
+ "orchestrator": "0.3.8",
+ "pretty-hrtime": "1.0.3",
+ "semver": "4.3.6",
+ "tildify": "1.2.0",
+ "v8flags": "2.1.1",
+ "vinyl-fs": "0.3.14"
},
"dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "object-assign": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
},
- "through2": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "glob": {
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
"requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "2.0.10",
+ "once": "1.4.0"
}
},
- "vinyl": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
- "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+ "glob-stream": {
+ "version": "3.1.18",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
+ "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
+ "requires": {
+ "glob": "4.5.3",
+ "glob2base": "0.0.12",
+ "minimatch": "2.0.10",
+ "ordered-read-streams": "0.1.0",
+ "through2": "0.6.5",
+ "unique-stream": "1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+ "requires": {
+ "natives": "1.1.2"
+ }
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
+ },
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "ordered-read-streams": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
+ "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY="
+ },
+ "strip-bom": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
+ "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
+ "requires": {
+ "first-chunk-stream": "1.0.0",
+ "is-utf8": "0.2.1"
+ }
+ },
+ "unique-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
+ "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+ "requires": {
+ "clone": "0.2.0",
+ "clone-stats": "0.0.1"
+ }
+ },
+ "vinyl-fs": {
+ "version": "0.3.14",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
+ "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
+ "requires": {
+ "defaults": "1.0.3",
+ "glob-stream": "3.1.18",
+ "glob-watcher": "0.0.6",
+ "graceful-fs": "3.0.11",
+ "mkdirp": "0.5.1",
+ "strip-bom": "1.0.0",
+ "through2": "0.6.5",
+ "vinyl": "0.4.6"
+ }
+ }
+ }
+ },
+ "gulp-clean-compiled-typescript": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gulp-clean-compiled-typescript/-/gulp-clean-compiled-typescript-1.2.0.tgz",
+ "integrity": "sha1-t6GRAECFy2njXlOvVEt3GahBeo8=",
+ "requires": {
+ "del": "2.2.0",
+ "through2": "2.0.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz",
+ "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=",
+ "requires": {
+ "readable-stream": "2.0.6",
+ "xtend": "4.0.1"
+ }
+ }
+ }
+ },
+ "gulp-util": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
+ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
+ "requires": {
+ "array-differ": "1.0.0",
+ "array-uniq": "1.0.3",
+ "beeper": "1.1.1",
+ "chalk": "1.1.3",
+ "dateformat": "2.2.0",
+ "fancy-log": "1.3.0",
+ "gulplog": "1.0.0",
+ "has-gulplog": "0.1.0",
+ "lodash._reescape": "3.0.0",
+ "lodash._reevaluate": "3.0.0",
+ "lodash._reinterpolate": "3.0.0",
+ "lodash.template": "3.6.2",
+ "minimist": "1.2.0",
+ "multipipe": "0.1.2",
+ "object-assign": "3.0.0",
+ "replace-ext": "0.0.1",
+ "through2": "2.0.3",
+ "vinyl": "0.5.3"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ },
+ "vinyl": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
"requires": {
"clone": "1.0.2",
"clone-stats": "0.0.1",
@@ -3306,20 +5910,128 @@
"glogg": "1.0.0"
}
},
+ "handlebars": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "requires": {
+ "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="
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "optional": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "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=",
+ "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=",
+ "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=",
+ "optional": true
+ }
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "optional": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "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
+ "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4="
},
"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=",
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ }
+ }
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "requires": {
+ "function-bind": "1.1.1"
}
},
"has-ansi": {
@@ -3345,16 +6057,35 @@
}
}
},
+ "has-binary2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz",
+ "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=",
+ "requires": {
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ }
+ }
+ },
+ "has-color": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8="
+ },
"has-cors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
"integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
},
"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
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
"has-gulplog": {
"version": "0.1.0",
@@ -3364,65 +6095,337 @@
"sparkles": "1.0.0"
}
},
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "dev": 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
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
+ "has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
},
- "http-errors": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
- "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
"requires": {
- "depd": "1.1.1",
- "inherits": "2.0.3",
- "setprototypeof": "1.0.3",
- "statuses": "1.4.0"
+ "has-symbol-support-x": "1.4.2"
}
},
- "http-proxy": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
- "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"requires": {
- "eventemitter3": "1.2.0",
- "requires-port": "1.0.0"
+ "get-value": "2.0.6",
+ "has-values": "1.0.0",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
+ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
+ },
+ "highlight.js": {
+ "version": "9.12.0",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz",
+ "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4="
+ },
+ "hipchat-notifier": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz",
+ "integrity": "sha1-ttJJdVQ3wZEII2d5nTupoPI7Ix4=",
+ "optional": true,
+ "requires": {
+ "lodash": "4.17.5",
+ "request": "2.81.0"
+ }
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "requires": {
+ "hash.js": "1.1.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
+ "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
+ "requires": {
+ "parse-passwd": "1.0.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
+ },
+ "html-minifier": {
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.14.tgz",
+ "integrity": "sha512-sZjw6zhQgyUnIlIPU+W80XpRjWjdxHtNcxjfyOskOsCTDKytcfLY04wsQY/83Yqb4ndoiD2FtauiL7Yg6uUQFQ==",
+ "requires": {
+ "camel-case": "3.0.0",
+ "clean-css": "4.1.11",
+ "commander": "2.15.1",
+ "he": "1.1.1",
+ "param-case": "2.1.1",
+ "relateurl": "0.2.7",
+ "uglify-js": "3.3.21"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "uglify-js": {
+ "version": "3.3.21",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.21.tgz",
+ "integrity": "sha512-uy82472lH8tshK3jS3c5IFb5MmNKd/5qyBd0ih8sM42L3jWvxnE339U9gZU1zufnLVs98Stib9twq8dLm2XYCA==",
+ "requires": {
+ "commander": "2.15.1",
+ "source-map": "0.6.1"
+ }
+ }
+ }
+ },
+ "html-webpack-include-assets-plugin": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/html-webpack-include-assets-plugin/-/html-webpack-include-assets-plugin-1.0.4.tgz",
+ "integrity": "sha512-E8kVXb/WcRyBD2+s11HThFedq0CWKWQ2jMY122W5r/aCAfLcJKUc0kyV5bQg0tFHipKNmqcNy94DFRmXHNhSTA==",
+ "requires": {
+ "glob": "7.1.2",
+ "minimatch": "3.0.4",
+ "slash": "1.0.0"
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+ "requires": {
+ "html-minifier": "3.5.14",
+ "loader-utils": "0.2.17",
+ "lodash": "4.17.5",
+ "pretty-error": "2.1.1",
+ "tapable": "1.0.0",
+ "toposort": "1.0.6",
+ "util.promisify": "1.0.0"
+ }
+ },
+ "htmlescape": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
+ "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E="
+ },
+ "htmlparser2": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
+ "requires": {
+ "domelementtype": "1.3.0",
+ "domhandler": "2.1.0",
+ "domutils": "1.1.6",
+ "readable-stream": "1.0.34"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
+ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
+ "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": "1.4.0"
+ }
+ },
+ "http-proxy": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
+ "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
+ "requires": {
+ "eventemitter3": "1.2.0",
+ "requires-port": "1.0.0"
+ }
+ },
+ "http-proxy-agent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz",
+ "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=",
+ "requires": {
+ "agent-base": "2.1.1",
+ "debug": "2.6.9",
+ "extend": "3.0.1"
}
},
"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,
"requires": {
"assert-plus": "0.2.0",
"jsprim": "1.4.1",
"sshpk": "1.13.1"
}
},
+ "httpntlm": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz",
+ "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=",
+ "requires": {
+ "httpreq": "0.4.24",
+ "underscore": "1.7.0"
+ }
+ },
+ "httpreq": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz",
+ "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8="
+ },
"https-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
- "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
- "dev": true
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
+ },
+ "https-proxy-agent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
+ "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
+ "requires": {
+ "agent-base": "2.1.1",
+ "debug": "2.6.9",
+ "extend": "3.0.1"
+ }
},
"iconv-lite": {
"version": "0.4.19",
@@ -3430,16 +6433,38 @@
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"ieee754": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
- "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
- "dev": true
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.10.tgz",
+ "integrity": "sha512-byWFX8OyW/qeVxcY21r6Ncxl0ZYHgnf0cPup2h34eHXrCJbOp7IuqnJ4Q0omfyWl6Z++BTI6bByf31pZt7iRLg=="
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE="
+ },
+ "ignore": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA=="
},
"immutable": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz",
- "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=",
- "dev": true
+ "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI="
+ },
+ "import-local": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
+ "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
+ "requires": {
+ "pkg-dir": "2.0.0",
+ "resolve-cwd": "2.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
},
"indent-string": {
"version": "2.1.0",
@@ -3454,6 +6479,12 @@
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
},
+ "inflection": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz",
+ "integrity": "sha1-W//LEZetPoEFD44X4hZoCH7p6y8=",
+ "optional": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -3473,49 +6504,254 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
"integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
},
- "interpret": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz",
- "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=",
- "dev": true
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "dev": true
- },
- "ip-regex": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz",
- "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0="
- },
- "is-absolute": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
- "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=",
- "requires": {
- "is-relative": "0.1.3"
+ "inline-source-map": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
+ "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
+ "inquirer": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz",
+ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==",
+ "requires": {
+ "ansi-escapes": "3.1.0",
+ "chalk": "2.3.2",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.2.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.5",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rxjs": "5.5.10",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ }
}
},
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "insert-module-globals": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.2.tgz",
+ "integrity": "sha512-p3s7g96Nm62MbHRuj9ZXab0DuJNWD7qcmdUXCOQ/ZZn42DtDXfsLill7bq19lDCx3K3StypqUnuE3H2VmIJFUw==",
"requires": {
- "binary-extensions": "1.10.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
+ "JSONStream": "1.3.2",
+ "combine-source-map": "0.7.2",
+ "concat-stream": "1.5.2",
+ "is-buffer": "1.1.6",
+ "lexical-scope": "1.2.0",
+ "process": "0.11.10",
+ "through2": "2.0.3",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "combine-source-map": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
+ "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
+ "requires": {
+ "convert-source-map": "1.1.3",
+ "inline-source-map": "0.6.2",
+ "lodash.memoize": "3.0.4",
+ "source-map": "0.5.7"
+ }
+ },
+ "concat-stream": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
+ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.0.6",
+ "typedarray": "0.0.6"
+ }
+ },
+ "convert-source-map": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
+ "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA="
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.5",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "readable-stream": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
+ "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
+ },
+ "into-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
+ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
+ "requires": {
+ "from2": "2.3.0",
+ "p-is-promise": "1.1.0"
+ }
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ },
+ "ip": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz",
+ "integrity": "sha1-x+NWzeoiWucbNtcPLnGpK6TkJZA=",
+ "optional": true
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "requires": {
+ "binary-extensions": "1.10.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
"is-builtin-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
@@ -3524,10 +6760,47 @@
"builtin-modules": "1.1.1"
}
},
- "is-bzip2": {
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI="
+ },
+ "is-data-descriptor": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
- "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w="
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
},
"is-dotfile": {
"version": "1.0.3",
@@ -3564,7 +6837,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
"requires": {
"number-is-nan": "1.0.1"
}
@@ -3577,15 +6849,24 @@
"is-extglob": "1.0.0"
}
},
- "is-gzip": {
+ "is-my-ip-valid": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
- "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM="
+ "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
+ "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==",
+ "optional": true
},
- "is-natural-number": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
- "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec="
+ "is-my-json-valid": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz",
+ "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==",
+ "optional": true,
+ "requires": {
+ "generate-function": "2.0.0",
+ "generate-object-property": "1.2.0",
+ "is-my-ip-valid": "1.0.0",
+ "jsonpointer": "4.0.1",
+ "xtend": "4.0.1"
+ }
},
"is-number": {
"version": "2.1.0",
@@ -3599,15 +6880,85 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
"integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
- "dev": true,
"requires": {
"lodash.isfinite": "3.3.2"
}
},
- "is-obj": {
+ "is-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
+ "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA="
+ },
+ "is-observable": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz",
+ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=",
+ "requires": {
+ "symbol-observable": "0.2.4"
+ },
+ "dependencies": {
+ "symbol-observable": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz",
+ "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A="
+ }
+ }
+ },
+ "is-odd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
+ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
+ "requires": {
+ "is-number": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
+ }
+ }
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+ "requires": {
+ "is-path-inside": "1.0.1"
+ }
+ },
+ "is-path-inside": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "requires": {
+ "path-is-inside": "1.0.2"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
},
"is-posix-bracket": {
"version": "0.1.1",
@@ -3619,56 +6970,70 @@
"resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
- "is-redirect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
- "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
- "is-relative": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
- "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI="
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "optional": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "requires": {
+ "has": "1.0.1"
+ }
},
"is-retry-allowed": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
"integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
},
+ "is-scoped": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz",
+ "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=",
+ "requires": {
+ "scoped-regex": "1.0.0"
+ }
+ },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
- "is-tar": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
- "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0="
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI="
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
- "is-url": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
- "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY="
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "requires": {
+ "unc-path-regex": "0.1.2"
+ }
},
"is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
},
- "is-valid-glob": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
- "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4="
- },
- "is-zip": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
- "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU="
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
},
"isarray": {
"version": "1.0.0",
@@ -3683,8 +7048,7 @@
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"isobject": {
"version": "2.1.0",
@@ -3697,33 +7061,112 @@
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "istextorbinary": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz",
+ "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==",
+ "requires": {
+ "binaryextensions": "2.1.1",
+ "editions": "1.3.4",
+ "textextensions": "2.2.0"
+ }
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "requires": {
+ "has-to-string-tag-x": "1.4.1",
+ "is-object": "1.0.1"
+ }
+ },
+ "jasmine": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.1.0.tgz",
+ "integrity": "sha1-K9Wf1+xuwOistk4J9Fpo7SrRlSo=",
+ "requires": {
+ "glob": "7.1.2",
+ "jasmine-core": "3.1.0"
+ }
},
"jasmine-core": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
- "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
- "dev": true
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.1.0.tgz",
+ "integrity": "sha1-pHheE11d9lAk38kiSVPfWFvSdmw="
},
"js-string-escape": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
- "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=",
- "dev": true
+ "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8="
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
+ },
+ "js-yaml": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
+ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
+ "requires": {
+ "argparse": "1.0.10",
+ "esprima": "4.0.0"
+ }
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true,
"optional": true
},
+ "jscodeshift": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.5.0.tgz",
+ "integrity": "sha512-JAcQINNMFpdzzpKJN8k5xXjF3XDuckB1/48uScSzcnNyK199iWEc9AxKL9OoX5144M2w5zEx9Qs4/E/eBZZUlw==",
+ "requires": {
+ "babel-plugin-transform-flow-strip-types": "6.22.0",
+ "babel-preset-es2015": "6.24.1",
+ "babel-preset-stage-1": "6.24.1",
+ "babel-register": "6.26.0",
+ "babylon": "7.0.0-beta.44",
+ "colors": "1.1.2",
+ "flow-parser": "0.70.0",
+ "lodash": "4.17.5",
+ "micromatch": "2.3.11",
+ "neo-async": "2.5.1",
+ "node-dir": "0.1.8",
+ "nomnom": "1.8.1",
+ "recast": "0.14.7",
+ "temp": "0.8.3",
+ "write-file-atomic": "1.3.4"
+ }
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
},
"json-stable-stringify": {
"version": "1.0.1",
@@ -3736,8 +7179,7 @@
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
- "dev": true
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json3": {
"version": "3.3.2",
@@ -3753,7 +7195,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
"integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
- "dev": true,
"requires": {
"graceful-fs": "4.1.11"
}
@@ -3763,11 +7204,21 @@
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
},
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "optional": true
+ },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -3778,23 +7229,23 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}
}
},
"karma": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz",
- "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.0.tgz",
+ "integrity": "sha512-K9Kjp8CldLyL9ANSUctDyxC7zH3hpqXj/K09qVf06K3T/kXaHtFZ5tQciK7OzQu68FLvI89Na510kqQ2LCbpIw==",
"requires": {
"bluebird": "3.5.1",
"body-parser": "1.18.2",
+ "browserify": "14.5.0",
"chokidar": "1.7.0",
"colors": "1.1.2",
"combine-lists": "1.0.1",
- "connect": "3.6.5",
- "core-js": "2.5.1",
+ "connect": "3.6.6",
+ "core-js": "2.5.5",
"di": "0.0.1",
"dom-serialize": "2.2.1",
"expand-braces": "0.1.2",
@@ -3802,25 +7253,25 @@
"graceful-fs": "4.1.11",
"http-proxy": "1.16.2",
"isbinaryfile": "3.0.2",
- "lodash": "3.10.1",
- "log4js": "0.6.38",
- "mime": "1.4.1",
+ "lodash": "4.17.5",
+ "log4js": "2.5.3",
+ "mime": "1.6.0",
"minimatch": "3.0.4",
"optimist": "0.6.1",
- "qjobs": "1.1.5",
+ "qjobs": "1.2.0",
"range-parser": "1.2.0",
"rimraf": "2.6.2",
"safe-buffer": "5.1.1",
- "socket.io": "1.7.3",
- "source-map": "0.5.7",
- "tmp": "0.0.31",
- "useragent": "2.2.1"
+ "socket.io": "2.0.4",
+ "source-map": "0.6.1",
+ "tmp": "0.0.33",
+ "useragent": "2.3.0"
},
"dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -3828,7 +7279,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
"integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
- "dev": true,
"requires": {
"fs-access": "1.0.1",
"which": "1.3.0"
@@ -3838,7 +7288,6 @@
"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"
}
@@ -3846,72 +7295,78 @@
"karma-dojo": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/karma-dojo/-/karma-dojo-0.0.1.tgz",
- "integrity": "sha1-piKmUPBbr51/ITkkCr7SHIrBUHk=",
- "dev": true
+ "integrity": "sha1-piKmUPBbr51/ITkkCr7SHIrBUHk="
},
"karma-htmlfile-reporter": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/karma-htmlfile-reporter/-/karma-htmlfile-reporter-0.3.5.tgz",
"integrity": "sha1-CavKmRCj6x27onqadmAmlIyWygQ=",
- "dev": true,
"requires": {
"xmlbuilder": "3.1.0"
}
},
"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
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.1.tgz",
+ "integrity": "sha1-b+hA51oRYAydkehLM8RY4cRqNSk="
},
"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,
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.0.0.tgz",
+ "integrity": "sha512-SN9R/Pl9cY40yLlc7FkTcfswUr19M6ZZ25eM8X5wtZ0gvp0gneWZbe5lPYcer/Yrbz0D6QUiTSJaEzr3KBPvSg==",
"requires": {
- "karma-jasmine": "1.1.0"
+ "karma-jasmine": "1.1.1"
}
},
"karma-sourcemap-loader": {
"version": "0.3.7",
"resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz",
"integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=",
- "dev": true,
"requires": {
"graceful-fs": "4.1.11"
}
},
"karma-webpack": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-2.0.5.tgz",
- "integrity": "sha512-tb+P6rCNqPpVOzaDkNvuAX5gXJ/baGIFBSD/Pin1p1RTa3cookXxEc5wRkrLVA9acwEKvEq1TetGkOX1f8mf8A==",
- "dev": true,
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-3.0.0.tgz",
+ "integrity": "sha512-Ja1o9LLoqWaJyUNhTKaXjWiEH9y7a9H3mzP8pYB30SBsgoF5KBS/65NeHFd+QPuT9ITrym8xFt8BZeGbcOfujA==",
"requires": {
- "async": "0.9.2",
- "loader-utils": "0.2.17",
- "lodash": "3.10.1",
- "source-map": "0.1.43",
- "webpack-dev-middleware": "1.12.0"
+ "async": "2.6.0",
+ "babel-runtime": "6.26.0",
+ "loader-utils": "1.1.0",
+ "lodash": "4.17.5",
+ "source-map": "0.5.7",
+ "webpack-dev-middleware": "2.0.6"
},
"dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
+ "async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+ "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+ "requires": {
+ "lodash": "4.17.5"
+ }
},
- "source-map": {
- "version": "0.1.43",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "dev": true,
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"requires": {
- "amdefine": "1.0.1"
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
}
}
}
},
+ "keyv": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
+ "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -3920,58 +7375,249 @@
"is-buffer": "1.1.6"
}
},
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "dev": true
- },
- "lazy-req": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
- "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w="
- },
- "lazystream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
- "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "labeled-stream-splicer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
+ "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=",
"requires": {
- "readable-stream": "2.3.3"
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "stream-splicer": "2.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ }
}
},
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "optional": 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"
}
},
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "optional": true,
+ "requires": {
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2"
+ }
+ },
+ "lexical-scope": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
+ "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
+ "requires": {
+ "astw": "2.2.0"
+ }
+ },
+ "libbase64": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz",
+ "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY="
+ },
+ "libmime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz",
+ "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=",
+ "requires": {
+ "iconv-lite": "0.4.15",
+ "libbase64": "0.1.0",
+ "libqp": "1.1.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.15",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
+ "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es="
+ }
+ }
+ },
+ "libqp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz",
+ "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g="
+ },
+ "liftoff": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
+ "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
+ "requires": {
+ "extend": "3.0.1",
+ "findup-sync": "2.0.0",
+ "fined": "1.1.0",
+ "flagged-respawn": "1.0.0",
+ "is-plain-object": "2.0.4",
+ "object.map": "1.0.1",
+ "rechoir": "0.6.2",
+ "resolve": "1.5.0"
+ }
+ },
"limiter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.2.tgz",
- "integrity": "sha512-JIKZ0xb6fZZYa3deZ0BgXCgX6HgV8Nx3mFGeFHmFWW8Fb2c08e0CyE+G3nalpD0xGvGssjGb1UdFr+PprxZEbw==",
- "dev": true
+ "integrity": "sha512-JIKZ0xb6fZZYa3deZ0BgXCgX6HgV8Nx3mFGeFHmFWW8Fb2c08e0CyE+G3nalpD0xGvGssjGb1UdFr+PprxZEbw=="
+ },
+ "listr": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz",
+ "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=",
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-truncate": "0.2.1",
+ "figures": "1.7.0",
+ "indent-string": "2.1.0",
+ "is-observable": "0.2.0",
+ "is-promise": "2.1.0",
+ "is-stream": "1.1.0",
+ "listr-silent-renderer": "1.1.1",
+ "listr-update-renderer": "0.4.0",
+ "listr-verbose-renderer": "0.4.1",
+ "log-symbols": "1.0.2",
+ "log-update": "1.0.2",
+ "ora": "0.2.3",
+ "p-map": "1.2.0",
+ "rxjs": "5.5.10",
+ "stream-to-observable": "0.2.0",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "object-assign": "4.1.0"
+ }
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ }
+ }
+ },
+ "listr-silent-renderer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
+ "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4="
+ },
+ "listr-update-renderer": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz",
+ "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=",
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-truncate": "0.2.1",
+ "elegant-spinner": "1.0.1",
+ "figures": "1.7.0",
+ "indent-string": "3.2.0",
+ "log-symbols": "1.0.2",
+ "log-update": "1.0.2",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "object-assign": "4.1.0"
+ }
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok="
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ }
+ }
+ },
+ "listr-verbose-renderer": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
+ "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-cursor": "1.0.2",
+ "date-fns": "1.29.0",
+ "figures": "1.7.0"
+ },
+ "dependencies": {
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "requires": {
+ "restore-cursor": "1.0.1"
+ }
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "object-assign": "4.1.0"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "requires": {
+ "exit-hook": "1.1.1",
+ "onetime": "1.1.0"
+ }
+ }
+ }
},
"lite-server": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/lite-server/-/lite-server-2.3.0.tgz",
"integrity": "sha1-W0zI9dX9SDYQVICrKsSKOg3isMg=",
- "dev": true,
"requires": {
"browser-sync": "2.18.13",
"connect-history-api-fallback": "1.4.0",
"connect-logger": "0.0.1",
- "lodash": "4.17.2",
+ "lodash": "4.17.5",
"minimist": "1.2.0"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
}
}
},
@@ -3987,6 +7633,11 @@
"strip-bom": "2.0.0"
}
},
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI="
+ },
"loader-utils": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
@@ -4002,7 +7653,6 @@
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.3.tgz",
"integrity": "sha1-3MWSL9hWUQN9S94k/ZMkjQsk6wU=",
- "dev": true,
"requires": {
"debug": "2.6.8",
"openurl": "1.1.1",
@@ -4013,14 +7663,12 @@
"camelcase": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
},
"debug": {
"version": "2.6.8",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
"integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
- "dev": true,
"requires": {
"ms": "2.0.0"
}
@@ -4029,7 +7677,6 @@
"version": "3.29.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz",
"integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=",
- "dev": true,
"requires": {
"camelcase": "1.2.1",
"cliui": "3.2.0",
@@ -4041,10 +7688,26 @@
}
}
},
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "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="
+ }
+ }
+ },
"lodash": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz",
- "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I="
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+ "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
},
"lodash._basecopy": {
"version": "3.0.1",
@@ -4094,8 +7757,12 @@
"lodash.difference": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
- "dev": true
+ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw="
+ },
+ "lodash.endswith": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz",
+ "integrity": "sha1-/tWawXOO0+I27dcGTsRWRIs3vAk="
},
"lodash.escape": {
"version": "3.2.0",
@@ -4115,16 +7782,20 @@
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
},
- "lodash.isequal": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
- },
"lodash.isfinite": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
- "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=",
- "dev": true
+ "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M="
+ },
+ "lodash.isfunction": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
+ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
},
"lodash.keys": {
"version": "3.1.2",
@@ -4136,11 +7807,21 @@
"lodash.isarray": "3.0.4"
}
},
+ "lodash.memoize": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
+ "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8="
+ },
"lodash.restparam": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
},
+ "lodash.startswith": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz",
+ "integrity": "sha1-xZjErc4YiiflMUVzHNxsDnF3YAw="
+ },
"lodash.template": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
@@ -4166,52 +7847,216 @@
"lodash.escape": "3.2.0"
}
},
- "log4js": {
- "version": "0.6.38",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
- "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=",
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
"requires": {
- "readable-stream": "1.0.34",
- "semver": "4.3.6"
+ "chalk": "2.3.2"
},
"dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
},
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
}
},
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
}
}
},
- "logalot": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
- "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=",
+ "log-update": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
+ "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
"requires": {
- "figures": "1.7.0",
- "squeak": "1.3.0"
+ "ansi-escapes": "1.4.0",
+ "cli-cursor": "1.0.2"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "requires": {
+ "restore-cursor": "1.0.1"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "requires": {
+ "exit-hook": "1.1.1",
+ "onetime": "1.1.0"
+ }
+ }
+ }
+ },
+ "log4js": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.5.3.tgz",
+ "integrity": "sha512-YL/qpTxYtK0iWWbuKCrevDZz5lh+OjyHHD+mICqpjnYGKdNRBvPeh/1uYjkKUemT1CSO4wwLOwphWMpKAnD9kw==",
+ "requires": {
+ "amqplib": "0.5.2",
+ "axios": "0.15.3",
+ "circular-json": "0.5.1",
+ "date-format": "1.2.0",
+ "debug": "3.1.0",
+ "hipchat-notifier": "1.1.0",
+ "loggly": "1.1.1",
+ "mailgun-js": "0.7.15",
+ "nodemailer": "2.7.2",
+ "redis": "2.8.0",
+ "semver": "5.5.0",
+ "slack-node": "0.2.0",
+ "streamroller": "0.7.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+ }
+ }
+ },
+ "loggly": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz",
+ "integrity": "sha1-Cg/B0/o6XsRP3HuJe+uipGlc6+4=",
+ "optional": true,
+ "requires": {
+ "json-stringify-safe": "5.0.1",
+ "request": "2.75.0",
+ "timespan": "2.3.0"
+ },
+ "dependencies": {
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "optional": true
+ },
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz",
+ "integrity": "sha1-bwrrrcxdoWwT4ezBETfYX5uIOyU=",
+ "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",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "optional": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "commander": "2.15.1",
+ "is-my-json-valid": "2.17.2",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "qs": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
+ "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=",
+ "optional": true
+ },
+ "request": {
+ "version": "2.75.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz",
+ "integrity": "sha1-0rgmiihtoT6qXQGt9dGMyQ9lfZM=",
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "bl": "1.1.2",
+ "caseless": "0.11.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.0.0",
+ "har-validator": "2.0.6",
+ "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",
+ "node-uuid": "1.4.8",
+ "oauth-sign": "0.8.2",
+ "qs": "6.2.3",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.4.3"
+ }
+ }
}
},
+ "loglevelnext": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.3.tgz",
+ "integrity": "sha512-OCxd/b78TijTB4b6zVqLbMrxhebyvdZKwqpL0VHUZ0pYhavXaPD4l6Xrr4n5xqTYWiqtb0i7ikSoJY/myQ/Org=="
+ },
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
},
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "requires": {
+ "js-tokens": "3.0.2"
+ }
+ },
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
@@ -4221,75 +8066,243 @@
"signal-exit": "3.0.2"
}
},
- "lowercase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw="
},
- "lpad-align": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz",
- "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=",
- "requires": {
- "get-stdin": "4.0.1",
- "indent-string": "2.1.0",
- "longest": "1.0.1",
- "meow": "3.7.0"
- }
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
},
"lru-cache": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz",
"integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0="
},
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+ "mailcomposer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz",
+ "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=",
+ "optional": true,
+ "requires": {
+ "buildmail": "4.0.1",
+ "libmime": "3.0.0"
+ }
+ },
+ "mailgun-js": {
+ "version": "0.7.15",
+ "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz",
+ "integrity": "sha1-7jZqINrGTDwVwD1sGz4O15UlKrs=",
+ "optional": true,
+ "requires": {
+ "async": "2.1.5",
+ "debug": "2.2.0",
+ "form-data": "2.1.4",
+ "inflection": "1.10.0",
+ "is-stream": "1.1.0",
+ "path-proxy": "1.0.0",
+ "proxy-agent": "2.0.0",
+ "q": "1.4.1",
+ "tsscmp": "1.0.5"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz",
+ "integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=",
+ "optional": true,
+ "requires": {
+ "lodash": "4.17.5"
+ }
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "optional": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "optional": true
+ }
+ }
+ },
+ "make-dir": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz",
+ "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==",
+ "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="
+ }
+ }
+ },
+ "make-iterator": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz",
+ "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "requires": {
+ "object-visit": "1.0.1"
+ }
+ },
+ "marked": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz",
+ "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ=="
+ },
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"requires": {
- "errno": "0.1.4",
- "readable-stream": "2.3.3"
+ "mimic-fn": "1.2.0"
}
},
- "meow": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "mem-fs": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz",
+ "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=",
"requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.1.0",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
+ "through2": "2.0.3",
+ "vinyl": "1.2.0",
+ "vinyl-file": "2.0.0"
},
"dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
}
}
},
- "merge-stream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
- "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
+ "mem-fs-editor": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz",
+ "integrity": "sha1-3Qpuryu4prN3QAZ6pUnrUwEFr58=",
+ "requires": {
+ "commondir": "1.0.1",
+ "deep-extend": "0.4.2",
+ "ejs": "2.5.8",
+ "glob": "7.1.2",
+ "globby": "6.1.0",
+ "mkdirp": "0.5.1",
+ "multimatch": "2.1.0",
+ "rimraf": "2.6.2",
+ "through2": "2.0.3",
+ "vinyl": "2.1.0"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+ },
+ "clone-stats": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
+ "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA="
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ },
+ "vinyl": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz",
+ "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=",
+ "requires": {
+ "clone": "2.1.2",
+ "clone-buffer": "1.0.0",
+ "clone-stats": "1.0.0",
+ "cloneable-readable": "1.1.2",
+ "remove-trailing-separator": "1.1.0",
+ "replace-ext": "1.0.0"
+ }
+ }
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
"requires": {
+ "errno": "0.1.4",
"readable-stream": "2.3.3"
}
},
@@ -4313,10 +8326,19 @@
"regex-cache": "0.4.4"
}
},
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
+ }
+ },
"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=="
},
"mime-db": {
"version": "1.30.0",
@@ -4331,6 +8353,26 @@
"mime-db": "1.30.0"
}
},
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+ },
+ "mimic-response": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz",
+ "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4="
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M="
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -4344,6 +8386,53 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
},
+ "mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "requires": {
+ "concat-stream": "1.6.2",
+ "duplexify": "3.5.4",
+ "end-of-stream": "1.4.1",
+ "flush-write-stream": "1.0.3",
+ "from2": "2.3.0",
+ "parallel-transform": "1.1.0",
+ "pump": "2.0.1",
+ "pumpify": "1.4.0",
+ "stream-each": "1.2.2",
+ "through2": "2.0.3"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ }
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "requires": {
+ "for-in": "1.0.2",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
@@ -4359,16 +8448,108 @@
}
}
},
+ "module-deps": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
+ "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
+ "requires": {
+ "JSONStream": "1.3.2",
+ "browser-resolve": "1.11.2",
+ "cached-path-relative": "1.0.1",
+ "concat-stream": "1.5.2",
+ "defined": "1.0.0",
+ "detective": "4.7.1",
+ "duplexer2": "0.1.4",
+ "inherits": "2.0.3",
+ "parents": "1.0.1",
+ "readable-stream": "2.3.3",
+ "resolve": "1.5.0",
+ "stream-combiner2": "1.1.1",
+ "subarg": "1.0.0",
+ "through2": "2.0.3",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
+ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.0.6",
+ "typedarray": "0.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ }
+ }
+ },
"moment": {
"version": "2.18.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
"integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8="
},
+ "mousetrap": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.1.tgz",
+ "integrity": "sha1-KghfXHUSlMdefoH27CVFspy/Qtk="
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "requires": {
+ "aproba": "1.2.0",
+ "copy-concurrently": "1.0.5",
+ "fs-write-stream-atomic": "1.0.10",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2",
+ "run-queue": "1.0.3"
+ }
+ },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
+ "multimatch": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
+ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
+ "requires": {
+ "array-differ": "1.0.0",
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "minimatch": "3.0.4"
+ }
+ },
"multipipe": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
@@ -4408,73 +8589,273 @@
}
}
},
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
+ },
"nan": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
- "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
"optional": true
},
+ "nanomatch": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
+ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "fragment-cache": "0.2.1",
+ "is-odd": "2.0.0",
+ "is-windows": "1.0.2",
+ "kind-of": "6.0.2",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "natives": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.2.tgz",
+ "integrity": "sha512-5bRASydE1gu6zPOenLN043++J8xj1Ob7ArkfdYO3JN4DF5rDmG7bMoiybkTyD+GnXQEMixVeDHMzuqm6kpBmiA=="
+ },
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
- "ng2-bootstrap": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/ng2-bootstrap/-/ng2-bootstrap-1.6.3.tgz",
- "integrity": "sha1-i+9heddDa6VHkBRH8Y/uj/9DVcI=",
- "requires": {
- "moment": "2.18.1"
- }
+ "neo-async": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz",
+ "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA=="
+ },
+ "netmask": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
+ "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=",
+ "optional": true
},
"ng2-translate": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ng2-translate/-/ng2-translate-5.0.0.tgz",
"integrity": "sha1-Ctu1EOtQB6LW3tX10miIwUdgrKU="
},
- "node-libs-browser": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz",
- "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=",
- "dev": true,
+ "ngx-bootstrap": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-2.0.4.tgz",
+ "integrity": "sha512-fnY4lhgShonvnhtaQht+9zed4xFxKN0GuK1FyvVUDF8o6Yq21UeYOI2pj2R0536HV3tH4B7qqpZJo8TYgvaShQ=="
+ },
+ "nice-try": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
+ "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
"requires": {
- "assert": "1.4.1",
- "browserify-zlib": "0.1.4",
+ "lower-case": "1.1.4"
+ }
+ },
+ "node-dir": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.8.tgz",
+ "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30="
+ },
+ "node-libs-browser": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
+ "requires": {
+ "assert": "1.4.1",
+ "browserify-zlib": "0.2.0",
"buffer": "4.9.1",
"console-browserify": "1.1.0",
"constants-browserify": "1.0.0",
- "crypto-browserify": "3.3.0",
- "domain-browser": "1.1.7",
+ "crypto-browserify": "3.12.0",
+ "domain-browser": "1.2.0",
"events": "1.1.1",
- "https-browserify": "0.0.1",
- "os-browserify": "0.2.1",
+ "https-browserify": "1.0.0",
+ "os-browserify": "0.3.0",
"path-browserify": "0.0.0",
"process": "0.11.10",
"punycode": "1.4.1",
"querystring-es3": "0.2.1",
"readable-stream": "2.3.3",
"stream-browserify": "2.0.1",
- "stream-http": "2.7.2",
- "string_decoder": "0.10.31",
- "timers-browserify": "2.0.4",
+ "stream-http": "2.8.1",
+ "string_decoder": "1.0.3",
+ "timers-browserify": "2.0.6",
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.10.3",
"vm-browserify": "0.0.4"
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+ "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
+ "optional": true
+ },
+ "nodemailer": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz",
+ "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=",
+ "optional": true,
+ "requires": {
+ "libmime": "3.0.0",
+ "mailcomposer": "4.0.1",
+ "nodemailer-direct-transport": "3.3.2",
+ "nodemailer-shared": "1.1.0",
+ "nodemailer-smtp-pool": "2.8.2",
+ "nodemailer-smtp-transport": "2.7.2",
+ "socks": "1.1.9"
},
"dependencies": {
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "optional": true
+ },
+ "socks": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz",
+ "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=",
+ "optional": true,
+ "requires": {
+ "ip": "1.1.5",
+ "smart-buffer": "1.1.15"
+ }
}
}
},
- "node-status-codes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
- "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
+ "nodemailer-direct-transport": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz",
+ "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=",
+ "optional": true,
+ "requires": {
+ "nodemailer-shared": "1.1.0",
+ "smtp-connection": "2.12.0"
+ }
+ },
+ "nodemailer-fetch": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz",
+ "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q="
+ },
+ "nodemailer-shared": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz",
+ "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=",
+ "requires": {
+ "nodemailer-fetch": "1.6.0"
+ }
+ },
+ "nodemailer-smtp-pool": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz",
+ "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=",
+ "optional": true,
+ "requires": {
+ "nodemailer-shared": "1.1.0",
+ "nodemailer-wellknown": "0.1.10",
+ "smtp-connection": "2.12.0"
+ }
+ },
+ "nodemailer-smtp-transport": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz",
+ "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=",
+ "optional": true,
+ "requires": {
+ "nodemailer-shared": "1.1.0",
+ "nodemailer-wellknown": "0.1.10",
+ "smtp-connection": "2.12.0"
+ }
+ },
+ "nodemailer-wellknown": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz",
+ "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U="
+ },
+ "nomnom": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz",
+ "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=",
+ "requires": {
+ "chalk": "0.4.0",
+ "underscore": "1.6.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+ "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg="
+ },
+ "chalk": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
+ "requires": {
+ "ansi-styles": "1.0.0",
+ "has-color": "0.1.7",
+ "strip-ansi": "0.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
+ "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE="
+ },
+ "underscore": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag="
+ }
+ }
},
"nopt": {
"version": "2.2.1",
@@ -4503,11 +8884,36 @@
"remove-trailing-separator": "1.1.0"
}
},
+ "normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "requires": {
+ "prepend-http": "2.0.0",
+ "query-string": "5.1.1",
+ "sort-keys": "2.0.0"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "requires": {
+ "boolbase": "1.0.0"
+ }
+ },
"null-check": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
- "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
- "dev": true
+ "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0="
},
"number-is-nan": {
"version": "1.0.1",
@@ -4517,8 +8923,7 @@
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
- "dev": true
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
},
"object-assign": {
"version": "4.1.0",
@@ -4530,11 +8935,142 @@
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
},
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "requires": {
+ "copy-descriptor": "0.1.1",
+ "define-property": "0.2.5",
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ }
+ }
+ },
+ "object-keys": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
+ },
"object-path": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz",
- "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=",
- "dev": true
+ "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU="
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "requires": {
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "object.defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+ "requires": {
+ "array-each": "1.0.1",
+ "array-slice": "1.1.0",
+ "for-own": "1.0.0",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "array-slice": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
+ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.11.0"
+ }
+ },
+ "object.map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+ "requires": {
+ "for-own": "1.0.0",
+ "make-iterator": "1.0.0"
+ },
+ "dependencies": {
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ }
+ }
},
"object.omit": {
"version": "2.0.1",
@@ -4545,6 +9081,21 @@
"is-extendable": "0.1.1"
}
},
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "requires": {
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -4562,21 +9113,22 @@
}
},
"onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "requires": {
+ "mimic-fn": "1.2.0"
+ }
},
"openurl": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
- "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=",
- "dev": true
+ "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c="
},
"opn": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
"integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
- "dev": true,
"requires": {
"object-assign": "4.1.0",
"pinkie-promise": "2.0.1"
@@ -4591,36 +9143,110 @@
"wordwrap": "0.0.3"
}
},
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "optional": true,
+ "requires": {
+ "deep-is": "0.1.3",
+ "fast-levenshtein": "2.0.6",
+ "levn": "0.3.0",
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2",
+ "wordwrap": "1.0.0"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "optional": true
+ }
+ }
+ },
"options": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
"integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
},
- "ordered-read-streams": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
- "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
+ "ora": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
+ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
"requires": {
- "is-stream": "1.1.0",
- "readable-stream": "2.3.3"
+ "chalk": "1.1.3",
+ "cli-cursor": "1.0.2",
+ "cli-spinners": "0.1.2",
+ "object-assign": "4.1.0"
+ },
+ "dependencies": {
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "requires": {
+ "restore-cursor": "1.0.1"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "requires": {
+ "exit-hook": "1.1.1",
+ "onetime": "1.1.0"
+ }
+ }
+ }
+ },
+ "orchestrator": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
+ "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
+ "requires": {
+ "end-of-stream": "0.1.5",
+ "sequencify": "0.0.7",
+ "stream-consume": "0.1.1"
+ },
+ "dependencies": {
+ "end-of-stream": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
+ "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
+ "requires": {
+ "once": "1.3.3"
+ }
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ }
}
},
"os-browserify": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
- "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=",
- "dev": true
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
},
- "os-filter-obj": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz",
- "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60="
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-locale": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true,
"requires": {
"lcid": "1.0.0"
}
@@ -4630,65 +9256,245 @@
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
- "pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
- "dev": true
+ "p-cancelable": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
+ "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="
},
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "p-each-series": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
+ "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
"requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
+ "p-reduce": "1.0.0"
}
},
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "p-is-promise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
+ "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
+ },
+ "p-lazy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz",
+ "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU="
+ },
+ "p-limit": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
+ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
"requires": {
- "error-ex": "1.3.1"
+ "p-try": "1.0.0"
}
},
- "parsejson": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
- "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"requires": {
- "better-assert": "1.0.2"
+ "p-limit": "1.2.0"
}
},
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA=="
+ },
+ "p-reduce": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
+ "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo="
+ },
+ "p-timeout": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
+ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
"requires": {
- "better-assert": "1.0.2"
+ "p-finally": "1.0.0"
}
},
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ },
+ "pac-proxy-agent": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz",
+ "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==",
+ "optional": true,
"requires": {
- "better-assert": "1.0.2"
+ "agent-base": "2.1.1",
+ "debug": "2.6.9",
+ "extend": "3.0.1",
+ "get-uri": "2.0.1",
+ "http-proxy-agent": "1.0.0",
+ "https-proxy-agent": "1.0.0",
+ "pac-resolver": "2.0.0",
+ "raw-body": "2.3.2",
+ "socks-proxy-agent": "2.1.1"
}
},
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
+ "pac-resolver": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz",
+ "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=",
+ "optional": true,
+ "requires": {
+ "co": "3.0.6",
+ "degenerator": "1.0.4",
+ "ip": "1.0.1",
+ "netmask": "1.0.6",
+ "thunkify": "2.1.2"
+ }
+ },
+ "pako": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+ "requires": {
+ "cyclist": "0.2.2",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "requires": {
+ "no-case": "2.3.2"
+ }
+ },
+ "parents": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
+ "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
+ "requires": {
+ "path-platform": "0.11.15"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
+ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "requires": {
+ "asn1.js": "4.10.1",
+ "browserify-aes": "1.1.1",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
+ }
+ },
+ "parse-filepath": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
+ "requires": {
+ "is-absolute": "1.0.0",
+ "map-cache": "0.2.2",
+ "path-root": "0.1.1"
+ },
+ "dependencies": {
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "requires": {
+ "is-relative": "1.0.0",
+ "is-windows": "1.0.2"
+ }
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "requires": {
+ "is-unc-path": "1.0.0"
+ }
+ }
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
+ },
+ "parse5": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
+ "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
+ "requires": {
+ "@types/node": "9.6.5"
+ }
+ },
+ "parsejson": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
+ "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
+ "requires": {
+ "better-assert": "1.0.2"
+ }
+ },
+ "parseqs": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+ "requires": {
+ "better-assert": "1.0.2"
+ }
+ },
+ "parseuri": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+ "requires": {
+ "better-assert": "1.0.2"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
},
"path-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
- "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
- "dev": true
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
},
"path-dirname": {
"version": "1.0.2",
@@ -4708,11 +9514,55 @@
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
"path-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
- "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
- "dev": true
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
+ },
+ "path-platform": {
+ "version": "0.11.15",
+ "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
+ "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I="
+ },
+ "path-proxy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz",
+ "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=",
+ "optional": true,
+ "requires": {
+ "inflection": "1.3.8"
+ },
+ "dependencies": {
+ "inflection": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz",
+ "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=",
+ "optional": true
+ }
+ }
+ },
+ "path-root": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+ "requires": {
+ "path-root-regex": "0.1.2"
+ }
+ },
+ "path-root-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+ "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
},
"path-type": {
"version": "1.1.0",
@@ -4724,22 +9574,22 @@
"pinkie-promise": "2.0.1"
}
},
- "pbkdf2-compat": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz",
- "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=",
- "dev": true
- },
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ "pbkdf2": {
+ "version": "3.0.14",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
+ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.11"
+ }
},
"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
+ "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
},
"pify": {
"version": "2.3.0",
@@ -4759,11 +9609,33 @@
"pinkie": "2.0.4"
}
},
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "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=",
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ }
+ }
+ },
+ "popper.js": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz",
+ "integrity": "sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU="
+ },
"portscanner": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz",
"integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=",
- "dev": true,
"requires": {
"async": "1.5.2",
"is-number-like": "1.0.8"
@@ -4772,42 +9644,112 @@
"async": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
}
}
},
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
"prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
},
"preserve": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
},
+ "prettier": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.0.tgz",
+ "integrity": "sha512-Wz0SMncgaglBzDcohH3ZIAi4nVpzOIEweFzCOmgVEoRSeO72b4dcKGfgxoRGVMaFlh1r7dlVaJ+f3CIHfeH6xg=="
+ },
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk="
+ },
+ "pretty-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+ "requires": {
+ "renderkid": "2.0.1",
+ "utila": "0.4.0"
+ }
+ },
+ "pretty-hrtime": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
+ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
+ },
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
},
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
},
+ "progress": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8="
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
+ },
"promise-retry": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
"integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
- "dev": true,
"requires": {
"err-code": "1.1.2",
"retry": "0.10.1"
}
},
+ "proxy-agent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz",
+ "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=",
+ "optional": true,
+ "requires": {
+ "agent-base": "2.1.1",
+ "debug": "2.6.9",
+ "extend": "3.0.1",
+ "http-proxy-agent": "1.0.0",
+ "https-proxy-agent": "1.0.0",
+ "lru-cache": "2.6.5",
+ "pac-proxy-agent": "1.1.0",
+ "socks-proxy-agent": "2.1.1"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz",
+ "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=",
+ "optional": true
+ }
+ }
+ },
"prr": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
@@ -4816,32 +9758,48 @@
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "dev": true
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
},
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
+ "public-encrypt": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.6"
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "requires": {
+ "end-of-stream": "1.4.1",
+ "once": "1.4.0"
+ }
},
- "purescript": {
- "version": "0.10.7",
- "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.10.7.tgz",
- "integrity": "sha1-iMtXghqekbTl9CGGvT/ezBEToas=",
+ "pumpify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz",
+ "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==",
"requires": {
- "async-each-series": "1.1.0",
- "bin-build": "2.2.0",
- "bin-wrapper": "3.0.2",
- "logalot": "2.1.0",
- "to-executable-name": "1.1.1"
+ "duplexify": "3.5.4",
+ "inherits": "2.0.3",
+ "pump": "2.0.1"
}
},
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
"purs-loader": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/purs-loader/-/purs-loader-2.4.2.tgz",
- "integrity": "sha1-ugKJm26F2ywxF3jM/BwDsaQbwTc=",
- "dev": true,
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/purs-loader/-/purs-loader-3.1.4.tgz",
+ "integrity": "sha512-RnsQ/6U9ZIdv1fcArZbAYrfflxYmnfX5u69K+coZbFnbrDC277wk+mjdH/cmlWKQhwudQmgd1jcDTDJVudqE6Q==",
"requires": {
"bluebird": "3.5.1",
"chalk": "1.1.3",
@@ -4855,40 +9813,71 @@
"promise-retry": "1.1.1"
},
"dependencies": {
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "requires": {
+ "lru-cache": "4.1.2",
+ "which": "1.3.0"
+ }
+ },
"loader-utils": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
- "dev": true,
"requires": {
"big.js": "3.2.0",
"emojis-list": "2.1.0",
"json5": "0.5.1"
}
+ },
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
}
}
},
+ "q": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
+ "optional": true
+ },
"qjobs": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz",
- "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+ "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg=="
},
"qs": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
},
+ "query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "requires": {
+ "decode-uri-component": "0.2.0",
+ "object-assign": "4.1.0",
+ "strict-uri-encode": "1.1.0"
+ }
+ },
"querystring": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
- "dev": true
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
},
"querystring-es3": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
- "dev": true
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
},
"randomatic": {
"version": "1.1.7",
@@ -4927,6 +9916,23 @@
}
}
},
+ "randombytes": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "requires": {
+ "randombytes": "2.0.6",
+ "safe-buffer": "5.1.1"
+ }
+ },
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
@@ -4948,30 +9954,27 @@
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
"integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao="
},
- "rc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
- "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
+ "read-chunk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz",
+ "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=",
"requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
+ "pify": "3.0.0",
+ "safe-buffer": "5.1.1"
},
"dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
}
}
},
- "read-all-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
- "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "read-only-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
+ "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
"requires": {
- "pinkie-promise": "2.0.1",
"readable-stream": "2.3.3"
}
},
@@ -5019,19 +10022,79 @@
"set-immediate-shim": "1.0.1"
}
},
- "redent": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "recast": {
+ "version": "0.14.7",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz",
+ "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==",
"requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
+ "ast-types": "0.11.3",
+ "esprima": "4.0.0",
+ "private": "0.1.8",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "requires": {
+ "resolve": "1.5.0"
+ }
+ },
+ "redis": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
+ "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==",
+ "optional": true,
+ "requires": {
+ "double-ended-queue": "2.1.0-0",
+ "redis-commands": "1.3.5",
+ "redis-parser": "2.6.0"
}
},
+ "redis-commands": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz",
+ "integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==",
+ "optional": true
+ },
+ "redis-parser": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
+ "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=",
+ "optional": true
+ },
"reflect-metadata": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz",
- "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo="
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
+ "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A=="
+ },
+ "regenerate": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg=="
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "private": "0.1.8"
+ }
},
"regex-cache": {
"version": "0.4.4",
@@ -5041,11 +10104,86 @@
"is-equal-shallow": "0.1.3"
}
},
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "requires": {
+ "extend-shallow": "3.0.2",
+ "safe-regex": "1.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "requires": {
+ "regenerate": "1.3.3",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "requires": {
+ "jsesc": "0.5.0"
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
+ "renderkid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz",
+ "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=",
+ "requires": {
+ "css-select": "1.2.0",
+ "dom-converter": "0.1.4",
+ "htmlparser2": "3.3.0",
+ "strip-ansi": "3.0.1",
+ "utila": "0.3.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY="
+ }
+ }
+ },
"repeat-element": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
@@ -5073,7 +10211,6 @@
"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.6.0",
"aws4": "1.6.0",
@@ -5102,14 +10239,12 @@
"qs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
- "dev": true
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
@@ -5117,22 +10252,31 @@
"uuid": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
- "dev": true
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
}
}
},
+ "requestretry": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz",
+ "integrity": "sha512-Lmh9qMvnQXADGAQxsXHP4rbgO6pffCfuR8XUBdP9aitJcLQJxhp7YZK4xAVYXnPJ5E52mwrfiKQtKonPL8xsmg==",
+ "optional": true,
+ "requires": {
+ "extend": "3.0.1",
+ "lodash": "4.17.5",
+ "request": "2.81.0",
+ "when": "3.7.8"
+ }
+ },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
- "dev": true
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
},
"requires-port": {
"version": "1.0.0",
@@ -5143,32 +10287,78 @@
"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"
}
},
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "requires": {
+ "resolve-from": "3.0.0"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "global-modules": "1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ },
"resp-modifier": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz",
"integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=",
- "dev": true,
"requires": {
"debug": "2.6.9",
"minimatch": "3.0.4"
}
},
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "requires": {
+ "lowercase-keys": "1.0.1"
+ }
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "requires": {
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ },
"retry": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
- "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
- "dev": true
+ "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q="
},
"right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "dev": true,
+ "optional": true,
"requires": {
"align-text": "0.1.4"
}
@@ -5182,10 +10372,29 @@
}
},
"ripemd160": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz",
- "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
+ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
+ "requires": {
+ "hash-base": "2.0.2",
+ "inherits": "2.0.3"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "requires": {
+ "aproba": "1.2.0"
+ }
},
"runforcover": {
"version": "0.0.2",
@@ -5203,15 +10412,27 @@
"rx": {
"version": "2.3.24",
"resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz",
- "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=",
- "dev": true
+ "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc="
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
},
"rxjs": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.0.1.tgz",
- "integrity": "sha1-Omm9+fDKCphjAzcNRwj3K9+sg1Y=",
+ "version": "5.5.10",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz",
+ "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==",
"requires": {
- "symbol-observable": "1.0.4"
+ "symbol-observable": "1.0.1"
}
},
"safe-buffer": {
@@ -5219,44 +10440,49 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
- "seek-bzip": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
- "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"requires": {
- "commander": "2.8.1"
+ "ret": "0.1.15"
}
},
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
- },
- "semver-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
- "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk="
- },
- "semver-truncate": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
- "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
+ "schema-utils": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
+ "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
"requires": {
- "semver": "5.4.1"
+ "ajv": "6.3.0",
+ "ajv-keywords": "3.1.0"
},
"dependencies": {
- "semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
+ "ajv": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz",
+ "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=",
+ "requires": {
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
}
}
},
+ "scoped-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz",
+ "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg="
+ },
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
+ },
"send": {
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz",
"integrity": "sha1-+R+rRAO8+H5xb3DOtdsvV4vcF9Y=",
- "dev": true,
"requires": {
"debug": "2.6.4",
"depd": "1.1.1",
@@ -5277,7 +10503,6 @@
"version": "2.6.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz",
"integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=",
- "dev": true,
"requires": {
"ms": "0.7.3"
},
@@ -5285,42 +10510,46 @@
"ms": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz",
- "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=",
- "dev": true
+ "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8="
}
}
},
"fresh": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz",
- "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=",
- "dev": true
+ "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44="
},
"mime": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
- "dev": true
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
},
"ms": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz",
- "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=",
- "dev": true
+ "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM="
},
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
- "dev": true
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
}
}
},
+ "sequencify": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
+ "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw="
+ },
+ "serialize-javascript": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz",
+ "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU="
+ },
"serve-index": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz",
"integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=",
- "dev": true,
"requires": {
"accepts": "1.3.3",
"batch": "0.5.3",
@@ -5335,7 +10564,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
"requires": {
"ms": "0.7.1"
}
@@ -5344,7 +10572,6 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
"integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=",
- "dev": true,
"requires": {
"inherits": "2.0.3",
"setprototypeof": "1.0.2",
@@ -5354,14 +10581,12 @@
"ms": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg="
},
"setprototypeof": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
- "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=",
- "dev": true
+ "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg="
}
}
},
@@ -5369,7 +10594,6 @@
"version": "1.12.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz",
"integrity": "sha1-5UbicmCBuBtLzsjpCAjrzdMjr7o=",
- "dev": true,
"requires": {
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
@@ -5380,25 +10604,33 @@
"server-destroy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
- "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=",
- "dev": true
+ "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0="
},
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"set-immediate-shim": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
},
+ "set-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "split-string": "3.1.0"
+ }
+ },
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
- "dev": true
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"setprototypeof": {
"version": "1.0.3",
@@ -5406,10 +10638,73 @@
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
},
"sha.js": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz",
- "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=",
- "dev": true
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "shasum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
+ "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
+ "requires": {
+ "json-stable-stringify": "0.0.1",
+ "sha.js": "2.4.11"
+ },
+ "dependencies": {
+ "json-stable-stringify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
+ "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "shell-quote": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+ "requires": {
+ "array-filter": "0.0.1",
+ "array-map": "0.0.0",
+ "array-reduce": "0.0.0",
+ "jsonify": "0.0.0"
+ }
+ },
+ "shelljs": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz",
+ "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==",
+ "requires": {
+ "glob": "7.1.2",
+ "interpret": "1.1.0",
+ "rechoir": "0.6.2"
+ },
+ "dependencies": {
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
+ }
+ }
},
"sigmund": {
"version": "1.0.1",
@@ -5421,103 +10716,227 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
+ "slack-node": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz",
+ "integrity": "sha1-3kuN3aqLeT9h29KTgQT9q/N9+jA=",
+ "optional": true,
+ "requires": {
+ "requestretry": "1.13.0"
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
+ },
+ "slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU="
+ },
"slide": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
"integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="
},
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "dev": true,
+ "smart-buffer": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz",
+ "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY="
+ },
+ "smtp-connection": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz",
+ "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=",
"requires": {
- "hoek": "2.16.3"
+ "httpntlm": "1.6.1",
+ "nodemailer-shared": "1.1.0"
}
},
- "socket.io": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz",
- "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=",
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"requires": {
- "debug": "2.3.3",
- "engine.io": "1.8.3",
- "has-binary": "0.1.7",
- "object-assign": "4.1.0",
- "socket.io-adapter": "0.5.0",
- "socket.io-client": "1.7.3",
- "socket.io-parser": "2.3.1"
+ "base": "0.11.2",
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "map-cache": "0.2.2",
+ "source-map": "0.5.7",
+ "source-map-resolve": "0.5.1",
+ "use": "3.1.0"
},
"dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "ms": "0.7.2"
+ "is-descriptor": "0.1.6"
}
},
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
},
- "socket.io-adapter": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
- "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"requires": {
- "debug": "2.3.3",
- "socket.io-parser": "2.3.1"
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "snapdragon-util": "3.0.1"
},
"dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "ms": "0.7.2"
+ "is-descriptor": "1.0.2"
}
},
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
}
}
},
- "socket.io-client": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz",
- "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=",
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"requires": {
- "backo2": "1.0.2",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "2.3.3",
- "engine.io-client": "1.8.3",
- "has-binary": "0.1.7",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseuri": "0.0.5",
- "socket.io-parser": "2.3.1",
- "to-array": "0.1.4"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "requires": {
- "ms": "0.7.2"
- }
+ "kind-of": "3.2.2"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "socket.io": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz",
+ "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=",
+ "requires": {
+ "debug": "2.6.9",
+ "engine.io": "3.1.5",
+ "socket.io-adapter": "1.1.1",
+ "socket.io-client": "2.0.4",
+ "socket.io-parser": "3.1.3"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "socket.io-adapter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
+ "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
+ },
+ "socket.io-parser": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz",
+ "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "3.1.0",
+ "has-binary2": "1.0.2",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "socket.io-adapter": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
+ "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
+ "requires": {
+ "debug": "2.3.3",
+ "socket.io-parser": "2.3.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "requires": {
+ "ms": "0.7.2"
+ }
},
"ms": {
"version": "0.7.2",
@@ -5526,6 +10945,59 @@
}
}
},
+ "socket.io-client": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz",
+ "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=",
+ "requires": {
+ "backo2": "1.0.2",
+ "base64-arraybuffer": "0.1.5",
+ "component-bind": "1.0.0",
+ "component-emitter": "1.2.1",
+ "debug": "2.6.9",
+ "engine.io-client": "3.1.6",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "object-component": "0.0.3",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "socket.io-parser": "3.1.3",
+ "to-array": "0.1.4"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "socket.io-parser": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz",
+ "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "3.1.0",
+ "has-binary2": "1.0.2",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
"socket.io-parser": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz",
@@ -5557,17 +11029,75 @@
}
}
},
+ "socks": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
+ "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
+ "requires": {
+ "ip": "1.1.5",
+ "smart-buffer": "1.1.15"
+ },
+ "dependencies": {
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+ }
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz",
+ "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==",
+ "requires": {
+ "agent-base": "2.1.1",
+ "extend": "3.0.1",
+ "socks": "1.1.10"
+ }
+ },
+ "sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ },
"source-list-map": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
- "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
- "dev": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A=="
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
+ "source-map-resolve": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz",
+ "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==",
+ "requires": {
+ "atob": "2.0.3",
+ "decode-uri-component": "0.2.0",
+ "resolve-url": "0.2.1",
+ "source-map-url": "0.4.0",
+ "urix": "0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ },
"sparkles": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
@@ -5576,8 +11106,7 @@
"spawn-command": {
"version": "0.0.2-1",
"resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
- "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
- "dev": true
+ "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A="
},
"spdx-correct": {
"version": "1.0.2",
@@ -5597,21 +11126,42 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
},
- "squeak": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
- "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=",
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"requires": {
- "chalk": "1.1.3",
- "console-stream": "0.1.1",
- "lpad-align": "1.1.2"
+ "extend-shallow": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
}
},
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
"sshpk": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
"integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
- "dev": true,
"requires": {
"asn1": "0.2.3",
"assert-plus": "1.0.0",
@@ -5626,15 +11176,87 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}
}
},
- "stat-mode": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
- "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI="
+ "ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "requires": {
+ "define-property": "0.2.5",
+ "object-copy": "0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
},
"statuses": {
"version": "1.4.0",
@@ -5645,7 +11267,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
"integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
- "dev": true,
"requires": {
"inherits": "2.0.3",
"readable-stream": "2.3.3"
@@ -5660,11 +11281,24 @@
"readable-stream": "2.3.3"
}
},
+ "stream-consume": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
+ "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
+ "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+ "requires": {
+ "end-of-stream": "1.4.1",
+ "stream-shift": "1.0.0"
+ }
+ },
"stream-http": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
- "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
- "dev": true,
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz",
+ "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==",
"requires": {
"builtin-status-codes": "3.0.0",
"inherits": "2.0.3",
@@ -5678,40 +11312,85 @@
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
},
+ "stream-splicer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz",
+ "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=",
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3"
+ }
+ },
"stream-throttle": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
"integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
- "dev": true,
"requires": {
"commander": "2.8.1",
"limiter": "1.1.2"
}
},
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "stream-to-observable": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz",
+ "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=",
"requires": {
- "safe-buffer": "5.1.1"
+ "any-observable": "0.2.0"
+ }
+ },
+ "streamroller": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
+ "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==",
+ "requires": {
+ "date-format": "1.2.0",
+ "debug": "3.1.0",
+ "mkdirp": "0.5.1",
+ "readable-stream": "2.3.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0="
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
"requires": {
"code-point-at": "1.1.0",
"is-fullwidth-code-point": "1.0.0",
"strip-ansi": "3.0.1"
}
},
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
"stringstream": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
},
"strip-ansi": {
"version": "3.0.1",
@@ -5730,54 +11409,28 @@
}
},
"strip-bom-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
- "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz",
+ "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=",
"requires": {
- "first-chunk-stream": "1.0.0",
+ "first-chunk-stream": "2.0.0",
"strip-bom": "2.0.0"
- }
- },
- "strip-dirs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
- "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=",
- "requires": {
- "chalk": "1.1.3",
- "get-stdin": "4.0.1",
- "is-absolute": "0.1.7",
- "is-natural-number": "2.1.1",
- "minimist": "1.2.0",
- "sum-up": "1.0.3"
},
"dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ "first-chunk-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz",
+ "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=",
+ "requires": {
+ "readable-stream": "2.3.3"
+ }
}
}
},
- "strip-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
- "requires": {
- "get-stdin": "4.0.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
- },
- "strip-outer": {
+ "strip-eof": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz",
- "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=",
- "requires": {
- "escape-string-regexp": "1.0.5"
- }
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
},
"strxml": {
"version": "0.0.0",
@@ -5787,13 +11440,20 @@
"tap": "0.4.13"
}
},
- "sum-up": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
- "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=",
+ "subarg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
+ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
"requires": {
- "chalk": "1.1.3"
- }
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
},
"supports-color": {
"version": "2.0.0",
@@ -5801,9 +11461,17 @@
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
},
"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="
+ },
+ "syntax-error": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
+ "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==",
+ "requires": {
+ "acorn-node": "1.3.0"
+ }
},
"tap": {
"version": "0.4.13",
@@ -5843,40 +11511,50 @@
}
},
"tapable": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
- "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI="
- },
- "tar-stream": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz",
- "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=",
- "requires": {
- "bl": "1.2.1",
- "end-of-stream": "1.4.0",
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
- }
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz",
+ "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg=="
},
- "tempfile": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
- "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
+ "temp": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
+ "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=",
"requires": {
"os-tmpdir": "1.0.2",
- "uuid": "2.0.3"
+ "rimraf": "2.2.8"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
+ }
}
},
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "textextensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz",
+ "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA=="
+ },
"tfunk": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
"integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=",
- "dev": true,
"requires": {
"chalk": "1.1.3",
"object-path": "0.9.2"
}
},
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
"through2": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
@@ -5909,24 +11587,18 @@
}
}
},
- "through2-filter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
- "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
+ "thunkify": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz",
+ "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=",
+ "optional": true
+ },
+ "tildify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+ "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
"requires": {
- "through2": "2.0.3",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "through2": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
- "requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
- }
- }
+ "os-homedir": "1.0.2"
}
},
"time-stamp": {
@@ -5935,35 +11607,32 @@
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
},
"timed-out": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
- "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
},
"timers-browserify": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
- "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
- "dev": true,
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz",
+ "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==",
"requires": {
"setimmediate": "1.0.5"
}
},
+ "timespan": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz",
+ "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=",
+ "optional": true
+ },
"tmp": {
- "version": "0.0.31",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
- "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"requires": {
"os-tmpdir": "1.0.2"
}
},
- "to-absolute-glob": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
- "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
- "requires": {
- "extend-shallow": "2.0.1"
- }
- },
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
@@ -5972,13 +11641,69 @@
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
- "dev": true
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
},
- "to-executable-name": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/to-executable-name/-/to-executable-name-1.1.1.tgz",
- "integrity": "sha512-r+6FRFK8VnpimozExAVA9b5WXgo9e8W04UHqfToyhY4hznxygCdp5zww8lei55hNnZuyw5xWZjhZooq4c4kieA=="
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "requires": {
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "regex-not": "1.0.2",
+ "safe-regex": "1.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "requires": {
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ }
+ }
},
"tokml": {
"version": "0.4.0",
@@ -5997,11 +11722,15 @@
}
}
},
+ "toposort": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz",
+ "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw="
+ },
"tough-cookie": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
"integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
- "dev": true,
"requires": {
"punycode": "1.4.1"
}
@@ -6014,72 +11743,437 @@
"tree-kill": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
- "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
- "dev": true
- },
- "trim-newlines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+ "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg=="
},
- "trim-repeated": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
- "requires": {
- "escape-string-regexp": "1.0.5"
- }
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
},
"ts-helpers": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/ts-helpers/-/ts-helpers-1.1.2.tgz",
- "integrity": "sha1-/Gm+nx87rtAfsaDvjUz+dIgU2DU=",
- "dev": true
+ "integrity": "sha1-/Gm+nx87rtAfsaDvjUz+dIgU2DU="
},
"ts-loader": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-1.3.3.tgz",
- "integrity": "sha1-MMYgPh5muEGohwHtiFjxcl2UsCY=",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.2.0.tgz",
+ "integrity": "sha512-EvnwgbEUklPQK82OiZS0NDrG0ZoH91+zef8PFXSOZocSQ5jklQyvAM84Id20UxjVdXVIzMgFu+vlKCQomfq27A==",
"requires": {
- "colors": "1.1.2",
- "enhanced-resolve": "3.4.1",
- "loader-utils": "0.2.17",
- "object-assign": "4.1.0",
- "semver": "5.4.1"
+ "chalk": "2.3.2",
+ "enhanced-resolve": "4.0.0",
+ "loader-utils": "1.1.0",
+ "micromatch": "3.1.10",
+ "semver": "5.5.0"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ },
"semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
}
}
},
- "tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
- "dev": true
+ "tslib": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
+ "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ=="
},
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
+ "tslint": {
+ "version": "5.9.1",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz",
+ "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=",
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "builtin-modules": "1.1.1",
+ "chalk": "2.3.2",
+ "commander": "2.15.1",
+ "diff": "3.5.0",
+ "glob": "7.1.2",
+ "js-yaml": "3.11.0",
+ "minimatch": "3.0.4",
+ "resolve": "1.5.0",
+ "semver": "5.5.0",
+ "tslib": "1.9.0",
+ "tsutils": "2.26.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
+ }
+ },
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
+ },
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ }
+ }
+ },
+ "tsscmp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz",
+ "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=",
+ "optional": true
+ },
+ "tsutils": {
+ "version": "2.26.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.1.tgz",
+ "integrity": "sha512-bnm9bcjOqOr1UljleL94wVCDlpa6KjfGaTkefeLch4GRafgDkROxPizbB/FxTEdI++5JqhxczRy/Qub0syNqZA==",
+ "requires": {
+ "tslib": "1.9.0"
+ }
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "optional": true
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true,
"optional": true
},
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "1.1.2"
+ }
+ },
"type-is": {
- "version": "1.6.15",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
- "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
"requires": {
"media-typer": "0.3.0",
- "mime-types": "2.1.17"
+ "mime-types": "2.1.18"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.18",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "requires": {
+ "mime-db": "1.33.0"
+ }
+ }
}
},
"typedarray": {
@@ -6087,17 +12181,79 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
+ "typedoc": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.11.1.tgz",
+ "integrity": "sha512-jdNIoHm5wkZqxQTe/g9AQ3LKnZyrzHXqu6A/c9GUOeJyBWLxNr7/Dm3rwFvLksuxRNwTvY/0HRDU9sJTa9WQSg==",
+ "requires": {
+ "@types/fs-extra": "5.0.1",
+ "@types/handlebars": "4.0.36",
+ "@types/highlight.js": "9.12.2",
+ "@types/lodash": "4.14.104",
+ "@types/marked": "0.3.0",
+ "@types/minimatch": "3.0.3",
+ "@types/shelljs": "0.7.8",
+ "fs-extra": "5.0.0",
+ "handlebars": "4.0.11",
+ "highlight.js": "9.12.0",
+ "lodash": "4.17.5",
+ "marked": "0.3.17",
+ "minimatch": "3.0.4",
+ "progress": "2.0.0",
+ "shelljs": "0.8.1",
+ "typedoc-default-themes": "0.5.0",
+ "typescript": "2.7.2"
+ },
+ "dependencies": {
+ "@types/lodash": {
+ "version": "4.14.104",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.104.tgz",
+ "integrity": "sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ=="
+ },
+ "fs-extra": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
+ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "lodash": {
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+ "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
+ },
+ "typescript": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
+ "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw=="
+ }
+ }
+ },
+ "typedoc-default-themes": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.5.0.tgz",
+ "integrity": "sha1-bcJDPnjti+qOiHo6zeLzF4W9Yic="
+ },
"typescript": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz",
- "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==",
- "dev": true
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.1.tgz",
+ "integrity": "sha512-Ao/f6d/4EPLq0YwzsQz8iXflezpTkQzqAyenTiw4kCUGr1uPiFLC3+fZ+gMZz6eeI/qdRUqvC+HxIJzUAzEFdg=="
},
"ua-parser-js": {
"version": "0.7.12",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz",
- "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=",
- "dev": true
+ "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs="
},
"uglify-js": {
"version": "1.1.1",
@@ -6108,49 +12264,194 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true
+ "optional": true
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz",
+ "integrity": "sha512-z0IbjpW8b3O/OVn+TTZN4pI29RN1zktFBXLIzzfZ+++cUtZ1ERSlLWgpE/5OERuEUs1ijVQnpYAkSlpoVmQmSQ==",
+ "requires": {
+ "cacache": "10.0.4",
+ "find-cache-dir": "1.0.0",
+ "schema-utils": "0.4.5",
+ "serialize-javascript": "1.4.0",
+ "source-map": "0.6.1",
+ "uglify-es": "3.3.9",
+ "webpack-sources": "1.1.0",
+ "worker-farm": "1.6.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "uglify-es": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+ "requires": {
+ "commander": "2.13.0",
+ "source-map": "0.6.1"
+ }
+ }
+ }
},
"ultron": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
"integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
},
+ "umd": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
+ "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow=="
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
"underscore": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
- "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
- "dev": true
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
},
- "unique-stream": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
- "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
+ "union-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"requires": {
- "json-stable-stringify": "1.0.1",
- "through2-filter": "2.0.0"
+ "arr-union": "3.1.0",
+ "get-value": "2.0.6",
+ "is-extendable": "0.1.1",
+ "set-value": "0.4.3"
+ },
+ "dependencies": {
+ "set-value": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "to-object-path": "0.3.0"
+ }
+ }
+ }
+ },
+ "unique-filename": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz",
+ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
+ "requires": {
+ "unique-slug": "2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
+ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
+ "requires": {
+ "imurmurhash": "0.1.4"
}
},
"universalify": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
- "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
- "dev": true
+ "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
- "unzip-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
- "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "requires": {
+ "has-value": "0.3.1",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "requires": {
+ "get-value": "2.0.6",
+ "has-values": "0.1.4",
+ "isobject": "2.1.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "untildify": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz",
+ "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E="
+ },
+ "upath": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz",
+ "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw=="
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
+ },
+ "uri-js": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz",
+ "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=",
+ "requires": {
+ "punycode": "2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
},
"url": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
- "dev": true,
"requires": {
"punycode": "1.3.2",
"querystring": "0.2.0"
@@ -6159,392 +12460,1110 @@
"punycode": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
- "dev": true
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
}
}
},
+ "url-join": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz",
+ "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg="
+ },
"url-loader": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz",
- "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==",
- "dev": true,
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.0.1.tgz",
+ "integrity": "sha512-rAonpHy7231fmweBKUFe0bYnlGDty77E+fm53NZdij7j/YOpyGzc7ttqG1nAXl3aRs0k41o0PC3TvGXQiw2Zvw==",
"requires": {
"loader-utils": "1.1.0",
- "mime": "1.3.6"
+ "mime": "2.2.0",
+ "schema-utils": "0.4.5"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "mime": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz",
+ "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA=="
+ }
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "requires": {
+ "prepend-http": "2.0.0"
+ }
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+ },
+ "use": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
+ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
+ "requires": {
+ "kind-of": "6.0.2"
},
"dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "user-home": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
+ },
+ "useragent": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
+ "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
+ "requires": {
+ "lru-cache": "4.1.2",
+ "tmp": "0.0.33"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ }
+ }
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "requires": {
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "requires": {
+ "define-properties": "1.1.2",
+ "object.getownpropertydescriptors": "2.0.3"
+ }
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uws": {
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz",
+ "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==",
+ "optional": true
+ },
+ "v8-compile-cache": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz",
+ "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA=="
+ },
+ "v8flags": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
+ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "requires": {
+ "user-home": "1.1.1"
+ }
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "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="
+ }
+ }
+ },
+ "vinyl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
+ "requires": {
+ "clone": "1.0.2",
+ "clone-stats": "0.0.1",
+ "replace-ext": "0.0.1"
+ }
+ },
+ "vinyl-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz",
+ "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0",
+ "strip-bom-stream": "2.0.0",
+ "vinyl": "1.2.0"
+ }
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
+ },
+ "vue-parser": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/vue-parser/-/vue-parser-1.1.6.tgz",
+ "integrity": "sha512-v3/R7PLbaFVF/c8IIzWs1HgRpT2gN0dLRkaLIT5q+zJGVgmhN4VuZJF4Y9N4hFtFjS4B1EHxAOP6/tzqM4Ug2g==",
+ "requires": {
+ "parse5": "3.0.3"
+ }
+ },
+ "watchpack": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz",
+ "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==",
+ "requires": {
+ "chokidar": "2.0.3",
+ "graceful-fs": "4.1.11",
+ "neo-async": "2.5.1"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "requires": {
+ "micromatch": "3.1.10",
+ "normalize-path": "2.1.1"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "chokidar": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz",
+ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==",
+ "requires": {
+ "anymatch": "2.0.0",
+ "async-each": "1.0.1",
+ "braces": "2.3.2",
+ "fsevents": "1.1.3",
+ "glob-parent": "3.1.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "4.0.0",
+ "normalize-path": "2.1.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.1.0",
+ "upath": "1.0.4"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "3.1.0",
+ "path-dirname": "1.0.2"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ }
+ }
+ },
+ "webpack": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.5.0.tgz",
+ "integrity": "sha512-6GrZsvQJnG7o7mjbfjp6s5CyMfdopjt1A/X8LcYwceis9ySjqBX6Lusso2wNZ06utHj2ZvfL6L3f7hfgVeJP6g==",
+ "requires": {
+ "acorn": "5.5.3",
+ "acorn-dynamic-import": "3.0.0",
+ "ajv": "6.4.0",
+ "ajv-keywords": "3.1.0",
+ "chrome-trace-event": "0.1.3",
+ "enhanced-resolve": "4.0.0",
+ "eslint-scope": "3.7.1",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
+ "micromatch": "3.1.10",
+ "mkdirp": "0.5.1",
+ "neo-async": "2.5.1",
+ "node-libs-browser": "2.1.0",
+ "schema-utils": "0.4.5",
+ "tapable": "1.0.0",
+ "uglifyjs-webpack-plugin": "1.2.4",
+ "watchpack": "1.5.0",
+ "webpack-sources": "1.1.0"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
"loader-utils": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
- "dev": true,
"requires": {
"big.js": "3.2.0",
"emojis-list": "2.1.0",
"json5": "0.5.1"
}
},
- "mime": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz",
- "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=",
- "dev": true
- }
- }
- },
- "url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "requires": {
- "prepend-http": "1.0.4"
- }
- },
- "url-regex": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz",
- "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=",
- "requires": {
- "ip-regex": "1.0.3"
- }
- },
- "useragent": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz",
- "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=",
- "requires": {
- "lru-cache": "2.2.4",
- "tmp": "0.0.31"
- }
- },
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dev": true,
- "requires": {
- "inherits": "2.0.1"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
- "dev": true
- }
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
- "uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
- },
- "vali-date": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
- "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY="
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
- "requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
- }
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "dev": true,
- "requires": {
- "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
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
}
}
},
- "vinyl": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
- "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
- "requires": {
- "clone": "1.0.2",
- "clone-stats": "0.0.1",
- "replace-ext": "0.0.1"
- }
- },
- "vinyl-assign": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
- "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=",
- "requires": {
- "object-assign": "4.1.0",
- "readable-stream": "2.3.3"
- }
- },
- "vinyl-fs": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
- "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
+ "webpack-addons": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz",
+ "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==",
"requires": {
- "duplexify": "3.5.1",
- "glob-stream": "5.3.5",
- "graceful-fs": "4.1.11",
- "gulp-sourcemaps": "1.6.0",
- "is-valid-glob": "0.3.0",
- "lazystream": "1.0.0",
- "lodash.isequal": "4.5.0",
- "merge-stream": "1.0.1",
- "mkdirp": "0.5.1",
- "object-assign": "4.1.0",
- "readable-stream": "2.3.3",
- "strip-bom": "2.0.0",
- "strip-bom-stream": "1.0.0",
- "through2": "2.0.3",
- "through2-filter": "2.0.0",
- "vali-date": "1.0.0",
- "vinyl": "1.2.0"
+ "jscodeshift": "0.4.1"
},
"dependencies": {
- "through2": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "ast-types": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz",
+ "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ=="
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ },
+ "jscodeshift": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.4.1.tgz",
+ "integrity": "sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ==",
"requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
+ "async": "1.5.2",
+ "babel-plugin-transform-flow-strip-types": "6.22.0",
+ "babel-preset-es2015": "6.24.1",
+ "babel-preset-stage-1": "6.24.1",
+ "babel-register": "6.26.0",
+ "babylon": "6.18.0",
+ "colors": "1.1.2",
+ "flow-parser": "0.70.0",
+ "lodash": "4.17.5",
+ "micromatch": "2.3.11",
+ "node-dir": "0.1.8",
+ "nomnom": "1.8.1",
+ "recast": "0.12.9",
+ "temp": "0.8.3",
+ "write-file-atomic": "1.3.4"
+ }
+ },
+ "recast": {
+ "version": "0.12.9",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz",
+ "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==",
+ "requires": {
+ "ast-types": "0.10.1",
+ "core-js": "2.5.5",
+ "esprima": "4.0.0",
+ "private": "0.1.8",
+ "source-map": "0.6.1"
}
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
- "vm-browserify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
- "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
- "dev": true,
- "requires": {
- "indexof": "0.0.1"
- }
- },
- "void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
- },
- "ware": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
- "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=",
- "requires": {
- "wrap-fn": "0.1.5"
- }
- },
- "watchpack": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",
- "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=",
- "dev": true,
- "requires": {
- "async": "0.9.2",
- "chokidar": "1.7.0",
- "graceful-fs": "4.1.11"
- }
- },
- "webpack": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz",
- "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=",
- "dev": true,
- "requires": {
- "acorn": "3.3.0",
- "async": "1.5.2",
- "clone": "1.0.2",
- "enhanced-resolve": "0.9.1",
- "interpret": "0.6.6",
- "loader-utils": "0.2.17",
- "memory-fs": "0.3.0",
+ "webpack-cli": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.14.tgz",
+ "integrity": "sha512-gRoWaxSi2JWiYsn1QgOTb6ENwIeSvN1YExZ+kJ0STsTZK7bWPElW+BBBv1UnTbvcPC3v7E17mK8hlFX8DOYSGw==",
+ "requires": {
+ "chalk": "2.3.2",
+ "cross-spawn": "6.0.5",
+ "diff": "3.5.0",
+ "enhanced-resolve": "4.0.0",
+ "envinfo": "4.4.2",
+ "glob-all": "3.1.0",
+ "global-modules": "1.0.0",
+ "got": "8.3.0",
+ "import-local": "1.0.0",
+ "inquirer": "5.2.0",
+ "interpret": "1.1.0",
+ "jscodeshift": "0.5.0",
+ "listr": "0.13.0",
+ "loader-utils": "1.1.0",
+ "lodash": "4.17.5",
+ "log-symbols": "2.2.0",
"mkdirp": "0.5.1",
- "node-libs-browser": "0.7.0",
- "optimist": "0.6.1",
- "supports-color": "3.2.3",
- "tapable": "0.1.10",
- "uglify-js": "2.7.5",
- "watchpack": "0.2.9",
- "webpack-core": "0.6.9"
+ "p-each-series": "1.0.0",
+ "p-lazy": "1.0.0",
+ "prettier": "1.12.0",
+ "supports-color": "5.3.0",
+ "v8-compile-cache": "1.1.2",
+ "webpack-addons": "1.1.5",
+ "yargs": "11.1.0",
+ "yeoman-environment": "2.0.6",
+ "yeoman-generator": "2.0.4"
},
"dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
},
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
+ }
},
"cliui": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz",
+ "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==",
+ "requires": {
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "find-up": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
+ "locate-path": "2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
}
},
- "enhanced-resolve": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
- "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
- "dev": true,
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
"requires": {
- "graceful-fs": "4.1.11",
- "memory-fs": "0.2.0",
- "tapable": "0.1.10"
- },
- "dependencies": {
- "memory-fs": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
- "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
- "dev": true
- }
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
- "memory-fs": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
- "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=",
- "dev": true,
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"requires": {
- "errno": "0.1.4",
- "readable-stream": "2.3.3"
+ "ansi-regex": "3.0.0"
}
},
"supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "dev": true,
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "3.0.0"
}
},
- "tapable": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
- "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
- "dev": true
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
- "uglify-js": {
- "version": "2.7.5",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
- "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
- "dev": true,
+ "yargs": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
+ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
"requires": {
- "async": "0.2.10",
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- },
- "dependencies": {
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
- "dev": true
- }
+ "cliui": "4.0.0",
+ "decamelize": "1.2.0",
+ "find-up": "2.1.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "9.0.2"
}
},
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "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": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "dev": true,
+ "yargs-parser": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
"requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
+ "camelcase": "4.1.0"
}
}
}
},
- "webpack-core": {
- "version": "0.6.9",
- "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
- "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
- "dev": true,
+ "webpack-dev-middleware": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz",
+ "integrity": "sha512-tj5LLD9r4tDuRIDa5Mu9lnY2qBBehAITv6A9irqXhw/HQquZgTx3BCd57zYbU2gMDnncA49ufK2qVQSbaKJwOw==",
"requires": {
- "source-list-map": "0.1.8",
- "source-map": "0.4.4"
+ "loud-rejection": "1.6.0",
+ "memory-fs": "0.4.1",
+ "mime": "2.2.0",
+ "path-is-absolute": "1.0.1",
+ "range-parser": "1.2.0",
+ "url-join": "2.0.5",
+ "webpack-log": "1.1.2"
},
"dependencies": {
- "source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true,
+ "mime": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz",
+ "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA=="
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.1.2.tgz",
+ "integrity": "sha512-B53SD4N4BHpZdUwZcj4st2QT7gVfqZtqHDruC1N+K2sciq0Rt/3F1Dx6RlylVkcrToMLTaiaeT48k9Lq4iDVDA==",
+ "requires": {
+ "chalk": "2.3.2",
+ "log-symbols": "2.2.0",
+ "loglevelnext": "1.0.3",
+ "uuid": "3.2.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
- "amdefine": "1.0.1"
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
}
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
}
}
},
- "webpack-dev-middleware": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz",
- "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=",
- "dev": true,
+ "webpack-sources": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
+ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
"requires": {
- "memory-fs": "0.4.1",
- "mime": "1.4.1",
- "path-is-absolute": "1.0.1",
- "range-parser": "1.2.0",
- "time-stamp": "2.0.0"
+ "source-list-map": "2.0.0",
+ "source-map": "0.6.1"
},
"dependencies": {
- "time-stamp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
- "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=",
- "dev": true
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -6552,7 +13571,6 @@
"version": "2.0.0-pre-I0Z7U9OV",
"resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz",
"integrity": "sha1-/viqIjkh97QLu71MPtQwL2/QqBM=",
- "dev": true,
"requires": {
"express": "2.5.11",
"nopt": "3.0.6",
@@ -6563,18 +13581,22 @@
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
- "dev": true,
"requires": {
"abbrev": "1.1.1"
}
}
}
},
+ "when": {
+ "version": "3.7.8",
+ "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
+ "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=",
+ "optional": true
+ },
"which": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
- "dev": true,
"requires": {
"isexe": "2.0.0"
}
@@ -6582,50 +13604,80 @@
"which-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
- "dev": true
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
},
"window-size": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
- "dev": true
+ "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
},
"wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
},
+ "worker-farm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+ "requires": {
+ "errno": "0.1.7"
+ },
+ "dependencies": {
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "requires": {
+ "prr": "1.0.1"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
+ }
+ }
+ },
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dev": true,
"requires": {
"string-width": "1.0.2",
"strip-ansi": "3.0.1"
}
},
- "wrap-fn": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
- "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=",
- "requires": {
- "co": "3.1.0"
- }
- },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
+ "write-file-atomic": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
+ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
+ }
+ },
"ws": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz",
- "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
"requires": {
- "options": "0.0.6",
- "ultron": "1.0.2"
+ "async-limiter": "1.0.0",
+ "safe-buffer": "5.1.1",
+ "ultron": "1.1.1"
+ },
+ "dependencies": {
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ }
}
},
"wtf-8": {
@@ -6637,7 +13689,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz",
"integrity": "sha1-LIaIjy1OrehQ+jjKf3Ij9yCVFuE=",
- "dev": true,
"requires": {
"lodash": "3.10.1"
},
@@ -6645,8 +13696,7 @@
"lodash": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
}
}
},
@@ -6655,6 +13705,12 @@
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz",
"integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0="
},
+ "xregexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
+ "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=",
+ "optional": true
+ },
"xtend": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
@@ -6663,14 +13719,12 @@
"y18n": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "dev": true
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
},
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "dev": true
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
},
"yamlish": {
"version": "0.0.7",
@@ -6681,7 +13735,6 @@
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
"integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=",
- "dev": true,
"requires": {
"camelcase": "3.0.0",
"cliui": "3.2.0",
@@ -6702,14 +13755,12 @@
"camelcase": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
},
"window-size": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
- "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
- "dev": true
+ "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU="
}
}
},
@@ -6717,7 +13768,6 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
"integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "dev": true,
"requires": {
"camelcase": "3.0.0"
},
@@ -6725,29 +13775,314 @@
"camelcase": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
}
}
},
- "yauzl": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.0.tgz",
- "integrity": "sha1-knqoQ5Lu0FMSRJa26o/B9S2uW1I=",
- "requires": {
- "buffer-crc32": "0.2.13",
- "fd-slicer": "1.0.1"
- }
- },
"yeast": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
},
+ "yeoman-environment": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.0.6.tgz",
+ "integrity": "sha512-jzHBTTy8EPI4ImV8dpUMt+Q5zELkSU5xvGpndHcHudQ4tqN6YgIWaCGmRFl+HDchwRUkcgyjQ+n6/w5zlJBCPg==",
+ "requires": {
+ "chalk": "2.3.2",
+ "debug": "3.1.0",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "globby": "6.1.0",
+ "grouped-queue": "0.3.3",
+ "inquirer": "3.3.0",
+ "is-scoped": "1.0.0",
+ "lodash": "4.17.5",
+ "log-symbols": "2.2.0",
+ "mem-fs": "1.1.3",
+ "text-table": "0.2.0",
+ "untildify": "3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "requires": {
+ "ansi-escapes": "3.1.0",
+ "chalk": "2.3.2",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.2.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.5",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ }
+ }
+ },
+ "yeoman-generator": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-2.0.4.tgz",
+ "integrity": "sha512-Sgvz3MAkOpEIobcpW3rjEl6bOTNnl8SkibP9z7hYKfIGIlw0QDC2k0MAeXvyE2pLqc2M0Duql+6R7/W9GrJojg==",
+ "requires": {
+ "async": "2.6.0",
+ "chalk": "2.3.2",
+ "cli-table": "0.3.1",
+ "cross-spawn": "5.1.0",
+ "dargs": "5.1.0",
+ "dateformat": "3.0.3",
+ "debug": "3.1.0",
+ "detect-conflict": "1.0.1",
+ "error": "7.0.2",
+ "find-up": "2.1.0",
+ "github-username": "4.1.0",
+ "istextorbinary": "2.2.1",
+ "lodash": "4.17.5",
+ "make-dir": "1.2.0",
+ "mem-fs-editor": "3.0.2",
+ "minimist": "1.2.0",
+ "pretty-bytes": "4.0.2",
+ "read-chunk": "2.1.0",
+ "read-pkg-up": "3.0.0",
+ "rimraf": "2.6.2",
+ "run-async": "2.3.0",
+ "shelljs": "0.8.1",
+ "text-table": "0.2.0",
+ "through2": "2.0.3",
+ "yeoman-environment": "2.0.6"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+ "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+ "requires": {
+ "lodash": "4.17.5"
+ }
+ },
+ "chalk": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.3.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "requires": {
+ "lru-cache": "4.1.2",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "4.0.0",
+ "pify": "3.0.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "requires": {
+ "error-ex": "1.3.1",
+ "json-parse-better-errors": "1.0.2"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "requires": {
+ "pify": "3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "requires": {
+ "load-json-file": "4.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ },
+ "supports-color": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ }
+ }
+ },
"zone.js": {
- "version": "0.7.8",
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.7.8.tgz",
- "integrity": "sha1-Tz/og01EWX8mOQU6D6Q43zT//e0="
+ "version": "0.8.26",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz",
+ "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA=="
}
}
}
diff --git a/package.json b/package.json
index 5559edb..5eb8c70 100644
--- a/package.json
+++ b/package.json
@@ -4,14 +4,22 @@
"description": "Abaplan core project",
"main": "index.js",
"scripts": {
- "test": "karma start karma.conf.js --single-run",
- "start": "concurrently \"webpack --watch --progress\" \"lite-server\" ",
- "lite": "lite-server",
- "postinstall": "bower install",
+ "build-help": "echo Build and pack for production ':p' or development ':d'",
+ "build": "webpack --progress --config ./build/webpack.config.js",
+ "build:d": "npm run build -- -d",
+ "build:p": "npm run build -- -p",
+ "doc-help": "echo Generate the documentation",
+ "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors",
+ "start-help": "echo Run a developpement server and watch for changes",
+ "start": "concurrently \"npm run build:d -- -w\" \"lite-server --baseDir=\"dist\"\" ",
+ "test-help": "echo Run the tests",
+ "test": "karma start ./test/karma.conf.js --single-run",
+ "tsc-help": "echo Transpile to js",
"tsc": "tsc",
- "tsc:w": "tsc -w",
- "build": "webpack --config ./webpack.config.js",
- "clean": "rm -f -r node_modules bower_components"
+ "tsc:c-help": "echo Clear the transpiled files safely (remove only the js file that match ts files)",
+ "tsc:c": "gulp clear",
+ "tsc:w-help": "echo Transpile to js and watch for changes",
+ "tsc:w": "tsc -w"
},
"repository": {
"type": "git",
@@ -28,7 +36,9 @@
"author": "Joel Cavat",
"contributors": [
"Joel Cavat",
- "Maxiume Burri"
+ "Maxiume Burri ",
+ "Pierre Johner",
+ "Robin Chappatte "
],
"license": "MIT",
"bugs": {
@@ -36,62 +46,70 @@
},
"homepage": "https://github.com/ABAPlan/abaplan-core#readme",
"dependencies": {
- "@angular/common": "^2.0.2",
- "@angular/compiler": "^2.0.2",
- "@angular/core": "^2.0.2",
- "@angular/forms": "^2.0.2",
- "@angular/http": "^2.0.2",
- "@angular/platform-browser": "^2.0.2",
- "@angular/platform-browser-dynamic": "^2.0.2",
- "@angular/router": "^3.0.2",
- "@angular/upgrade": "^2.0.2",
+ "@angular/common": "^5.2.10",
+ "@angular/compiler": "^5.2.10",
+ "@angular/core": "^5.2.10",
+ "@angular/forms": "^5.2.10",
+ "@angular/http": "^5.2.10",
+ "@angular/platform-browser": "^5.2.10",
+ "@angular/platform-browser-dynamic": "^5.2.10",
+ "@angular/router": "^5.2.10",
+ "@angular/upgrade": "^5.2.10",
+ "@types/arcgis-js-api": "^3.23.0",
+ "@types/file-saver": "^1.3.0",
"@types/google-maps": "^3.2.0",
- "@types/lodash": "4.14.42",
- "angular-in-memory-web-api": "^0.2.2",
- "artyom.js": "1.0.5",
- "bootstrap": "^3.3.7",
- "bower": "^1.8.0",
+ "@types/jasmine": "^2.8.6",
+ "@types/lodash": "^4.14.107",
+ "@types/node": "^9.6.5",
+ "ajv": "^6.4.0",
+ "angular-in-memory-web-api": "^0.5.4",
+ "angular2-hotkeys": "^2.0.4",
+ "angular2-template-loader": "^0.6.0",
+ "artyom.js": "^1.0.6",
"braille": "^1.1.0",
- "core-js": "^2.4.1",
+ "concurrently": "^3.5.1",
+ "copy-webpack-plugin": "^4.5.1",
+ "core-js": "^2.5.5",
+ "dojo-typings": "^1.11.9",
"esri-system-js": "^1.0.0-beta.0",
- "file-saver": "^1.3.3",
- "geojson": "^0.4.1",
+ "file-loader": "^1.1.11",
+ "file-saver": "^1.3.8",
+ "fork-ts-checker-webpack-plugin": "^0.4.1",
+ "geojson": "^0.5.0",
"google-maps": "^3.2.1",
- "karma": "^1.5.0",
- "lodash": "4.17.2",
- "ng2-bootstrap": "^1.1.14",
- "ng2-translate": "^5.0.0",
- "purescript": "^0.10.7",
- "raw-loader": "^0.5.1",
- "reflect-metadata": "^0.1.8",
- "rxjs": "5.0.1",
- "tokml": "^0.4.0",
- "ts-loader": "^1.0.0",
- "zone.js": "~0.7.2"
- },
- "devDependencies": {
- "@types/arcgis-js-api": "^3.20",
- "@types/jasmine": "^2.6.2",
- "@types/node": "^8.0.47",
- "angular2-template-loader": "^0.6.0",
- "concurrently": "^3.0.0",
- "dojo-typings": "^1.11.9",
- "file-loader": "^0.9.0",
- "jasmine-core": "^2.5.2",
- "karma": "^1.3.0",
+ "gulp": "^3.9.1",
+ "gulp-clean-compiled-typescript": "^1.2.0",
+ "html-webpack-include-assets-plugin": "^1.0.4",
+ "html-webpack-plugin": "^3.2.0",
+ "jasmine": "^3.1.0",
+ "jasmine-core": "^3.1.0",
+ "karma": "^2.0.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-dojo": "0.0.1",
"karma-htmlfile-reporter": "^0.3.4",
- "karma-jasmine": "^1.0.2",
- "karma-jasmine-html-reporter": "^0.2.2",
+ "karma-jasmine": "^1.1.1",
+ "karma-jasmine-html-reporter": "^1.0.0",
"karma-sourcemap-loader": "^0.3.7",
- "karma-webpack": "^2.0.2",
+ "karma-webpack": "^3.0.0",
"lite-server": "^2.2.2",
- "purs-loader": "^2.3.0",
+ "lodash": "^4.17.5",
+ "ng2-translate": "^5.0.0",
+ "ngx-bootstrap": "^2.0.4",
+ "popper.js": "^1.14.3",
+ "purs-loader": "^3.1.4",
+ "raw-loader": "^0.5.1",
+ "reflect-metadata": "^0.1.12",
+ "rxjs": "^5.5.10",
+ "tokml": "^0.4.0",
"ts-helpers": "^1.1.2",
- "typescript": "^2.0.3",
- "url-loader": "^0.5.7",
- "webpack": "^1.15.0"
+ "ts-loader": "^4.2.0",
+ "tslint": "^5.9.1",
+ "typedoc": "^0.11.1",
+ "typescript": "^2.8.1",
+ "url-loader": "^1.0.1",
+ "webpack": "^4.5.0",
+ "webpack-cli": "^2.0.14",
+ "zone.js": "^0.8.26"
}
}
diff --git a/src/.gitignore b/src/.gitignore
new file mode 100644
index 0000000..aa4a6da
--- /dev/null
+++ b/src/.gitignore
@@ -0,0 +1,2 @@
+*.js
+*.js.map
\ No newline at end of file
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 016b23d..f2e6361 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,21 +1,22 @@
-import { NgModule } from '@angular/core';
-import { TouchpadComponent } from './touchpad/touchpad.component'
-import { EditorComponent } from './editor/editor.component'
-import {BlindCreatorComponent} from "./blind-creator/blind-creator.component";
-import { RouterModule, Routes } from '@angular/router';
-
-/* Routing Module */
-const appRoutes: Routes = [
- { path: '', pathMatch: 'full', component: EditorComponent},
- { path: 'touchpad-voice/:id', component: TouchpadComponent },
- { path: 'create-map', component: BlindCreatorComponent }
-];
-
-@NgModule({
- imports: [
- RouterModule.forRoot(appRoutes)
- ],
- exports: [ RouterModule ]
-})
-
-export class AppRoutingModule {}
\ No newline at end of file
+import { NgModule } from "@angular/core";
+import { RouterModule, Routes } from "@angular/router";
+import { BlindCreatorComponent } from "./blind-creator/blind-creator.component";
+import { EditorComponent } from "./editor/editor.component";
+import { TouchpadComponent } from "./touchpad/touchpad.component";
+
+/* Routing Module */
+const appRoutes: Routes = [
+ { path: "", pathMatch: "full", component: EditorComponent},
+ { path: "touchpad-voice/:id", component: TouchpadComponent },
+ { path: "create-map", component: BlindCreatorComponent },
+ { path: ":id", redirectTo: "touchpad-voice/:id" },
+];
+
+@NgModule({
+ exports: [RouterModule],
+ imports: [
+ RouterModule.forRoot(appRoutes),
+ ],
+})
+
+export class AppRoutingModule {}
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 1da2616..9b53a75 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,19 +1,18 @@
-import { Component } from '@angular/core';
-
-import {TranslateService} from 'ng2-translate';
-import {ScalarObservable} from 'rxjs/observable/ScalarObservable';
-@Component({
- selector: 'aba-plan',
- template: ''
-})
-export class AppComponent {
- constructor(private translateService: TranslateService) {
- // Init Translate Service for the site
- let languages = ['fr','en','de','it'];
- translateService.addLangs(languages);
- translateService.setDefaultLang('fr');
- languages.forEach(lang => translateService.use(lang));
- translateService.use(this.translateService.getBrowserLang());
- }
-
-}
+import { Component } from "@angular/core";
+import { TranslateService } from "ng2-translate";
+
+@Component({
+ selector: "aba-plan",
+ template: "",
+})
+export class AppComponent {
+ constructor(private translateService: TranslateService) {
+ // Init Translate Service for the site
+ const languages = ["fr", "en", "de", "it"];
+ translateService.addLangs(languages);
+ translateService.setDefaultLang("fr");
+ languages.forEach((lang) => translateService.use(lang));
+ translateService.use(this.translateService.getBrowserLang());
+ }
+
+}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 89c9e9e..26f85e5 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,40 +1,35 @@
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-
-import { AppComponent } from './app.component';
-import { CoreModule } from './core/core.module';
-
-import { AppRoutingModule } from './app-routing.module';
-import { APP_BASE_HREF } from '@angular/common';
-
-import {TranslateModule} from "ng2-translate";
-
-import {} from '@types/googlemaps';
-
-/* Feature Modules:
- * - TouchpadModule for voices interactivity with touchpad device
- * - EditorModule for editing, creating and saving new maps
- * - BlindCreatorModule for creating and saving new maps for blind people
- */
-import { TouchpadModule } from "./touchpad/touchpad.module";
-import { EditorModule } from "./editor/editor.module";
-import { BlindCreatorModule } from "./blind-creator/blind-creator.module";
-
-@NgModule({
- imports: [
- TranslateModule.forRoot()
- , BrowserModule
- , CoreModule
- , AppRoutingModule
- , TouchpadModule
- , EditorModule
- , BlindCreatorModule
- ],
- declarations: [
- AppComponent
- ],
- bootstrap: [ AppComponent ],
- providers: [{provide: APP_BASE_HREF, useValue : '/' }]
-})
-
-export class AppModule { }
+import { APP_BASE_HREF } from "@angular/common";
+import { NgModule } from "@angular/core";
+import { BrowserModule } from "@angular/platform-browser";
+import { HotkeyModule } from "angular2-hotkeys";
+import { TranslateModule } from "ng2-translate";
+import { AppRoutingModule } from "./app-routing.module";
+import { AppComponent } from "./app.component";
+import { BlindCreatorModule } from "./blind-creator/blind-creator.module";
+import { CoreModule } from "./core/core.module";
+import { EditorModule } from "./editor/editor.module";
+import { AbaplanHotkeysService } from "./shared/abaplanHotkeysService";
+import { TouchpadModule } from "./touchpad/touchpad.module";
+
+@NgModule({
+ bootstrap: [ AppComponent ],
+ declarations: [
+ AppComponent,
+ ],
+ imports: [
+ BrowserModule,
+ CoreModule,
+ AppRoutingModule,
+ TouchpadModule,
+ EditorModule,
+ BlindCreatorModule,
+ TranslateModule.forRoot(),
+ HotkeyModule.forRoot(),
+ ],
+ providers: [
+ AbaplanHotkeysService,
+ {provide: APP_BASE_HREF, useValue : "/" },
+ ],
+})
+
+export class AppModule {}
diff --git a/src/app/blind-creator/blind-creator.component.ts b/src/app/blind-creator/blind-creator.component.ts
index 9e33253..0728afc 100644
--- a/src/app/blind-creator/blind-creator.component.ts
+++ b/src/app/blind-creator/blind-creator.component.ts
@@ -1,242 +1,245 @@
-import {Component, ViewChild} from "@angular/core";
-import 'rxjs/add/operator/switchMap';
-
-import { MapService } from '../map/map.service';
-import { GeoService } from '../core/geo.service';
-import { VoiceService } from '../core/voice.service';
-import { TranslateService } from "ng2-translate";
-
-import { MapComponent } from '../map/map.component';
-
-import Point = require('esri/geometry/Point');
-import {ScalarObservable} from 'rxjs/observable/ScalarObservable';
-
-interface translations {value : string};
-
-@Component({
- selector: 'aba-blindCreator',
- templateUrl: 'blind-creator.component.html',
- styleUrls: ['blind-creator.component.css'],
- providers : []
-})
-export class BlindCreatorComponent {
- @ViewChild(MapComponent)
- private mapComponent: MapComponent;
- private points:Array = new Array();
- private centerPoint : Point;
- private isSave : boolean = false;
- private readonly zoomLevel: number = 16;
- private readonly layerType : any = {kind: "city"};
- private readonly maxPoints : number = 3;
-
- constructor(
- private voiceService : VoiceService,
- private geoService : GeoService,
- private translateService: TranslateService
- ){
-
- /**Init the voice commands and start calibration
- *
- * Can't be directly in the constructor beacause of
- * compatibity with voice Commands (library can't charge voice early)
- * Hack with onReady callback to be call after
- * init of page
- * (pj)
- */
- document.onreadystatechange= () => {
- this.voiceService.initialization();
- this.prepareVoiceCommand();
- this.voiceService.say(this.getStringTranslation("blindCreatorEntry"));
- }
-
- }
-
- ngOnInit(): void {
- //Init the Map
- this.mapComponent.getDefaultMap();
- this.mapComponent.setLayerType(this.layerType);
- this.mapComponent.setZoom(this.zoomLevel);
- this.mapComponent.map.disableMapNavigation();
- }
-
- /* Compute average Point */
- private averagePoint(): Point{
- if(this.points.length==0){
- return new Point(0,0);
- }
- else if(this.points.length==1){
- return this.points[0];
- }
- else{
- let lat_av : number = 0;
- let lon_av : number = 0;
-
- this.points.forEach((point)=>{
- lat_av += point.getLatitude();
- lon_av += point.getLongitude();
- });
-
- return new Point(lon_av/this.points.length,lat_av/this.points.length);
- }
-
- }
-
- /* Check if a point is in the map */
- private isInMap(point : Point):boolean{
- return this.mapComponent.isInMap(point);
- }
-
- /* Check if all the points is in the map */
- private pointsInMap():boolean{
- return this.points.every((p)=>this.isInMap(p));
- }
-
- /* Check if the user can add a new point */
- private checkLimit():boolean{
- return this.points.length+1 <= this.maxPoints;
- }
-
- /* Try to add a new Point */
- private addPoint(address:string){
- if(!this.isSave){
- if(this.checkLimit())
- this.geoService.point(address).subscribe(
- (searchPoint: Point) => {
- if (searchPoint === undefined){
- this.voiceService.say(this.getStringTranslation("searchKo"));
- }else{
- this.points.push(searchPoint);
- if(this.points.length == 1){
- this.mapComponent.centerMap(searchPoint);
- this.centerPoint = searchPoint;
- this.voiceService.say(this.getStringTranslation("bcAddPoint"));
- }else{
- const average : Point = this.averagePoint();
- this.mapComponent.centerMap(average);
-
- if(this.pointsInMap()){
- this.voiceService.say(this.getStringTranslation("bcAddPoint"));
- this.centerPoint = average;
- }else{
- this.points.pop();
- this.voiceService.say(this.getStringTranslation("bcNotAddPoint"));
- this.mapComponent.centerMap(this.centerPoint);
- }
- }
- }
- }
- );
- else
- this.voiceService.say(this.getStringTranslation("bcTooManyPoints"));
- }else{
- this.voiceService.say(this.getStringTranslation("bcAlreadySave"));
- }
- }
-
- /* Save the Map in Database */
- private saveMap(title:string){
- if(!this.isSave){
- this.mapComponent.saveMapWithTitle(title);
- this.voiceService.say(this.getStringTranslation("bcSave")+title);
- this.isSave = true;
- }else{
- this.voiceService.say(this.getStringTranslation("bcAlreadySave"));
- }
- }
-
- /* Print the map when the update end */
- private printMap(){
- if(this.isSave){
- if(!this.mapComponent.mapLoading)
- window.print();
- else
- this.mapComponent.map.onUpdateEnd = () =>
- {
- this.mapComponent.mapLoading = false;
- window.print();
- //At the end load the older UpdateEnd
- this.mapComponent.map.onUpdateEnd = () => this.mapComponent.mapLoading = false;
- };
- }else{
- this.voiceService.say(this.getStringTranslation("bcNeedSave"));
- }
- }
-
- /* Redirect to Touchpad if the map is save */
- private redirectionToTouchpad():void{
- if(this.isSave){
- if(this.mapComponent.map.uid){
- this.voiceService.say(this.getStringTranslation("bcRedirection")+String(this.mapComponent.map.uid));
- window.location.replace('touchpad-voice/'+String(this.mapComponent.map.uid));
- }else{
- this.voiceService.say(this.getStringTranslation("bcSaving"));
- }
- }else{
- this.voiceService.say(this.getStringTranslation("bcNeedSave"));
- }
- }
-
- /** Change language of application */
- private changeLang(langTranslate : string,langVoice : string):void{
- this.translateService.use(langTranslate);
- this.voiceService.changeLang(langVoice);
- }
-
- /** Add Commands */
- private prepareVoiceCommand() {
- // Loop for add command in each lang of application
- let langs = this.translateService.getLangs();
- for(let entry of langs){
- this.translateService.use(entry);
- let codeVoice = this.getStringTranslation("codeLangVoice");
-
- // Switch Lang command
- this.voiceService.addCommand(
- [this.getStringTranslation("myLang")],
- this.getStringTranslation("codeLang"),
- () => this.changeLang(entry,codeVoice)
- );
-
- // Add Point to the map
- this.voiceService.addCommand(
- this.getStringTranslations("bcAddId"),
- this.getStringTranslation("bcAddDescri"),
- (i: number, wildcard: string) => this.addPoint(wildcard)
- );
-
- //Save Map
- this.voiceService.addCommand(
- this.getStringTranslations("bcSaveId"),
- this.getStringTranslation("bcSaveDescri"),
- (i: number, wildcard: string) => this.saveMap(wildcard)
- );
-
- // Print Map
- this.voiceService.addCommand(
- this.getStringTranslations("bcPrintId"),
- this.getStringTranslation("bcPrintDecri"),
- () => this.printMap()
- );
-
- // Redirection to Touchpad
- this.voiceService.addCommand(
- this.getStringTranslations("bcRedirectionId"),
- this.getStringTranslation("bcRedirectionDescri"),
- () => this.redirectionToTouchpad()
- );
-
- }
- this.translateService.use(this.translateService.getBrowserLang());
- }
-
- /** Return string by id and current lang of application */
- private getStringTranslation(s: string) : string {
- return (this.translateService.get(s)as ScalarObservable).value;
- }
-
- /** Return array of string by id and current lang of application */
- private getStringTranslations(s: string) : Array {
- return (this.translateService.get(s)as ScalarObservable>).value.map(object => object.value);
-
- }
-}
+import { Component, ViewChild } from "@angular/core";
+import { TranslateService } from "ng2-translate";
+import "rxjs/add/operator/switchMap";
+import { ScalarObservable } from "rxjs/observable/ScalarObservable";
+import { GeoService } from "../core/geo.service";
+import { VoiceService } from "../core/voice.service";
+import { MapComponent } from "../map/map.component";
+
+import Point = require("esri/geometry/Point");
+
+interface Translations {
+ value: string;
+}
+
+@Component({
+ providers: [],
+ selector: "aba-blindCreator",
+ styleUrls: ["blind-creator.component.css"],
+ templateUrl: "blind-creator.component.html",
+})
+export class BlindCreatorComponent {
+ @ViewChild(MapComponent) private mapComponent: MapComponent;
+ private points: Point[] = new Array();
+ private centerPoint: Point;
+ private isSave: boolean = false;
+ private readonly zoomLevel: number = 16;
+ private readonly layerType: any = { kind: "city" };
+ private readonly maxPoints: number = 3;
+
+ constructor(
+ private voiceService: VoiceService,
+ private geoService: GeoService,
+ private translateService: TranslateService,
+ ) {
+ /**Init the voice commands and start calibration
+ *
+ * Can't be directly in the constructor beacause of
+ * compatibity with voice Commands (library can't charge voice early)
+ * Hack with onReady callback to be call after
+ * init of page
+ * (pj)
+ */
+ document.onreadystatechange = () => {
+ this.voiceService.initialization();
+ this.prepareVoiceCommand();
+ this.voiceService.say(this.getStringTranslation("blindCreatorEntry"));
+ };
+ }
+
+ public ngOnInit(): void {
+ // Init the Map
+ this.mapComponent.getDefaultMap();
+ this.mapComponent.setLayerType(this.layerType);
+ this.mapComponent.setZoom(this.zoomLevel);
+ this.mapComponent.map.disableMapNavigation();
+ }
+
+ /* Compute average Point */
+ private averagePoint(): Point {
+ if (this.points.length === 0) {
+ return new Point(0, 0);
+ } else if (this.points.length === 1) {
+ return this.points[0];
+ } else {
+ let latitudeAverage: number = 0;
+ let longitudeAverage: number = 0;
+
+ this.points.forEach((point) => {
+ latitudeAverage += point.getLatitude();
+ longitudeAverage += point.getLongitude();
+ });
+
+ return new Point(
+ longitudeAverage / this.points.length,
+ latitudeAverage / this.points.length,
+ );
+ }
+ }
+
+ /* Check if a point is in the map */
+ private isInMap(point: Point): boolean {
+ return this.mapComponent.isInMap(point);
+ }
+
+ /* Check if all the points is in the map */
+ private pointsInMap(): boolean {
+ return this.points.every((p) => this.isInMap(p));
+ }
+
+ /* Check if the user can add a new point */
+ private checkLimit(): boolean {
+ return this.points.length + 1 <= this.maxPoints;
+ }
+
+ /* Try to add a new Point */
+ private addPoint(address: string) {
+ if (!this.isSave) {
+ if (this.checkLimit()) {
+ this.geoService.point(address).subscribe((searchPoint: Point) => {
+ if (searchPoint === undefined) {
+ this.voiceService.say(this.getStringTranslation("searchKo"));
+ } else {
+ this.points.push(searchPoint);
+ if (this.points.length === 1) {
+ this.mapComponent.centerMap(searchPoint);
+ this.centerPoint = searchPoint;
+ this.voiceService.say(this.getStringTranslation("bcAddPoint"));
+ } else {
+ const average: Point = this.averagePoint();
+ this.mapComponent.centerMap(average);
+
+ if (this.pointsInMap()) {
+ this.voiceService.say(this.getStringTranslation("bcAddPoint"));
+ this.centerPoint = average;
+ } else {
+ this.points.pop();
+ this.voiceService.say(
+ this.getStringTranslation("bcNotAddPoint"),
+ );
+ this.mapComponent.centerMap(this.centerPoint);
+ }
+ }
+ }
+ });
+ } else {
+ this.voiceService.say(this.getStringTranslation("bcTooManyPoints"));
+ }
+ } else {
+ this.voiceService.say(this.getStringTranslation("bcAlreadySave"));
+ }
+ }
+
+ /* Save the Map in Database */
+ private saveMap(title: string) {
+ if (!this.isSave) {
+ this.mapComponent.saveMapWithTitle(title);
+ this.voiceService.say(this.getStringTranslation("bcSave") + title);
+ this.isSave = true;
+ } else {
+ this.voiceService.say(this.getStringTranslation("bcAlreadySave"));
+ }
+ }
+
+ /* Print the map when the update end */
+ private printMap() {
+ if (this.isSave) {
+ if (!this.mapComponent.mapLoading) {
+ (window as any).print();
+ } else {
+ this.mapComponent.map.onUpdateEnd = () => {
+ this.mapComponent.mapLoading = false;
+ (window as any).print();
+ // At the end load the older UpdateEnd
+ this.mapComponent.map.onUpdateEnd = () =>
+ (this.mapComponent.mapLoading = false);
+ };
+ }
+ } else {
+ this.voiceService.say(this.getStringTranslation("bcNeedSave"));
+ }
+ }
+
+ /* Redirect to Touchpad if the map is save */
+ private redirectionToTouchpad(): void {
+ if (this.isSave) {
+ if (this.mapComponent.map.uid) {
+ this.voiceService.say(
+ this.getStringTranslation("bcRedirection") +
+ String(this.mapComponent.map.uid),
+ );
+ window.location.replace(
+ "touchpad-voice/" + String(this.mapComponent.map.uid),
+ );
+ } else {
+ this.voiceService.say(this.getStringTranslation("bcSaving"));
+ }
+ } else {
+ this.voiceService.say(this.getStringTranslation("bcNeedSave"));
+ }
+ }
+
+ /** Change language of application */
+ private changeLang(langTranslate: string, langVoice: string): void {
+ this.translateService.use(langTranslate);
+ this.voiceService.changeLang(langVoice);
+ }
+
+ /** Add Commands */
+ private prepareVoiceCommand() {
+ // Loop for add command in each lang of application
+ const langs = this.translateService.getLangs();
+ for (const entry of langs) {
+ this.translateService.use(entry);
+ const codeVoice = this.getStringTranslation("codeLangVoice");
+
+ // Switch Lang command
+ this.voiceService.addCommand(
+ [this.getStringTranslation("myLang")],
+ this.getStringTranslation("codeLang"),
+ () => this.changeLang(entry, codeVoice),
+ );
+
+ // Add Point to the map
+ this.voiceService.addCommand(
+ this.getStringTranslations("bcAddId"),
+ this.getStringTranslation("bcAddDescri"),
+ (i: number, wildcard: string) => this.addPoint(wildcard),
+ );
+
+ // Save Map
+ this.voiceService.addCommand(
+ this.getStringTranslations("bcSaveId"),
+ this.getStringTranslation("bcSaveDescri"),
+ (i: number, wildcard: string) => this.saveMap(wildcard),
+ );
+
+ // Print Map
+ this.voiceService.addCommand(
+ this.getStringTranslations("bcPrintId"),
+ this.getStringTranslation("bcPrintDecri"),
+ () => this.printMap(),
+ );
+
+ // Redirection to Touchpad
+ this.voiceService.addCommand(
+ this.getStringTranslations("bcRedirectionId"),
+ this.getStringTranslation("bcRedirectionDescri"),
+ () => this.redirectionToTouchpad(),
+ );
+ }
+ this.translateService.use(this.translateService.getBrowserLang());
+ }
+
+ /** Return string by id and current lang of application */
+ private getStringTranslation(s: string): string {
+ return (this.translateService.get(s) as ScalarObservable).value;
+ }
+
+ /** Return array of string by id and current lang of application */
+ private getStringTranslations(s: string): string[] {
+ return (this.translateService.get(s) as ScalarObservable<
+ Translations[]
+ >).value.map((object) => object.value);
+ }
+}
diff --git a/src/app/blind-creator/blind-creator.module.ts b/src/app/blind-creator/blind-creator.module.ts
index dfad487..a798d43 100644
--- a/src/app/blind-creator/blind-creator.module.ts
+++ b/src/app/blind-creator/blind-creator.module.ts
@@ -1,20 +1,13 @@
-import { NgModule } from '@angular/core';
-
-import { MapService } from '../map/map.service';
-import { GeoService } from "../core/geo.service";
-import { VoiceService } from "../core/voice.service";
-import {SharedModule} from "../shared/shared.module";
-import {BlindCreatorComponent} from "./blind-creator.component";
-
-@NgModule({
- imports: [ SharedModule ],
- declarations: [
- BlindCreatorComponent
- ],
- providers: [
- MapService
- , GeoService
- , VoiceService
- ]
-})
-export class BlindCreatorModule { }
\ No newline at end of file
+import { NgModule } from "@angular/core";
+import { GeoService } from "../core/geo.service";
+import { VoiceService } from "../core/voice.service";
+import { MapService } from "../map/map.service";
+import { SharedModule } from "../shared/shared.module";
+import { BlindCreatorComponent } from "./blind-creator.component";
+
+@NgModule({
+ declarations: [BlindCreatorComponent],
+ imports: [SharedModule],
+ providers: [MapService, GeoService, VoiceService],
+})
+export class BlindCreatorModule {}
diff --git a/src/app/boot.ts b/src/app/boot.ts
index 508b70d..fbfc0b8 100644
--- a/src/app/boot.ts
+++ b/src/app/boot.ts
@@ -1,5 +1,5 @@
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-import { AppModule } from './app.module';
-
-const platform = platformBrowserDynamic();
-platform.bootstrapModule(AppModule);
+import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
+import { AppModule } from "./app.module";
+
+const platform = platformBrowserDynamic();
+platform.bootstrapModule(AppModule);
diff --git a/src/app/core/artyomProvider.ts b/src/app/core/artyomProvider.ts
new file mode 100644
index 0000000..304492c
--- /dev/null
+++ b/src/app/core/artyomProvider.ts
@@ -0,0 +1,63 @@
+import artyomjs from "artyom.js/source/artyom";
+import * as _ from "lodash";
+
+export interface VoiceProvider {
+ say(text: string): void;
+ addCommand(
+ indexes: string[],
+ description: string,
+ action: (i: number, wildcard?: string) => void,
+ );
+ changeLang(lang: string);
+ simulate(s: string);
+ initialization();
+}
+
+export class ArtyomProvider implements VoiceProvider {
+ private readonly artyom = new artyomjs();
+ private lang: string;
+
+ /** Text-to-speech in the current lang */
+ public say(text: string): void {
+ this.artyom.say(text, {
+ lang: this.lang,
+ });
+ }
+
+ /** Add a triger and action for the voice recognition */
+ public addCommand(
+ indexes: string[],
+ description: string,
+ action: (i: number, wildcard?: string) => void,
+ ): void {
+ const isSmart = _.some(indexes, (str) => _.includes(str, "*"));
+ const command: ArtyomCommand = {
+ action,
+ description,
+ indexes,
+ smart: isSmart,
+ } as ArtyomCommand;
+ this.artyom.addCommands(command);
+ }
+
+ public initialization() {
+ this.artyom.initialize({
+ continuous: true,
+ debug: true,
+ lang: "fr-FR",
+ listen: true,
+ soundex: true,
+ });
+ this.lang = "fr-FR";
+ }
+
+ /** Change Current Lang of the Speaker */
+ public changeLang(lang: string): void {
+ this.lang = lang;
+ }
+
+ /** Simulation a voice recognition */
+ public simulate(s: string): void {
+ this.artyom.simulateInstruction(s);
+ }
+}
diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts
index 42b83dc..c8c4839 100644
--- a/src/app/core/core.module.ts
+++ b/src/app/core/core.module.ts
@@ -1,19 +1,13 @@
-// good practices: https://angular.io/styleguide#!#-a-id-04-11-a-core-feature-module
-import { NgModule } from '@angular/core';
-import { GeoService } from "./geo.service";
-import { MapService } from "../map/map.service";
-import { VoiceService } from "./voice.service";
-
-
-@NgModule({
- imports: [],
- declarations: [ ],
- exports: [ ],
- providers:
- [ GeoService
- , MapService
- , VoiceService
- ]
-})
-
-export class CoreModule { }
+// good practices: https://angular.io/styleguide#!#-a-id-04-11-a-core-feature-module
+import { NgModule } from "@angular/core";
+import { MapService } from "../map/map.service";
+import { GeoService } from "./geo.service";
+import { VoiceService } from "./voice.service";
+
+@NgModule({
+ declarations: [],
+ exports: [],
+ imports: [],
+ providers: [GeoService, MapService, VoiceService],
+})
+export class CoreModule {}
diff --git a/src/app/core/direction.ts b/src/app/core/direction.ts
index aaee1ea..99717c4 100644
--- a/src/app/core/direction.ts
+++ b/src/app/core/direction.ts
@@ -1,14 +1,41 @@
-/**
- * Created by joel on 29.03.17.
- */
-
-export type Direction = Upper | Lower | Right | Left | UpperRight | UpperLeft | LowerRight | LowerLeft | Center;
-export interface Upper { direction: "upper" }
-export interface Lower { direction: "lower" }
-export interface Right { direction: "right" }
-export interface Left { direction: "left" }
-export interface UpperRight { direction: "upper_right" }
-export interface UpperLeft { direction: "upper_left" }
-export interface LowerRight { direction: "lower_right" }
-export interface LowerLeft { direction: "lower_left" }
-export interface Center { direction: "center" }
+/**
+ * Created by joel on 29.03.17.
+ */
+
+export type Direction =
+ | Upper
+ | Lower
+ | Right
+ | Left
+ | UpperRight
+ | UpperLeft
+ | LowerRight
+ | LowerLeft
+ | Center;
+export interface Upper {
+ direction: "upper";
+}
+export interface Lower {
+ direction: "lower";
+}
+export interface Right {
+ direction: "right";
+}
+export interface Left {
+ direction: "left";
+}
+export interface UpperRight {
+ direction: "upper_right";
+}
+export interface UpperLeft {
+ direction: "upper_left";
+}
+export interface LowerRight {
+ direction: "lower_right";
+}
+export interface LowerLeft {
+ direction: "lower_left";
+}
+export interface Center {
+ direction: "center";
+}
diff --git a/src/app/core/geo.service.ts b/src/app/core/geo.service.ts
index 32a8112..e0e7869 100644
--- a/src/app/core/geo.service.ts
+++ b/src/app/core/geo.service.ts
@@ -1,166 +1,57 @@
-import {Injectable} from "@angular/core";
-
-import { GOOGLE_GEOCODE_KEY } from './secret';
-import googleMaps = require("google-maps");
-import Point = require("esri/geometry/Point");
-import { Observable } from 'rxjs/Observable';
-import WebMercatorUtils = require('esri/geometry/webMercatorUtils');
-import LatLng = google.maps.LatLng;
-import { Direction } from './direction';
-
-
-
-@Injectable()
-export class GeoService {
-
- private readonly geoProvider: IGeoProvider = new GoogleProvider();
-
- constructor() { }
-
- public address(location: Point): Observable {
- return this.geoProvider.address(location);
- }
-
- public point(address: string): Observable {
- return this.geoProvider.point(address);
- }
-
- /** Translate Direction in key word for translate */
- public directionToText(target: Point, point: Point): Array {
- let data : Array = [];
-
- let direction = "search_" + this.geoProvider.direction(target, point).direction;
- const dist = this.geoProvider.distance(target, point);
-
- if (dist >= 1000) {
- data.push(direction);
- data.push("searchTo");
- data.push(String(Math.floor(dist/1000)));
- data.push("searchKilometer");
- return data;
- } else if (dist > 20){
- data.push(direction);
- data.push("searchTo");
- data.push(String(Math.floor(dist)));
- data.push("searchMeter");
- return data;
- } else {
- data.push("searchArrived");
- return data;
- }
- }
- }
-
-interface IGeoProvider {
- address(location: Point): Observable;
- point(address: string): Observable;
- distance(p1: Point, p2: Point): number;
- direction(point1: Point, point2: Point): Direction;
-}
-
-class GoogleProvider {
-
- // https://developers.google.com/maps/documentation/javascript/libraries?hl=fr
-
- constructor(){
- googleMaps.KEY = GOOGLE_GEOCODE_KEY;
- googleMaps.LIBRARIES = ['geometry'];
- googleMaps.load();
- }
-
- public address(point: Point): Observable {
-
- const geocoder = new google.maps.Geocoder();
- const p = new google.maps.LatLng(point.y, point.x);
-
- return Observable.create(
- obs => {
- geocoder.geocode(
- { location: p },
- (results: google.maps.GeocoderResult[], status: google.maps.GeocoderStatus) => {
- if (status === google.maps.GeocoderStatus.OK) {
- console.log(results);
- obs.next(results[0]);
- } else {
- obs.next(undefined);
- }
- }
- );
- }
- );
- }
-
- public point(address: string): Observable {
-
- const geocoder = new google.maps.Geocoder();
-
- return Observable.create(
- obs => {
- geocoder.geocode(
- { address: address },
- (results: google.maps.GeocoderResult[], status: google.maps.GeocoderStatus) => {
- if (status === google.maps.GeocoderStatus.OK) {
- const latLng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
- const point: Point = new Point(latLng.lng(), latLng.lat());
- obs.next(point);
- } else {
- obs.next(undefined);
- }
- }
- );
- }
- );
-
- }
-
- public distance(point1: Point, point2: Point): number {
- const p1: LatLng = new google.maps.LatLng(point1.y, point1.x);
- const p2: LatLng = new google.maps.LatLng(point2.y, point2.x);
- return google.maps.geometry.spherical.computeDistanceBetween(p1, p2); //.toFixed(0);
- }
-
- // Chappatte's bullshit code refactored:
- public direction(point1: Point, point2: Point): Direction {
- const p1: LatLng = new google.maps.LatLng(point1.y, point1.x);
- const p2: LatLng = new google.maps.LatLng(point2.y, point2.x);
- const cNO_ANGLE = 999;
- const dx = p2.lat() - p1.lat();
- const dy = p2.lng() - p1.lng();
- let radian;
-
- //azimuth a la sacha
- if (dx > 0) {
- radian = (Math.PI * 0.5) - Math.atan(dy / dx);
- } else if (dx < 0) {
- radian = (Math.PI * 1.5) - Math.atan(dy / dx);
- } else if (dy > 0) {
- radian = 0;
- } else if (dy < 0) {
- radian = Math.PI;
- } else {
- radian = cNO_ANGLE; // the 2 points are equal}
- }
-
- const angle = radian * 180 / Math.PI;
-
- if (angle < 22.5 || angle >= 337.5) {
- return { direction: "left" };
- } else if (angle < 67.5) {
- return { direction: "lower_left"};
- } else if (angle < 112.5) {
- return { direction: "lower"};
- } else if (angle < 157.5) {
- return { direction: "lower_right"};
- } else if (angle < 202.5) {
- return { direction: "right"};
- } else if (angle < 247.5) {
- return { direction: "upper_right"};
- } else if (angle < 292.5) {
- return { direction: "upper"};
- } else if (angle < 337.5) {
- return { direction: "upper_left"};
- }
- return { direction: "center" };
-
- }
-}
+import { Injectable } from "@angular/core";
+import { Observable } from "rxjs/Observable";
+import { METERS_BY_KILOMETER } from "../../conf/internationalSystem";
+import { SEARCH_BY_PRESS_PRECISION_IN_METERS } from "../../conf/touchpad-voice";
+import { GeoProvider, GoogleProvider } from "./googleProvider";
+
+import Point = require("esri/geometry/Point");
+import WebMercatorUtils = require("esri/geometry/webMercatorUtils");
+
+export interface SearchedPointIndications {
+ reached: boolean;
+ direction?: string;
+ distance?: number;
+ unit?: string;
+}
+
+@Injectable()
+export class GeoService {
+ private readonly geoProvider: GeoProvider = new GoogleProvider();
+
+ public address(location: Point): Observable {
+ return this.geoProvider.address(location);
+ }
+
+ public point(address: string): Observable {
+ return this.geoProvider.point(address);
+ }
+
+ /** Translate Direction in key word for translate */
+ public directionToText(target: Point, point: Point): SearchedPointIndications {
+ const direction =
+ "search_" + this.geoProvider.direction(target, point).direction;
+ const distanceInMeters = this.geoProvider.distance(target, point);
+
+ // If distant that at less one kilometer
+ if (distanceInMeters >= METERS_BY_KILOMETER) {
+ return {
+ direction,
+ distance: Math.floor(distanceInMeters / METERS_BY_KILOMETER),
+ reached: false,
+ unit: "si_unit_km",
+ };
+ }
+
+ // If distant that more than the precision
+ if (distanceInMeters > SEARCH_BY_PRESS_PRECISION_IN_METERS) {
+ return {
+ direction,
+ distance: Math.floor(distanceInMeters),
+ reached: false,
+ unit: "si_unit_m",
+ };
+ }
+
+ return {reached: true};
+ }
+}
diff --git a/src/app/core/googleProvider.ts b/src/app/core/googleProvider.ts
new file mode 100644
index 0000000..a03c2a6
--- /dev/null
+++ b/src/app/core/googleProvider.ts
@@ -0,0 +1,121 @@
+import googleMaps = require("google-maps");
+
+import Point = require("esri/geometry/Point");
+import { Observable } from "rxjs/Observable";
+import { GOOGLE_GEOCODE_KEY } from "../../conf/secret";
+import { Direction } from "./direction";
+
+import LatLng = google.maps.LatLng;
+
+export interface GeoProvider {
+ address(location: Point): Observable;
+ point(address: string): Observable;
+ distance(p1: Point, p2: Point): number;
+ direction(point1: Point, point2: Point): Direction;
+}
+
+export class GoogleProvider {
+ // https://developers.google.com/maps/documentation/javascript/libraries?hl=fr
+
+ constructor() {
+ googleMaps.KEY = GOOGLE_GEOCODE_KEY;
+ googleMaps.LIBRARIES = ["geometry"];
+ googleMaps.load();
+ }
+
+ public address(point: Point): Observable {
+ const geocoder = new google.maps.Geocoder();
+ const p = new google.maps.LatLng(point.y, point.x);
+
+ return Observable.create((obs) => {
+ geocoder.geocode(
+ { location: p },
+ (
+ results: google.maps.GeocoderResult[],
+ status: google.maps.GeocoderStatus,
+ ) => {
+ if (status === google.maps.GeocoderStatus.OK) {
+ obs.next(results[0]);
+ } else {
+ obs.next(undefined);
+ }
+ },
+ );
+ });
+ }
+
+ public point(address: string): Observable {
+ const geocoder = new google.maps.Geocoder();
+
+ return Observable.create((obs) => {
+ geocoder.geocode(
+ { address },
+ (
+ results: google.maps.GeocoderResult[],
+ status: google.maps.GeocoderStatus,
+ ) => {
+ if (status === google.maps.GeocoderStatus.OK) {
+ const latLng = new google.maps.LatLng(
+ results[0].geometry.location.lat(),
+ results[0].geometry.location.lng(),
+ );
+ const point: Point = new Point(latLng.lng(), latLng.lat());
+ obs.next(point);
+ } else {
+ obs.next(undefined);
+ }
+ },
+ );
+ });
+ }
+
+ public distance(point1: Point, point2: Point): number {
+ const p1: LatLng = new google.maps.LatLng(point1.y, point1.x);
+ const p2: LatLng = new google.maps.LatLng(point2.y, point2.x);
+ return google.maps.geometry.spherical.computeDistanceBetween(p1, p2);
+ }
+
+ // Chappatte's bullshit code refactored:
+ public direction(point1: Point, point2: Point): Direction {
+ const p1: LatLng = new google.maps.LatLng(point1.y, point1.x);
+ const p2: LatLng = new google.maps.LatLng(point2.y, point2.x);
+ const NO_ANGLE = 999;
+ const dx = p2.lat() - p1.lat();
+ const dy = p2.lng() - p1.lng();
+ let radian;
+
+ // azimuth a la sacha
+ if (dx > 0) {
+ radian = Math.PI * 0.5 - Math.atan(dy / dx);
+ } else if (dx < 0) {
+ radian = Math.PI * 1.5 - Math.atan(dy / dx);
+ } else if (dy > 0) {
+ radian = 0;
+ } else if (dy < 0) {
+ radian = Math.PI;
+ } else {
+ radian = NO_ANGLE; // the 2 points are equal
+ }
+
+ const angle = radian * 180 / Math.PI;
+
+ if (angle < 22.5 || angle >= 337.5) {
+ return { direction: "left" };
+ } else if (angle < 67.5) {
+ return { direction: "lower_left" };
+ } else if (angle < 112.5) {
+ return { direction: "lower" };
+ } else if (angle < 157.5) {
+ return { direction: "lower_right" };
+ } else if (angle < 202.5) {
+ return { direction: "right" };
+ } else if (angle < 247.5) {
+ return { direction: "upper_right" };
+ } else if (angle < 292.5) {
+ return { direction: "upper" };
+ } else if (angle < 337.5) {
+ return { direction: "upper_left" };
+ }
+ return { direction: "center" };
+ }
+}
diff --git a/src/app/core/img/cercle.png b/src/app/core/img/cercle.png
deleted file mode 100644
index 365f1f0..0000000
Binary files a/src/app/core/img/cercle.png and /dev/null differ
diff --git a/src/app/core/img/traitilles.png b/src/app/core/img/traitilles.png
deleted file mode 100644
index 813a906..0000000
Binary files a/src/app/core/img/traitilles.png and /dev/null differ
diff --git a/src/app/core/kml.service.ts b/src/app/core/kml.service.ts
index 6721747..6f25742 100644
--- a/src/app/core/kml.service.ts
+++ b/src/app/core/kml.service.ts
@@ -1,75 +1,86 @@
-import {Injectable} from "@angular/core";
-
-import * as tokml from 'tokml';
-import * as geoJson from 'geojson';
-import * as fileSaver from 'file-saver';
-
-interface Point{name:string | undefined,lat:number | undefined,lng:number | undefined};
-
-@Injectable()
-export class KmlService {
-
- private datas : Array = [];
- private lastPoint : Point = {name:undefined,lat:undefined,lng:undefined};
- private isDeletable : Boolean = false;
-
- constructor() {
- }
-
- /** Delete value in the current point */
- private emtpylastPoint(){
- this.lastPoint.lng = undefined;
- this.lastPoint.lat = undefined;
- this.lastPoint.name = undefined;
- }
-
- /** Set current point */
- public currentPoint(longitude:number,latitude:number):void{
- this.lastPoint.lat = latitude;
- this.lastPoint.lng = longitude;
- }
-
- /** Add Current Point to Datas with a bool of sucess */
- public addCurrentPoint(name:string):Boolean{
- if(this.lastPoint.lng == undefined)
- return false;
-
- this.datas.push({name:name,lat:this.lastPoint.lat,lng:this.lastPoint.lng});
- this.emtpylastPoint();
- this.isDeletable = true;
- return true;
- }
-
- /** Delete Last Point (only once) with a bool of sucess */
- public deletLastPoint():Boolean{
- if(!this.isDeletable)
- return false;
-
- this.datas.slice(0,this.datas.length-2);
- this.isDeletable = false;
- return true;
- }
-
- /** DownLoad kml file with a bool of sucess */
- public toKml(nameFile:string):Boolean{
- if(this.datas.length <1)
- return false;
-
- let geojsonObject = geoJson.parse(this.datas, {Point: ['lat', 'lng']});
- let kmlNameDescription = tokml(geojsonObject, {
- documentName: 'Itinerary'
- });
-
- let file = new Blob([kmlNameDescription], { type: 'text/kml;charset=utf-8' });
- fileSaver.saveAs(file, nameFile+'.kml');
- return true;
- }
-
- /** Reset all var */
- public endCurrentSession():void{
- this.datas = [];
- this.emtpylastPoint();
- this.isDeletable = false;
- }
-
-}
+import { Injectable } from "@angular/core";
+import * as fileSaver from "file-saver";
+import * as geoJson from "geojson";
+import * as tokml from "tokml";
+
+interface Point {
+ name: string | undefined;
+ lat: number | undefined;
+ lng: number | undefined;
+}
+
+@Injectable()
+export class KmlService {
+ private datas: Point[] = [];
+ private lastPoint: Point = {
+ lat: undefined,
+ lng: undefined,
+ name: undefined,
+ };
+ private isDeletable: boolean = false;
+
+ /** Set current point */
+ public currentPoint(longitude: number, latitude: number): void {
+ this.lastPoint.lat = latitude;
+ this.lastPoint.lng = longitude;
+ }
+
+ /** Add Current Point to Datas with a bool of sucess */
+ public addCurrentPoint(name: string): boolean {
+ if (this.lastPoint.lng === undefined) {
+ return false;
+ }
+
+ this.datas.push({
+ lat: this.lastPoint.lat,
+ lng: this.lastPoint.lng,
+ name,
+ });
+ this.emtpylastPoint();
+ this.isDeletable = true;
+ return true;
+ }
+
+ /** Delete Last Point (only once) with a bool of sucess */
+ public deletLastPoint(): boolean {
+ if (!this.isDeletable) {
+ return false;
+ }
+
+ this.datas.slice(0, this.datas.length - 2);
+ this.isDeletable = false;
+ return true;
+ }
+
+ /** DownLoad kml file with a bool of sucess */
+ public toKml(nameFile: string): boolean {
+ if (this.datas.length < 1) {
+ return false;
+ }
+
+ const geojsonObject = geoJson.parse(this.datas, { Point: ["lng", "lat"] });
+ const kmlNameDescription = tokml(geojsonObject, {
+ documentName: "Itinerary",
+ });
+
+ const file = new Blob([kmlNameDescription], {
+ type: "text/kml;charset=utf-8",
+ });
+ fileSaver.saveAs(file, nameFile + ".kml");
+ return true;
+ }
+
+ /** Reset all var */
+ public endCurrentSession(): void {
+ this.datas = [];
+ this.emtpylastPoint();
+ this.isDeletable = false;
+ }
+
+ /** Delete value in the current point */
+ private emtpylastPoint() {
+ this.lastPoint.lng = undefined;
+ this.lastPoint.lat = undefined;
+ this.lastPoint.name = undefined;
+ }
+}
diff --git a/src/app/core/opendataProvider.ts b/src/app/core/opendataProvider.ts
new file mode 100644
index 0000000..249c93f
--- /dev/null
+++ b/src/app/core/opendataProvider.ts
@@ -0,0 +1,24 @@
+import { Http } from "@angular/http";
+import Point = require("esri/geometry/Point");
+
+export interface TransportProvider {
+ getStationsNearby(point: Point);
+ getStationInfo(station: string);
+}
+
+export class OpendataCHProvider implements TransportProvider {
+ private url = "https://transport.opendata.ch/v1/";
+
+ constructor(private http: Http) {}
+
+ public getStationsNearby(point: Point) {
+ const request: string =
+ "locations?x=" + point.y + "&y=" + point.x + "&type=station";
+ return this.http.get(this.url + request);
+ }
+
+ public getStationInfo(station: string) {
+ const request: string = 'stationboard?station="' + station + '"&limit=10';
+ return this.http.get(this.url + request);
+ }
+}
diff --git a/src/app/core/state.service.ts b/src/app/core/state.service.ts
index f5c840e..6570e91 100644
--- a/src/app/core/state.service.ts
+++ b/src/app/core/state.service.ts
@@ -1,25 +1,25 @@
-import { Injectable } from '@angular/core';
-
-export type Mode = ReadingMode | SearchingMode | ItineraryMode;
-export interface ReadingMode { mode: "reading" }
-export interface SearchingMode { mode: "searching" }
-export interface ItineraryMode { mode: "itinerary"}
-
-
-@Injectable()
-export class StateService {
-
- private _activeMode: Mode = { mode: "reading" };
-
- constructor() { }
-
- public changeMode(newMode: Mode): void {
- this._activeMode = newMode;
- }
-
- public activeMode(): Mode {
- return this._activeMode;
- }
-
-
-}
+import { Injectable } from "@angular/core";
+
+export type Mode = ReadingMode | SearchingMode | ItineraryMode;
+export interface ReadingMode {
+ mode: "reading";
+}
+export interface SearchingMode {
+ mode: "searching";
+}
+export interface ItineraryMode {
+ mode: "itinerary";
+}
+
+@Injectable()
+export class StateService {
+ private _activeMode: Mode = { mode: "reading" };
+
+ public changeMode(newMode: Mode): void {
+ this._activeMode = newMode;
+ }
+
+ public activeMode(): Mode {
+ return this._activeMode;
+ }
+}
diff --git a/src/app/core/transport.service.ts b/src/app/core/transport.service.ts
index f964c9c..d8b5544 100644
--- a/src/app/core/transport.service.ts
+++ b/src/app/core/transport.service.ts
@@ -1,48 +1,25 @@
-import { Injectable } from '@angular/core';
-import { Http } from '@angular/http';
-import Point = require('esri/geometry/Point');
-import { Observable } from 'rxjs/Observable';
-
-
-@Injectable()
-export class TransportService {
-
- private transportProvider: transportProvider = new OpendataCHProvider(this.http);
- public currentPoint: Point;
-
- constructor(private http: Http) { }
-
- public stationsNearby(): Observable {
- return this.transportProvider.getStationsNearby(this.currentPoint);
- }
-
- public closerStationFilter(station: string): Observable {
- return this.transportProvider.getStationInfo(station);
- }
-
-}
-
-interface transportProvider {
- getStationsNearby(point:Point);
- getStationInfo(station:string);
-}
-
-class OpendataCHProvider implements transportProvider {
- private url = 'https://transport.opendata.ch/v1/';
-
- constructor(private http: Http) {
- }
-
- public getStationsNearby(point:Point){
- const request:string = 'locations?x='+point.y+'&y='+point.x+'&type=station';
- return this.http.get(this.url+request);
- }
-
- public getStationInfo(station:string){
- const request:string = 'stationboard?station="'+station+'"&limit=10';
- return this.http.get(this.url+request);
- }
-
-
-
-}
+import { Injectable } from "@angular/core";
+import { Http } from "@angular/http";
+import { Observable } from "rxjs/Observable";
+import { OpendataCHProvider, TransportProvider } from "./opendataProvider";
+
+import Point = require("esri/geometry/Point");
+
+@Injectable()
+export class TransportService {
+ public currentPoint: Point;
+
+ private transportProvider: TransportProvider = new OpendataCHProvider(
+ this.http,
+ );
+
+ constructor(private http: Http) {}
+
+ public stationsNearby(): Observable {
+ return this.transportProvider.getStationsNearby(this.currentPoint);
+ }
+
+ public closerStationFilter(station: string): Observable {
+ return this.transportProvider.getStationInfo(station);
+ }
+}
diff --git a/src/app/core/vector2d.ts b/src/app/core/vector2d.ts
index 790dfe8..268394d 100644
--- a/src/app/core/vector2d.ts
+++ b/src/app/core/vector2d.ts
@@ -1,155 +1,172 @@
-/**
- * helper for 2d vectors operations
- * (jca)
- */
-
-
-export interface Vector2d { x: number, y: number }
-export interface Plane2d { A: Vector2d, B: Vector2d, C: Vector2d, D: Vector2d }
-
-/*
- * clone a vector
- */
-export function clone(v: Vector2d){
- return {
- x: v.x,
- y: v.y
- }
-}
-
-/*
- * get a perpendicular vector
- */
-export function perp(v: Vector2d) {
- return {
- x: -v.y,
- y: v.x
- }
-}
-
-/*
- * addVec sum two 2d vectors
- */
-export function addVec(v1: Vector2d, v2: Vector2d){
- return {
- x: v1.x + v2.x,
- y: v1.y + v2.y
- };
-}
-
-/*
- * subVec substrac v2 from v1
- */
-export function subVec(v1: Vector2d, v2: Vector2d) {
- return addVec(v1, { x: -v2.x, y: -v2.y });
-}
-
-/*
- * subVec substrac v2 from v1
- */
-export function norm(v: Vector2d) {
- return Math.sqrt( v.x*v.x + v.y*v.y );
-}
-
-/*
- * multVec multiply a v vector by a factor n
- */
-export function multVec(n: number, v: Vector2d) {
- return {
- x: v.x * n,
- y: v.y * n
- };
-}
-
-/*
- * cross_z is the vectorial product of 2d vectors for
- * the z coordinates
- */
-export function cross_z(p1: Vector2d, p2: Vector2d) {
- return p1.x * p2.y - p1.y * p2.x;
-}
-
-/*
- * det is the determinant of two vector forming a
- * square matrix.
- * Note: For a 2d Matrix, it corresponds to a cross_z
- * function
- */
-export function det(v1: Vector2d, v2: Vector2d) {
- return cross_z(v1, v2);
-}
-
-/*
- * transform returns the coordinates in a well scaled plan.
- *
- * We use barycentric coordinate system to apply linear transformation helping
- * to find the final coordinates in an well scaled plan from a deformed plan
- *
- * Algo:
- * - Divide the plan between two triangles
- * - Find if a P ponint is on the left or on the right of BC
- * - Apply barycentric coordinate system to find alpha, beta and gamma
- * parameters
- * - Thanks to these parameters, transform the coordinates according
- * to the well scaled vertices.
- *
- *
- * A ------ C A --------- C
- * / __/ | | ___/ |
- * | __/ \ => | ___/ |
- * / / x \ | / x |
- * B -----_____ D B --------- D
- */
-export function transform(OP: Vector2d, O: Plane2d, finalPlan: Plane2d): Vector2d {
-
- if (O.A === undefined || O.B === undefined || O.C === undefined || O.D === undefined){
- return {x: 0, y: 0};
- }
- const PA = subVec(O.A, OP); // PA = OA - OP;
- const PB = subVec(O.B, OP); // PB = OB - OP;
- const PC = subVec(O.C, OP); // PC = OC - OP;
- const PD = subVec(O.D, OP); // PD = OD - OP;
-
- const BC = subVec(O.C, O.B); // BC = OC - OB
- const BP = subVec(OP, O.B); // BP = OP - OB
-
- let PX; // PX is PA or PD
- let finalX; // finalX is PA' or PD'
-
- // According to the position of OP, we need to consider a specific area
- if (cross_z(BP, BC) >= 0) {
- /*
- * A --------- C
- * | P ___/ |
- * | ___/ |
- * | / |
- * B --------- D
- */
- PX = PA;
- finalX = finalPlan.A;
- } else {
- /*
- * A --------- C
- * | ___/ |
- * | ___/ |
- * | / P |
- * B --------- D
- */
- PX = PD;
- finalX = finalPlan.D;
- }
-
- // Apply barycentric coordinates system to find the main parameters
- const alpha = det(PB, PC);
- const beta = det(PC, PX);
- const gamma = det(PX, PB);
-
- // transformation. P_ is P'
- const total = alpha + beta + gamma;
- const P_ = (addVec(multVec(alpha, finalX), addVec(multVec(beta, finalPlan.B), multVec(gamma, finalPlan.C))));
- P_.x /= total;
- P_.y /= total;
-
- return P_;
-
-}
\ No newline at end of file
+/**
+ * helper for 2d vectors operations
+ * (jca)
+ */
+
+export interface Vector2d {
+ x: number;
+ y: number;
+}
+export interface Plane2d {
+ A: Vector2d;
+ B: Vector2d;
+ C: Vector2d;
+ D: Vector2d;
+}
+
+/*
+ * clone a vector
+ */
+export function clone(v: Vector2d) {
+ return {
+ x: v.x,
+ y: v.y,
+ };
+}
+
+/*
+ * get a perpendicular vector
+ */
+export function perp(v: Vector2d) {
+ return {
+ x: -v.y,
+ y: v.x,
+ };
+}
+
+/*
+ * addVec sum two 2d vectors
+ */
+export function addVec(v1: Vector2d, v2: Vector2d) {
+ return {
+ x: v1.x + v2.x,
+ y: v1.y + v2.y,
+ };
+}
+
+/*
+ * subVec substrac v2 from v1
+ */
+export function subVec(v1: Vector2d, v2: Vector2d) {
+ return addVec(v1, { x: -v2.x, y: -v2.y });
+}
+
+/*
+ * subVec substrac v2 from v1
+ */
+export function norm(v: Vector2d) {
+ return Math.sqrt(v.x * v.x + v.y * v.y);
+}
+
+/*
+ * multVec multiply a v vector by a factor n
+ */
+export function multVec(n: number, v: Vector2d) {
+ return {
+ x: v.x * n,
+ y: v.y * n,
+ };
+}
+
+/*
+ * cross_z is the vectorial product of 2d vectors for
+ * the z coordinates
+ */
+export function cross_z(p1: Vector2d, p2: Vector2d) {
+ return p1.x * p2.y - p1.y * p2.x;
+}
+
+/*
+ * det is the determinant of two vector forming a
+ * square matrix.
+ * Note: For a 2d Matrix, it corresponds to a cross_z
+ * function
+ */
+export function det(v1: Vector2d, v2: Vector2d) {
+ return cross_z(v1, v2);
+}
+
+/*
+ * transform returns the coordinates in a well scaled plan.
+ *
+ * We use barycentric coordinate system to apply linear transformation helping
+ * to find the final coordinates in an well scaled plan from a deformed plan
+ *
+ * Algo:
+ * - Divide the plan between two triangles
+ * - Find if a P ponint is on the left or on the right of BC
+ * - Apply barycentric coordinate system to find alpha, beta and gamma
+ * parameters
+ * - Thanks to these parameters, transform the coordinates according
+ * to the well scaled vertices.
+ *
+ *
+ * A ------ C A --------- C
+ * / __/ | | ___/ |
+ * | __/ \ => | ___/ |
+ * / / x \ | / x |
+ * B -----_____ D B --------- D
+ */
+export function transform(
+ OP: Vector2d,
+ O: Plane2d,
+ finalPlan: Plane2d,
+): Vector2d {
+ if (
+ O.A === undefined ||
+ O.B === undefined ||
+ O.C === undefined ||
+ O.D === undefined
+ ) {
+ return { x: 0, y: 0 } as Vector2d;
+ }
+ const PA = subVec(O.A, OP); // PA = OA - OP;
+ const PB = subVec(O.B, OP); // PB = OB - OP;
+ const PC = subVec(O.C, OP); // PC = OC - OP;
+ const PD = subVec(O.D, OP); // PD = OD - OP;
+
+ const BC = subVec(O.C, O.B); // BC = OC - OB
+ const BP = subVec(OP, O.B); // BP = OP - OB
+
+ let PX; // PX is PA or PD
+ let finalX; // finalX is PA' or PD'
+
+ // According to the position of OP, we need to consider a specific area
+ if (cross_z(BP, BC) >= 0) {
+ /*
+ * A --------- C
+ * | P ___/ |
+ * | ___/ |
+ * | / |
+ * B --------- D
+ */
+ PX = PA;
+ finalX = finalPlan.A;
+ } else {
+ /*
+ * A --------- C
+ * | ___/ |
+ * | ___/ |
+ * | / P |
+ * B --------- D
+ */
+ PX = PD;
+ finalX = finalPlan.D;
+ }
+
+ // Apply barycentric coordinates system to find the main parameters
+ const alpha = det(PB, PC);
+ const beta = det(PC, PX);
+ const gamma = det(PX, PB);
+
+ // transformation. P_ is P'
+ const total = alpha + beta + gamma;
+ const P_ = addVec(
+ multVec(alpha, finalX),
+ addVec(multVec(beta, finalPlan.B), multVec(gamma, finalPlan.C)),
+ );
+ P_.x /= total;
+ P_.y /= total;
+
+ return P_;
+}
diff --git a/src/app/core/voice.service.ts b/src/app/core/voice.service.ts
index 5489a7d..87bede1 100644
--- a/src/app/core/voice.service.ts
+++ b/src/app/core/voice.service.ts
@@ -1,102 +1,52 @@
-import { Injectable } from '@angular/core';
-import artyomjs = require('artyom.js');
-import ArtyomCommand = artyomjs.ArtyomCommand;
-import * as _ from "lodash";
-
-@Injectable()
-export class VoiceService {
-
- private voiceProvider: IVoiceProvider = new ArtyomProvider();
-
- constructor() { }
-
- /** Text-to-speech in the current lang */
- public say(text: string) {
- console.log("Saying: ", text);
- this.voiceProvider.say(text);
- }
-
- /** Text-to-speech an adress in the current lang */
- public sayGeocodeResult(result : /*google.maps.GeocoderResult*/any) {
- const address = result.address_components[0].long_name + ' '+
- result.address_components[1].long_name;
- this.say(address);
- }
-
- /** Add a triger and action for the voice recognition*/
- public addCommand(indexes: string[], description: string, action: (i: number, wildcard?: string) => void ): void {
- this.voiceProvider.addCommand(indexes, description, action);
- }
-
- /** Change Current Lang of the Speaker */
- public changeLang(lang:string):void{
- this.voiceProvider.changeLang(lang);
- }
-
- /** Simulation a voice recognition */
- public simulate(s:string):void{
- console.log("Receive: ", s);
- this.voiceProvider.simulate(s);
- }
-
- public initialization():void{
- this.voiceProvider.initialization();
- }
-
-}
-
-interface IVoiceProvider {
- say(text: string): void;
- addCommand(indexes: string[], description: string, action: (i: number, wildcard?: string) => void );
- changeLang(lang:string);
- simulate(s:string);
- initialization();
-}
-
-class ArtyomProvider implements IVoiceProvider {
-
- readonly artyom = artyomjs.ArtyomBuilder.getInstance();
- private lang :string;
-
- constructor() {
-
- }
-
- /** Text-to-speech in the current lang */
- public say(text: string): void {
- this.artyom.say(text, {
- lang:this.lang
- });
- }
-
- /** Add a triger and action for the voice recognition*/
- public addCommand(indexes: string[], description: string, action: (i: number, wildcard?: string) => void ): void {
- const isSmart = _.some(indexes, str => _.includes(str, "*"));
- const command: ArtyomCommand = { indexes: indexes, action: action, description: description, smart: isSmart};
- this.artyom.addCommands(command);
- }
-
- public initialization(){
- this.artyom.initialize({
- lang: 'fr-FR',
- continuous: true,
- soundex: true,
- debug: true,
- listen: true
- });
- this.lang='fr-FR';
- }
-
-
- /** Change Current Lang of the Speaker */
- public changeLang(lang:string):void{
- this.lang=lang;
- }
-
- /** Simulation a voice recognition */
- public simulate(s:string):void{
- this.artyom.simulateInstruction(s);
- }
-
-
-}
+import { Injectable } from "@angular/core";
+import { ArtyomProvider, VoiceProvider } from "./artyomProvider";
+
+@Injectable()
+export class VoiceService {
+ private voiceProvider: VoiceProvider = new ArtyomProvider();
+
+ /** Text-to-speech in the current lang */
+ public say(text: string) {
+ if (process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.log("Saying: ", text);
+ }
+ this.voiceProvider.say(text);
+ }
+
+ /** Text-to-speech an adress in the current lang */
+ public sayGeocodeResult(result: /*google.maps.GeocoderResult*/ any) {
+ const address =
+ result.address_components[0].long_name +
+ " " +
+ result.address_components[1].long_name;
+ this.say(address);
+ }
+
+ /** Add a triger and action for the voice recognition */
+ public addCommand(
+ indexes: string[],
+ description: string,
+ action: (i: number, wildcard?: string) => void,
+ ): void {
+ this.voiceProvider.addCommand(indexes, description, action);
+ }
+
+ /** Change Current Lang of the Speaker */
+ public changeLang(lang: string): void {
+ this.voiceProvider.changeLang(lang);
+ }
+
+ /** Simulation a voice recognition */
+ public simulate(s: string): void {
+ if (process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.log("Receive: ", s);
+ }
+ this.voiceProvider.simulate(s);
+ }
+
+ public initialization(): void {
+ this.voiceProvider.initialization();
+ }
+}
diff --git a/src/app/editor/dot.png b/src/app/editor/dot.png
deleted file mode 100644
index 13cb07b..0000000
Binary files a/src/app/editor/dot.png and /dev/null differ
diff --git a/src/app/editor/draw.ts b/src/app/editor/draw.ts
deleted file mode 100644
index bf2394d..0000000
--- a/src/app/editor/draw.ts
+++ /dev/null
@@ -1,304 +0,0 @@
-import ArcgisMap = require('esri/map');
-import Graphic = require('esri/graphic');
-import SimpleLineSymbol = require('esri/symbols/SimpleLineSymbol');
-import PictureFillSymbol = require('esri/symbols/PictureFillSymbol');
-import SimpleFillSymbol = require('esri/symbols/SimpleFillSymbol');
-import Symbol = require('esri/symbols/Symbol');
-import Color = require('esri/Color');
-import Polygon = require('esri/geometry/Polygon');
-import Draw = require('esri/toolbars/draw');
-import Edit = require('esri/toolbars/edit');
-import GeometryEngine = require('esri/geometry/geometryEngine');
-import Polyline = require('esri/geometry/Polyline');
-import SpatialReference = require('esri/SpatialReference');
-import * as _ from "lodash";
-
-//import * as Vector from '../core/vector2d';
-import { Vector2d, subVec, addVec, norm, multVec, perp, clone } from '../core/vector2d';
-
-export type DrawGraphic = (graphic: Graphic) => void;
-
-export interface DrawInfo {
- // Geometry to draw when user create the geometry
- geometryType : string;
-
- // Possible edit tools like (ArcgisEdit.SCALE | ArcgisEdit.MOVE)
- editTools : any;
-
- draw(drawGraphic : DrawGraphic, event) : void;
- delete(map : ArcgisMap, clickedGraphic : Graphic) : void;
- getEditionGraphic(map : ArcgisMap, drawGraphic : DrawGraphic, clickedGraphic : Graphic) : Graphic;
- finishEdit(map : ArcgisMap, drawGraphic : DrawGraphic, graphic : Graphic) : void;
- onLoad(graphics : Graphic[]) : void;
- changeTexture(texture : string) : void;
-};
-
-/**
- * Base class for basic geometry type
- */
-export class DrawInfoBasicGeometry implements DrawInfo{
- private symbol : Symbol;
- public geometryType : string;
- public editTools : any;
-
- private urlDot = require("file?name=./assets/[name].[ext]!./dot.png");
- private blackColor = new Color([0, 0, 0, 1]);
- private whiteColor = new Color([255, 255, 255, 1]);
-
- //Array of all the texture available
- private textureTypes : { [name:string] : Symbol; } = {
- 'water' : new PictureFillSymbol(this.urlDot,
- new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),16,16),
- 'black' : new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
- this.blackColor),
- 'white' : new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
- this.whiteColor),
- };
-
- constructor(geometryType : string, symbol: string, editTools : any) {
- this.geometryType = geometryType;
- this.symbol = this.textureTypes[symbol];
- this.editTools = editTools;
- }
-
- changeTexture(texture : string){
- this.symbol = this.textureTypes[texture];
- }
-
- draw(drawGraphic : DrawGraphic, event) {
- drawGraphic(new Graphic(event.geometry, this.symbol));
- }
-
- delete(map : ArcgisMap, clickedGraphic : Graphic) : void {
- map.graphics.remove(clickedGraphic);
- }
-
- getEditionGraphic(map : ArcgisMap, drawGraphic : DrawGraphic, clickedGraphic : Graphic) : Graphic {
- return clickedGraphic;
- }
-
- finishEdit(map : ArcgisMap, drawGraphic : DrawGraphic, graphic : Graphic) {}
- onLoad(graphics : Graphic[]) : void {}
-}
-
-export class DrawInfoCircle extends DrawInfoBasicGeometry {
- constructor(texture? : string){
- if(!texture)
- texture = "black";
-
- super(Draw.CIRCLE,texture,
- (Edit.SCALE | Edit.MOVE)
- );
-
-
- }
-}
-
-export class DrawInfoPolygon extends DrawInfoBasicGeometry {
- constructor(texture? : string){
- if(!texture)
- texture = "black";
-
-
- super(Draw.POLYGON,texture,
- (Edit.SCALE | Edit.MOVE | Edit.ROTATE | Edit.EDIT_VERTICES | Edit.ROTATE)
- );
- }
-}
-
-export class DrawInfoPolyline extends DrawInfoBasicGeometry {
- constructor(texture? : string){
- if(!texture)
- texture = "black";
-
- super(Draw.POLYLINE,texture,
- (Edit.SCALE | Edit.MOVE | Edit.ROTATE | Edit.EDIT_VERTICES)
- );
- }
-}
-
-export class DrawInfoPedestrian implements DrawInfo {
- public geometryType : string = Draw.LINE;
- public pedestrianFillSize : number = 20;
- public editTools : any = (Edit.MOVE | Edit.SCALE | Edit.EDIT_VERTICES) ;
- readonly pedestrianWidth : number = 5;
- private lastId : number = 0;
-
- constructor() {
-
- }
-
- changeTexture(texture : string){}
-
- draw(drawGraphic : DrawGraphic, event) {
- var A = {x:0, y:0};
- A.x = event.geometry.paths[0][0][0];
- A.y = event.geometry.paths[0][0][1];
-
- var B = { x: 0, y: 0 };
- B.x = event.geometry.paths[0][1][0];
- B.y = event.geometry.paths[0][1][1];
-
- this.createPedestrianPathway(A, B, event.geometry.spatialReference, drawGraphic);
- }
-
-
- /** This feature draw a pedetrian pathway on the map
- * (jca)
- */
- createPedestrianPathway (origin, destination, spatialRef, drawGraphic : DrawGraphic) {
- this.lastId++;
- let A: Vector2d = clone(origin);
- let B: Vector2d = clone(destination);
-
- const AB: Vector2d = subVec(B, A);
- const perpAB: Vector2d = perp(AB);
-
- const lengthAB = norm(AB);
- const lengthPerpAB = norm(perpAB);
-
- let nbIter = Math.max(3, Math.floor( lengthAB / 2.5 ));
- nbIter = nbIter % 2 == 0 ? nbIter+1 : nbIter;
-
- const unitPerpAB = multVec(this.pedestrianWidth/lengthPerpAB, perpAB);
- const unitAB = multVec(1/nbIter, AB);
-
- let A_ = clone(A);
-
- _.range(nbIter).forEach(
- index => {
-
- let C1 = subVec(A_, unitPerpAB);
- let C2 = addVec(A_, unitPerpAB);
- A_ = addVec(A_, unitAB);
- let C3 = addVec(A_, unitPerpAB);
- let C4 = subVec(A_, unitPerpAB);
-
- const geometry: Polygon = new Polygon([[C1.x, C1.y], [C2.x, C2.y], [C3.x, C3.y], [C4.x, C4.y]]);
- geometry.setSpatialReference(spatialRef);
-
- const symbol = (index+1) % 2 ?
- new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), new Color([0, 0, 0, 1])) :
- new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), new Color([255, 255, 255, 1]));
-
- // Save id pedestrian to attributes
- let attributes = {id:this.lastId};
- // Save origin and destination on first square
- if(index === 0){
- attributes["origin"] = origin;
- attributes["destination"] = destination;
- }
- // Draw graphic
- drawGraphic(new Graphic(geometry, symbol, attributes));
- }
- );
- }
-
- delete(map : ArcgisMap, clickedGraphic : Graphic) : void {
- // Get all graphics with same id
- let graphicsToDelete : Graphic[] =
- this.getListSameGraphics(map.graphics.graphics, clickedGraphic);
-
- this.deleteGraphics(map, graphicsToDelete);
- }
-
- deleteGraphics(map : ArcgisMap, graphicsToDelete : Graphic[]) : void {
- for (let g of graphicsToDelete)
- map.graphics.remove(g);
- }
-
- getEditionGraphic(map : ArcgisMap, drawGraphic : DrawGraphic, clickedGraphic : Graphic) : Graphic {
- // Get the list of graphics contains this id
- let graphics : Graphic[] =
- this.getListSameGraphics(map.graphics.graphics, clickedGraphic);
-
- // Get origin and destination saved in first square
- let origin = graphics[0].attributes.origin;
- let destination = graphics[0].attributes.destination;
-
- this.deleteGraphics(map, graphics);
-
- let ori = origin;
- let dest = destination;
- let polyline = new Polyline(new SpatialReference({wkid:102100}));
- polyline.addPath([[ori.x, ori.y], [dest.x, dest.y]]);
-
- let editionGraphic = new Graphic(
- polyline,
- new SimpleLineSymbol(
- SimpleLineSymbol.STYLE_SOLID, new Color([0, 0, 0, 1]),
- this.pedestrianWidth)
- );
- drawGraphic(editionGraphic);
-
- return editionGraphic;
- }
-
- /** Return all graphics of the map wich have same graphic of clickedGraphic
- */
- getListSameGraphics(graphicsMap : Graphic[], clickedGraphic : Graphic) : Graphic[] {
- let graphics : Graphic[] = [];
- graphicsMap.forEach( (g) => {
- if(this.isIdenticId(g, clickedGraphic))
- graphics.push(g)
- }
- )
- return graphics;
- }
-
- private isIdenticId(g1 : Graphic, g2 : Graphic) : boolean {
- // Check id defined
- if (!(g1 && g1.attributes && g1.attributes.id &&
- g2 && g2.attributes && g2.attributes.id)){
- return false;
- }
-
- // No object, simple same id
- if (g1.attributes.id == g2.attributes.id){
- return true;
- }
-
- // Object : check all attributes
- return this.isIdenticObjectId(g1.attributes.id, g2.attributes.id);
- }
-
- // Check recursively is all attribue of objects are identics
- private isIdenticObjectId(obj1, obj2) : boolean {
- if(obj1 instanceof Object && obj2 instanceof Object){
- for(let attr in obj1){
- if(obj1[attr] instanceof Object)
- return this.isIdenticObjectId(obj1[attr], obj2[attr]);
- else{
- if(obj1[attr] !== obj2[attr]){
- return false;
- }
- }
- }
- return true;
- }
- return false;
- }
-
- finishEdit(map : ArcgisMap, drawGraphic : DrawGraphic, graphic : Graphic) {
- let polyline : Polyline = graphic.geometry;
- let ori = {x:polyline.paths[0][0][0], y:polyline.paths[0][0][1]};
- let dest = {x:polyline.paths[0][1][0], y:polyline.paths[0][1][1]};
- this.createPedestrianPathway(ori, dest, graphic.geometry.spatialReference, drawGraphic );
- map.graphics.remove(graphic);
- }
-
- onLoad(graphics? : Graphic[]) : void {
- if(graphics){
- graphics.forEach((g) => {
- try {
- let id = g.attributes.id;
- if(id > this.lastId)
- this.lastId = id;
- }
- catch (error) {
- console.error("Pedestrian has no id or bad id");
- }
- });
- }
- }
-}
diff --git a/src/app/editor/draw/drawInfoBasicGeometry.ts b/src/app/editor/draw/drawInfoBasicGeometry.ts
new file mode 100644
index 0000000..45579ab
--- /dev/null
+++ b/src/app/editor/draw/drawInfoBasicGeometry.ts
@@ -0,0 +1,110 @@
+import Color = require("esri/Color");
+import GeometryEngine = require("esri/geometry/geometryEngine");
+import Polygon = require("esri/geometry/Polygon");
+import Polyline = require("esri/geometry/Polyline");
+import Graphic = require("esri/graphic");
+import ArcgisMap = require("esri/map");
+import SpatialReference = require("esri/SpatialReference");
+import PictureFillSymbol = require("esri/symbols/PictureFillSymbol");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+import EsriSymbol = require("esri/symbols/Symbol");
+import Draw = require("esri/toolbars/draw");
+import Edit = require("esri/toolbars/edit");
+
+import * as blackDotTextureUrl from "Assets/img/textures/blackDot.png";
+import * as tiledLinesTextureUrl from "Assets/img/textures/traitilles.png";
+
+export type DrawGraphic = (graphic: Graphic) => void;
+
+export interface DrawInfo {
+ // Geometry to draw when user create the geometry
+ geometryType: string;
+
+ // Possible edit tools like (ArcgisEdit.SCALE | ArcgisEdit.MOVE)
+ editTools: any;
+
+ draw(drawGraphic: DrawGraphic, event): void;
+ delete(map: ArcgisMap, clickedGraphic: Graphic): void;
+ getEditionGraphic(
+ map: ArcgisMap,
+ drawGraphic: DrawGraphic,
+ clickedGraphic: Graphic,
+ ): Graphic;
+ finishEdit(map: ArcgisMap, drawGraphic: DrawGraphic, graphic: Graphic): void;
+ onLoad(graphics: Graphic[]): void;
+ changeTexture(texture: string): void;
+}
+
+/**
+ * Base class for basic geometry type
+ */
+export class DrawInfoBasicGeometry implements DrawInfo {
+ public geometryType: string;
+ public editTools: any;
+ private symbol: EsriSymbol;
+
+ private blackColor = new Color([0, 0, 0, 1]);
+ private whiteColor = new Color([255, 255, 255, 1]);
+
+ // Array of all the texture available
+ private textureTypes: { [name: string]: EsriSymbol } = {
+ black: new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_SOLID,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ this.blackColor,
+ ),
+ vegetation: new PictureFillSymbol(
+ tiledLinesTextureUrl,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ 16,
+ 16,
+ ),
+ water: new PictureFillSymbol(
+ blackDotTextureUrl,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ 16,
+ 16,
+ ),
+ white: new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_SOLID,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ this.whiteColor,
+ ),
+ };
+
+ constructor(geometryType: string, symbol: string, editTools: any) {
+ this.geometryType = geometryType;
+ this.symbol = this.textureTypes[symbol];
+ this.editTools = editTools;
+ }
+
+ public changeTexture(texture: string) {
+ this.symbol = this.textureTypes[texture];
+ }
+
+ public draw(drawGraphic: DrawGraphic, event) {
+ drawGraphic(new Graphic(event.geometry, this.symbol));
+ }
+
+ public delete(map: ArcgisMap, clickedGraphic: Graphic): void {
+ map.graphics.remove(clickedGraphic);
+ }
+
+ public getEditionGraphic(
+ map: ArcgisMap,
+ drawGraphic: DrawGraphic,
+ clickedGraphic: Graphic,
+ ): Graphic {
+ return clickedGraphic;
+ }
+
+ // TODO: if it work whitout, remove definitively these dead lines
+ public finishEdit(map: ArcgisMap, drawGraphic: DrawGraphic, graphic: Graphic) {
+ // tslint:disable-line no-empty
+ }
+
+ public onLoad(graphics: Graphic[]): void {
+ // tslint:disable-line no-empty
+ }
+}
diff --git a/src/app/editor/draw/drawInfoCircle.ts b/src/app/editor/draw/drawInfoCircle.ts
new file mode 100644
index 0000000..a565051
--- /dev/null
+++ b/src/app/editor/draw/drawInfoCircle.ts
@@ -0,0 +1,14 @@
+import Draw = require("esri/toolbars/draw");
+import Edit = require("esri/toolbars/edit");
+
+import { DrawInfoBasicGeometry } from "./drawInfoBasicGeometry";
+
+export class DrawInfoCircle extends DrawInfoBasicGeometry {
+ constructor(texture?: string) {
+ if (!texture) {
+ texture = "black";
+ }
+
+ super(Draw.CIRCLE, texture, (Edit.SCALE | Edit.MOVE) as any);
+ }
+}
diff --git a/src/app/editor/draw/drawInfoPedestrian.ts b/src/app/editor/draw/drawInfoPedestrian.ts
new file mode 100644
index 0000000..2884864
--- /dev/null
+++ b/src/app/editor/draw/drawInfoPedestrian.ts
@@ -0,0 +1,247 @@
+import Color = require("esri/Color");
+import GeometryEngine = require("esri/geometry/geometryEngine");
+import Polygon = require("esri/geometry/Polygon");
+import Polyline = require("esri/geometry/Polyline");
+import Graphic = require("esri/graphic");
+import ArcgisMap = require("esri/map");
+import SpatialReference = require("esri/SpatialReference");
+import PictureFillSymbol = require("esri/symbols/PictureFillSymbol");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+import EsriSymbol = require("esri/symbols/Symbol");
+import Draw = require("esri/toolbars/draw");
+import Edit = require("esri/toolbars/edit");
+
+import * as _ from "lodash";
+import { addVec, clone, multVec, norm, perp, subVec, Vector2d } from "../../core/vector2d";
+import { DrawGraphic, DrawInfo } from "./drawInfoBasicGeometry";
+
+export class DrawInfoPedestrian implements DrawInfo {
+ public geometryType: string = Draw.LINE;
+ public pedestrianFillSize: number = 20;
+ public editTools: any = (Edit.MOVE | Edit.SCALE | Edit.EDIT_VERTICES) as any;
+ private readonly pedestrianWidth: number = 5;
+ private lastId: number = 0;
+
+ public changeTexture(texture: string) {
+ // eslint:disable-line no-empty
+ }
+
+ public draw(drawGraphic: DrawGraphic, event) {
+ const A = { x: 0, y: 0 };
+ A.x = event.geometry.paths[0][0][0];
+ A.y = event.geometry.paths[0][0][1];
+
+ const B = { x: 0, y: 0 };
+ B.x = event.geometry.paths[0][1][0];
+ B.y = event.geometry.paths[0][1][1];
+
+ this.createPedestrianPathway(
+ A,
+ B,
+ event.geometry.spatialReference,
+ drawGraphic,
+ );
+ }
+
+ public delete(map: ArcgisMap, clickedGraphic: Graphic): void {
+ // Get all graphics with same id
+ const graphicsToDelete: Graphic[] = this.getListSameGraphics(
+ map.graphics.graphics,
+ clickedGraphic,
+ );
+
+ this.deleteGraphics(map, graphicsToDelete);
+ }
+
+ public deleteGraphics(map: ArcgisMap, graphicsToDelete: Graphic[]): void {
+ graphicsToDelete.forEach((graphic) => map.graphics.remove(graphic));
+ }
+
+ public getEditionGraphic(
+ map: ArcgisMap,
+ drawGraphic: DrawGraphic,
+ clickedGraphic: Graphic,
+ ): Graphic {
+ // Get the list of graphics contains this id
+ const graphics: Graphic[] = this.getListSameGraphics(
+ map.graphics.graphics,
+ clickedGraphic,
+ );
+
+ // Get origin and destination saved in first square
+ const origin = graphics[0].attributes.origin;
+ const destination = graphics[0].attributes.destination;
+
+ this.deleteGraphics(map, graphics);
+
+ const ori = origin;
+ const dest = destination;
+ const polyline = new Polyline(new SpatialReference({ wkid: 102100 }));
+ polyline.addPath([[ori.x, ori.y], [dest.x, dest.y]]);
+
+ const editionGraphic = new Graphic(
+ polyline,
+ new SimpleLineSymbol(
+ SimpleLineSymbol.STYLE_SOLID,
+ new Color([0, 0, 0, 1]),
+ this.pedestrianWidth,
+ ),
+ );
+ drawGraphic(editionGraphic);
+
+ return editionGraphic;
+ }
+
+ /** Return all graphics of the map wich have same graphic of clickedGraphic
+ */
+ public getListSameGraphics(
+ graphicsMap: Graphic[],
+ clickedGraphic: Graphic,
+ ): Graphic[] {
+ const graphics: Graphic[] = [];
+ graphicsMap.forEach((g) => {
+ if (this.isIdenticId(g, clickedGraphic)) {
+ graphics.push(g);
+ }
+ });
+ return graphics;
+ }
+
+ public finishEdit(map: ArcgisMap, drawGraphic: DrawGraphic, graphic: Graphic) {
+ const polyline: Polyline = graphic.geometry as Polyline;
+ const ori = { x: polyline.paths[0][0][0], y: polyline.paths[0][0][1] };
+ const dest = { x: polyline.paths[0][1][0], y: polyline.paths[0][1][1] };
+ this.createPedestrianPathway(
+ ori,
+ dest,
+ graphic.geometry.spatialReference,
+ drawGraphic,
+ );
+ map.graphics.remove(graphic);
+ }
+
+ public onLoad(graphics?: Graphic[]): void {
+ if (graphics) {
+ graphics.forEach((g) => {
+ try {
+ const id = g.attributes.id;
+ if (id > this.lastId) {
+ this.lastId = id;
+ }
+ } catch (error) {
+ // tslint:disable-next-line no-console
+ console.error("Pedestrian has no id or bad id");
+ }
+ });
+ }
+ }
+
+ /** This feature draw a pedetrian pathway on the map
+ * (jca)
+ */
+ private createPedestrianPathway(
+ origin,
+ destination,
+ spatialRef,
+ drawGraphic: DrawGraphic,
+ ) {
+ this.lastId++;
+ const A: Vector2d = clone(origin);
+ const B: Vector2d = clone(destination);
+
+ const AB: Vector2d = subVec(B, A);
+ const perpAB: Vector2d = perp(AB);
+
+ const lengthAB = norm(AB);
+ const lengthPerpAB = norm(perpAB);
+
+ let nbIter = Math.max(3, Math.floor(lengthAB / 2.5));
+ nbIter = nbIter % 2 === 0 ? nbIter + 1 : nbIter;
+
+ const unitPerpAB = multVec(this.pedestrianWidth / lengthPerpAB, perpAB);
+ const unitAB = multVec(1 / nbIter, AB);
+
+ let A_ = clone(A);
+
+ _.range(nbIter).forEach((index) => {
+ const C1 = subVec(A_, unitPerpAB);
+ const C2 = addVec(A_, unitPerpAB);
+ A_ = addVec(A_, unitAB);
+ const C3 = addVec(A_, unitPerpAB);
+ const C4 = subVec(A_, unitPerpAB);
+
+ const geometry: Polygon = new Polygon([
+ [C1.x, C1.y],
+ [C2.x, C2.y],
+ [C3.x, C3.y],
+ [C4.x, C4.y],
+ ]);
+ geometry.setSpatialReference(spatialRef);
+
+ const symbol =
+ (index + 1) % 2
+ ? new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_SOLID,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ new Color([0, 0, 0, 1]),
+ )
+ : new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_SOLID,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ new Color([255, 255, 255, 1]),
+ );
+
+ // Save id pedestrian to attributes
+ const attributes: {id: number, origin?: any, destination?: any} = { id: this.lastId };
+ // Save origin and destination on first square
+ if (index === 0) {
+ attributes.origin = origin;
+ attributes.destination = destination;
+ }
+ // Draw graphic
+ drawGraphic(new Graphic(geometry, symbol, attributes));
+ });
+ }
+
+ private isIdenticId(g1: Graphic, g2: Graphic): boolean {
+ // Check id defined
+ if (
+ !(
+ g1 &&
+ g1.attributes &&
+ g1.attributes.id &&
+ g2 &&
+ g2.attributes &&
+ g2.attributes.id
+ )
+ ) {
+ return false;
+ }
+
+ // No object, simple same id
+ if (g1.attributes.id === g2.attributes.id) {
+ return true;
+ }
+
+ // Object : check all attributes
+ return this.isIdenticObjectId(g1.attributes.id, g2.attributes.id);
+ }
+
+ // Check recursively is all attribue of objects are identics
+ private isIdenticObjectId(obj1, obj2): boolean {
+ if (obj1 instanceof Object && obj2 instanceof Object) {
+ for (const attr in obj1) {
+ if (obj1[attr] instanceof Object) {
+ return this.isIdenticObjectId(obj1[attr], obj2[attr]);
+ } else {
+ if (obj1[attr] !== obj2[attr]) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/app/editor/draw/drawInfoPolygon.ts b/src/app/editor/draw/drawInfoPolygon.ts
new file mode 100644
index 0000000..8676a7a
--- /dev/null
+++ b/src/app/editor/draw/drawInfoPolygon.ts
@@ -0,0 +1,18 @@
+import Draw = require("esri/toolbars/draw");
+import Edit = require("esri/toolbars/edit");
+
+import { DrawInfoBasicGeometry } from "./drawInfoBasicGeometry";
+
+export class DrawInfoPolygon extends DrawInfoBasicGeometry {
+ constructor(texture?: string) {
+ if (!texture) {
+ texture = "black";
+ }
+
+ super(Draw.POLYGON, texture, (Edit.SCALE |
+ Edit.MOVE |
+ Edit.ROTATE |
+ Edit.EDIT_VERTICES |
+ Edit.ROTATE) as any);
+ }
+}
diff --git a/src/app/editor/draw/drawInfoPolyline.ts b/src/app/editor/draw/drawInfoPolyline.ts
new file mode 100644
index 0000000..3a36768
--- /dev/null
+++ b/src/app/editor/draw/drawInfoPolyline.ts
@@ -0,0 +1,17 @@
+import Draw = require("esri/toolbars/draw");
+import Edit = require("esri/toolbars/edit");
+
+import { DrawInfoBasicGeometry } from "./drawInfoBasicGeometry";
+
+export class DrawInfoPolyline extends DrawInfoBasicGeometry {
+ constructor(texture?: string) {
+ if (!texture) {
+ texture = "black";
+ }
+
+ super(Draw.POLYLINE, texture, (Edit.SCALE |
+ Edit.MOVE |
+ Edit.ROTATE |
+ Edit.EDIT_VERTICES) as any);
+ }
+}
diff --git a/src/app/editor/drawEditMap.ts b/src/app/editor/drawEditMap.ts
index 9a2dcd0..8118b12 100644
--- a/src/app/editor/drawEditMap.ts
+++ b/src/app/editor/drawEditMap.ts
@@ -1,187 +1,191 @@
-import ArcgisMap = require('esri/map');
-import Graphic = require('esri/graphic');
-import Extent = require('esri/geometry/Extent');
-import OpenStreetMapLayer = require('esri/layers/OpenStreetMapLayer');
-
-import ArcgisDraw = require('esri/toolbars/draw');
-import ArcgisEdit = require('esri/toolbars/edit');
-
-import {DrawGraphic,
- DrawInfo,
- DrawInfoPedestrian,
- DrawInfoPolyline,
- DrawInfoPolygon,
- DrawInfoCircle} from './draw'
-
-interface CircleDrawType { kind: 'circle' }
-interface PolygonDrawType { kind: 'polygon' }
-interface LineDrawType { kind: 'line' }
-interface PedestrianDrawType { kind: 'pedestrian' }
-
-export type DrawType =
- ( CircleDrawType |
- PolygonDrawType |
- LineDrawType |
- PedestrianDrawType);
-
-export class AbaDrawEdit {
- private map : ArcgisMap;
- private currentDrawInfo : DrawInfo;
- private currentDrawTypeKind : string; // Remember the string key of drawTypes[]
-
- private deleteEnabled : boolean;
- private editEnabled : boolean;
-
- /**
- * DrawTypes object foreach kind
- * Warning, must have same kinds with DrawType
- */
- private drawTypes : { [name:string] : DrawInfo; } = {
- 'circle' : new DrawInfoCircle(),
- 'polygon' : new DrawInfoPolygon(),
- 'line' : new DrawInfoPolyline(),
- 'pedestrian' : new DrawInfoPedestrian()
- };
-
- private edit : ArcgisEdit;
- private draw : ArcgisDraw;
-
- public constructor(map : ArcgisMap) {
- this.map = map;
- this.edit = new ArcgisEdit(map);
- this.draw = new ArcgisDraw(map);
-
- this.loadAllDrawTypes();
-
- this.registerOnDrawComplete();
- this.registerOnMapClickGraphic();
- this.registerOnEditDeactivate();
-
- this.enableDelete(false);
- this.enableEdit(false);
- }
-
- public registerOnMapClickGraphic(){
- this.map.graphics.on("click", (e:{graphic:any}) => {
- /** For delete */
- if(this.deleteEnabled){
- // For current release
- if(e.graphic.attributes && e.graphic.attributes.kind){
- this.drawTypes[e.graphic.attributes.kind].delete(this.map, e.graphic);
- }
- // For old release compatibility : pedestrian => to delete in future..
- else if (e.graphic.attributes && e.graphic.attributes.passage_pieton){
- this.drawTypes['pedestrian'].delete(this.map, e.graphic);
- }
- // For old release compatibility : all shapes => to delete in future..
- else {
- this.map.graphics.remove(e.graphic);
- }
- }
- /** For edit */
- if(this.editEnabled){
- if(e.graphic.attributes && e.graphic.attributes.kind){
- // Get the type
- let drawType = this.drawTypes[e.graphic.attributes.kind];
- let editTools : any = drawType.editTools;
- let graphics = this.map.graphics;
-
- // Get the graphic to edit
- let graphicToEdit : Graphic = drawType.getEditionGraphic(this.map,
- this.drawGraphicFunction(e.graphic.attributes.kind),
- e.graphic);
-
- // Activate
- this.edit.activate(editTools, graphicToEdit);
- }
- }
- });
- }
-
- // On edit deactivate : call finishEdit of drawType
- public registerOnEditDeactivate(){
- this.edit.on("deactivate", (event: { graphic: Graphic; info: any; tool: string }) => {
- let drawType = this.drawTypes[event.graphic.attributes.kind];
- drawType.finishEdit(
- this.map,
- this.drawGraphicFunction(event.graphic.attributes.kind),
- event.graphic )
- });
- }
-
- // On draw complete : call draw of drawType
- public registerOnDrawComplete(){
- this.draw.on("draw-complete", (event) => {
- // Call draw complete of current draw info
- let currentDrawTypeKind = this.currentDrawTypeKind;
- let graphics = this.map.graphics;
-
- this.currentDrawInfo.draw(
- // Callback to add graphics
- this.drawGraphicFunction(currentDrawTypeKind),
- event);
- });
- }
-
- // Load all graphics by draw types
- public loadAllDrawTypes = () => {
- // Class all graphics by kind
- let graphicsDrawTypes = {};
- this.map.graphics.graphics.forEach((g) => {
- try {
- let kind = g.attributes.kind;
-
- if(this.drawTypes[kind] === undefined)
- console.warn("Graphic kind not supported (kind not implemented)");
- else{
- if(!graphicsDrawTypes[kind])
- graphicsDrawTypes[kind] = [];
- else
- graphicsDrawTypes[kind].push(g);
- }
- } catch (error) {
- console.warn("Graphic kind not supported (empty kind)", g);
- }
- });
-
- // Load all graphics by kind
- for(let kind in this.drawTypes){
- this.drawTypes[kind].onLoad(graphicsDrawTypes[kind]);
- }
- }
-
- public drawGraphicFunction = (typeKind:string) => {
- return (graphic: Graphic) => {
- if(!graphic.attributes)
- graphic.attributes = {};
- graphic.attributes.kind = /*this.currentEditTypeKind*/typeKind;
- this.map.graphics.add(graphic);
- }
- };
-
- public enableDraw(enable:boolean, drawType? : DrawType) {
- if(enable && drawType){
- let kind : string = drawType.kind;
- this.currentDrawTypeKind = kind;
- this.currentDrawInfo = this.drawTypes[kind];
- this.draw.activate(this.currentDrawInfo.geometryType);
- }else
- this.draw.deactivate();
- }
-
- /* Change Texture of all the draw type */
- public changeTexture(texture:string){
- //Can't access directly to all the object need to get the key first
- Object.keys(this.drawTypes).forEach((key)=>this.drawTypes[key].changeTexture(texture));
- }
-
- public enableDelete(enable:boolean) {
- this.deleteEnabled = enable;
- }
-
- public enableEdit(enable:boolean) {
- this.editEnabled = enable;
- if(!enable)
- this.edit.deactivate();
- }
-}
+import Extent = require("esri/geometry/Extent");
+import Graphic = require("esri/graphic");
+import OpenStreetMapLayer = require("esri/layers/OpenStreetMapLayer");
+import ArcgisMap = require("esri/map");
+
+import ArcgisDraw = require("esri/toolbars/draw");
+import ArcgisEdit = require("esri/toolbars/edit");
+
+import { DrawInfo } from "./draw/drawInfoBasicGeometry";
+import { DrawInfoCircle } from "./draw/drawInfoCircle";
+import { DrawInfoPedestrian } from "./draw/drawInfoPedestrian";
+import { DrawInfoPolygon } from "./draw/drawInfoPolygon";
+import { DrawInfoPolyline } from "./draw/drawInfoPolyline";
+
+export class AbaDrawEdit {
+ private map: ArcgisMap;
+ private currentDrawInfo: DrawInfo;
+ private currentDrawTypeKind: string; // Remember the string key of drawTypes[]
+
+ private deleteEnabled: boolean;
+ private editEnabled: boolean;
+
+ /**
+ * DrawTypes object foreach kind
+ * Warning, must have same kinds with DrawType
+ */
+ private drawTypes: { [name: string]: DrawInfo } = {
+ circle: new DrawInfoCircle(),
+ line: new DrawInfoPolyline(),
+ pedestrian: new DrawInfoPedestrian(),
+ polygon: new DrawInfoPolygon(),
+ };
+
+ private edit: ArcgisEdit;
+ private draw: ArcgisDraw;
+
+ public constructor(map: ArcgisMap) {
+ this.map = map;
+ this.edit = new ArcgisEdit(map);
+ this.draw = new ArcgisDraw(map);
+
+ this.loadAllDrawTypes();
+
+ this.registerOnDrawComplete();
+ this.registerOnMapClickGraphic();
+ this.registerOnEditDeactivate();
+
+ this.enableDelete(false);
+ this.enableEdit(false);
+ }
+
+ public registerOnMapClickGraphic() {
+ this.map.graphics.on("click", (e: { graphic: any }) => {
+ /** For delete */
+ if (this.deleteEnabled) {
+ // For current release
+ if (e.graphic.attributes && e.graphic.attributes.kind) {
+ this.drawTypes[e.graphic.attributes.kind].delete(this.map, e.graphic);
+ } else if (
+ e.graphic.attributes &&
+ e.graphic.attributes.passage_pieton
+ ) {
+ // For old release compatibility : pedestrian => to delete in future..
+ this.drawTypes.pedestrian.delete(this.map, e.graphic);
+ } else {
+ // For old release compatibility : all shapes => to delete in future..
+ this.map.graphics.remove(e.graphic);
+ }
+ }
+ /** For edit */
+ if (this.editEnabled) {
+ if (e.graphic.attributes && e.graphic.attributes.kind) {
+ // Get the type
+ const drawType = this.drawTypes[e.graphic.attributes.kind];
+ const editTools: any = drawType.editTools;
+ const graphics = this.map.graphics;
+
+ // Get the graphic to edit
+ const graphicToEdit: Graphic = drawType.getEditionGraphic(
+ this.map,
+ this.drawGraphicFunction(e.graphic.attributes.kind),
+ e.graphic,
+ );
+
+ // Activate
+ this.edit.activate(editTools, graphicToEdit);
+ }
+ }
+ });
+ }
+
+ // On edit deactivate : call finishEdit of drawType
+ public registerOnEditDeactivate() {
+ this.edit.on(
+ "deactivate",
+ (event: { graphic: Graphic; info: any; tool: string }) => {
+ const drawType = this.drawTypes[event.graphic.attributes.kind];
+ drawType.finishEdit(
+ this.map,
+ this.drawGraphicFunction(event.graphic.attributes.kind),
+ event.graphic,
+ );
+ },
+ );
+ }
+
+ // On draw complete : call draw of drawType
+ public registerOnDrawComplete() {
+ this.draw.on("draw-complete", (event) => {
+ // Call draw complete of current draw info
+ const currentDrawTypeKind = this.currentDrawTypeKind;
+ const graphics = this.map.graphics;
+
+ this.currentDrawInfo.draw(
+ // Callback to add graphics
+ this.drawGraphicFunction(currentDrawTypeKind),
+ event,
+ );
+ });
+ }
+
+ // Load all graphics by draw types
+ public loadAllDrawTypes = () => {
+ // Class all graphics by kind
+ const graphicsDrawTypes = {};
+ this.map.graphics.graphics.forEach((g) => {
+ try {
+ const kind = g.attributes.kind;
+
+ if (this.drawTypes[kind] === undefined && process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.warn("Graphic kind not supported (kind not implemented)");
+ } else {
+ if (!graphicsDrawTypes[kind]) {
+ graphicsDrawTypes[kind] = [];
+ } else {
+ graphicsDrawTypes[kind].push(g);
+ }
+ }
+ } catch (error) {
+ if (process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.warn("Graphic kind not supported (empty kind)", g);
+ }
+ }
+ });
+
+ // Load all graphics by kind
+ Object.keys(this.drawTypes).forEach((type) => this.drawTypes[type].onLoad(graphicsDrawTypes[type]));
+ }
+
+ public drawGraphicFunction = (typeKind: string) => {
+ return (graphic: Graphic) => {
+ if (!graphic.attributes) {
+ graphic.attributes = {};
+ }
+
+ graphic.attributes.kind = /*this.currentEditTypeKind*/ typeKind;
+ this.map.graphics.add(graphic);
+ };
+ }
+
+ public enableDraw(enable: boolean, drawType?: string) {
+ if (enable && drawType) {
+ this.currentDrawTypeKind = drawType;
+ this.currentDrawInfo = this.drawTypes[drawType];
+ this.draw.activate(this.currentDrawInfo.geometryType);
+ } else {
+ this.draw.deactivate();
+ }
+ }
+
+ /* Change Texture of all the draw type */
+ public changeTexture(texture: string) {
+ // Can't access directly to all the object need to get the key first
+ Object.keys(this.drawTypes).forEach((key) =>
+ this.drawTypes[key].changeTexture(texture),
+ );
+ }
+
+ public enableDelete(enable: boolean) {
+ this.deleteEnabled = enable;
+ }
+
+ public enableEdit(enable: boolean) {
+ this.editEnabled = enable;
+ if (!enable) {
+ this.edit.deactivate();
+ }
+ }
+}
diff --git a/src/app/editor/editor.component.css b/src/app/editor/editor.component.css
index f2bc686..979b7d6 100644
--- a/src/app/editor/editor.component.css
+++ b/src/app/editor/editor.component.css
@@ -1,30 +1,22 @@
-.show-grid {
- margin-bottom:10px;
+#main-container {
+ width: 1088px;
}
-aba-map {
- float: left;
+#control-row {
+ display: flex;
+ justify-content: space-between;
}
-aba-toolbar-map {
- float: left;
- width: 55px;
- padding-top: 38px;
- margin-left: 40px;
-}
-
-
@media print {
- aba-toolbar-map ,aba-select-lang,aba-modal-yesno,.title,.typeMaps,.arcgisSearch{
+ .hide-on-print {
display: none;
}
- .container{
- margin-left: 8%;
-
+ #layout {
+ width: 100%;
+ padding: 1cm;
}
-
}
diff --git a/src/app/editor/editor.component.html b/src/app/editor/editor.component.html
index 4a4e3a2..0fe4e35 100644
--- a/src/app/editor/editor.component.html
+++ b/src/app/editor/editor.component.html
@@ -1,35 +1,44 @@
-
-
-
{{title}}
- {{ _activeButtonInfo.kind | translate}}
-
-
-
-
\ No newline at end of file
diff --git a/src/app/editor/editor.component.ts b/src/app/editor/editor.component.ts
index 1581060..077e10c 100644
--- a/src/app/editor/editor.component.ts
+++ b/src/app/editor/editor.component.ts
@@ -1,71 +1,89 @@
-import { Component, ViewChild } from '@angular/core';
-import { LayerType } from '../map/layer';
-import { MapComponent } from '../map/map.component'
-import { OptionMap } from '../map/map';
-import {
- ToolbarMapComponent
- , DrawTool
- , Command
- , KindTool
-} from "./toolbar/toolbar.component";
-
-import { AbaDrawEdit } from './drawEditMap';
+import { Component, ViewChild } from "@angular/core";
+import { TranslateService } from "ng2-translate";
+import { ScalarObservable } from "rxjs/observable/ScalarObservable";
+import { LayerType } from "../map/layer";
+import { OptionMap } from "../map/map";
+import { MapComponent } from "../map/map.component";
+import { ModalYesNoComponent } from "../shared/modal-yesno/modal-yesno.component";
+import { AbaDrawEdit } from "./drawEditMap";
import { ModalMapComponent } from "./modal-maps-list/modal-maps-list.component";
import { ModalSaveMapComponent } from "./modal-save-map/modal-save-map.component";
-import {ModalYesNoComponent} from "../shared/modal-yesno/modal-yesno.component";
+import { ToolbarMapComponent } from "./toolbar/toolbar.component";
-import {TranslateService} from 'ng2-translate';
-import {ScalarObservable} from 'rxjs/observable/ScalarObservable';
-
-type ButtonInfo = LayerType ;
+type ButtonInfo = LayerType;
@Component({
- selector: 'aba-editor',
- templateUrl: 'editor.component.html',
- styleUrls: ['editor.component.css']
+ selector: "aba-editor",
+ styleUrls: ["editor.component.css"],
+ templateUrl: "editor.component.html",
})
export class EditorComponent {
+ @ViewChild(MapComponent) public mapComponent: MapComponent;
+ @ViewChild(ToolbarMapComponent) public toolbarMapComponent: ToolbarMapComponent;
- @ViewChild(MapComponent) mapComponent: MapComponent;
- @ViewChild(ToolbarMapComponent) toolbarMapComponent: ToolbarMapComponent;
-
- @ViewChild(ModalMapComponent) modalMapComponent: ModalMapComponent;
- @ViewChild(ModalSaveMapComponent) modalSaveMapComponent: ModalSaveMapComponent;
- @ViewChild(ModalYesNoComponent) modalYesNoComponent: ModalYesNoComponent;
+ @ViewChild(ModalMapComponent) public modalMapComponent: ModalMapComponent;
+ @ViewChild(ModalSaveMapComponent) public modalSaveMapComponent: ModalSaveMapComponent;
+ @ViewChild(ModalYesNoComponent) public modalYesNoComponent: ModalYesNoComponent;
- private readonly defaultTitle: string = "AbaPlans";
- private flagSavable: boolean = false;
- title = this.defaultTitle;
+ public readonly defaultTitle: string = "AbaPlans";
+ public flagSavable: boolean = false;
+ public title = this.defaultTitle;
- drawEdit : AbaDrawEdit;
+ public drawEdit: AbaDrawEdit;
- private _btnInfos: Array
= [
+ private _btnInfos: ButtonInfo[] = [
{
- kind : 'osm'
+ kind: "osm",
},
{
- kind : 'square'
+ kind: "square",
},
{
- kind : 'city'
- }
+ kind: "city",
+ },
];
private _activeButtonInfo: ButtonInfo = this._btnInfos[0];
- constructor(private translateService: TranslateService) {
+ constructor(private translateService: TranslateService) {}
+ public ngOnInit(): void {
+ this.mapComponent.getDefaultMap();
}
- private onClick(btnInfo: ButtonInfo) {
- this.setActive(btnInfo);
- this.mapComponent.mapZoom = (this.translateService.get("mapZoom")as ScalarObservable).value;
+ public ngAfterViewInit() {
+ // Init default btnInfo to first
+ this.setActive(this._btnInfos[0]);
}
- private updateTool(tool: Command & KindTool) {
+ public initMap(optionMap: OptionMap) {
+ if (optionMap.layerType) {
+ this.selectTabByLayerType(optionMap.layerType);
+ } else {
+ this.selectTabByLayerType({ kind: "osm" });
+ }
+ // Not Savable when the map load isn't save
+ if (optionMap.title) {
+ this.flagSavable = true;
+ }
+
+ this.mapComponent.map.on("mouse-drag-end", () => {
+ this.flagSavable = false;
+ this.title = this.defaultTitle;
+ this.mapComponent.resetInfos();
+ });
+
+ this.drawEdit = new AbaDrawEdit(this.mapComponent.map);
+ }
- // Personalized operation on command
- switch (tool.command) {
+ private onClick(btnInfo: ButtonInfo) {
+ this.setActive(btnInfo);
+ this.mapComponent.mapZoom = (this.translateService.get(
+ "mapZoom",
+ ) as ScalarObservable).value;
+ }
+ private updateTool(toolId: string) {
+ switch (toolId) {
case "move":
this.drawEdit.enableDraw(false);
this.mapComponent.map.enableMapNavigation();
@@ -83,85 +101,65 @@ export class EditorComponent {
this.mapComponent.map.disableMapNavigation();
break;
- case "fill":
- this.drawEdit.changeTexture(
- this.toolbarMapComponent.changeFillTool());
+ // Should be a draw shape
+ default:
+ this.mapComponent.map.disableMapNavigation();
+ this.drawEdit.enableDraw(true, toolId);
+ this.drawEdit.enableDelete(false);
+ this.drawEdit.enableEdit(false);
break;
+ }
+ }
+ private operation(operationId: string) {
+ switch (operationId) {
case "print":
- if (!this.flagSavable)
+ if (!this.flagSavable) {
this.modalYesNoComponent.open();
- else
- window.print();
-
+ } else {
+ (window as any).print();
+ }
break;
case "open":
this.modalMapComponent.open();
break;
+
case "save":
this.modalSaveMapComponent.open();
break;
- default:
- console.warn("action buttons not implemented");
+ default:
+ if (process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.warn("operation not implemented");
+ }
+ break;
}
- // Global operation on kind
- switch (tool.kind) {
- case "draw" :
- this.mapComponent.map.disableMapNavigation();
- const drawTool = tool as DrawTool;
- this.drawEdit.enableDraw(true, drawTool.drawType);
- this.drawEdit.enableDelete(false);
- this.drawEdit.enableEdit(false);
- break;
-
- case "action" :
- this.drawEdit.enableDraw(false);
- this.drawEdit.enableDelete(false);
- this.drawEdit.enableEdit(false);
- break;
- }
-
+ this.drawEdit.enableDraw(false);
+ this.drawEdit.enableDelete(false);
+ this.drawEdit.enableEdit(false);
}
private isActive(btnInfo: ButtonInfo) {
return btnInfo === this._activeButtonInfo;
}
- private setActive(btnInfo: ButtonInfo){
+ private setActive(btnInfo: ButtonInfo) {
this._activeButtonInfo = btnInfo;
- if (this.mapComponent)
+ if (this.mapComponent) {
this.mapComponent.setLayerType(btnInfo);
+ }
}
- private selectTabByLayerType(layerType : LayerType) : void {
+ private selectTabByLayerType(layerType: LayerType): void {
// Find first layer type _btnInfos
- this._btnInfos.forEach( (btnInfo) => {
- if (btnInfo.kind == layerType.kind)
- this.setActive(btnInfo)
+ this._btnInfos.forEach((btnInfo) => {
+ if (btnInfo.kind === layerType.kind) {
+ this.setActive(btnInfo);
}
- );
- }
-
- public initMap(optionMap : OptionMap){
- if (optionMap.layerType){
- this.selectTabByLayerType(optionMap.layerType);
- } else {
- this.selectTabByLayerType( {kind: "osm"} );
- }
- //Not Savable when the map load isn't save
- if(optionMap.title)
- this.flagSavable = true;
-
- this.mapComponent.map.on('mouse-drag-end', () => {
- this.flagSavable = false;
- this.title = this.defaultTitle;
- this.mapComponent.resetInfos();
});
-
- this.drawEdit = new AbaDrawEdit(this.mapComponent.map);
}
// Fire when a user choose a map
@@ -193,22 +191,14 @@ export class EditorComponent {
}
private setMapAsSavable($event): void {
- console.log("Merde");
+ if (process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.log("Merde");
+ }
this.modalSaveMapComponent.open();
}
private printMapWithoutSaving(): void {
- window.print();
- }
-
-
- ngOnInit(): void {
- this.mapComponent.getDefaultMap();
- }
-
- ngAfterViewInit() {
- // Init default btnInfo to first
- this.setActive(this._btnInfos[0]);
+ (window as any).print();
}
-
}
diff --git a/src/app/editor/editor.module.ts b/src/app/editor/editor.module.ts
index c0ddf2c..50e87f0 100644
--- a/src/app/editor/editor.module.ts
+++ b/src/app/editor/editor.module.ts
@@ -1,36 +1,30 @@
-import { NgModule } from '@angular/core';
-
-import { SharedModule } from "../shared/shared.module";
-
+import { NgModule } from "@angular/core";
+import { TranslateModule } from "ng2-translate";
/* Services */
-import { MapService } from '../map/map.service';
-
+import { MapService } from "../map/map.service";
+/* External Components */
+import { PaginationComponent } from "../shared/pagination/pagination-buttons.component";
+import { SharedModule } from "../shared/shared.module";
/* Internal Components */
-import { ModalMapComponent } from "./modal-maps-list/modal-maps-list.component";
-import { ModalSaveMapComponent } from "./modal-save-map/modal-save-map.component";
-import { ToolbarMapComponent } from "./toolbar/toolbar.component";
import { EditorComponent } from "./editor.component";
-import { SelectLangComponent } from "./select-lang/select-lang.component";
-
/* Internal Pipes */
import { FilterMapsPipe } from "./modal-maps-list/filtermaps.pipe";
-
-/* External Components */
-import { PaginationComponent } from "../shared/pagination/pagination-buttons.component";
-
-import {TranslateModule} from "ng2-translate";
+import { ModalMapComponent } from "./modal-maps-list/modal-maps-list.component";
+import { ModalSaveMapComponent } from "./modal-save-map/modal-save-map.component";
+import { SelectLangComponent } from "./select-lang/select-lang.component";
+import { ToolbarMapComponent } from "./toolbar/toolbar.component";
@NgModule({
- imports: [ SharedModule, TranslateModule ],
declarations: [
- SelectLangComponent
- , EditorComponent
- , ModalMapComponent
- , ModalSaveMapComponent
- , ToolbarMapComponent
- , FilterMapsPipe
- , PaginationComponent
+ SelectLangComponent,
+ EditorComponent,
+ ModalMapComponent,
+ ModalSaveMapComponent,
+ ToolbarMapComponent,
+ FilterMapsPipe,
+ PaginationComponent,
],
- providers: [ MapService ]
+ imports: [SharedModule, TranslateModule],
+ providers: [MapService],
})
-export class EditorModule { }
+export class EditorModule {}
diff --git a/src/app/editor/modal-maps-list/filtermaps.pipe.ts b/src/app/editor/modal-maps-list/filtermaps.pipe.ts
index 290589e..6a6f732 100644
--- a/src/app/editor/modal-maps-list/filtermaps.pipe.ts
+++ b/src/app/editor/modal-maps-list/filtermaps.pipe.ts
@@ -1,23 +1,24 @@
-import { Pipe, PipeTransform } from '@angular/core';
-import { OptionMap } from "../../map/map";
-
-
-@Pipe({name: 'filterMaps'})
-export class FilterMapsPipe implements PipeTransform {
- transform(maps: OptionMap[], query: string, activePage: number): OptionMap[] {
- const filteredMaps = maps
- .filter(
- m => {
- if (m.title === undefined){
- m.title = "";
- }
- if (m.uid === undefined){
- m.uid = -1;
- }
- return m.title.toString().toLowerCase().includes(query.toLowerCase()) || m.uid.toString().includes(query);
- }
- );
-
- return filteredMaps;
- }
-}
+import { Pipe, PipeTransform } from "@angular/core";
+import { OptionMap } from "../../map/map";
+
+@Pipe({ name: "filterMaps" })
+export class FilterMapsPipe implements PipeTransform {
+ public transform(maps: OptionMap[], query: string, activePage: number): OptionMap[] {
+ const filteredMaps = maps.filter((m) => {
+ if (m.title === undefined) {
+ m.title = "";
+ }
+ if (m.uid === undefined) {
+ m.uid = -1;
+ }
+ return (
+ m.title
+ .toString()
+ .toLowerCase()
+ .includes(query.toLowerCase()) || m.uid.toString().includes(query)
+ );
+ });
+
+ return filteredMaps;
+ }
+}
diff --git a/src/app/editor/modal-maps-list/modal-maps-list.component.ts b/src/app/editor/modal-maps-list/modal-maps-list.component.ts
index 32bbc9f..5e38ffb 100644
--- a/src/app/editor/modal-maps-list/modal-maps-list.component.ts
+++ b/src/app/editor/modal-maps-list/modal-maps-list.component.ts
@@ -1,66 +1,63 @@
-import { Component, Input, Output, EventEmitter } from "@angular/core";
-import { MapService } from "../../map/map.service";
-import { OptionMap } from "../../map/map";
-import * as _ from "lodash";
-
-import {TranslateService} from 'ng2-translate';
-
-@Component({
- selector: 'aba-modal-maps',
- templateUrl: 'modal-maps-list.component.html',
- styleUrls: ['modal-maps-list.component.css']
-})
-export class ModalMapComponent {
-
- @Input('visible') visible: boolean = false;
- @Output() onSelectEvent: EventEmitter<[number, string]> = new EventEmitter();
-
- private maps: OptionMap[] = [];
- private queryInputValue: string = "";
- private activePage = 1;
- private readonly chunkListSize = 8;
-
-
- constructor(private mapService: MapService,private translateService: TranslateService) {
- }
-
- private isVisible(): boolean {
- return this.visible;
- }
-
- public open(): void {
- this.visible = true;
- this.activePage = 1;
- this.queryInputValue = "";
-
- this.mapService.maps().subscribe(
- (maps : OptionMap[]) => {
- this.maps = maps;
- },
- (error) => {
- console.log(error);
- }
- );
- }
- public close(): void {
- this.visible = false;
- }
-
- private onChange(): void {
- this.activePage = 1;
- }
-
- private onClick(info: [number, string]): void {
- this.close();
- this.onSelectEvent.emit(info);
- }
-
- private range(n): number[] {
- return _.range(1, n+1);
- }
-
- private updateSelectedPage(idPage: number){
- this.activePage = idPage;
- }
-
-}
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+import * as _ from "lodash";
+import { TranslateService } from "ng2-translate";
+import { OptionMap } from "../../map/map";
+import { MapService } from "../../map/map.service";
+
+@Component({
+ selector: "aba-modal-maps",
+ styleUrls: ["modal-maps-list.component.css"],
+ templateUrl: "modal-maps-list.component.html",
+})
+export class ModalMapComponent {
+ @Input("visible") public visible: boolean = false;
+ @Output() public onSelectEvent: EventEmitter<[number, string]> = new EventEmitter();
+
+ private maps: OptionMap[] = [];
+ private queryInputValue: string = "";
+ private activePage = 1;
+ private readonly chunkListSize = 8;
+
+ constructor(
+ private mapService: MapService,
+ private translateService: TranslateService,
+ ) {}
+
+ public open(): void {
+ this.visible = true;
+ this.activePage = 1;
+ this.queryInputValue = "";
+
+ this.mapService.maps().subscribe(
+ (maps: OptionMap[]) => {
+ this.maps = maps;
+ },
+ (error) => console.error(error), // tslint:disable-line no-console
+ );
+ }
+
+ public close(): void {
+ this.visible = false;
+ }
+
+ private isVisible(): boolean {
+ return this.visible;
+ }
+
+ private onChange(): void {
+ this.activePage = 1;
+ }
+
+ private onClick(info: [number, string]): void {
+ this.close();
+ this.onSelectEvent.emit(info);
+ }
+
+ private range(n): number[] {
+ return _.range(1, n + 1);
+ }
+
+ private updateSelectedPage(idPage: number) {
+ this.activePage = idPage;
+ }
+}
diff --git a/src/app/editor/modal-save-map/modal-save-map.component.ts b/src/app/editor/modal-save-map/modal-save-map.component.ts
index f4cf20d..58950cb 100644
--- a/src/app/editor/modal-save-map/modal-save-map.component.ts
+++ b/src/app/editor/modal-save-map/modal-save-map.component.ts
@@ -1,35 +1,33 @@
-import { Component, Input, Output, EventEmitter } from "@angular/core";
-import {TranslateService} from 'ng2-translate';
-
-@Component({
- selector: 'aba-modal-save-map',
- templateUrl: 'modal-save-map.component.html',
- styleUrls: ['modal-save-map.component.css']
-})
-export class ModalSaveMapComponent {
-
- @Input('visible') visible: boolean = false;
- @Output() onSaveEvent: EventEmitter = new EventEmitter();
-
- private title: string = "";
-
- constructor(private translateService: TranslateService) {
- }
-
- private isVisible(): boolean {
- return this.visible;
- }
-
- public open(): void {
- this.visible = true;
- }
- public close(): void{
- this.visible = false;
- }
-
- private onSubmit(): void {
- this.close();
- this.onSaveEvent.emit( {title: this.title} );
- }
-
-}
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+import { TranslateService } from "ng2-translate";
+
+@Component({
+ selector: "aba-modal-save-map",
+ styleUrls: ["modal-save-map.component.css"],
+ templateUrl: "modal-save-map.component.html",
+})
+export class ModalSaveMapComponent {
+ @Input("visible") public visible: boolean = false;
+ @Output() public onSaveEvent: EventEmitter = new EventEmitter();
+
+ private title: string = "";
+
+ constructor(private translateService: TranslateService) {}
+
+ public open(): void {
+ this.visible = true;
+ }
+
+ public close(): void {
+ this.visible = false;
+ }
+
+ private isVisible(): boolean {
+ return this.visible;
+ }
+
+ private onSubmit(): void {
+ this.close();
+ this.onSaveEvent.emit({ title: this.title });
+ }
+}
diff --git a/src/app/editor/select-lang/select-lang.component.ts b/src/app/editor/select-lang/select-lang.component.ts
index 97355ee..b37e039 100644
--- a/src/app/editor/select-lang/select-lang.component.ts
+++ b/src/app/editor/select-lang/select-lang.component.ts
@@ -1,22 +1,19 @@
-import { Component, Input, Output, EventEmitter } from "@angular/core";
-import {TranslateService} from 'ng2-translate';
-
-@Component({
- selector: 'aba-select-lang',
- templateUrl: 'select-lang.component.html',
- styleUrls: ['select-lang.component.css']
-})
-export class SelectLangComponent {
-
- private _langsDropDowns : Array = this.translateService.getLangs();
- private _activeLangsDropDowns : string = this.translateService.getBrowserLang();;
-
- constructor(private translateService: TranslateService) {
- }
-
- /** Triggerd when user change the lang */
- onChange(newValue) {
- this.translateService.use(newValue);
- }
-
-}
+import { Component } from "@angular/core";
+import { TranslateService } from "ng2-translate";
+
+@Component({
+ selector: "aba-select-lang",
+ styleUrls: ["select-lang.component.css"],
+ templateUrl: "select-lang.component.html",
+})
+export class SelectLangComponent {
+ private _langsDropDowns: string[] = this.translateService.getLangs();
+ private _activeLangsDropDowns: string = this.translateService.getBrowserLang();
+
+ constructor(private translateService: TranslateService) {}
+
+ /** Triggerd when user change the lang */
+ public onChange(newValue) {
+ this.translateService.use(newValue);
+ }
+}
diff --git a/src/app/editor/toolbar/img/dot.png b/src/app/editor/toolbar/img/dot.png
deleted file mode 100644
index 13cb07b..0000000
Binary files a/src/app/editor/toolbar/img/dot.png and /dev/null differ
diff --git a/src/app/editor/toolbar/img/passage.png b/src/app/editor/toolbar/img/passage.png
deleted file mode 100644
index de045de..0000000
Binary files a/src/app/editor/toolbar/img/passage.png and /dev/null differ
diff --git a/src/app/editor/toolbar/img/pedestrian2.png b/src/app/editor/toolbar/img/pedestrian2.png
deleted file mode 100644
index d99fb25..0000000
Binary files a/src/app/editor/toolbar/img/pedestrian2.png and /dev/null differ
diff --git a/src/app/editor/toolbar/toolbar.component.css b/src/app/editor/toolbar/toolbar.component.css
index dfde57f..a68a2d9 100644
--- a/src/app/editor/toolbar/toolbar.component.css
+++ b/src/app/editor/toolbar/toolbar.component.css
@@ -19,7 +19,7 @@ img {
.btn .tooltiptext {
visibility: hidden;
- width: 120px;
+ width: 130px;
background-color: #555;
color: #fff;
text-align: center;
@@ -29,9 +29,9 @@ img {
z-index: 1;
bottom: 125%;
left: 50%;
- margin-left: -60px;
opacity: 0;
transition: opacity 1s;
+ transform: translateX(-50%);
}
.btn .tooltiptext::after {
diff --git a/src/app/editor/toolbar/toolbar.component.html b/src/app/editor/toolbar/toolbar.component.html
index d766630..09907dd 100644
--- a/src/app/editor/toolbar/toolbar.component.html
+++ b/src/app/editor/toolbar/toolbar.component.html
@@ -1,57 +1,37 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
-
+
+
diff --git a/src/app/editor/toolbar/toolbar.component.ts b/src/app/editor/toolbar/toolbar.component.ts
index e62aeb2..43afc94 100644
--- a/src/app/editor/toolbar/toolbar.component.ts
+++ b/src/app/editor/toolbar/toolbar.component.ts
@@ -1,194 +1,141 @@
-import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core";
-import { LayerType } from '../../map/layer';
-import { DrawType } from '../drawEditMap';
-
-import {TranslateService} from 'ng2-translate';
-
-export interface ITool { image?: string, command: string }
-
-export interface DrawTool { kind: 'draw', drawType : DrawType }
-export interface ActionTool { kind: 'action' }
-export interface EditTool { kind: 'edit' }
-export interface TextureTool { kind: 'texture',color:string,texture:string}
-
-export type Command = Move | Select | Delete | Texture | DrawCircle | DrawPolygon | DrawTraits | DrawPedestrian | Print | Open | Save | Fill;
-export interface Move { command: "move"; }
-export interface Select { command: "select"; }
-export interface Delete { command: "delete"; }
-export interface Texture { command: "texture"; }
-export interface DrawCircle { command: "draw_circle"; }
-export interface DrawPolygon { command: "draw_polygon"; }
-export interface DrawTraits { command: "draw_traits"; }
-export interface DrawPedestrian { command: "draw_pedestrian"; }
-export interface Print { command: "print"; }
-export interface Open { command: "open"; }
-export interface Save { command: "save"; }
-
-export interface Fill { command: "fill"; }
-
-export type KindTool = (DrawTool | EditTool | ActionTool | TextureTool);
-export type Tool = KindTool & ITool & Command;
-
-@Component({
- selector: 'aba-toolbar-map',
- templateUrl: 'toolbar.component.html',
- styleUrls: ['toolbar.component.css']
-})
-export class ToolbarMapComponent {
-
- @Input() activeTab: LayerType;
- @Output() onUpdateTool: EventEmitter
= new EventEmitter();
-
- // Array of state for the fill button
- private fillState : Array = [
- {
- kind: 'texture',
- command: 'fill',
- image: require("file?name=./assets/[name].[ext]!./img/blackTextureFill.png"),
- color: 'white',
- texture: 'black'
- },
- {
- kind: 'texture',
- command: 'fill',
- image: require("file?name=./assets/[name].[ext]!./img/whiteTextureFill.png"),
- color: 'black',
- texture: 'white'
- },
- {
- kind: 'texture',
- command: 'fill',
- image: require("file?name=./assets/[name].[ext]!./img/water.png"),
- color: 'black',
- texture: 'water'
- },
- ];
- private activeFill: number = 0;
-
- private tools: Array = [
- {
- kind: 'edit',
- command: 'move',
- image: require("file?name=./assets/[name].[ext]!./img/move.png")
- },
- {
- kind: 'edit',
- command: 'select',
- image: require("file?name=./assets/[name].[ext]!./img/select.png")
- },
- {
- kind: 'edit',
- command: 'delete',
- image: require("file?name=./assets/[name].[ext]!./img/delete.png")
- },
- {
- kind: 'draw',
- command: 'draw_circle',
- drawType : { kind: 'circle' },
- image: require("file?name=./assets/[name].[ext]!./img/circle.png")
- },
- {
- kind: 'draw',
- command: 'draw_polygon',
- drawType : { kind: 'polygon' },
- image: require("file?name=./assets/[name].[ext]!./img/polygon.png")
- },
- {
- kind: 'draw',
- command: 'draw_traits',
- drawType : { kind: 'line' },
- image: require("file?name=./assets/[name].[ext]!./img/dotted.png")
- },
- {
- kind: 'draw',
- command: 'draw_pedestrian',
- drawType : { kind: 'pedestrian' },
- image: require("file?name=./assets/[name].[ext]!./img/pedestrian.png")
- },
- {
- kind: 'action',
- command: 'print',
- image: require("file?name=./assets/[name].[ext]!./img/print.png")
- },
- {
- kind: 'action',
- command: 'open',
- image: require("file?name=./assets/[name].[ext]!./img/open.png")
- },
- {
- kind: 'action',
- command: 'save',
- image: require("file?name=./assets/[name].[ext]!./img/save.png")
- },
- {
- kind: 'texture',
- command: 'fill',
- image: this.fillState[this.activeFill].image,
- color: (this.fillState[this.activeFill]as TextureTool).color,
- texture : (this.fillState[this.activeFill]as TextureTool).texture
- }
- ];
- private activeTool: Tool = this.tools[0];
-
-
-
- constructor(private translateService: TranslateService){ }
-
-
- private drawTools(): Array {
- return this.tools.filter( (tool) => tool.kind === 'draw');
- }
-
- private editTools(): Array {
- return this.tools.filter( (tool) => tool.kind === 'edit');
- }
-
- private actionTools(): Array {
- return this.tools.filter( (tool) => tool.kind === 'action');
- }
-
- private textureTools(): Array {
- return this.tools.filter( (tool) => tool.kind === 'texture');
- }
-
- public changeFillTool():string{
- const item : TextureTool = (this.tools.filter( (tool) => tool.command === 'fill'))[0] as TextureTool;
- this.increaseActiveFill();
- item.color = (this.fillState[this.activeFill]as TextureTool).color;
- (item as Tool).image = this.fillState[this.activeFill].image;
- item.texture = (this.fillState[this.activeFill]as TextureTool).texture;
-
- return item.texture;
- }
-
- private increaseActiveFill() : void{
- this.activeFill++;
- if(this.fillState.length == this.activeFill)
- this.activeFill = 0;
- }
-
- public isActive(tool: Tool){
- return tool === this.activeTool;
- }
-
- public onClick(tool: Tool) {
- this.activeTool = tool;
- this.onUpdateTool.emit(tool);
- }
-
- public changeEditableState(): void {
- this.activeTool = this.tools[0];
- }
-
- public getActiveToolKind(): string{
- return this.activeTool.kind;
- }
-
- public isEditableEditButton(): boolean {
- if(this.activeTab){
- return this.activeTab.kind !== 'osm';
- }
- return false;
- }
-
-}
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+import * as deleteIconUrl from "Assets/img/icons/mouseActions/delete.png";
+import * as moveIconUrl from "Assets/img/icons/mouseActions/move.png";
+import * as selectIconUrl from "Assets/img/icons/mouseActions/select.png";
+import * as openIconUrl from "Assets/img/icons/operations/open.png";
+import * as printIconUrl from "Assets/img/icons/operations/print.png";
+import * as saveIconUrl from "Assets/img/icons/operations/save.png";
+import * as circleIconUrl from "Assets/img/icons/shapes/circle.png";
+import * as pedestrianIconUrl from "Assets/img/icons/shapes/pedestrian.png";
+import * as polygonIconUrl from "Assets/img/icons/shapes/polygon.png";
+import * as tiledLinesIconUrl from "Assets/img/icons/shapes/tiledLines.png";
+import * as blackTextureFillUrl from "Assets/img/icons/textures/black.png";
+import * as vegetationIconUrl from "Assets/img/icons/textures/vegetation.png";
+import * as waterIconUrl from "Assets/img/icons/textures/water.png";
+import * as whiteTextureFillUrl from "Assets/img/icons/textures/white.png";
+import { TranslateService } from "ng2-translate";
+import { LayerType } from "../../map/layer";
+
+export interface Button {
+ tooltip: string;
+ imageURL: string;
+ id: string;
+}
+
+@Component({
+ selector: "aba-toolbar-map",
+ styleUrls: ["toolbar.component.css"],
+ templateUrl: "toolbar.component.html",
+})
+export class ToolbarMapComponent {
+ @Input() public activeTab: LayerType;
+ @Output() public onUpdateTool: EventEmitter = new EventEmitter();
+ @Output() public onUpdateTexture: EventEmitter = new EventEmitter();
+ @Output() public onOperation: EventEmitter = new EventEmitter();
+
+ private toolButtons: Button[] = [
+ {
+ id: "move",
+ imageURL: moveIconUrl,
+ tooltip: "move",
+ },
+ {
+ id: "select",
+ imageURL: selectIconUrl,
+ tooltip: "select",
+ },
+ {
+ id: "delete",
+ imageURL: deleteIconUrl,
+ tooltip: "delete",
+ },
+ {
+ id: "circle",
+ imageURL: circleIconUrl,
+ tooltip: "draw_circle",
+ },
+ {
+ id: "polygon",
+ imageURL: polygonIconUrl,
+ tooltip: "draw_polygon",
+ },
+ {
+ id: "line",
+ imageURL: tiledLinesIconUrl,
+ tooltip: "draw_traits",
+ },
+ {
+ id: "pedestrian",
+ imageURL: pedestrianIconUrl,
+ tooltip: "draw_pedestrian",
+ },
+ ];
+
+ private textureButtons: Button[] = [
+ {
+ id: "black",
+ imageURL: blackTextureFillUrl,
+ tooltip: "texture_black",
+ },
+ {
+ id: "white",
+ imageURL: whiteTextureFillUrl,
+ tooltip: "texture_white",
+ },
+ {
+ id: "water",
+ imageURL: waterIconUrl,
+ tooltip: "texture_water",
+ },
+ {
+ id: "vegetation",
+ imageURL: vegetationIconUrl,
+ tooltip: "texture_vegetation",
+ },
+ ];
+
+ private operationButtons: Button[] = [
+ {
+ id: "print",
+ imageURL: printIconUrl,
+ tooltip: "print",
+ },
+ {
+ id: "open",
+ imageURL: openIconUrl,
+ tooltip: "open",
+ },
+ {
+ id: "save",
+ imageURL: saveIconUrl,
+ tooltip: "save",
+ },
+ ];
+
+ private activeToolId: string = this.toolButtons[0].id;
+ private activeTextureId: string = this.textureButtons[0].id;
+
+ constructor(private translateService: TranslateService) {}
+
+ public toolButtonClick(toolId: string): void {
+ this.activeToolId = toolId;
+ this.onUpdateTool.emit(toolId);
+ }
+
+ public textureButtonClick(textureId: string): void {
+ this.activeTextureId = textureId;
+ this.onUpdateTexture.emit(textureId);
+ }
+
+ public operationButtonClick(operationId: string): void {
+ this.onOperation.emit(operationId);
+ }
+
+ public isToolButtonActive(toolId: string) {
+ return this.activeToolId === toolId;
+ }
+
+ public isTextureButtonActive(textureId: string) {
+ return this.activeTextureId === textureId;
+ }
+}
diff --git a/src/app/map/assets/img/spin.gif b/src/app/map/assets/img/spin.gif
deleted file mode 100644
index 6879c3d..0000000
Binary files a/src/app/map/assets/img/spin.gif and /dev/null differ
diff --git a/src/app/map/layer.ts b/src/app/map/layer.ts
index d951a56..1db5898 100644
--- a/src/app/map/layer.ts
+++ b/src/app/map/layer.ts
@@ -1,333 +1,81 @@
-import OpenStreetMapLayer = require("esri/layers/OpenStreetMapLayer");
-import Layer = require('esri/layers/layer');
-import SimpleLineSymbol = require('esri/symbols/SimpleLineSymbol');
-import SimpleFillSymbol = require('esri/symbols/SimpleFillSymbol');
-import PictureFillSymbol = require('esri/symbols/PictureFillSymbol');
-import PictureMarkerSymbol = require('esri/symbols/PictureMarkerSymbol');
-import UniqueValueRenderer = require('esri/renderers/UniqueValueRenderer');
-import FeatureLayer = require('esri/layers/FeatureLayer');
-import SimpleRenderer = require('esri/renderers/SimpleRenderer');
-import Color = require('esri/Color');
-import urlUtils = require('esri/urlUtils');
-import * as _ from "lodash";
-import Graphic = require("esri/graphic");
-import geometryEngine = require("esri/geometry/geometryEngine");
-import esriConfig = require('esri/config');
-
-import { removeCommonSegments } from './polygon';
-import {LayerOptions} from "esri";
-
-export type LayerType = City | Square | Osm;
-export interface City { kind: "city"; }
-export interface Square { kind: "square"; }
-export interface Osm { kind: "osm"; }
-
-//esriConfig.defaults.io.corsDetection = false;
-
-urlUtils.addProxyRule({
- urlPrefix: "https://hepiageo.hesge.ch",
- //proxyUrl : "http://localhost:8880/proxy/proxy.php"
- proxyUrl : "https://audiotactile.ovh/proxy/proxy.php"
-});
-
-
-const surface = {
- hard: [
- "ilot",
- "trottoir",
- "autre_revetement_dur",
- "rocher",
- "place_aviation"
- ],
- building: [
- "batiment"
- ],
- water: [
- "eau_stagnante",
- "bassin",
- "cours_eau",
- "fontaine"
- ],
- green: [
- "roseliere",
- "paturage_boise_ouvert",
- "tourbiere",
- "autre_verte",
- "autre_culture_intensive",
- "paturage_boise_dense",
- "autre_boisee",
- "jardin",
- "foret_dense",
- "vigne",
- "champ_pre_paturage"
- ],
- linear: [
- "route_chemin",
- "chemin_de_fer"
- ]
-};
-
-const HARD_SYMBOL = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(), new Color('black'));
-
-const url_traitilles = require("file?name=./assets/[name].[ext]!./../core/img/traitilles.png");
-const url_cercle = require("file?name=./assets/[name].[ext]!./../core/img/cercle.png");
-
-const BUILDING_SYMBOL = new PictureFillSymbol(url_traitilles, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15);
-const WATER_SYMBOL = new PictureFillSymbol(url_cercle, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15);
-const GREEN_SYMBOL = new PictureFillSymbol(url_traitilles, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 25, 25);
-
-const URL_FEATURE_LAYER = "https://hepiageo.hesge.ch/arcgis/rest/services/audiotactile/audiotactile/FeatureServer/";
-const URL_FEATURE_LAYER_SURFACE = URL_FEATURE_LAYER + '3';
-const URL_FEATURE_LAYER_LINEAR = URL_FEATURE_LAYER + '1';
-
-/**
- * Base class for a layer view in the ArcgisMap dom
- */
-export abstract class RootLayer {
- protected subLayers: Layer[] = [];
- public id : string;
- protected nbLayerUpdating : number = 0;
-
- public onUpdateStart? : () => void;
- public onUpdateEnd? : () => void;
-
- constructor(lt: LayerType){
- this.id = lt.kind;
- }
-
- public setVisibility(state: boolean): void {
- this.subLayers.forEach( layer => layer.setVisibility(state));
- }
-
- public layers(): Layer[] {
- return this.subLayers;
- }
-
- protected addLayer(layer : Layer): void{
- this.registerLoadEventsOnLayer(layer);
- this.subLayers.push(layer);
- }
-
- protected registerLoadEventsOnLayer(layer : Layer): void{
- // On start
- layer.on("update-start", () => {
- // First layer load start ?
- if(this.nbLayerUpdating == 0){
- this.nbLayerUpdating = this.subLayers.length;
-
- if(this.onUpdateStart)
- this.onUpdateStart();
- }
- });
-
- // On end
- layer.on("update-end", () => {
- this.nbLayerUpdating--;
-
- // Last layer load end ?
- if(this.nbLayerUpdating == 0)
- if(this.onUpdateEnd)
- this.onUpdateEnd();
- });
- }
-}
-
-/**
- * ArcgisMap Layer for City Braille representation
- */
-export class CityRootBrailleLayer extends RootLayer {
-
- constructor(){
- super( {kind: 'city'} );
- this.addLayer(new CityBrailleSubLayer());
- }
-}
-
-/**
- * ArcgisMap Layer for Square Braille representation
- */
-export class SquareRootBrailleLayer extends RootLayer {
- constructor(){
- super( {kind: 'square'} );
- this.addLayer(new SquareBrailleSubLayer());
- this.addLayer(new RailroadBrailleSubLayer());
- }
-}
-
-/**
- * ArcgisMap Layer for OpenStreet Map representation
- */
-export class OsmRootLayer extends RootLayer {
- constructor(){
- super( {kind: 'osm'} );
- this.addLayer(new OsmSubLayer());
- }
-}
-
-/**
- * Sublayer for city details
- */
-class CityBrailleSubLayer extends FeatureLayer {
-
- constructor() {
-
- super(URL_FEATURE_LAYER_SURFACE, {
- id: 'city',
- });
-
- const defaultSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), new Color("black"));
- const renderer = new UniqueValueRenderer(defaultSymbol, "type");
-
- const champs = surface.linear.concat(surface.water, surface.green);
- const LINEAR_SYMBOL = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), new Color("black"));
- //const LINEAR_SYMBOL = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 3);
-
- surface.water.forEach( (value) => renderer.addValue(value, WATER_SYMBOL) );
- //surface.green.forEach( (value) => renderer.addValue(value, GREEN_SYMBOL) );
- surface.linear.forEach( (value) => renderer.addValue(value, LINEAR_SYMBOL));
-
- this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
- this.setRenderer(renderer);
-
- }
-
-}
-
-/**
- * Sublayer for square details
- */
-class SquareBrailleSubLayer extends FeatureLayer {
-
- constructor() {
-
- super(URL_FEATURE_LAYER_SURFACE, {
- id: 'square',
- });
-
- const defaultSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL, new Color("black"), 0);
- const renderer = new UniqueValueRenderer(defaultSymbol, "type");
-
- //const champs = surface.green.concat(surface.building, surface.hard, surface.water, surface.linear);
- const champs = surface.building.concat(surface.hard, surface.water, surface.linear);
- const LINEAR_SYMBOL = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 3);
-
- surface.linear.forEach((value) => renderer.addValue(value, LINEAR_SYMBOL));
- surface.water.forEach((value) => renderer.addValue(value, WATER_SYMBOL));
- surface.building.forEach((value) => renderer.addValue(value, BUILDING_SYMBOL));
- surface.hard.forEach((value) => renderer.addValue(value, HARD_SYMBOL));
-
- this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
- this.setRenderer(renderer);
- }
-
-
- /* this function mutate a graphic to transform a list of coordinates representing a rings to a list of
- * segments. Thanks to this, we can remove segments intersections later.
- * Because some fields are not accessible for the Esri/Graphic type, we get it as an pojo js object
- * (jca)
- */
- transform(graphic: any): void {
-
- const xs: number[][][] = [];
-
- // Esri lib doesn't refresh all element on a map, we have to keep the original reference of the rings as a
- // good comparator
- if (graphic.geometry.originalRings === undefined) {
- graphic.geometry.originalRings = graphic.geometry.rings;
- graphic.geometry.xmin = _.minBy(graphic.geometry.originalRings[0], g => g[0] )[0];
- graphic.geometry.xmax = _.maxBy(graphic.geometry.originalRings[0], g => g[0] )[0];
- graphic.geometry.ymin = _.minBy(graphic.geometry.originalRings[0], g => g[1] )[1];
- graphic.geometry.ymax = _.maxBy(graphic.geometry.originalRings[0], g => g[1] )[1];
- }
- graphic.geometry.originalRings.forEach(r => {
- const set: number[] = _.flatten(r.map( g => [g, g])).slice(1) as number[];
- set.pop();
- xs.push(_.chunk(set, 2));
- });
- graphic.geometry.rings = _.flatten(xs);
- }
-
- /* Fires when a layer has finished updating its content
- * We compare way-objects segments and remove those which intersect
- * (jca)
- */
- onUpdateEnd(){
-
- const pathsGraphics = this.graphics.filter( g => g.attributes.type === 'route_chemin');
- pathsGraphics.forEach( g => this.transform(g) );
-
- const railwaysGraphics = this.graphics.filter( g => g.attributes.type === 'chemin_de_fer');
- railwaysGraphics.forEach( g => this.transform(g) );
-
- removeCommonSegments(pathsGraphics);
- removeCommonSegments(railwaysGraphics);
-
- // Reorder paths
- railwaysGraphics.filter(g => g.getShape() !== null).forEach(g => g.getShape().moveToFront());
- pathsGraphics.filter(g => g.getShape() !== null).forEach(g => g.getShape().moveToFront());
-
- this.redraw();
-
- }
-}
-
-/**
- * Sublayer for stairs details
- */
-class StairsBrailleLayer extends FeatureLayer {
-
- constructor() {
-
- super(URL_FEATURE_LAYER_LINEAR, {
- id: 'stairs',
- });
-
- const defaultSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), new Color("black"));
- const renderer = new UniqueValueRenderer(defaultSymbol, "type");
-
- const object1 = 'escalier_important';
- const object2 = 'tunnel_passage_inferieur_galerie';
- const champs = [object1, object2];
-
- renderer.addValue(object1, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 1));
- renderer.addValue(object2, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 1));
-
- this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
- this.setRenderer(renderer);
-
- }
-
-}
-
-/**
- * Sublayer for railroad details
- */
-class RailroadBrailleSubLayer extends FeatureLayer {
-
- constructor() {
-
- super(URL_FEATURE_LAYER_LINEAR, {
- id: 'railroad',
- });
-
- const defaultSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), new Color("black"));
- const renderer = new UniqueValueRenderer(defaultSymbol, "type");
-
- const object = 'voie_ferree';
- const champs = [object];
-
- renderer.addValue(object, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 3));
-
- this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
- this.setRenderer(renderer);
-
- }
-}
-
-class OsmSubLayer extends OpenStreetMapLayer {
- public id: string = "osm";
- constructor() {
- super();
- this.setMaxScale(25);
- }
-}
+import Color = require("esri/Color");
+import esriConfig = require("esri/config");
+import geometryEngine = require("esri/geometry/geometryEngine");
+import Graphic = require("esri/graphic");
+import Layer = require("esri/layers/layer");
+import OpenStreetMapLayer = require("esri/layers/OpenStreetMapLayer");
+import SimpleRenderer = require("esri/renderers/SimpleRenderer");
+import PictureFillSymbol = require("esri/symbols/PictureFillSymbol");
+import PictureMarkerSymbol = require("esri/symbols/PictureMarkerSymbol");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+import urlUtils = require("esri/urlUtils");
+
+export type LayerType = City | Square | Osm;
+export interface City {
+ kind: "city";
+}
+export interface Square {
+ kind: "square";
+}
+export interface Osm {
+ kind: "osm";
+}
+
+urlUtils.addProxyRule({
+ proxyUrl: "https://audiotactile.ovh/proxy/proxy.php",
+ urlPrefix: "https://hepiageo.hesge.ch",
+});
+
+/**
+ * Base class for a layer view in the ArcgisMap dom
+ */
+export abstract class RootLayer {
+ public id: string;
+ public onUpdateStart?: () => void;
+ public onUpdateEnd?: () => void;
+
+ protected subLayers: Layer[] = [];
+ protected nbLayerUpdating: number = 0;
+
+ constructor(lt: LayerType) {
+ this.id = lt.kind;
+ }
+
+ public setVisibility(state: boolean): void {
+ this.subLayers.forEach((layer) => layer.setVisibility(state));
+ }
+
+ public layers(): Layer[] {
+ return this.subLayers;
+ }
+
+ protected addLayer(layer: Layer): void {
+ this.registerLoadEventsOnLayer(layer);
+ this.subLayers.push(layer);
+ }
+
+ protected registerLoadEventsOnLayer(layer: Layer): void {
+ // On start
+ layer.on("update-start", () => {
+ // First layer load start ?
+ if (this.nbLayerUpdating === 0) {
+ this.nbLayerUpdating = this.subLayers.length;
+
+ if (this.onUpdateStart) {
+ this.onUpdateStart();
+ }
+ }
+ });
+
+ // On end
+ layer.on("update-end", () => {
+ this.nbLayerUpdating--;
+
+ // Last layer load end ?
+ if (this.nbLayerUpdating === 0 && this.onUpdateEnd) {
+ this.onUpdateEnd();
+ }
+ });
+ }
+}
diff --git a/src/app/map/layers/CityBrailleSubLayer.ts b/src/app/map/layers/CityBrailleSubLayer.ts
new file mode 100644
index 0000000..42777b9
--- /dev/null
+++ b/src/app/map/layers/CityBrailleSubLayer.ts
@@ -0,0 +1,43 @@
+import Color = require("esri/Color");
+import FeatureLayer = require("esri/layers/FeatureLayer");
+import UniqueValueRenderer = require("esri/renderers/UniqueValueRenderer");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+
+import { URL_FEATURE_LAYER_SURFACE } from "../../../conf/featureLayerApiUrls";
+import Surfaces from "../../../conf/surfaces";
+import { WATER_SYMBOL } from "../symbols";
+
+/**
+ * Sublayer for city details
+ */
+export default class CityBrailleSubLayer extends FeatureLayer {
+ constructor() {
+ super(URL_FEATURE_LAYER_SURFACE, {
+ id: "city",
+ });
+
+ const defaultSymbol = new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_NULL,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ new Color("black"),
+ );
+ const renderer = new UniqueValueRenderer(defaultSymbol, "type");
+
+ const champs = Surfaces.linear.concat(Surfaces.water, Surfaces.green);
+ const LINEAR_SYMBOL = new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_SOLID,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ new Color("black"),
+ );
+ // TODO: check this lines
+ // const LINEAR_SYMBOL = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 3);
+
+ Surfaces.water.forEach((value) => renderer.addValue(value, WATER_SYMBOL));
+ // surface.green.forEach( (value) => renderer.addValue(value, GREEN_SYMBOL) );
+ Surfaces.linear.forEach((value) => renderer.addValue(value, LINEAR_SYMBOL));
+
+ this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
+ this.setRenderer(renderer);
+ }
+}
diff --git a/src/app/map/layers/CityRootBrailleLayer.ts b/src/app/map/layers/CityRootBrailleLayer.ts
new file mode 100644
index 0000000..9ac45ac
--- /dev/null
+++ b/src/app/map/layers/CityRootBrailleLayer.ts
@@ -0,0 +1,12 @@
+import { RootLayer } from "../layer";
+import CityBrailleSubLayer from "./CityBrailleSubLayer";
+
+/**
+ * ArcgisMap Layer for City Braille representation
+ */
+export default class CityRootBrailleLayer extends RootLayer {
+ constructor() {
+ super({ kind: "city" });
+ this.addLayer(new CityBrailleSubLayer());
+ }
+}
diff --git a/src/app/map/layers/OsmRootLayer.ts b/src/app/map/layers/OsmRootLayer.ts
new file mode 100644
index 0000000..5523f67
--- /dev/null
+++ b/src/app/map/layers/OsmRootLayer.ts
@@ -0,0 +1,12 @@
+import { RootLayer } from "../layer";
+import OsmSubLayer from "./OsmSubLayer";
+
+/**
+ * ArcgisMap Layer for OpenStreet Map representation
+ */
+export default class OsmRootLayer extends RootLayer {
+ constructor() {
+ super({ kind: "osm" });
+ this.addLayer(new OsmSubLayer());
+ }
+}
diff --git a/src/app/map/layers/OsmSubLayer.ts b/src/app/map/layers/OsmSubLayer.ts
new file mode 100644
index 0000000..7e0297b
--- /dev/null
+++ b/src/app/map/layers/OsmSubLayer.ts
@@ -0,0 +1,9 @@
+import OpenStreetMapLayer = require("esri/layers/OpenStreetMapLayer");
+
+export default class OsmSubLayer extends OpenStreetMapLayer {
+ public id: string = "osm";
+ constructor() {
+ super();
+ this.setMaxScale(25);
+ }
+}
diff --git a/src/app/map/layers/RailroadBrailleSubLayer.ts b/src/app/map/layers/RailroadBrailleSubLayer.ts
new file mode 100644
index 0000000..b1eccee
--- /dev/null
+++ b/src/app/map/layers/RailroadBrailleSubLayer.ts
@@ -0,0 +1,36 @@
+import Color = require("esri/Color");
+import FeatureLayer = require("esri/layers/FeatureLayer");
+import UniqueValueRenderer = require("esri/renderers/UniqueValueRenderer");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+
+import { URL_FEATURE_LAYER_LINEAR } from "../../../conf/featureLayerApiUrls";
+
+/**
+ * Sublayer for railroad details
+ */
+export default class RailroadBrailleSubLayer extends FeatureLayer {
+ constructor() {
+ super(URL_FEATURE_LAYER_LINEAR, {
+ id: "railroad",
+ });
+
+ const defaultSymbol = new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_NULL,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ new Color("black"),
+ );
+ const renderer = new UniqueValueRenderer(defaultSymbol, "type");
+
+ const object = "voie_ferree";
+ const champs = [object];
+
+ renderer.addValue(
+ object,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 3),
+ );
+
+ this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
+ this.setRenderer(renderer);
+ }
+}
diff --git a/src/app/map/layers/SquareBrailleSubLayer.ts b/src/app/map/layers/SquareBrailleSubLayer.ts
new file mode 100644
index 0000000..6c4eaf2
--- /dev/null
+++ b/src/app/map/layers/SquareBrailleSubLayer.ts
@@ -0,0 +1,116 @@
+import Color = require("esri/Color");
+import FeatureLayer = require("esri/layers/FeatureLayer");
+import UniqueValueRenderer = require("esri/renderers/UniqueValueRenderer");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+
+import * as _ from "lodash";
+import { URL_FEATURE_LAYER_SURFACE } from "../../../conf/featureLayerApiUrls";
+import Surfaces from "../../../conf/surfaces";
+import { removeCommonSegments } from "../polygon";
+import { BUILDING_SYMBOL, HARD_SYMBOL, WATER_SYMBOL } from "../symbols";
+
+/**
+ * Sublayer for square details
+ */
+export default class SquareBrailleSubLayer extends FeatureLayer {
+ constructor() {
+ super(URL_FEATURE_LAYER_SURFACE, {
+ id: "square",
+ });
+
+ const defaultSymbol = new SimpleLineSymbol(
+ SimpleLineSymbol.STYLE_NULL,
+ new Color("black"),
+ 0,
+ );
+ const renderer = new UniqueValueRenderer(defaultSymbol, "type");
+
+ // TODO: check the line below
+ // const champs = Surfaces.green.concat(Surfaces.building, Surfaces.hard, Surfaces.water, Surfaces.linear);
+ const champs = Surfaces.building.concat(
+ Surfaces.hard,
+ Surfaces.water,
+ Surfaces.linear,
+ );
+ const LINEAR_SYMBOL = new SimpleLineSymbol(
+ SimpleLineSymbol.STYLE_SOLID,
+ new Color("black"),
+ 3,
+ );
+
+ Surfaces.linear.forEach((value) => renderer.addValue(value, LINEAR_SYMBOL));
+ Surfaces.water.forEach((value) => renderer.addValue(value, WATER_SYMBOL));
+ Surfaces.building.forEach((value) => renderer.addValue(value, BUILDING_SYMBOL));
+ Surfaces.hard.forEach((value) => renderer.addValue(value, HARD_SYMBOL));
+
+ this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
+ this.setRenderer(renderer);
+ }
+
+ /* this function mutate a graphic to transform a list of coordinates representing a rings to a list of
+ * segments. Thanks to this, we can remove segments intersections later.
+ * Because some fields are not accessible for the Esri/Graphic type, we get it as an pojo js object
+ * (jca)
+ */
+ private transform(graphic: any): void {
+ const xs: number[][][] = [];
+
+ // Esri lib doesn't refresh all element on a map, we have to keep the original reference of the rings as a
+ // good comparator
+ if (graphic.geometry.originalRings === undefined) {
+ graphic.geometry.originalRings = graphic.geometry.rings;
+ graphic.geometry.xmin = _.minBy(
+ graphic.geometry.originalRings[0],
+ (g) => g[0],
+ )[0];
+ graphic.geometry.xmax = _.maxBy(
+ graphic.geometry.originalRings[0],
+ (g) => g[0],
+ )[0];
+ graphic.geometry.ymin = _.minBy(
+ graphic.geometry.originalRings[0],
+ (g) => g[1],
+ )[1];
+ graphic.geometry.ymax = _.maxBy(
+ graphic.geometry.originalRings[0],
+ (g) => g[1],
+ )[1];
+ }
+ graphic.geometry.originalRings.forEach((r) => {
+ const set: number[] = _.flatten(r.map((g) => [g, g])).slice(1) as number[];
+ set.pop();
+ xs.push(_.chunk(set, 2));
+ });
+ graphic.geometry.rings = _.flatten(xs);
+ }
+
+ /* Fires when a layer has finished updating its content
+ * We compare way-objects segments and remove those which intersect
+ * (jca)
+ */
+ private onUpdateEnd() {
+ const pathsGraphics = this.graphics.filter(
+ (g) => g.attributes.type === "route_chemin",
+ );
+ pathsGraphics.forEach((g) => this.transform(g));
+
+ const railwaysGraphics = this.graphics.filter(
+ (g) => g.attributes.type === "chemin_de_fer",
+ );
+ railwaysGraphics.forEach((g) => this.transform(g));
+
+ removeCommonSegments(pathsGraphics);
+ removeCommonSegments(railwaysGraphics);
+
+ // Reorder paths
+ railwaysGraphics
+ .filter((g) => g.getShape() !== null)
+ .forEach((g) => g.getShape().moveToFront());
+ pathsGraphics
+ .filter((g) => g.getShape() !== null)
+ .forEach((g) => g.getShape().moveToFront());
+
+ this.redraw();
+ }
+}
diff --git a/src/app/map/layers/SquareRootBrailleLayer.ts b/src/app/map/layers/SquareRootBrailleLayer.ts
new file mode 100644
index 0000000..61891f2
--- /dev/null
+++ b/src/app/map/layers/SquareRootBrailleLayer.ts
@@ -0,0 +1,14 @@
+import { RootLayer } from "../layer";
+import RailroadBrailleSubLayer from "./RailroadBrailleSubLayer";
+import SquareBrailleSubLayer from "./SquareBrailleSubLayer";
+
+/**
+ * ArcgisMap Layer for Square Braille representation
+ */
+export default class SquareRootBrailleLayer extends RootLayer {
+ constructor() {
+ super({ kind: "square" });
+ this.addLayer(new SquareBrailleSubLayer());
+ this.addLayer(new RailroadBrailleSubLayer());
+ }
+}
diff --git a/src/app/map/layers/StairsBrailleLayer.ts b/src/app/map/layers/StairsBrailleLayer.ts
new file mode 100644
index 0000000..b4cbe5d
--- /dev/null
+++ b/src/app/map/layers/StairsBrailleLayer.ts
@@ -0,0 +1,41 @@
+import Color = require("esri/Color");
+import FeatureLayer = require("esri/layers/FeatureLayer");
+import UniqueValueRenderer = require("esri/renderers/UniqueValueRenderer");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+
+import { URL_FEATURE_LAYER_LINEAR } from "../../../conf/featureLayerApiUrls";
+
+/**
+ * Sublayer for stairs details
+ */
+export default class StairsBrailleLayer extends FeatureLayer {
+ constructor() {
+ super(URL_FEATURE_LAYER_LINEAR, {
+ id: "stairs",
+ });
+
+ const defaultSymbol = new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_NULL,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ new Color("black"),
+ );
+ const renderer = new UniqueValueRenderer(defaultSymbol, "type");
+
+ const object1 = "escalier_important";
+ const object2 = "tunnel_passage_inferieur_galerie";
+ const champs = [object1, object2];
+
+ renderer.addValue(
+ object1,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 1),
+ );
+ renderer.addValue(
+ object2,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("black"), 1),
+ );
+
+ this.setDefinitionExpression("type='" + champs.join("' or type='") + "'");
+ this.setRenderer(renderer);
+ }
+}
diff --git a/src/app/map/map.component.css b/src/app/map/map.component.css
index 9d767fb..c02537f 100644
--- a/src/app/map/map.component.css
+++ b/src/app/map/map.component.css
@@ -1,22 +1,13 @@
#esri-map {
width: 1058px;
height: 720px;
- border-style: solid;
- border-width: 2px;
- position:relative;
+ border: solid 2px #000000;
+ margin: auto;
}
-.row {
- padding-bottom: 4px;
-}
-
-.need-zoom {
- background: repeating-linear-gradient(
- 45deg,
- #ffffff,
- #ffffff 10px,
- #9a9a9a 10px,
- #9a9a9a 20px );
+.searchBar {
+ margin-top: 5px;
+ margin-bottom: 5px;
}
.center-div {
@@ -27,40 +18,39 @@
vertical-align: middle;
}
-.dataMap{
+.hide-on-screen {
display: none;
}
@media print {
- .load{
- display: none;
+ @page {
+ size: 320mm 450mm;
+ margin: 0;
}
- #esri-map {
- margin-left: 0px;
+ html, body {
+ height: 100%;
+ width: 100%;
+ margin: 0;
+ padding: 0;
}
-
- .map {
- border-style:solid;
- border: 5px;
- overflow: hidden;
-
- margin-top: 1%;
- margin-bottom: 0px;
-
- }
-
- .searchBar{
+ .hide-on-print {
display: none;
}
- .dataMap{
- display: block;
- margin-top: 0px;
+ #esri-map {
+ margin: 0;
+ padding: 0;
+
+ overflow: hidden;
}
+ .hide-on-screen {
+ display: block;
+ margin-top: 0px;
+ }
.titleMap{
text-align: left;
@@ -83,6 +73,4 @@
.text{
font-size: 150%;
}
-
-
}
\ No newline at end of file
diff --git a/src/app/map/map.component.html b/src/app/map/map.component.html
index cf5a88e..f4bb854 100644
--- a/src/app/map/map.component.html
+++ b/src/app/map/map.component.html
@@ -1,34 +1,41 @@
-
-
+
-
-
-

-
-
-
- {{ mapZoom }}
-
+
+
+
+

+
+
+
+
+ {{ mapZoom }}
+
+
+
-
-
-
-
{{getTitle()}}
-
{{getId()}}
-
-
-
{{getBrailleTitle()}}
-
{{getBrailleId()}}
-
+
+
+
{{getTitle()}}
+
{{getId()}}
+
+
+
{{getBrailleTitle()}}
+
{{getBrailleId()}}
+
diff --git a/src/app/map/map.component.ts b/src/app/map/map.component.ts
index e62ae52..01fe79c 100644
--- a/src/app/map/map.component.ts
+++ b/src/app/map/map.component.ts
@@ -1,79 +1,66 @@
-import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges} from '@angular/core';
-import { OptionMap, AbaMap } from './map';
-import { LayerType } from './layer';
-import { MapService } from './map.service';
-import ArcgisSearch = require('esri/dijit/Search');
-const img_loading = require("file?name=./assets/img/[name].[ext]!./assets/img/spin.gif");
-
-import 'rxjs/add/operator/toPromise';
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+import * as loadingSpinnerUrl from "Assets/img/spin.gif";
+import * as br from "braille";
+import "rxjs/add/operator/toPromise";
+import { LayerType } from "./layer";
+import { AbaMap, OptionMap } from "./map";
+import { MapService } from "./map.service";
+
+import ArcgisSearch = require("esri/dijit/Search");
import Extent = require("esri/geometry/Extent");
+import Point = require("esri/geometry/Point");
import Graphic = require("esri/graphic");
import Layer = require("esri/layers/layer");
-import Point = require("esri/geometry/Point");
-
-import * as br from 'braille';
@Component({
- selector: 'aba-map',
- templateUrl: 'map.component.html',
- styleUrls: ['map.component.css']
+ selector: "aba-map",
+ styleUrls: ["map.component.css"],
+ templateUrl: "map.component.html",
})
-export class MapComponent implements OnInit {
-
- //optionMaps: OptionMap[];
- map : AbaMap;
- search: ArcgisSearch;
+export class MapComponent {
+ public get loadingSpinnerURL(): string { return String(loadingSpinnerUrl); }
+ public map: AbaMap;
+ public mapLoading: boolean = false;
+ public mapZoom = "";
- mapLoading : boolean = false;
- imgLoading : string = img_loading;
+ @Output()
+ public onMapInstancied: EventEmitter
= new EventEmitter();
+ @Input()
+ public searchable: boolean = true;
- needZoom : boolean = false;
+ private needZoom: boolean = false;
+ private search: ArcgisSearch;
+ private readonly ZOOM_LEVEL_MINIMUM: number = 16;
- @Output() onMapInstancied: EventEmitter = new EventEmitter();
- @Input() searchable: boolean = true;
+ constructor(private mapService: MapService) {}
- readonly ZOOM_LEVEL_MINIMUM : number = 16;
-
- mapZoom = "";
-
- constructor(private mapService: MapService) {
+ public getDefaultMap(): void {
+ this.mapService.defaultMap().subscribe((optionMap) => {
+ this.initMap(optionMap);
+ });
}
- getDefaultMap(): void {
- this.mapService
- .defaultMap()
- .subscribe(
- optionMap => {
- console.log(optionMap);
- this.initMap(optionMap);
- }
- );
- }
-
- ngOnInit(): void {
- }
-
- setLayerType(layerType : LayerType): boolean {
- if (this.map){
+ public setLayerType(layerType: LayerType): boolean {
+ if (this.map) {
this.map.setLayerVisible(layerType);
return true;
}
return false;
}
- setZoom(zoom:number):void{
+ public setZoom(zoom: number): void {
this.map.setZoom(zoom);
}
- isInMap(point : Point):boolean{
+ public isInMap(point: Point): boolean {
return this.map.extent.contains(point);
}
- centerMap(point : Point):void{
+ public centerMap(point: Point): void {
this.map.centerAt(point);
}
- resetInfos():void{
+ public resetInfos(): void {
this.map.uid = undefined;
this.map.title = undefined;
this.map.owner = undefined;
@@ -81,107 +68,90 @@ export class MapComponent implements OnInit {
this.map.creationDate = undefined;
}
- private getBrailleTitle () : string{
- if(this.map && this.map.title)
- return br.toBraille(this.map.title);
- else
- return "";
- }
-
- private getBrailleId () : string{
- if(this.map && this.map.uid)
- return br.toBraille(String(this.map.uid));
- else
- return "";
- }
-
- private getTitle() : string{
- if(this.map && this.map.title)
- return String(this.map.title);
- else
- return "";
- }
-
- private getId () : string{
- if(this.map && this.map.uid)
- return String(this.map.uid);
- else
- return "";
- }
-
- initMap(optionMap: OptionMap, layerType? : LayerType): void {
-
+ public initMap(optionMap: OptionMap, layerType?: LayerType): void {
this.map = AbaMap.fromOptionMap("esri-map", optionMap, layerType);
this.applyDefaultCallbackToTheMap();
- if (this.searchable){
+ if (this.searchable) {
this.search = new ArcgisSearch(
{
+ enableHighlight: false,
map: this.map,
/* useMapExtent:false, */
- enableHighlight: false,
- }, "search"
+ },
+ "search",
);
-
- /* hack for fix placeholder
+ /* hack for fix placeholder
* get the object and replace with emtpy string
* (pj) Issue #90
*/
const s = this.search.sources;
s[0].placeholder = "";
this.search.set("sources", s);
-
}
this.checkNeedZoom();
this.onMapInstancied.emit(optionMap);
}
- private applyDefaultCallbackToTheMap(): void {
- this.map.onUpdateStart = () => this.mapLoading = true;
- this.map.onUpdateEnd = () => this.mapLoading = false;
-
- // Zoom restriction
- this.map.on("zoom-end", () => this.checkNeedZoom());
- }
-
-
// Show or hide 'need zoom' message
- public checkNeedZoom(): boolean{
- this.needZoom = (this.map.getLevel() < this.ZOOM_LEVEL_MINIMUM);
- if(this.mapLoading)
+ public checkNeedZoom(): boolean {
+ this.needZoom = this.map.getLevel() < this.ZOOM_LEVEL_MINIMUM;
+ if (this.mapLoading) {
this.mapLoading = false;
+ }
return this.needZoom;
}
public selectMapId(id: number): void {
- this.mapService.map(id).subscribe(
- optionMap => {
-
- // Fixed: Must destroy before attributing a new instance
- this.map.destroy();
- this.map = AbaMap.fromOptionMap("esri-map", optionMap);
- this.checkNeedZoom();
+ this.mapService.map(id).subscribe((optionMap) => {
+ // Fixed: Must destroy before attributing a new instance
+ this.map.destroy();
+ this.map = AbaMap.fromOptionMap("esri-map", optionMap);
+ this.checkNeedZoom();
- // Call onMapInstancied event to prevent others components of new map
- this.onMapInstancied.emit(optionMap);
+ // Call onMapInstancied event to prevent others components of new map
+ this.onMapInstancied.emit(optionMap);
- this.applyDefaultCallbackToTheMap();
-
- if (optionMap.layerType){
- this.setLayerType(optionMap.layerType);
- }else{
- this.setLayerType( {kind: "osm"});
- }
+ this.applyDefaultCallbackToTheMap();
+ if (optionMap.layerType) {
+ this.setLayerType(optionMap.layerType);
+ } else {
+ this.setLayerType({ kind: "osm" });
}
- );
+ });
}
public saveMapWithTitle(title: string): void {
this.map.title = title;
- this.mapService.add(this.map.toOptionMap()).subscribe( i => this.map.uid = i );
+ this.mapService
+ .add(this.map.toOptionMap())
+ .subscribe((i) => (this.map.uid = i));
+ }
+
+ private getBrailleTitle(): string {
+ return (this.map && this.map.title) ? br.toBraille(this.map.title) : "";
+ }
+
+ private getBrailleId(): string {
+ return (this.map && this.map.uid) ? br.toBraille(String(this.map.uid)) : "";
+ }
+
+ private getTitle(): string {
+ return (this.map && this.map.title) ? String(this.map.title) : "";
+ }
+
+ private getId(): string {
+ return (this.map && this.map.uid) ? String(this.map.uid) : "";
}
+ private applyDefaultCallbackToTheMap(): void {
+ this.map.onUpdateStart = () => (this.mapLoading = true);
+ this.map.onUpdateEnd = () => (this.mapLoading = false);
+
+ // Zoom restriction
+ this.map.on("zoom-end", () => this.checkNeedZoom());
+ }
}
diff --git a/src/app/map/map.module.ts b/src/app/map/map.module.ts
index 1c565d5..cd5ec3b 100644
--- a/src/app/map/map.module.ts
+++ b/src/app/map/map.module.ts
@@ -1,16 +1,13 @@
-import { NgModule } from '@angular/core';
-
-
-//import { MapService } from './map.service';
-import {SharedModule} from "../shared/shared.module";
-import {MapComponent} from "./map.component";
-import {CommonModule} from "@angular/common";
-import {ModalSaveMapComponent} from "../editor/modal-save-map/modal-save-map.component";
-import {ModalMapComponent} from "../editor/modal-maps-list/modal-maps-list.component";
-import {FormsModule} from "@angular/forms";
-
+import { NgModule } from "@angular/core";
@NgModule({
+ declarations: [
+ /*
+ MapComponent
+ , ModalSaveMapComponent
+ , ModalMapComponent
+ */
+ ],
imports: [
/*
CommonModule
@@ -18,13 +15,8 @@ import {FormsModule} from "@angular/forms";
, SharedModule
*/
],
- declarations: [
- /*
- MapComponent
- , ModalSaveMapComponent
- , ModalMapComponent
- */
+ providers: [
+ /* MapService*/
],
- providers: [/* MapService*/]
})
-export class MapModule { }
+export class MapModule {}
diff --git a/src/app/map/map.service.spec.ts b/src/app/map/map.service.spec.ts
index 2d03093..9201d61 100644
--- a/src/app/map/map.service.spec.ts
+++ b/src/app/map/map.service.spec.ts
@@ -1,53 +1,51 @@
-import { OptionMap } from './map';
-import { MapService } from './map.service';
+import { inject, TestBed } from "@angular/core/testing";
+import { HttpModule } from "@angular/http";
+import "rxjs/add/operator/map";
+import { OptionMap } from "./map";
+import { MapService } from "./map.service";
-import {HttpModule} from '@angular/http';
-
-import { inject, async, TestBed} from '@angular/core/testing';
-import 'rxjs/add/operator/map';
-
-describe('MapService', () => {
+describe("MapService", () => {
// Before each, import module and providers
beforeEach(() => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
TestBed.configureTestingModule({
- imports: [HttpModule],
- providers: [MapService]
- }
- );
+ imports: [HttpModule],
+ providers: [MapService],
+ });
});
- it('should get map #2', async(done) =>
+ it("should get map #2", async (done) =>
inject([MapService], (service: MapService) => {
return service.defaultMap().subscribe(
- (map : OptionMap) => {
+ (map: OptionMap) => {
expect(map).toBeDefined();
done();
},
(error) => {
fail(error);
done();
- });
-
- })()
- );
+ },
+ );
+ })());
- it('should get maps', async(done) =>
+ it("should get maps", async (done) =>
inject([MapService], (service: MapService) => {
// Return promise
- return service.maps().toPromise().then(
- // Pass
- (maps : OptionMap[]) => {
- expect(maps).toBeDefined();
- expect(maps.length).toBeGreaterThan(1);
- done();
- },
- // Fail
- (error) => {
- fail(error);
- done();
- });
- })()
- );
-
+ return service
+ .maps()
+ .toPromise()
+ .then(
+ // Pass
+ (maps: OptionMap[]) => {
+ expect(maps).toBeDefined();
+ expect(maps.length).toBeGreaterThan(1);
+ done();
+ },
+ // Fail
+ (error) => {
+ fail(error);
+ done();
+ },
+ );
+ })());
});
diff --git a/src/app/map/map.service.ts b/src/app/map/map.service.ts
index 6012db3..69624f6 100644
--- a/src/app/map/map.service.ts
+++ b/src/app/map/map.service.ts
@@ -1,75 +1,70 @@
-import { Injectable } from '@angular/core';
-import {Http, Response, Headers, RequestOptions} from '@angular/http';
-import { Observable } from 'rxjs/Observable';
-import {OptionMap, AbaMap } from './map';
-import { LayerType } from './layer';
-import 'rxjs/add/operator/toPromise';
-
-const LayerTypeId: { [id: number]: LayerType } = {
- 0: { kind: "square" },
- 1: { kind: "city" }
-};
-
-@Injectable()
-export class MapService {
-
- //private mapsUrl = "app/maps";
- private mapsUrl = "https://audiotactile.ovh/proxy/index.php/";
- private divId: Node | string = 'map-div';
-
- constructor(private http: Http) {
- }
-
- add(optionMap: OptionMap): Observable {
-
- return this.http.post(
- this.mapsUrl, JSON.stringify(optionMap)
- ).map( r => r.json().id );
-
- }
-
- map(id: number): Observable {
- return this.http.get(
- this.mapsUrl + `maps/${id}`).map(
- (r: Response) => this.build(r.json())
- );
- }
-
- defaultMap(): Observable {
- const startExtent = {
- xmin: 780000.0,
- ymin: 5720000.0,
- xmax: 1105000.0,
- ymax: 6100000.0,
-
- spatialReference: {
- wkid: 102100
- }
- };
-
- return Observable.create(
- o => {
- const om = new OptionMap(800, 1176, 0, JSON.stringify(startExtent));
- om.layerType = { kind: "osm" };
- o.next(om)
- }
- );
- }
-
- maps(): Observable {
- return this.http.get(this.mapsUrl + 'maps').map( (r: Response) => {
- let os = r.json() as OptionMap[];
- return os.map(o => this.build(o) );
- } );
- }
-
- delete(id: number) {}
-
- /**
- * Build a complete OptionMap from the basic OptionMap
- */
- private build(optionMap: OptionMap): OptionMap {
- optionMap.layerType = LayerTypeId[optionMap.city];
- return optionMap;
- }
-}
+import { Injectable } from "@angular/core";
+import { Http, Response } from "@angular/http";
+import "rxjs/add/operator/toPromise";
+import { Observable } from "rxjs/Observable";
+import { LayerType } from "./layer";
+import { OptionMap } from "./map";
+
+const LAYER_TYPE_ID: { [id: number]: LayerType } = {
+ 0: { kind: "square" },
+ 1: { kind: "city" },
+};
+
+@Injectable()
+export class MapService {
+ private mapsUrl = "https://audiotactile.ovh/proxy/index.php/";
+ private divId: Node | string = "map-div";
+
+ constructor(private http: Http) {}
+
+ public add(optionMap: OptionMap): Observable {
+ return this.http
+ .post(this.mapsUrl, JSON.stringify(optionMap))
+ .map((r) => r.json().id);
+ }
+
+ public map(id: number): Observable {
+ return this.http
+ .get(this.mapsUrl + `maps/${id}`)
+ .map((r: Response) => this.build(r.json()));
+ }
+
+ public defaultMap(): Observable {
+ const startExtent = {
+ xmax: 1105000.0,
+ xmin: 780000.0,
+ ymax: 6100000.0,
+ ymin: 5720000.0,
+
+ spatialReference: {
+ wkid: 102100,
+ },
+ };
+
+ return Observable.create((o) => {
+ const om: OptionMap = {
+ city: 0,
+ extent: JSON.stringify(startExtent),
+ height: 800,
+ width: 1176,
+ };
+ om.layerType = { kind: "osm" };
+ o.next(om);
+ });
+ }
+
+ public maps(): Observable {
+ return this.http.get(this.mapsUrl + "maps").map((r: Response) => {
+ const os = r.json() as OptionMap[];
+ return os.map((o) => this.build(o));
+ });
+ }
+
+ /**
+ * Build a complete OptionMap from the basic OptionMap
+ */
+ private build(optionMap: OptionMap): OptionMap {
+ optionMap.layerType = LAYER_TYPE_ID[optionMap.city];
+ return optionMap;
+ }
+}
diff --git a/src/app/map/map.ts b/src/app/map/map.ts
index 1036e3f..29bcc1d 100644
--- a/src/app/map/map.ts
+++ b/src/app/map/map.ts
@@ -1,147 +1,163 @@
-import ArcgisMap = require('esri/map');
-import Graphic = require('esri/graphic');
-import Extent = require('esri/geometry/Extent');
-import OpenStreetMapLayer = require('esri/layers/OpenStreetMapLayer');
-import * as _ from "lodash";
-
-import {RootLayer, CityRootBrailleLayer, SquareRootBrailleLayer, OsmRootLayer, LayerType, Square, City} from './layer';
-import Layer = require("esri/layers/layer");
-
-export class OptionMap {
- public constructor(
- public height: number,
- public width: number,
- public city: number,
- public extent: string,
- public uid?: number,
- public title?: string,
- public owner?: number,
- public graphics?: any,
- public hash?: string,
- public creationDate?: string,
- public layerType?: LayerType
- ) {}
-
-}
-
-export class AbaMap extends ArcgisMap {
-
- private layers: RootLayer[] = [];
-
- public uid?: number;
- public title?: string;
- public owner?: number;
- public hash?: string;
- public creationDate?: string;
-
- public currentLayerVisible : LayerType;
- public onUpdateStart? : () => void;
- public onUpdateEnd? : () => void;
-
- // Create a new fresh instance
- public constructor(divId: Node | string, extent?: Extent, layerType? : LayerType) {
-
- super(divId, { logo: false, slider: false });
-
- if(!extent){
- extent = new Extent({
- xmin: 780000.0,
- ymin: 5720000.0,
- xmax: 1105000.0,
- ymax: 6100000.0,
- spatialReference: {
- wkid: 102100
- }
- });
- }
-
- this.setExtent(extent);
-
- this.layers.push(new OsmRootLayer());
- this.layers.push(new SquareRootBrailleLayer());
- this.layers.push(new CityRootBrailleLayer());
- let finalLayers = _.flatten(this.layers.map ( l => l.layers() ));
-
- this.setLayerVisible({kind:"osm"});
-
- this.registerUpdateEventsOnLayers();
-
- this.addLayers(finalLayers);
-
- }
-
- // Register update state of each layers
- public registerUpdateEventsOnLayers() {
- this.layers.forEach((layer) => {
- layer.onUpdateStart = () => {
- if(layer.id == this.currentLayerVisible.kind && this.onUpdateStart)
- this.onUpdateStart();
- }
- layer.onUpdateEnd = () => {
- if(layer.id == this.currentLayerVisible.kind && this.onUpdateEnd)
- this.onUpdateEnd();
- }
- })
- }
-
- public setLayerVisible(layerType: LayerType) {
- // Set current layer visible
- this.currentLayerVisible = layerType;
-
- this.layers.forEach(
- (layer) => {
- layer.setVisibility( layerType.kind === layer.id );
- }
- );
- }
-
- public static fromOptionMap(divId: Node | string, optionMap: OptionMap, layerType? : LayerType): AbaMap {
-
- const abaMap: AbaMap = new AbaMap(divId, new Extent(JSON.parse(optionMap.extent)));
-
- abaMap.uid = optionMap.uid;
- abaMap.height = optionMap.height;
- abaMap.width = optionMap.width;
-
- if(layerType)
- abaMap.setLayerVisible(layerType);
- else if (optionMap.layerType)
- abaMap.setLayerVisible(optionMap.layerType);
- else
- abaMap.setLayerVisible( {kind: "osm"} );
-
- abaMap.title = optionMap.title;
- abaMap.owner = optionMap.owner;
-
- if(optionMap.graphics) {
- const json: any = JSON.parse(optionMap.graphics);
- json.forEach( (graphic) => abaMap.graphics.add(new Graphic(graphic)));
- }
-
- abaMap.hash = optionMap.hash;
- abaMap.creationDate = optionMap.creationDate;
-
- return abaMap;
- }
-
- public toOptionMap(): OptionMap {
-
- let optionMap: OptionMap = new OptionMap(this.height, this.width, 0, this.extent.toJson());
- optionMap.title = this.title;
-
- let graphics = this.graphics.graphics.filter( g => g.symbol !== undefined).map( g => g.toJson() );
- optionMap.graphics = graphics;
-
- if ( this.isCityMap() ) {
- optionMap.city = 1;
- } else {
- optionMap.city = 0;
- }
-
- return optionMap;
- }
-
- public isCityMap(): boolean {
- return this.layers.some( (l: RootLayer) => l.layers().some( (l: Layer) => l.id === 'city' && l.visible));
- }
-}
+import Extent = require("esri/geometry/Extent");
+import Graphic = require("esri/graphic");
+import Layer = require("esri/layers/layer");
+import OpenStreetMapLayer = require("esri/layers/OpenStreetMapLayer");
+import ArcgisMap = require("esri/map");
+
+import * as _ from "lodash";
+import { LayerType, RootLayer } from "./layer";
+import CityRootBrailleLayer from "./layers/CityRootBrailleLayer";
+import OsmRootLayer from "./layers/OsmRootLayer";
+import SquareRootBrailleLayer from "./layers/SquareRootBrailleLayer";
+
+export interface OptionMap {
+ height: number;
+ width: number;
+ city: number;
+ extent: string;
+ uid?: number;
+ title?: string;
+ owner?: number;
+ graphics?: any;
+ hash?: string;
+ creationDate?: string;
+ layerType?: LayerType;
+}
+
+export class AbaMap extends ArcgisMap {
+ public static fromOptionMap(
+ divId: Node | string,
+ optionMap: OptionMap,
+ layerType?: LayerType,
+ ): AbaMap {
+ const abaMap: AbaMap = new AbaMap(
+ divId,
+ new Extent(JSON.parse(optionMap.extent)),
+ );
+
+ abaMap.uid = optionMap.uid;
+ abaMap.height = optionMap.height;
+ abaMap.width = optionMap.width;
+
+ if (layerType) {
+ abaMap.setLayerVisible(layerType);
+ } else if (optionMap.layerType) {
+ abaMap.setLayerVisible(optionMap.layerType);
+ } else {
+ abaMap.setLayerVisible({ kind: "osm" });
+ }
+
+ abaMap.title = optionMap.title;
+ abaMap.owner = optionMap.owner;
+
+ if (optionMap.graphics) {
+ const json: any = JSON.parse(optionMap.graphics);
+ json.forEach((graphic) => abaMap.graphics.add(new Graphic(graphic)));
+ }
+
+ abaMap.hash = optionMap.hash;
+ abaMap.creationDate = optionMap.creationDate;
+
+ return abaMap;
+ }
+
+ public uid?: number;
+ public title?: string;
+ public owner?: number;
+ public hash?: string;
+ public creationDate?: string;
+
+ public currentLayerVisible: LayerType;
+ public onUpdateStart?: () => void;
+ public onUpdateEnd?: () => void;
+
+ private layers: RootLayer[] = [];
+
+ // Create a new fresh instance
+ public constructor(
+ divId: Node | string,
+ extent?: Extent,
+ layerType?: LayerType,
+ ) {
+ super(divId, { logo: false, slider: false });
+
+ if (!extent) {
+ extent = new Extent({
+ spatialReference: {
+ wkid: 102100,
+ },
+ xmax: 1105000.0,
+ xmin: 780000.0,
+ ymax: 6100000.0,
+ ymin: 5720000.0,
+ });
+ }
+
+ this.setExtent(extent);
+
+ this.layers.push(new OsmRootLayer());
+ this.layers.push(new SquareRootBrailleLayer());
+ this.layers.push(new CityRootBrailleLayer());
+ const finalLayers = _.flatten(this.layers.map((l) => l.layers()));
+
+ this.setLayerVisible({ kind: "osm" });
+
+ this.registerUpdateEventsOnLayers();
+
+ this.addLayers(finalLayers);
+ }
+
+ // Register update state of each layers
+ public registerUpdateEventsOnLayers() {
+ this.layers.forEach((layer) => {
+ layer.onUpdateStart = () => {
+ if (layer.id === this.currentLayerVisible.kind && this.onUpdateStart) {
+ this.onUpdateStart();
+ }
+ };
+ layer.onUpdateEnd = () => {
+ if (layer.id === this.currentLayerVisible.kind && this.onUpdateEnd) {
+ this.onUpdateEnd();
+ }
+ };
+ });
+ }
+
+ public setLayerVisible(layerType: LayerType) {
+ // Set current layer visible
+ this.currentLayerVisible = layerType;
+
+ this.layers.forEach((layer) => {
+ layer.setVisibility(layerType.kind === layer.id);
+ });
+ }
+
+ public toOptionMap(): OptionMap {
+ const optionMap: OptionMap = {
+ city: 0,
+ extent: this.extent.toJson(),
+ height: this.height,
+ width: this.width,
+ };
+ optionMap.title = this.title;
+
+ const graphics = this.graphics.graphics
+ .filter((g) => g.symbol !== undefined)
+ .map((g) => g.toJson());
+ optionMap.graphics = graphics;
+
+ if (this.isCityMap()) {
+ optionMap.city = 1;
+ } else {
+ optionMap.city = 0;
+ }
+
+ return optionMap;
+ }
+
+ public isCityMap(): boolean {
+ return this.layers.some((rootLayer: RootLayer) =>
+ rootLayer.layers().some((l: Layer) => l.id === "city" && l.visible),
+ );
+ }
+}
diff --git a/src/app/map/polygon.ts b/src/app/map/polygon.ts
index bf3e776..e52d1aa 100644
--- a/src/app/map/polygon.ts
+++ b/src/app/map/polygon.ts
@@ -3,8 +3,8 @@
* (jca)
*/
-import * as _ from "lodash";
import Graphic = require("esri/graphic");
+import * as _ from "lodash";
// Segment is a structure of type [ Vertex (in), Vertex (out) ]
// where Vertex is a structure of [ number (x) , number (y) ]
@@ -17,61 +17,76 @@ type Tuple = number[];
// * Enumerates all combination of comparative paths
// * For each, detects segments' intersections and remove them
export function removeCommonSegments(xs: Graphic[]) {
-
- enumerate(xs.length).forEach( ([a, b]: Tuple) => {
+ enumerate(xs.length).forEach(([a, b]: Tuple) => {
const g1: any = xs[a];
const g2: any = xs[b];
- const xWindow = commonCoordinates( [g1.geometry.xmin, g1.geometry.xmax], [g2.geometry.xmin, g2.geometry.xmax] );
- const yWindow = commonCoordinates( [g1.geometry.ymin, g1.geometry.ymax], [g2.geometry.ymin, g2.geometry.ymax] );
-
- if ( !(xWindow.length == 0 || yWindow.length == 0) ) {
+ const xWindow = commonCoordinates(
+ [g1.geometry.xmin, g1.geometry.xmax],
+ [g2.geometry.xmin, g2.geometry.xmax],
+ );
+ const yWindow = commonCoordinates(
+ [g1.geometry.ymin, g1.geometry.ymax],
+ [g2.geometry.ymin, g2.geometry.ymax],
+ );
+ if (!(xWindow.length === 0 || yWindow.length === 0)) {
// Filter only segments inside x and y windows
- const g1FilteredRings = _.filter(g1.geometry.rings, (segment: Segment) => isInside(segment, xWindow, yWindow));
- const g2FilteredRings = _.filter(g2.geometry.rings, (segment: Segment) => isInside(segment, xWindow, yWindow));
+ const g1FilteredRings = _.filter(g1.geometry.rings, (segment: Segment) =>
+ isInside(segment, xWindow, yWindow),
+ );
+ const g2FilteredRings = _.filter(g2.geometry.rings, (segment: Segment) =>
+ isInside(segment, xWindow, yWindow),
+ );
// Compare only segments inside the same window (on x and y)
- _.intersectionWith(g1FilteredRings, g2FilteredRings, isSameSegments).forEach( (s1: Segment) => {
+ _.intersectionWith(
+ g1FilteredRings,
+ g2FilteredRings,
+ isSameSegments,
+ ).forEach((s1: Segment) => {
_.remove(g1.geometry.rings, (s2: Segment) => isSameSegments(s1, s2));
_.remove(g2.geometry.rings, (s2: Segment) => isSameSegments(s1, s2));
- })
+ });
}
-
});
}
// Enumerate tuple of n combinations
// By example, enumerate(3) will return [[0,1], [0, 2], [1, 2]]
function enumerate(n: number): Tuple[] {
-
- let ys: Tuple[] = [];
- let processed: number[] = [];
- let xs = _.range(0, n);
- xs.forEach( (x) => {
+ const ys: Tuple[] = [];
+ const processed: number[] = [];
+ const xs = _.range(0, n);
+ xs.forEach((x) => {
processed.push(x);
- let zs = _.difference(xs, processed);
- zs.forEach( (z) => ys.push([x, z]));
+ const zs = _.difference(xs, processed);
+ zs.forEach((z) => ys.push([x, z]));
});
return ys;
-
}
// Returns if two segments are identical
-function isSameSegments(s1: Segment, s2: Segment): boolean {
- return (s1[0][0] === s2[0][0] && s1[0][1] === s2[0][1]) && (s1[1][0] === s2[1][0] && s1[1][1] === s2[1][1]) ||
- (s1[0][0] === s2[1][0] && s1[0][1] === s2[1][1]) && (s1[1][0] === s2[0][0] && s1[1][1] === s2[0][1]);
+function isSameSegments(s1: Segment, s2: Segment): boolean {
+ return (
+ (s1[0][0] === s2[0][0] &&
+ s1[0][1] === s2[0][1] &&
+ (s1[1][0] === s2[1][0] && s1[1][1] === s2[1][1])) ||
+ (s1[0][0] === s2[1][0] &&
+ s1[0][1] === s2[1][1] &&
+ (s1[1][0] === s2[0][0] && s1[1][1] === s2[0][1]))
+ );
}
// Returns common coordinates of two collinear segments
-function commonCoordinates( segment1: Tuple, segment2: Tuple): Tuple {
+function commonCoordinates(segment1: Tuple, segment2: Tuple): Tuple {
const [s1min, s1max] = segment1;
const [s2min, s2max] = segment2;
const a = Math.max(s1min, s2min);
const b = Math.min(s1max, s2max);
- if ( a < b ) {
+ if (a < b) {
return [a, b];
- }else{
+ } else {
return [];
}
}
@@ -80,8 +95,14 @@ function commonCoordinates( segment1: Tuple, segment2: Tuple): Tuple {
function isInside(segment: Segment, xWindow: Tuple, yWindow: Tuple): boolean {
const vertex1: Vertex = segment[0];
const vertex2: Vertex = segment[1];
- const v1InsideWindow = (xWindow[0] <= vertex1[0] && vertex1[0] <= xWindow[1]) && (yWindow[0] <= vertex1[1] && vertex1[1] <= yWindow[1]);
- const v2InsideWindow = (xWindow[0] <= vertex2[0] && vertex2[0] <= xWindow[1]) && (yWindow[0] <= vertex2[1] && vertex2[1] <= yWindow[1]);
+ const v1InsideWindow =
+ xWindow[0] <= vertex1[0] &&
+ vertex1[0] <= xWindow[1] &&
+ (yWindow[0] <= vertex1[1] && vertex1[1] <= yWindow[1]);
+ const v2InsideWindow =
+ xWindow[0] <= vertex2[0] &&
+ vertex2[0] <= xWindow[1] &&
+ (yWindow[0] <= vertex2[1] && vertex2[1] <= yWindow[1]);
return v1InsideWindow || v2InsideWindow;
}
diff --git a/src/app/map/symbols.ts b/src/app/map/symbols.ts
new file mode 100644
index 0000000..f57eb14
--- /dev/null
+++ b/src/app/map/symbols.ts
@@ -0,0 +1,34 @@
+import Color = require("esri/Color");
+import PictureFillSymbol = require("esri/symbols/PictureFillSymbol");
+import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
+import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+
+import * as blackDotTextureUrl from "Assets/img/textures/blackDot.png";
+import * as tiledLinesTextureUrl from "Assets/img/textures/traitilles.png";
+
+export const HARD_SYMBOL = new SimpleFillSymbol(
+ SimpleFillSymbol.STYLE_SOLID,
+ new SimpleLineSymbol(),
+ new Color("black"),
+);
+
+export const BUILDING_SYMBOL = new PictureFillSymbol(
+ tiledLinesTextureUrl,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ 16,
+ 16,
+);
+
+export const WATER_SYMBOL = new PictureFillSymbol(
+ blackDotTextureUrl,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ 16,
+ 16,
+);
+
+export const GREEN_SYMBOL = new PictureFillSymbol(
+ tiledLinesTextureUrl,
+ new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),
+ 16,
+ 16,
+);
diff --git a/src/app/shared/abaplanHotkeysService.ts b/src/app/shared/abaplanHotkeysService.ts
new file mode 100644
index 0000000..362a256
--- /dev/null
+++ b/src/app/shared/abaplanHotkeysService.ts
@@ -0,0 +1,21 @@
+import { Injectable } from "@angular/core";
+import { Hotkey, HotkeysService } from "angular2-hotkeys";
+
+interface Combination {
+ hotkeys: string | string[];
+ callback: (event?: KeyboardEvent, combo?: string) => boolean | ExtendedKeyboardEvent;
+ description: string;
+}
+
+@Injectable()
+export class AbaplanHotkeysService {
+ private hotkeys: {string: Hotkey | Hotkey[]};
+
+ constructor(private _hotkeysService: HotkeysService) {}
+
+ public addHotkeys(hotkeys: Combination[]) {
+ hotkeys.forEach((hotkey) => this._hotkeysService.add(
+ new Hotkey(hotkey.hotkeys, hotkey.callback, undefined, hotkey.description),
+ ));
+ }
+}
diff --git a/src/app/shared/drop.pipe.ts b/src/app/shared/drop.pipe.ts
index 990c34d..1b26ffe 100644
--- a/src/app/shared/drop.pipe.ts
+++ b/src/app/shared/drop.pipe.ts
@@ -1,9 +1,9 @@
-import { Pipe, PipeTransform } from '@angular/core';
-import * as _ from "lodash";
-
-@Pipe({name: 'drop'})
-export class DropPipe implements PipeTransform {
- transform(collection: any[], n: number): any[] {
- return _.drop(collection, n);
- }
-}
\ No newline at end of file
+import { Pipe, PipeTransform } from "@angular/core";
+import * as _ from "lodash";
+
+@Pipe({name: "drop"})
+export class DropPipe implements PipeTransform {
+ public transform(collection: any[], n: number): any[] {
+ return _.drop(collection, n);
+ }
+}
diff --git a/src/app/shared/length.pipe.ts b/src/app/shared/length.pipe.ts
index 80053da..30cdb16 100644
--- a/src/app/shared/length.pipe.ts
+++ b/src/app/shared/length.pipe.ts
@@ -1,8 +1,8 @@
-import { Pipe, PipeTransform } from '@angular/core';
-
-@Pipe({name: 'length'})
-export class LengthPipe implements PipeTransform {
- transform(collection: any[]): number {
- return collection.length;
- }
-}
\ No newline at end of file
+import { Pipe, PipeTransform } from "@angular/core";
+
+@Pipe({name: "length"})
+export class LengthPipe implements PipeTransform {
+ public transform(collection: any[]): number {
+ return collection.length;
+ }
+}
diff --git a/src/app/shared/modal-yesno/modal-yesno.component.ts b/src/app/shared/modal-yesno/modal-yesno.component.ts
index 1f36421..337f583 100644
--- a/src/app/shared/modal-yesno/modal-yesno.component.ts
+++ b/src/app/shared/modal-yesno/modal-yesno.component.ts
@@ -1,40 +1,38 @@
-import { Component, Input, Output, EventEmitter } from "@angular/core";
-
-@Component({
- selector: 'aba-modal-yesno',
- templateUrl: 'modal-yesno.component.html',
- styleUrls: ['modal-yesno.component.css']
-})
-export class ModalYesNoComponent {
-
- @Input('visible') visible: boolean = false;
- @Output() onYesEvent: EventEmitter = new EventEmitter();
- @Output() onCloseEvent: EventEmitter = new EventEmitter();
-
- private title: string = "";
-
- constructor() {
- }
-
- private isVisible(): boolean {
- return this.visible;
- }
-
- public open(): void {
- this.visible = true;
- }
- public close(): void{
- this.visible = false;
- }
- public closeWithNo(): void{
- this.visible = false;
- this.onCloseEvent.emit( {} );
- }
-
- private onSubmit(): void {
- this.close();
- console.log("sumbit)");
- this.onYesEvent.emit( {} );
- }
-
-}
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+
+@Component({
+ selector: "aba-modal-yesno",
+ styleUrls: ["modal-yesno.component.css"],
+ templateUrl: "modal-yesno.component.html",
+})
+export class ModalYesNoComponent {
+
+ @Input("visible") public visible: boolean = false;
+ @Output() public onYesEvent: EventEmitter = new EventEmitter();
+ @Output() public onCloseEvent: EventEmitter = new EventEmitter();
+
+ private title: string = "";
+
+ public open(): void {
+ this.visible = true;
+ }
+
+ public close(): void {
+ this.visible = false;
+ }
+
+ public closeWithNo(): void {
+ this.visible = false;
+ this.onCloseEvent.emit( {} );
+ }
+
+ private isVisible(): boolean {
+ return this.visible;
+ }
+
+ private onSubmit(): void {
+ this.close();
+ this.onYesEvent.emit( {} );
+ }
+
+}
diff --git a/src/app/shared/pagination/paginate.purs b/src/app/shared/pagination/paginate.purs
deleted file mode 100644
index 97ef333..0000000
--- a/src/app/shared/pagination/paginate.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Pagination where
-
-import Prelude (map, (==), (<=), ($), show, (>), (&&), (<>), (-), (>=), otherwise, (+))
-import Data.Array ((..))
-import Data.Show (class Show)
-
-mapToString :: forall a. ( Show a ) => Array a -> Array String
-mapToString = map show
-
-paginate :: Int -> Int -> Array String
-paginate page activep
- | page == 0 = []
- | page <= 10 = mapToString $ 1..page
- | page > 10 && activep <= 5 = (mapToString $ 1..7) <> ["..."] <> (mapToString [page-1, page])
- | activep >= page -5 = (mapToString $ 1..2) <> ["..."] <> (mapToString $ (page-6)..page)
- | otherwise = (mapToString $ 1..2)
- <> ["..."]
- <> (mapToString $ (activep-1)..(activep+2))
- <> ["..."]
- <> (mapToString [page-1, page])
-
diff --git a/src/app/shared/pagination/pagination-buttons.component.html b/src/app/shared/pagination/pagination-buttons.component.html
index 0b149f5..6450b87 100644
--- a/src/app/shared/pagination/pagination-buttons.component.html
+++ b/src/app/shared/pagination/pagination-buttons.component.html
@@ -1,15 +1,15 @@
diff --git a/src/app/shared/pagination/pagination-buttons.component.ts b/src/app/shared/pagination/pagination-buttons.component.ts
index cb4178a..3895958 100644
--- a/src/app/shared/pagination/pagination-buttons.component.ts
+++ b/src/app/shared/pagination/pagination-buttons.component.ts
@@ -1,41 +1,80 @@
-import { Component, Input, Output, EventEmitter } from "@angular/core";
-
-const Pagination = require('./paginate');
-
-
-@Component({
- selector: 'aba-pagination-buttons',
- templateUrl: 'pagination-buttons.component.html',
- styleUrls: ['pagination-buttons.component.css']
-})
-export class PaginationComponent {
-
- private activePage: number;
- @Input() collectionSize: number;
- @Input() chunkSize: number;
- @Output() selectedPageChange: EventEmitter = new EventEmitter();
- @Input()
- get selectedPage() { return this.activePage; }
- set selectedPage(val: number){
- this.activePage = val;
- this.selectedPageChange.emit(val);
- }
-
-
- constructor(){
-
- }
-
- private paginationButtonClick(id: string): void {
- this.activePage = parseInt(id);
- this.selectedPageChange.emit(this.activePage);
- }
- private movePagination(inc: number): void {
- this.paginationButtonClick((this.activePage+inc).toString());
- }
-
- private paginate(activePage: string, size: number): string[] {
- const length = Math.ceil(size);
- return Pagination.paginate(length)(parseInt(activePage));
- }
-}
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+import * as _ from "lodash";
+
+@Component({
+ selector: "aba-pagination-buttons",
+ styleUrls: ["pagination-buttons.component.css"],
+ templateUrl: "pagination-buttons.component.html",
+})
+export class PaginationComponent {
+ get activePageNumero(): number {
+ return this._activePageNumero;
+ }
+ set activePageNumero(newValue: number) {
+ this._activePageNumero = newValue;
+ }
+
+ @Input() private collectionSize: number;
+ @Input() private chunkSize: number;
+ get pageNumber() {
+ return Math.ceil(this.collectionSize / this.chunkSize);
+ }
+ @Output()
+ private selectedPageChange: EventEmitter = new EventEmitter();
+ @Input()
+ get selectedPage() {
+ return this.activePageNumero;
+ }
+ set selectedPage(val: number) {
+ this.activePageNumero = val;
+ this.selectedPageChange.emit(val);
+ }
+
+ private _activePageNumero: number;
+
+ public getPagination(): string[] {
+ // no pages
+ if (this.pageNumber === 0) {
+ return [];
+ } else if (this.pageNumber < 10) {
+ // less than 10 pages
+ return _.range(1, this.pageNumber + 1).map((value, index) => String(index));
+ } else {
+ // more than 10 pages
+
+ // currently in the 5 first
+ if (this.activePageNumero <= 5) {
+ return [
+ ..._.range(1, 7 + 1).map((value) => String(value)),
+ "...",
+ ..._.range(this.pageNumber - 1, this.pageNumber + 1).map((value) => String(value)),
+ ];
+ } else if (this.activePageNumero >= this.pageNumber - 5) {
+ // currently in the 5 last
+ return [
+ ..._.range(1, 2 + 1).map((value) => String(value)),
+ "...",
+ ..._.range(this.pageNumber - 6, this.pageNumber + 1).map((value) => String(value)),
+ ];
+ } else {
+ // in the middle
+ return [
+ ..._.range(1, 2 + 1).map((value) => String(value)),
+ "...",
+ ..._.range(this.activePageNumero - 1, this.activePageNumero + 4).map((value) => String(value)),
+ "...",
+ ..._.range(this.pageNumber - 1, this.pageNumber + 1).map((value) => String(value)),
+ ];
+ }
+ }
+ }
+
+ private paginationButtonClick(id: string): void {
+ this.activePageNumero = +id;
+ this.selectedPageChange.emit(this.activePageNumero);
+ }
+
+ private movePagination(inc: number): void {
+ this.paginationButtonClick((this.activePageNumero + inc).toString());
+ }
+}
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index 875f32e..92ae226 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -1,45 +1,40 @@
-// good practices: https://angular.io/styleguide/#!#-a-id-04-10-a-shared-feature-module
-
-import { NgModule } from "@angular/core";
-import { FormsModule } from '@angular/forms';
-
-import { TakePipe } from "./take.pipe";
-import { DropPipe } from "./drop.pipe";
-import { LengthPipe } from "./length.pipe";
-import { HttpModule } from "@angular/http";
-import { MapComponent } from "../map/map.component";
-import { CommonModule } from "@angular/common";
-import {AppRoutingModule} from "../app-routing.module";
-import {ModalYesNoComponent} from "./modal-yesno/modal-yesno.component";
-
-
-@NgModule({
- imports: [
- FormsModule
- , HttpModule // editor component
- , CommonModule
- , AppRoutingModule
- ],
- declarations: [
- TakePipe
- , DropPipe
- , LengthPipe
- , MapComponent
- , ModalYesNoComponent
- ],
- exports: [
- FormsModule
- , TakePipe
- , DropPipe
- , LengthPipe
- , CommonModule
- , MapComponent
- , AppRoutingModule
- , ModalYesNoComponent
- ],
- providers: [ ]
-})
-export class SharedModule { }
-
-
-
+// good practices: https://angular.io/styleguide/#!#-a-id-04-10-a-shared-feature-module
+
+import { CommonModule } from "@angular/common";
+import { NgModule } from "@angular/core";
+import { FormsModule } from "@angular/forms";
+import { HttpModule } from "@angular/http";
+import { AppRoutingModule } from "../app-routing.module";
+import { MapComponent } from "../map/map.component";
+import { DropPipe } from "./drop.pipe";
+import { LengthPipe } from "./length.pipe";
+import { ModalYesNoComponent } from "./modal-yesno/modal-yesno.component";
+import { TakePipe } from "./take.pipe";
+
+@NgModule({
+ declarations: [
+ TakePipe,
+ DropPipe,
+ LengthPipe,
+ MapComponent,
+ ModalYesNoComponent,
+ ],
+ exports: [
+ FormsModule,
+ TakePipe,
+ DropPipe,
+ LengthPipe,
+ CommonModule,
+ MapComponent,
+ AppRoutingModule,
+ ModalYesNoComponent,
+ ],
+ imports: [
+ FormsModule,
+ HttpModule, // editor component
+ CommonModule,
+ AppRoutingModule,
+ ],
+ providers: [],
+})
+export class SharedModule { }
diff --git a/src/app/shared/take.pipe.ts b/src/app/shared/take.pipe.ts
index 020113a..d77332e 100644
--- a/src/app/shared/take.pipe.ts
+++ b/src/app/shared/take.pipe.ts
@@ -1,9 +1,9 @@
-import { Pipe, PipeTransform } from '@angular/core';
-import * as _ from "lodash";
-
-@Pipe({name: 'take'})
-export class TakePipe implements PipeTransform {
- transform(collection: any[], n: number): any[] {
- return _.take(collection, n);
- }
-}
\ No newline at end of file
+import { Pipe, PipeTransform } from "@angular/core";
+import * as _ from "lodash";
+
+@Pipe({name: "take"})
+export class TakePipe implements PipeTransform {
+ public transform(collection: any[], n: number): any[] {
+ return _.take(collection, n);
+ }
+}
diff --git a/src/app/touchpad/touchpad.component.ts b/src/app/touchpad/touchpad.component.ts
index 67bfe47..b608452 100644
--- a/src/app/touchpad/touchpad.component.ts
+++ b/src/app/touchpad/touchpad.component.ts
@@ -1,546 +1,605 @@
-import {Component, ViewChild, ElementRef} from "@angular/core";
-import { Router, ActivatedRoute, Params } from '@angular/router';
-import 'rxjs/add/operator/switchMap';
-import { MapService } from '../map/map.service';
-import { GeoService } from '../core/geo.service';
-import { VoiceService } from '../core/voice.service';
-import { StateService } from "../core/state.service";
-import { KmlService } from "../core/kml.service";
-import { TransportService } from "../core/transport.service";
-import { OptionMap } from '../map/map';
-import { MapComponent } from '../map/map.component'
-
-import WebMercatorUtils = require('esri/geometry/webMercatorUtils');
-import Geometry = require('esri/geometry/Geometry');
-import Point = require('esri/geometry/Point')
-import Graphic = require("esri/graphic");
-import SimpleMarkerSymbol = require("esri/symbols/SimpleMarkerSymbol");
-import {Vector2d, Plane2d, transform} from '../core/vector2d';
-import LatLng = google.maps.LatLng;
-
-import {TranslateService} from "ng2-translate";
-import {ScalarObservable} from 'rxjs/observable/ScalarObservable';
-
-interface translations {value : string};
-
-@Component({
- selector: 'aba-touchpad',
- templateUrl: 'touchpad.component.html',
- styleUrls: ['touchpad.component.css'],
- providers : []
-})
-export class TouchpadComponent {
- @ViewChild(MapComponent)
- private mapComponent: MapComponent;
- private nbClick: number = 0;
- private readonly defaultVector: Vector2d = {x: 0, y: 0};
- private devicePlane: Plane2d = { A: this.defaultVector, B: this.defaultVector, C: this.defaultVector, D: this.defaultVector};
- private divPlane: Plane2d = { A: this.defaultVector, B: this.defaultVector, C: this.defaultVector, D: this.defaultVector};
-
- private searchingPoint: Point | undefined = undefined;
-
- constructor(
- private route: ActivatedRoute,
- private router: Router,
- private mapService: MapService,
- private voiceService : VoiceService,
- private stateService : StateService,
- private geoService : GeoService,
- private translateService: TranslateService,
- private kmlService: KmlService,
- private transportService: TransportService,
- private _elementRef: ElementRef
- ){
-
- /**Init the voice commands and start calibration
- *
- * Can't be directly in the constructor beacause of
- * compatibity with voice Commands (library can't charge voice early)
- * Hack with onReady callback to be call after
- * init of page
- * (pj)
- */
- document.onreadystatechange= () => {
- this.voiceService.initialization();
- this.prepareVoiceCommand();
- this.voiceService.say(this.getStringTranslation("touchpadCenter"));
- }
-
- document.onclick = (ev: MouseEvent) => {
- if (!this.isCalibrated()) {
- /*
- * Calibration mode.
- * At the beginning, we detect the 4th corner of the device to map with de real div esri map
- */
- switch (this.nbClick) {
- case 0:
- this.voiceService.say(this.getStringTranslation("touchpadTopLeft"));
- break;
- case 1:
- /* Note: clientX and clientY for firefox compatibility */
- this.devicePlane.A = {x: ev.x || ev.clientX, y: ev.y || ev.clientY};
-
- const geo = this.mapComponent.map.extent;
-
- this.divPlane.C = {x: geo.xmin, y: geo.ymin };
- this.divPlane.D = {x: geo.xmax, y: geo.ymin };
- this.divPlane.A = {x: geo.xmin, y: geo.ymax };
- this.divPlane.B = {x: geo.xmax, y: geo.ymax };
-
- this.voiceService.say(this.getStringTranslation("touchpadTopRight"));
- break;
-
- case 2:
- this.devicePlane.B = {x: ev.x || ev.clientX, y: ev.y || ev.clientY};
-
- this.voiceService.say(this.getStringTranslation("touchpadBottomLeft"));
- break;
- case 3:
- this.devicePlane.C = {x: ev.x || ev.clientX, y: ev.y || ev.clientY};
-
- this.voiceService.say(this.getStringTranslation("touchpadBottomRight"));
- break;
- case 4:
- this.devicePlane.D = {x: ev.x || ev.clientX, y: ev.y || ev.clientY};
-
- this.voiceService.say(this.getStringTranslation("touchpadOk"));
- break;
- }
- this.nbClick += 1;
-
- } else if (this.isCalibrated()) {
-
- // Transformation from device coordinates to esri map coordinates
-
- // Detect current `P` point
- const OP = { x: ev.x || ev.clientX, y: ev.y || ev.clientY };
-
- // `P'` is the transformed final point on the esri map
- const OP_ = transform(OP, this.devicePlane, this.divPlane);
-
- // Transform to EsriPoint
- const mappedPoint = new Point(OP_.x, OP_.y);
- const touchPoint : Point = WebMercatorUtils.webMercatorToGeographic(mappedPoint);
- this.transportService.currentPoint = touchPoint;
-
- switch (this.stateService.activeMode().mode){
- case "reading":
- this.locateClick(touchPoint);
- break;
- case "searching":
- if (this.searchingPoint !== undefined){
- this.searchLocationClick(this.searchingPoint, touchPoint);
- } else {
- this.voiceService.say("Recherche en cours");
- }
- break;
- case "itinerary":
- this.kmlService.currentPoint(touchPoint.y,touchPoint.x);
- this.locateClick(touchPoint);
- break;
- }
-
- const symbol = new SimpleMarkerSymbol({
- color: [226, 119, 40],
- outline: { color: [255, 255, 255], width: 2 },
- });
- const graphic = new Graphic(touchPoint, symbol);
- this.mapComponent.map.graphics.add(graphic);
-
- }
- };
-
- }
-
- private isCalibrated(): boolean {
- return this.nbClick > 4;
- }
-
- onClick() {
- // Enable full screen
- this.mapComponent.map.setLayerVisible({kind: "osm"});
- const elem = document.getElementsByTagName('body')[0];
- const f = elem.requestFullscreen || elem.msRequestFullscreen || elem.mozRequestFullScreen || elem.webkitRequestFullscreen;
- f.call(elem);
- }
-
- ngOnInit() {
-
- // (+) converts string 'id' to a number
- let id = +this.route.snapshot.params['id'];
-
- this.mapService.map(id)
- .subscribe((optionMap: OptionMap) => {
-
- this.mapComponent.initMap(optionMap);
-
- /* jca: hack for the issue #76 and #77
- * To load an OSM map on a map saved with a different layer, we must load osm right
- * after the beginning of the original layer.
- */
- this.mapComponent.map.on("layer-reorder", () => {
- //this.mapComponent.map.setLayerVisible({kind: "osm"});
- });
- this.mapComponent.map.on("extent-change", () => {
- this.mapComponent.map.setLayerVisible({kind: "osm"});
-
- const map = document.getElementById("esri-map");
- if (map !== null){
- const style = map.style;
- style.height = optionMap.height + "px";
- style.width = optionMap.width + "px";
- }
-
- });
-
- this.mapComponent.map.disableMapNavigation();
-
- this.mapComponent.map.width = optionMap.width;
- this.mapComponent.map.height = optionMap.height;
-
- });
- }
-
- /** Switch to reading mode and notify the user */
- private readCommand():void{
- this.stateService.changeMode( {mode: "reading"} );
- this.voiceService.say(this.getStringTranslation("readActive"));
- }
-
- /** Switch to search mode and notify the user */
- private searchCommand(i: number, wildcard: string):void{
- this.searchingPoint = undefined;
- this.stateService.changeMode( {mode: "searching"} );
- this.voiceService.say(this.getStringTranslation("searchOk") + wildcard);
-
- this.geoService.point(wildcard).subscribe(
- (searchPoint: Point) => {
- this.searchingPoint = searchPoint;
- if (searchPoint === undefined){
- this.voiceService.say(this.getStringTranslation("searchKo"));
- this.stateService.changeMode( {mode: "reading"} );
- }
- }
- );
- }
-
- /** Search the closest station */
- private searchStation():void{
- this.searchingPoint = undefined;
- this.stateService.changeMode( {mode: "searching"} );
-
- this.transportService.stationsNearby().subscribe(
- (stations : any) => {
- if (stations){
- const station = stations.json().stations.find(station => station.coordinate.x !== null && station.coordinate.y !== null);
- if (station) {
- const point = new Point(station.coordinate.y,station.coordinate.x);
- this.searchingPoint = point;
- this.voiceService.say(this.getStringTranslation("transportOKDescri") + station.name);
- return
- }
- }
-
- // If we get to this point, that mean that something went wrong with the station search
- this.voiceService.say(this.getStringTranslation("transportKODescri"));
- this.readCommand();
- }
- );
- }
-
- /** Search the closest station by line */
- private searchStationByLine(i: number, wildcard: string):void{
- this.searchingPoint = undefined;
- this.stateService.changeMode( {mode: "searching"} );
-
- this.transportService.stationsNearby().subscribe(
- (stations : any) => {
- if (stations){
- this.voiceService.say(this.getStringTranslation("transportOKDescri") + wildcard);
- this.getBusByStation(stations.json(),0,wildcard);
- }else{
- this.voiceService.say(this.getStringTranslation("transportKODescri")+wildcard);
- this.readCommand();
- }
- }
- );
- }
-
- /* Check if stops contains specific line */
- private getBusByStation(station : any,index : number,line: string){
- if(index < station.stations.length){
- this.transportService.closerStationFilter(station.stations[index].name).subscribe(
- st => {
- if(st.json().stationboard.some(elem => elem.number == line)){
- const station = st.json().station;
- const point = new Point(station.coordinate.y,station.coordinate.x);
- this.searchingPoint = point;
- }
- else{
- setTimeout(() =>this.getBusByStation(station,index+1,line), 400)
- }
- }
- )
- }else{
- this.voiceService.say(this.getStringTranslation("transportKODescri"));
- this.readCommand();
- }
- }
-
- /** Switch to itinerary mode */
- private itineraryCommand():void{
- this.stateService.changeMode( {mode: "itinerary"} );
- this.voiceService.say(this.getStringTranslation("itineraryActive"));
- //In case of the user switch mod in middle of session , reset values
- this.kmlService.endCurrentSession();
- }
-
- /** Add last Press Location */
- private itineraryAddCommand(i: number, wildcard: string):void{
- if(this.stateService.activeMode().mode == "itinerary"){
- if(this.kmlService.addCurrentPoint(wildcard))
- this.voiceService.say(this.getStringTranslation("itineraryAddPoint")+wildcard);
- else
- this.voiceService.say(this.getStringTranslation("itineraryAddPointError"));
- }else{
- this.voiceService.say(this.getStringTranslation("itineraryError"));
- }
- }
-
- /** Delet last add point */
- private itineraryDeletLastCommand():void{
- if(this.stateService.activeMode().mode == "itinerary"){
- if(this.kmlService.deletLastPoint())
- this.voiceService.say(this.getStringTranslation("itineraryDelet"));
- else
- this.voiceService.say(this.getStringTranslation("itineraryDeletLastError"));
- }else{
- this.voiceService.say(this.getStringTranslation("itineraryError"));
- }
- }
-
- /** Stop the current Session */
- private itineraryStopSession():void{
- this.kmlService.endCurrentSession();
- this.readCommand();
- }
-
- private itineraryEndSession(i: number, wildcard: string):void{
- if(this.kmlService.toKml(wildcard)){
- this.voiceService.say(this.getStringTranslation("itinerarySave"));
- this.kmlService.endCurrentSession();
- this.readCommand();
- }
- else
- this.voiceService.say(this.getStringTranslation("itinerarySaveError"));
- }
-
- /** Notity the user in terms of input number */
- private offendCommand(i:number):void{
- if (i%3===0) {
- this.voiceService.say(this.getStringTranslation("offendTextOne"));
- } else if (i%3 === 1){
- this.voiceService.say(this.getStringTranslation("offendTextTwo"));
- }else{
- this.voiceService.say(this.getStringTranslation("offendTextTree"));
- }
- }
-
- /** Change language of application */
- private changeLang(langTranslate : string,langVoice : string):void{
- this.translateService.use(langTranslate);
- this.voiceService.changeLang(langVoice);
- }
-
- /** Help Command */
- private helpCommand(i: number, wildcard: string, langTranslate : string):void{
- let currentLang = this.translateService.currentLang;
- this.translateService.use(langTranslate);
- console.log(wildcard);
- console.log(this.getStringTranslations("itineraryId")[0]);
- switch(wildcard){
- case this.getStringTranslations("readId")[0]:
- this.voiceService.say(this.getStringTranslation("readHelp"));
- break;
- case this.getStringTranslations("itineraryId")[0]:
- this.voiceService.say(this.getStringTranslation("itineraryHelp"));
- this.voiceService.say(this.getStringTranslations("itineraryAddId")[0]
- +this.getStringTranslation("itineraryAddHelp"));
- this.voiceService.say(this.getStringTranslations("itineraryDeletId")[0]
- +this.getStringTranslation("itineraryDelHelp"));
- this.voiceService.say(this.getStringTranslations("itinerarySaveId")[0]
- +this.getStringTranslation("itinerarySaveHelp"));
- this.voiceService.say(this.getStringTranslations("itineraryAbortId")[0]
- +this.getStringTranslation("itineraryEndHelp"));
- break;
- case this.getStringTranslations("searchId")[0].replace(' *',''):
- this.voiceService.say(this.getStringTranslation("searchHelp"));
- break;
- default:
- this.voiceService.say(this.getStringTranslation("mainHelpIntro"));
- // Read Command
- this.voiceService.say(this.getStringTranslation("mainHelpMode")
- +this.getStringTranslations("readId")[0]);
- this.voiceService.say(this.getStringTranslation("mainHelpDo")
- + this.getStringTranslation("readDescri"));
- // Search Command
- this.voiceService.say(this.getStringTranslation("mainHelpMode")
- +this.getStringTranslations("searchId")[0]);
- this.voiceService.say(this.getStringTranslation("mainHelpDo")
- + this.getStringTranslation("searchDescri"));
-
- // Search Transport Command
- this.voiceService.say(this.getStringTranslation("mainHelpMode")
- +this.getStringTranslations("transportId")[0]);
- this.voiceService.say(this.getStringTranslation("mainHelpDo")
- + this.getStringTranslation("transportDescri"));
-
- // Itinerary Command
- this.voiceService.say(this.getStringTranslation("mainHelpMode")
- +this.getStringTranslations("itineraryId")[0]);
- this.voiceService.say(this.getStringTranslation("mainHelpDo")
- + this.getStringTranslation("itineraryDescri"));
- // * help
- this.voiceService.say(this.getStringTranslation("mainHelp*"));
-
- // lang
- this.voiceService.say(this.getStringTranslation("mainHelpLang"));
- break;
- }
- this.translateService.use(currentLang);
- }
-
- /** Add Commands */
- private prepareVoiceCommand() {
- // Loop for add command in each lang of application
- let langs = this.translateService.getLangs();
- for(let entry of langs){
- this.translateService.use(entry);
- let codeVoice = this.getStringTranslation("codeLangVoice");
-
- // Reading mode (default)
- this.voiceService.addCommand(
- this.getStringTranslations("readId"),
- this.getStringTranslation("readDescri"),
- () => this.readCommand()
- );
-
- // Searching mode
- this.voiceService.addCommand(
- this.getStringTranslations("searchId"),
- this.getStringTranslation("searchDescri"),
- (i: number, wildcard: string) => this.searchCommand(i, wildcard)
- );
-
- // React to insults command
- this.voiceService.addCommand(
- this.getStringTranslations("offendId"),
- this.getStringTranslation("offendDescri"),
- (i: number) => this.offendCommand(i)
- );
-
- // Switch Lang command
- this.voiceService.addCommand(
- [this.getStringTranslation("myLang")],
- this.getStringTranslation("codeLang"),
- () => this.changeLang(entry,codeVoice)
- );
-
- // switch to itinerary Mode
- this.voiceService.addCommand(
- this.getStringTranslations("itineraryId"),
- this.getStringTranslation("itineraryDescri"),
- () => this.itineraryCommand()
- );
-
- // itinerary Mode - Add
- this.voiceService.addCommand(
- this.getStringTranslations("itineraryAddId"),
- this.getStringTranslation("itineraryAddDescri"),
- (i: number, wildcard: string) => this.itineraryAddCommand(i, wildcard)
- );
-
- // itinerary Mode - Delet Last
- this.voiceService.addCommand(
- this.getStringTranslations("itineraryDeletId"),
- this.getStringTranslation("itineraryDeletDescri"),
- () => this.itineraryDeletLastCommand()
- );
-
- // itinerary Mode - Abort
- this.voiceService.addCommand(
- this.getStringTranslations("itineraryAbortId"),
- this.getStringTranslation("itineraryAbortDescri"),
- () => this.itineraryStopSession()
- );
-
- // itinerary Mode - Save As
- this.voiceService.addCommand(
- this.getStringTranslations("itinerarySaveId"),
- this.getStringTranslation("itinerarySaveDescri"),
- (i: number, wildcard: string) => this.itineraryEndSession(i, wildcard)
- );
-
- // Search Station
- this.voiceService.addCommand(
- this.getStringTranslations("transportId"),
- this.getStringTranslation("transportDescri"),
- () => this.searchStation()
- );
-
- // Search Station
- this.voiceService.addCommand(
- this.getStringTranslations("transportSearchId"),
- this.getStringTranslation("transportSearchDescri"),
- (i: number, wildcard: string) => this.searchStationByLine(i,wildcard)
- );
-
- // itinerary Mode - Save As
- this.voiceService.addCommand(
- this.getStringTranslations("helpId"),
- this.getStringTranslation("helpDescri"),
- (i: number, wildcard: string) => this.helpCommand(i, wildcard,entry)
- );
-
- }
- this.translateService.use(this.translateService.getBrowserLang());
- }
-
- /** Locate click and notity the user */
- private locateClick(point: Point): void {
-
- this.geoService.address(point).subscribe(
- address => {
- if (address){
- this.voiceService.sayGeocodeResult(address);
- }
- }
- );
- }
-
-
- /** Notity the user of direction */
- private searchLocationClick(location: Point, touchPoint: Point): void {
- let data : Array = this.geoService.directionToText(location, touchPoint);
- let diction : string;
- if(data.length>1){//["search_upper", "searchTo", "522", "searchKilometer"]
- diction = this.getStringTranslation(data[0])+" "+this.getStringTranslation(data[1])
- +" "+ data[2] +" "+ this.getStringTranslation(data[3]);
- }
- else{
- diction = this.getStringTranslation(data[0]);
- }
- this.voiceService.say(diction);
- }
-
- /** Return string by id and current lang of application */
- private getStringTranslation(s: string) : string {
- return (this.translateService.get(s)as ScalarObservable).value;
- }
-
- /** Return array of string by id and current lang of application */
- private getStringTranslations(s: string) : Array {
- return (this.translateService.get(s)as ScalarObservable>).value.map(object => object.value);
-
- }
-}
+import { Component, ElementRef, ViewChild } from "@angular/core";
+import { ActivatedRoute, Router } from "@angular/router";
+import { TranslateService } from "ng2-translate";
+import "rxjs/add/operator/switchMap";
+import { ScalarObservable } from "rxjs/observable/ScalarObservable";
+import { GeoService, SearchedPointIndications } from "../core/geo.service";
+import { KmlService } from "../core/kml.service";
+import { StateService } from "../core/state.service";
+import { TransportService } from "../core/transport.service";
+import { Plane2d, transform, Vector2d } from "../core/vector2d";
+import { VoiceService } from "../core/voice.service";
+import { OptionMap } from "../map/map";
+import { MapComponent } from "../map/map.component";
+import { MapService } from "../map/map.service";
+import { AbaplanHotkeysService } from "../shared/abaplanHotkeysService";
+
+import Geometry = require("esri/geometry/Geometry");
+import Point = require("esri/geometry/Point");
+import WebMercatorUtils = require("esri/geometry/webMercatorUtils");
+import Graphic = require("esri/graphic");
+import SimpleMarkerSymbol = require("esri/symbols/SimpleMarkerSymbol");
+import LatLng = google.maps.LatLng;
+
+interface Translations {
+ value: string;
+}
+
+@Component({
+ providers: [],
+ selector: "aba-touchpad",
+ styleUrls: ["touchpad.component.css"],
+ templateUrl: "touchpad.component.html",
+})
+export class TouchpadComponent {
+ @ViewChild(MapComponent)
+ private mapComponent: MapComponent;
+ private nbClick: number = 0;
+ private readonly defaultVector: Vector2d = {x: 0, y: 0};
+ private devicePlane: Plane2d = {
+ A: this.defaultVector,
+ B: this.defaultVector,
+ C: this.defaultVector,
+ D: this.defaultVector,
+ } as Plane2d;
+ private divPlane: Plane2d = {
+ A: this.defaultVector,
+ B: this.defaultVector,
+ C: this.defaultVector,
+ D: this.defaultVector,
+ } as Plane2d;
+
+ private searchingPoint: Point | undefined = undefined;
+
+ constructor(
+ private route: ActivatedRoute,
+ private router: Router,
+ private mapService: MapService,
+ private voiceService: VoiceService,
+ private stateService: StateService,
+ private geoService: GeoService,
+ private translateService: TranslateService,
+ private kmlService: KmlService,
+ private transportService: TransportService,
+ private _elementRef: ElementRef,
+ private hotkey: AbaplanHotkeysService,
+ ) {
+
+ // TODO: move this outside of the code
+ hotkey.addHotkeys([
+ {
+ callback: () => {
+ this.readCommand();
+ return false;
+ },
+ description: "Passe en mode plan (lecture)",
+ hotkeys: ["l", "p"],
+ },
+ {
+ callback: () => {
+ this.searchStation();
+ return false;
+ },
+ description: "Passe en mode transport",
+ hotkeys: "t",
+ },
+ {
+ callback: () => {
+ this.itineraryCommand();
+ return false;
+ },
+ description: "Passe en mode itinéraire",
+ hotkeys: "i",
+ },
+ ]);
+
+ /**Init the voice commands and start calibration
+ *
+ * Can"t be directly in the constructor beacause of
+ * compatibity with voice Commands (library can"t charge voice early)
+ * Hack with onReady callback to be call after
+ * init of page
+ * (pj)
+ */
+ document.onreadystatechange = () => {
+ this.voiceService.initialization();
+ this.prepareVoiceCommand();
+ this.voiceService.say(this.getStringTranslation("touchpadCenter"));
+ };
+
+ document.onclick = (ev: MouseEvent) => {
+ if (!this.isCalibrated()) {
+ /*
+ * Calibration mode.
+ * At the beginning, we detect the 4th corner of the device to map with de real div esri map
+ */
+ switch (this.nbClick) {
+ case 0:
+ this.voiceService.say(this.getStringTranslation("touchpadTopLeft"));
+ break;
+ case 1:
+ /* Note: clientX and clientY for firefox compatibility */
+ this.devicePlane.A = {
+ x: ev.x || ev.clientX,
+ y: ev.y || ev.clientY,
+ } as Vector2d;
+
+ const geo = this.mapComponent.map.extent;
+
+ this.divPlane.C = {x: geo.xmin, y: geo.ymin } as Vector2d;
+ this.divPlane.D = {x: geo.xmax, y: geo.ymin } as Vector2d;
+ this.divPlane.A = {x: geo.xmin, y: geo.ymax } as Vector2d;
+ this.divPlane.B = {x: geo.xmax, y: geo.ymax } as Vector2d;
+
+ this.voiceService.say(this.getStringTranslation("touchpadTopRight"));
+ break;
+
+ case 2:
+ this.devicePlane.B = {x: ev.x || ev.clientX, y: ev.y || ev.clientY} as Vector2d;
+
+ this.voiceService.say(this.getStringTranslation("touchpadBottomLeft"));
+ break;
+ case 3:
+ this.devicePlane.C = {x: ev.x || ev.clientX, y: ev.y || ev.clientY} as Vector2d;
+
+ this.voiceService.say(this.getStringTranslation("touchpadBottomRight"));
+ break;
+ case 4:
+ this.devicePlane.D = {x: ev.x || ev.clientX, y: ev.y || ev.clientY} as Vector2d;
+
+ this.voiceService.say(this.getStringTranslation("touchpadOk"));
+ break;
+ }
+ this.nbClick += 1;
+
+ } else {
+
+ // Transformation from device coordinates to esri map coordinates
+
+ // Detect current `P` point
+ const OP = { x: ev.x || ev.clientX, y: ev.y || ev.clientY };
+
+ // `P"` is the transformed final point on the esri map
+ const OP_ = transform(OP, this.devicePlane, this.divPlane);
+
+ // Transform to EsriPoint
+ const mappedPoint = new Point(OP_.x, OP_.y);
+ const touchPoint: Point = WebMercatorUtils.webMercatorToGeographic(mappedPoint) as Point;
+ this.transportService.currentPoint = touchPoint;
+
+ switch (this.stateService.activeMode().mode) {
+ case "reading":
+ this.locateClick(touchPoint);
+ break;
+ case "searching":
+ if (this.searchingPoint !== undefined) {
+ this.searchLocationClick(this.searchingPoint, touchPoint);
+ } else {
+ this.voiceService.say("Recherche en cours");
+ }
+ break;
+ case "itinerary":
+ this.kmlService.currentPoint(touchPoint.y, touchPoint.x);
+ this.locateClick(touchPoint);
+ break;
+ }
+
+ const symbol = new SimpleMarkerSymbol({
+ color: [226, 119, 40],
+ outline: { color: [255, 255, 255], width: 2 },
+ });
+ const graphic = new Graphic(touchPoint, symbol);
+ this.mapComponent.map.graphics.add(graphic);
+
+ }
+ };
+
+ }
+
+ private isCalibrated(): boolean {
+ return this.nbClick > 4;
+ }
+
+ private onClick() {
+ // Enable full screen
+ this.mapComponent.map.setLayerVisible({kind: "osm"});
+ const elem = document.getElementsByTagName("body")[0] as any;
+ const f = elem.requestFullscreen ||
+ elem.msRequestFullscreen ||
+ elem.mozRequestFullScreen ||
+ elem.webkitRequestFullscreen;
+ f.call(elem);
+ }
+
+ private ngOnInit() {
+
+ // (+) converts string "id" to a number
+ const id = +this.route.snapshot.params.id;
+
+ this.mapService.map(id)
+ .subscribe((optionMap: OptionMap) => {
+
+ this.mapComponent.initMap(optionMap);
+
+ /* jca: hack for the issue #76 and #77
+ * To load an OSM map on a map saved with a different layer, we must load osm right
+ * after the beginning of the original layer.
+ */
+ this.mapComponent.map.on("layer-reorder", () => {
+ // TODO: check the line below
+ // this.mapComponent.map.setLayerVisible({kind: "osm"});
+ });
+ this.mapComponent.map.on("extent-change", () => {
+ this.mapComponent.map.setLayerVisible({kind: "osm"});
+
+ const map = document.getElementById("esri-map");
+ if (map !== null) {
+ const style = map.style;
+ style.height = optionMap.height + "px";
+ style.width = optionMap.width + "px";
+ }
+
+ });
+
+ this.mapComponent.map.disableMapNavigation();
+
+ this.mapComponent.map.width = optionMap.width;
+ this.mapComponent.map.height = optionMap.height;
+
+ });
+ }
+
+ /** Switch to reading mode and notify the user */
+ private readCommand(): void {
+ this.stateService.changeMode( {mode: "reading"} );
+ this.voiceService.say(this.getStringTranslation("readActive"));
+ }
+
+ /** Switch to search mode and notify the user */
+ private searchCommand(i: number, wildcard: string): void {
+ this.searchingPoint = undefined;
+ this.stateService.changeMode( {mode: "searching"} );
+ this.voiceService.say(this.getStringTranslation("searchOk") + wildcard);
+
+ this.geoService.point(wildcard).subscribe(
+ (searchPoint: Point) => {
+ this.searchingPoint = searchPoint;
+ if (searchPoint === undefined) {
+ this.voiceService.say(this.getStringTranslation("searchKo"));
+ this.stateService.changeMode( {mode: "reading"} );
+ }
+ },
+ );
+ }
+
+ /** Search the closest station */
+ private searchStation(): void {
+ this.searchingPoint = undefined;
+ this.stateService.changeMode( {mode: "searching"} );
+
+ this.transportService.stationsNearby().subscribe(
+ (stations: any) => {
+ if (stations) {
+ const correspondingStation = stations.json()
+ .stations.find((station) => station.coordinate.x !== null && station.coordinate.y !== null);
+
+ if (correspondingStation) {
+ const point = new Point(correspondingStation.coordinate.y, correspondingStation.coordinate.x);
+ this.searchingPoint = point;
+ this.voiceService.say(this.getStringTranslation("transportOKDescri") + correspondingStation.name);
+ return;
+ }
+ }
+
+ // If we get to this point, that mean that something went wrong with the station search
+ this.voiceService.say(this.getStringTranslation("transportKODescri"));
+ this.readCommand();
+ },
+ );
+ }
+
+ /** Search the closest station by line */
+ private searchStationByLine(i: number, wildcard: string): void {
+ this.searchingPoint = undefined;
+ this.stateService.changeMode( {mode: "searching"} );
+
+ this.transportService.stationsNearby().subscribe(
+ (stations: any) => {
+ if (stations) {
+ this.voiceService.say(this.getStringTranslation("transportOKDescri") + wildcard);
+ this.getBusByStation(stations.json(), 0, wildcard);
+ } else {
+ this.voiceService.say(this.getStringTranslation("transportKODescri") + wildcard);
+ this.readCommand();
+ }
+ },
+ );
+ }
+
+ /* Check if stops contains specific line */
+ private getBusByStation(station: any, index: number, line: string) {
+ if (index < station.stations.length) {
+ this.transportService.closerStationFilter(station.stations[index].name).subscribe(
+ (st) => {
+ if (st.json().stationboard.some((elem) => elem.number === line)) {
+ const returnedStation = st.json().station;
+ const point = new Point(returnedStation.coordinate.y, returnedStation.coordinate.x);
+ this.searchingPoint = point;
+ } else {
+ setTimeout(() => this.getBusByStation(station, index + 1, line), 400);
+ }
+ },
+ );
+ } else {
+ this.voiceService.say(this.getStringTranslation("transportKODescri"));
+ this.readCommand();
+ }
+ }
+
+ /** Switch to itinerary mode */
+ private itineraryCommand(): void {
+ this.stateService.changeMode( {mode: "itinerary"} );
+ this.voiceService.say(this.getStringTranslation("itineraryActive"));
+ // In case of the user switch mod in middle of session , reset values
+ this.kmlService.endCurrentSession();
+ }
+
+ /** Add last Press Location */
+ private itineraryAddCommand(i: number, wildcard: string): void {
+ if (this.stateService.activeMode().mode === "itinerary") {
+ if (this.kmlService.addCurrentPoint(wildcard)) {
+ this.voiceService.say(this.getStringTranslation("itineraryAddPoint") + wildcard);
+ } else {
+ this.voiceService.say(this.getStringTranslation("itineraryAddPointError"));
+ }
+ } else {
+ this.voiceService.say(this.getStringTranslation("itineraryError"));
+ }
+ }
+
+ /** Delet last add point */
+ private itineraryDeletLastCommand(): void {
+ if (this.stateService.activeMode().mode === "itinerary") {
+ if (this.kmlService.deletLastPoint()) {
+ this.voiceService.say(this.getStringTranslation("itineraryDelet"));
+ } else {
+ this.voiceService.say(this.getStringTranslation("itineraryDeletLastError"));
+ }
+ } else {
+ this.voiceService.say(this.getStringTranslation("itineraryError"));
+ }
+ }
+
+ /** Stop the current Session */
+ private itineraryStopSession(): void {
+ this.kmlService.endCurrentSession();
+ this.readCommand();
+ }
+
+ private itineraryEndSession(i: number, wildcard: string): void {
+ if (this.kmlService.toKml(wildcard)) {
+ this.voiceService.say(this.getStringTranslation("itinerarySave"));
+ this.kmlService.endCurrentSession();
+ this.readCommand();
+ } else {
+ this.voiceService.say(this.getStringTranslation("itinerarySaveError"));
+ }
+ }
+
+ /** Notity the user in terms of input number */
+ private offendCommand(i: number): void {
+ if (i % 3 === 0) {
+ this.voiceService.say(this.getStringTranslation("offendTextOne"));
+ } else if (i % 3 === 1) {
+ this.voiceService.say(this.getStringTranslation("offendTextTwo"));
+ } else {
+ this.voiceService.say(this.getStringTranslation("offendTextTree"));
+ }
+ }
+
+ /** Change language of application */
+ private changeLang(langTranslate: string, langVoice: string): void {
+ this.translateService.use(langTranslate);
+ this.voiceService.changeLang(langVoice);
+ }
+
+ /** Help Command */
+ private helpCommand(i: number, wildcard: string, langTranslate: string): void {
+ const currentLang = this.translateService.currentLang;
+ this.translateService.use(langTranslate);
+ if (process.env.NODE_ENV !== "production") {
+ // tslint:disable-next-line no-console
+ console.log(wildcard);
+ // tslint:disable-next-line no-console
+ console.log(this.getStringTranslations("itineraryId")[0]);
+ }
+ switch (wildcard) {
+ case this.getStringTranslations("readId")[0]:
+ this.voiceService.say(this.getStringTranslation("readHelp"));
+ break;
+ case this.getStringTranslations("itineraryId")[0]:
+ this.voiceService.say(this.getStringTranslation("itineraryHelp"));
+ this.voiceService.say(this.getStringTranslations("itineraryAddId")[0]
+ + this.getStringTranslation("itineraryAddHelp"));
+ this.voiceService.say(this.getStringTranslations("itineraryDeletId")[0]
+ + this.getStringTranslation("itineraryDelHelp"));
+ this.voiceService.say(this.getStringTranslations("itinerarySaveId")[0]
+ + this.getStringTranslation("itinerarySaveHelp"));
+ this.voiceService.say(this.getStringTranslations("itineraryAbortId")[0]
+ + this.getStringTranslation("itineraryEndHelp"));
+ break;
+ case this.getStringTranslations("searchId")[0].replace(" *", ""):
+ this.voiceService.say(this.getStringTranslation("searchHelp"));
+ break;
+ default:
+ this.voiceService.say(this.getStringTranslation("mainHelpIntro"));
+ // Read Command
+ this.voiceService.say(this.getStringTranslation("mainHelpMode")
+ + this.getStringTranslations("readId")[0]);
+ this.voiceService.say(this.getStringTranslation("mainHelpDo")
+ + this.getStringTranslation("readDescri"));
+ // Search Command
+ this.voiceService.say(this.getStringTranslation("mainHelpMode")
+ + this.getStringTranslations("searchId")[0]);
+ this.voiceService.say(this.getStringTranslation("mainHelpDo")
+ + this.getStringTranslation("searchDescri"));
+
+ // Search Transport Command
+ this.voiceService.say(this.getStringTranslation("mainHelpMode")
+ + this.getStringTranslations("transportId")[0]);
+ this.voiceService.say(this.getStringTranslation("mainHelpDo")
+ + this.getStringTranslation("transportDescri"));
+
+ // Itinerary Command
+ this.voiceService.say(this.getStringTranslation("mainHelpMode")
+ + this.getStringTranslations("itineraryId")[0]);
+ this.voiceService.say(this.getStringTranslation("mainHelpDo")
+ + this.getStringTranslation("itineraryDescri"));
+ // * help
+ this.voiceService.say(this.getStringTranslation("mainHelp*"));
+
+ // lang
+ this.voiceService.say(this.getStringTranslation("mainHelpLang"));
+ break;
+ }
+ this.translateService.use(currentLang);
+ }
+
+ /** Add Commands */
+ private prepareVoiceCommand() {
+ // Loop for add command in each lang of application
+ const langs = this.translateService.getLangs();
+ for (const entry of langs) {
+ this.translateService.use(entry);
+ const codeVoice = this.getStringTranslation("codeLangVoice");
+
+ // Reading mode (default)
+ this.voiceService.addCommand(
+ this.getStringTranslations("readId"),
+ this.getStringTranslation("readDescri"),
+ () => this.readCommand(),
+ );
+
+ // Searching mode
+ this.voiceService.addCommand(
+ this.getStringTranslations("searchId"),
+ this.getStringTranslation("searchDescri"),
+ (i: number, wildcard: string) => this.searchCommand(i, wildcard),
+ );
+
+ // React to insults command
+ this.voiceService.addCommand(
+ this.getStringTranslations("offendId"),
+ this.getStringTranslation("offendDescri"),
+ (i: number) => this.offendCommand(i),
+ );
+
+ // Switch Lang command
+ this.voiceService.addCommand(
+ [this.getStringTranslation("myLang")],
+ this.getStringTranslation("codeLang"),
+ () => this.changeLang(entry, codeVoice),
+ );
+
+ // switch to itinerary Mode
+ this.voiceService.addCommand(
+ this.getStringTranslations("itineraryId"),
+ this.getStringTranslation("itineraryDescri"),
+ () => this.itineraryCommand(),
+ );
+
+ // itinerary Mode - Add
+ this.voiceService.addCommand(
+ this.getStringTranslations("itineraryAddId"),
+ this.getStringTranslation("itineraryAddDescri"),
+ (i: number, wildcard: string) => this.itineraryAddCommand(i, wildcard),
+ );
+
+ // itinerary Mode - Delet Last
+ this.voiceService.addCommand(
+ this.getStringTranslations("itineraryDeletId"),
+ this.getStringTranslation("itineraryDeletDescri"),
+ () => this.itineraryDeletLastCommand(),
+ );
+
+ // itinerary Mode - Abort
+ this.voiceService.addCommand(
+ this.getStringTranslations("itineraryAbortId"),
+ this.getStringTranslation("itineraryAbortDescri"),
+ () => this.itineraryStopSession(),
+ );
+
+ // itinerary Mode - Save As
+ this.voiceService.addCommand(
+ this.getStringTranslations("itinerarySaveId"),
+ this.getStringTranslation("itinerarySaveDescri"),
+ (i: number, wildcard: string) => this.itineraryEndSession(i, wildcard),
+ );
+
+ // Search Station
+ this.voiceService.addCommand(
+ this.getStringTranslations("transportId"),
+ this.getStringTranslation("transportDescri"),
+ () => this.searchStation(),
+ );
+
+ // Search Station
+ this.voiceService.addCommand(
+ this.getStringTranslations("transportSearchId"),
+ this.getStringTranslation("transportSearchDescri"),
+ (i: number, wildcard: string) => this.searchStationByLine(i, wildcard),
+ );
+
+ // itinerary Mode - Save As
+ this.voiceService.addCommand(
+ this.getStringTranslations("helpId"),
+ this.getStringTranslation("helpDescri"),
+ (i: number, wildcard: string) => this.helpCommand(i, wildcard, entry),
+ );
+
+ }
+ this.translateService.use(this.translateService.getBrowserLang());
+ }
+
+ /** Locate click and notity the user */
+ private locateClick(point: Point): void {
+
+ this.geoService.address(point).subscribe(
+ (address) => {
+ if (address) {
+ this.voiceService.sayGeocodeResult(address);
+ }
+ },
+ );
+ }
+
+ /** Notify the user of direction */
+ private searchLocationClick(location: Point, touchPoint: Point): void {
+ const indication: SearchedPointIndications = this.geoService.directionToText(location, touchPoint);
+ let diction: string;
+
+ if (indication.reached) {
+ diction = this.getStringTranslation("searchArrived");
+ } else {
+ const direction = this.getStringTranslation(indication.direction);
+ const directionDistanceConnector = this.getStringTranslation("searchTo");
+ const distance = indication.distance;
+ const unit = this.getStringTranslation(indication.unit);
+
+ diction = `${direction} ${directionDistanceConnector} ${distance} ${unit}`;
+ }
+
+ this.voiceService.say(diction);
+ }
+
+ /** Return string by id and current lang of application */
+ private getStringTranslation(s: string): string {
+ return (this.translateService.get(s)as ScalarObservable).value;
+ }
+
+ /** Return array of string by id and current lang of application */
+ private getStringTranslations(s: string): string[] {
+ return (this.translateService.get(s)as ScalarObservable).value.map((object) => object.value);
+
+ }
+}
diff --git a/src/app/touchpad/touchpad.module.ts b/src/app/touchpad/touchpad.module.ts
index 36499fb..c81ec61 100644
--- a/src/app/touchpad/touchpad.module.ts
+++ b/src/app/touchpad/touchpad.module.ts
@@ -1,28 +1,23 @@
-import { NgModule } from '@angular/core';
-
-
-import { MapService } from '../map/map.service';
-import { GeoService } from "../core/geo.service";
-import { VoiceService } from "../core/voice.service";
-import { KmlService } from "../core/kml.service";
-import { MapComponent } from "../map/map.component";
-import {SharedModule} from "../shared/shared.module";
-import {TouchpadComponent} from "./touchpad.component";
-import {StateService} from "../core/state.service";
-import {TransportService} from "../core/transport.service";
-
-@NgModule({
- imports: [ SharedModule ],
- declarations: [
- TouchpadComponent
- ],
- providers: [
- MapService
- , GeoService
- , VoiceService
- , StateService
- , KmlService
- , TransportService
- ]
-})
-export class TouchpadModule { }
+import { NgModule } from "@angular/core";
+import { GeoService } from "../core/geo.service";
+import { KmlService } from "../core/kml.service";
+import { StateService } from "../core/state.service";
+import { TransportService } from "../core/transport.service";
+import { VoiceService } from "../core/voice.service";
+import { MapService } from "../map/map.service";
+import { SharedModule } from "../shared/shared.module";
+import { TouchpadComponent } from "./touchpad.component";
+
+@NgModule({
+ declarations: [TouchpadComponent],
+ imports: [SharedModule],
+ providers: [
+ MapService,
+ GeoService,
+ VoiceService,
+ StateService,
+ KmlService,
+ TransportService,
+ ],
+})
+export class TouchpadModule {}
diff --git a/src/conf/.gitignore b/src/conf/.gitignore
new file mode 100644
index 0000000..7990448
--- /dev/null
+++ b/src/conf/.gitignore
@@ -0,0 +1 @@
+/secret.ts
\ No newline at end of file
diff --git a/src/app/core/example.secret.ts b/src/conf/example.secret.ts
similarity index 57%
rename from src/app/core/example.secret.ts
rename to src/conf/example.secret.ts
index 55ada2e..655574f 100644
--- a/src/app/core/example.secret.ts
+++ b/src/conf/example.secret.ts
@@ -1,4 +1,4 @@
-// TODO before compile :
+// TODO before compile :
// 1) rename example.secret.ts to secret.ts
// 2) enter google geocode key instead of ""
-export let GOOGLE_GEOCODE_KEY = "";
\ No newline at end of file
+export let GOOGLE_GEOCODE_KEY = "";
diff --git a/src/conf/featureLayerApiUrls.ts b/src/conf/featureLayerApiUrls.ts
new file mode 100644
index 0000000..35ed663
--- /dev/null
+++ b/src/conf/featureLayerApiUrls.ts
@@ -0,0 +1,4 @@
+const URL_FEATURE_LAYER =
+ "https://hepiageo.hesge.ch/arcgis/rest/services/audiotactile/audiotactile/FeatureServer/";
+export const URL_FEATURE_LAYER_SURFACE = URL_FEATURE_LAYER + "3";
+export const URL_FEATURE_LAYER_LINEAR = URL_FEATURE_LAYER + "1";
diff --git a/src/conf/internationalSystem.ts b/src/conf/internationalSystem.ts
new file mode 100644
index 0000000..9806cad
--- /dev/null
+++ b/src/conf/internationalSystem.ts
@@ -0,0 +1 @@
+export const METERS_BY_KILOMETER = 1000;
diff --git a/src/conf/surfaces.ts b/src/conf/surfaces.ts
new file mode 100644
index 0000000..dff14ae
--- /dev/null
+++ b/src/conf/surfaces.ts
@@ -0,0 +1,25 @@
+export default {
+ building: ["batiment"],
+ green: [
+ "roseliere",
+ "paturage_boise_ouvert",
+ "tourbiere",
+ "autre_verte",
+ "autre_culture_intensive",
+ "paturage_boise_dense",
+ "autre_boisee",
+ "jardin",
+ "foret_dense",
+ "vigne",
+ "champ_pre_paturage",
+ ],
+ hard: [
+ "ilot",
+ "trottoir",
+ "autre_revetement_dur",
+ "rocher",
+ "place_aviation",
+ ],
+ linear: ["route_chemin", "chemin_de_fer"],
+ water: ["eau_stagnante", "bassin", "cours_eau", "fontaine"],
+};
diff --git a/src/conf/touchpad-voice.ts b/src/conf/touchpad-voice.ts
new file mode 100644
index 0000000..ec4c181
--- /dev/null
+++ b/src/conf/touchpad-voice.ts
@@ -0,0 +1 @@
+export const SEARCH_BY_PRESS_PRECISION_IN_METERS = 50;
diff --git a/src/definitions/braille.d.ts b/src/definitions/braille.d.ts
new file mode 100644
index 0000000..a3d9371
--- /dev/null
+++ b/src/definitions/braille.d.ts
@@ -0,0 +1,4 @@
+declare module "braille" {
+ function toBraille(text: string): string;
+ function toText(braille: string): string;
+}
diff --git a/src/definitions/geojson.d.ts b/src/definitions/geojson.d.ts
new file mode 100644
index 0000000..8170221
--- /dev/null
+++ b/src/definitions/geojson.d.ts
@@ -0,0 +1,3 @@
+declare module "geojson" {
+ function parse(data: {}, settings: {}, callback?: function): string;
+}
diff --git a/src/definitions/images.d.ts b/src/definitions/images.d.ts
new file mode 100644
index 0000000..f73338c
--- /dev/null
+++ b/src/definitions/images.d.ts
@@ -0,0 +1,2 @@
+declare module "*.gif";
+declare module "*.png";
diff --git a/src/definitions/tokml-function.d.ts b/src/definitions/tokml-function.d.ts
new file mode 100644
index 0000000..b4f3c23
--- /dev/null
+++ b/src/definitions/tokml-function.d.ts
@@ -0,0 +1,17 @@
+// import { GeoJsonObject } from "geojson";
+
+declare module "tokml" {
+ interface Options {
+ name?: string;
+ description?: string;
+ timestamp?: string;
+ documentName?: string;
+ documentDescription?: string;
+ simplestyle?: boolean;
+ }
+
+ function tokml(geojsonObject: GeoJsonObject, options: tokml.Options): string;
+
+ namespace tokml {} // workaround: https://github.com/Microsoft/TypeScript/issues/5073#issue-109478860
+ export = tokml;
+}
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..d4feb49
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,13 @@
+
+
+ Projet AbaPlans
+
+
+
+
+ Loading...
+
+
+
diff --git a/karma-test-main.js b/test/karma-test-main.js
similarity index 100%
rename from karma-test-main.js
rename to test/karma-test-main.js
diff --git a/karma-test-shim.js b/test/karma-test-shim.js
similarity index 95%
rename from karma-test-shim.js
rename to test/karma-test-shim.js
index 543983b..751a20d 100644
--- a/karma-test-shim.js
+++ b/test/karma-test-shim.js
@@ -22,7 +22,7 @@ require('zone.js/dist/fake-async-test');
any file that ends with '.spec.ts' and get its path. By passing in true
we say do this recursively
*/
-var appContext = require.context('./', true, /\.spec\.ts/);
+var appContext = require.context('../', true, /\.spec\.ts/);
// get all the files, for each file, call the context function
// that will require the file and load it up here. Context will
diff --git a/karma.conf.js b/test/karma.conf.js
similarity index 87%
rename from karma.conf.js
rename to test/karma.conf.js
index 20963bc..22ac765 100644
--- a/karma.conf.js
+++ b/test/karma.conf.js
@@ -1,4 +1,4 @@
-var webpackConfig = require('./webpack.config');
+var webpackConfig = require('../build/webpack.config');
webpackConfig.devtool = 'inline-source-map';
delete webpackConfig.plugins;
@@ -12,22 +12,22 @@ module.exports = function (config) {
// asset (HTML & CSS) paths loaded via Angular's component compiler
// (these paths need to be rewritten, see proxies section)
{
- pattern: './src/**/*.html',
+ pattern: '../src/**/*.html',
included: false,
watched: true
}, {
- pattern: './src/**/*.css',
+ pattern: '../src/**/*.css',
included: false,
watched: true
},
// paths for debugging with source maps in dev tools
{
- pattern: './src/**/*.ts',
+ pattern: '../src/**/*.ts',
included: false,
watched: false
}, {
- pattern: './src/**/*.js.map',
+ pattern: '../src/**/*.js.map',
included: false,
watched: false
},
diff --git a/tsconfig.json b/tsconfig.json
index 01f9ddc..c3dcb0e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -7,17 +7,9 @@
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
- "noImplicitAny": false,
- "rootDir": "src",
- "strictNullChecks": true,
- "skipLibCheck": true,
- "types": [
- "node"
- ],
- "typeRoots" : ["../node_modules/@types"]
+ "skipLibCheck": true
},
"include": [
- "src/**/*.ts",
- "node_modules/@types"
+ "src/**/*.ts"
]
}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 0000000..6bf3b5c
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,18 @@
+{
+ "defaultSeverity": "error",
+ "extends": "tslint:recommended",
+ "jsRules": {},
+ "rules": {
+ "interface-name": [
+ true,
+ "never-prefix"
+ ],
+ "variable-name": [
+ true,
+ "ban-keywords",
+ "check-format",
+ "allow-leading-underscore"
+ ]
+ },
+ "rulesDirectory": []
+}
diff --git a/webpack.config.js b/webpack.config.js
deleted file mode 100644
index e59c561..0000000
--- a/webpack.config.js
+++ /dev/null
@@ -1,81 +0,0 @@
-var webpack = require("webpack");
-
-module.exports = {
- entry: {
- main: [
- './src/app/boot.ts' // entry point for your application code
- ],
- vendor: [
- // put your third party libs here
- "core-js",
- "rxjs",
- "zone.js",
- '@angular/core',
- '@angular/common',
- "@angular/compiler",
- "@angular/core",
- "@angular/http",
- "@angular/platform-browser",
- "@angular/platform-browser-dynamic",
- "@angular/router",
- "angular-in-memory-web-api",
- "ng2-bootstrap"
- ]
- /*,
- pure: [
- './app/shared/pagination/paginate.purs'
- ]
- */
- },
- output: {
- filename: 'dist/[name].bundle.js',
- libraryTarget: "amd"
- },
- resolve: {
- modulesDirectories: [ 'node_modules', 'bower_components' ],
- extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js', '.html', '.purs']
- },
- module: {
- loaders: [
- {
- test: /\.tsx?$/,
- loaders: ['ts-loader', 'angular2-template-loader'],
- },
- {
- test: /\.(html|css)$/,
- loader: 'raw-loader'
- },
- {
- test: /\.purs$/,
- loader: 'purs-loader',
- exclude: /node_modules/,
- query: {
- src: [ 'bower_components/purescript-*/src/**/*.purs', 'src/**/*.purs' ],
- bundle: false,
- psc: 'psc',
- pscIde: false
- }
- }
- ]
- },
- plugins: [
- new webpack.optimize.CommonsChunkPlugin({
- name: 'vendor',
- minChunks: Infinity
- })
- ],
- externals: [
- function(context, request, callback) {
- if (/^dojo/.test(request) ||
- /^dojox/.test(request) ||
- /^dijit/.test(request) ||
- /^esri/.test(request)
- ) {
- return callback(null, "amd " + request);
- }
- callback();
- }
- ],
- debug: true,
- devtool: 'source-map'
-};