From fc56a7793580cd2dfe1fc8552f8a22ea5430c5ea Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 10:35:09 +0100 Subject: [PATCH 01/48] Add documentation generation tool Allow us to generate a documentation with an npm script. Prevent the generated documentation to be commited. --- .gitignore | 1 + package-lock.json | 339 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 + 3 files changed, 311 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index fc442f3..e089012 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ abaplan-core.iml output bower_components /assets/ +/doc/ *secret.ts !example.*secret.ts diff --git a/package-lock.json b/package-lock.json index 443b071..41dc2c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,9 +50,9 @@ "integrity": "sha1-tpo+4yTURQ6xaW3cm97RpuwGylI=" }, "@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==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-3.20.0.tgz", + "integrity": "sha1-HonLAkrCgoExDI6pbmgKx0eoedE=", "dev": true }, "@types/chai": { @@ -61,6 +61,32 @@ "integrity": "sha512-cvU0HomQ7/aGDQJZsbtJXqBQ7w4J4TqLB0Z/h8mKrpRjfeZEvTbygkfJEb7fWdmwpIeDeFmIVwAEqS0OYuUv3Q==", "dev": true }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@types/node": "8.0.47" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.0.47" + } + }, "@types/google-maps": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@types/google-maps/-/google-maps-3.2.0.tgz", @@ -74,6 +100,18 @@ "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==", + "dev": true + }, + "@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==", + "dev": true + }, "@types/jasmine": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.6.2.tgz", @@ -85,12 +123,34 @@ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.42.tgz", "integrity": "sha1-4nihHutSJRtltL6V/UyciqpFkJ4=" }, + "@types/marked": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz", + "integrity": "sha512-CSf9YWJdX1DkTNu9zcNtdCcn6hkRtB5ILjbhRId4ZOQqx30fXmdecuaXhugQL6eyrhuXtaHJ7PHI+Vm7k9ZJjg==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, "@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 }, + "@types/shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha512-M2giRw93PxKS7YjU6GZjtdV9HASdB7TWqizBXe4Ju7AqbKlWvTr0gNO92XH56D/gMxqD/jNHLNfC5hA34yGqrQ==", + "dev": true, + "requires": { + "@types/glob": "5.0.35", + "@types/node": "8.0.47" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1029,7 +1089,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", @@ -2223,13 +2283,13 @@ "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==", + "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.7.0", - "node-pre-gyp": "0.6.36" + "nan": "2.10.0", + "node-pre-gyp": "0.6.39" }, "dependencies": { "abbrev": { @@ -2363,7 +2423,6 @@ "cryptiles": { "version": "2.0.5", "bundled": true, - "optional": true, "requires": { "boom": "2.10.1" } @@ -2405,6 +2464,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 +2593,6 @@ "hawk": { "version": "3.1.3", "bundled": true, - "optional": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -2678,10 +2741,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 +2930,6 @@ "sntp": { "version": "1.0.9", "bundled": true, - "optional": true, "requires": { "hoek": "2.16.3" } @@ -2893,13 +2957,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 +2966,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, @@ -3306,6 +3370,102 @@ "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=", + "dev": true, + "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=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } + } + }, + "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, + "optional": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, "har-schema": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", @@ -3376,6 +3536,12 @@ "sntp": "1.0.9" } }, + "highlight.js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", + "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=", + "dev": true + }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -4247,6 +4413,12 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, + "marked": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", + "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -4409,9 +4581,9 @@ } }, "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 }, "negotiator": { @@ -4798,6 +4970,12 @@ "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=", + "dev": true + }, "promise-retry": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", @@ -5019,6 +5197,15 @@ "set-immediate-shim": "1.0.1" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -5411,6 +5598,25 @@ "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", "dev": true }, + "shelljs": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", + "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", + "dev": true, + "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=", + "dev": true + } + } + }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -5688,14 +5894,6 @@ "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==", - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -5707,6 +5905,14 @@ "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", @@ -6087,6 +6293,77 @@ "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==", + "dev": true, + "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==", + "dev": true + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true + }, + "typescript": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "dev": true + } + } + }, + "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=", + "dev": true + }, "typescript": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", diff --git a/package.json b/package.json index 5559edb..bfe19a1 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "tsc": "tsc", "tsc:w": "tsc -w", "build": "webpack --config ./webpack.config.js", + "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors", "clean": "rm -f -r node_modules bower_components" }, "repository": { @@ -90,6 +91,7 @@ "lite-server": "^2.2.2", "purs-loader": "^2.3.0", "ts-helpers": "^1.1.2", + "typedoc": "^0.11.1", "typescript": "^2.0.3", "url-loader": "^0.5.7", "webpack": "^1.15.0" From acc4dafc09c81ff50a567318a44132bc0b9d7af5 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 10:47:47 +0100 Subject: [PATCH 02/48] Prevent implicites "any" at transpilation Make the TypeScript transpiler to warn us for every implicite "any" types to enforce types declaration in code. --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 01f9ddc..e1adad8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, - "noImplicitAny": false, + "noImplicitAny": true, "rootDir": "src", "strictNullChecks": true, "skipLibCheck": true, From bb8e731d9fd90c7ee9d7e1330270c76f268dd33b Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 10:48:55 +0100 Subject: [PATCH 03/48] Install npm @types package to declare libs types --- package-lock.json | 10 ++++++++++ package.json | 2 ++ 2 files changed, 12 insertions(+) diff --git a/package-lock.json b/package-lock.json index 41dc2c4..d1a2291 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,6 +67,11 @@ "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", "dev": true }, + "@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", @@ -76,6 +81,11 @@ "@types/node": "8.0.47" } }, + "@types/geojson": { + "version": "7946.0.2", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.2.tgz", + "integrity": "sha512-JuRe9eeID7XvL7viIcFqIAAXDLfyRcImIWE/XjBIhrUZjxX5z4fLcF3QXS9zYnvIn8mmtW/7OxDV3XC8QMb7OA==" + }, "@types/glob": { "version": "5.0.35", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", diff --git a/package.json b/package.json index bfe19a1..785a6ec 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,8 @@ "@angular/platform-browser-dynamic": "^2.0.2", "@angular/router": "^3.0.2", "@angular/upgrade": "^2.0.2", + "@types/file-saver": "^1.3.0", + "@types/geojson": "^7946.0.2", "@types/google-maps": "^3.2.0", "@types/lodash": "4.14.42", "angular-in-memory-web-api": "^0.2.2", From dcf2941481eaad50f310df456450f2a9c45df7d3 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 12:03:13 +0100 Subject: [PATCH 04/48] Add definition files for external js libs --- src/definitions/braille.d.ts | 4 ++++ src/definitions/tokml-function.d.ts | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/definitions/braille.d.ts create mode 100644 src/definitions/tokml-function.d.ts diff --git a/src/definitions/braille.d.ts b/src/definitions/braille.d.ts new file mode 100644 index 0000000..f2e2191 --- /dev/null +++ b/src/definitions/braille.d.ts @@ -0,0 +1,4 @@ +declare module 'braille' { + function toBraille(string: text): string; + function toText(string: braille): string; +} diff --git a/src/definitions/tokml-function.d.ts b/src/definitions/tokml-function.d.ts new file mode 100644 index 0000000..8a73b53 --- /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; +} \ No newline at end of file From 8023f89b405cde2b898b1c670b8260ec05b01cb4 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 14:19:13 +0100 Subject: [PATCH 05/48] Create a Gulp task to clear TypeScript transpilation's results Some npm's scripts run the "tsc" command in a way that generate .js and .js.map files. This commit allow us to clear the project from these files, without removing potentials stand-alone .js files. --- .gitignore | 1 + gulpfile.js | 10 + package-lock.json | 2346 +++++++++++++++++++++++++++++++++++++++++---- package.json | 3 + 4 files changed, 2187 insertions(+), 173 deletions(-) create mode 100644 gulpfile.js diff --git a/.gitignore b/.gitignore index e089012..5f88ac3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ typings *.info.txt *.log *.js +!gulpfile.js *.js.map !karma-test-shim.js !karma-test-main.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/package-lock.json b/package-lock.json index d1a2291..b8e2182 100644 --- a/package-lock.json +++ b/package-lock.json @@ -262,6 +262,12 @@ "file-type": "3.9.0" } }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -275,11 +281,23 @@ "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=", + "dev": true + }, "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=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -346,6 +364,12 @@ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, "async": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", @@ -368,6 +392,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -390,6 +420,44 @@ "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==", + "dev": true, + "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": { + "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 + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", @@ -1017,6 +1085,37 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "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=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", @@ -1108,6 +1207,92 @@ "readdirp": "2.1.0" } }, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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==", + "dev": true + } + } + }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -1140,6 +1325,16 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -1345,6 +1540,12 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, "core-js": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", @@ -1472,6 +1673,12 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "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=", + "dev": true + }, "decompress": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", @@ -1631,6 +1838,48 @@ "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=", + "dev": true, + "requires": { + "clone": "1.0.2" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha1-mlDwS/NzJeKDtPROmFM2wlJFa9U=", + "dev": true, + "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", @@ -1642,12 +1891,24 @@ "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=", + "dev": true + }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, "dev-ip": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", @@ -2032,6 +2293,15 @@ "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=", + "dev": true, + "requires": { + "homedir-polyfill": "1.0.1" + } + }, "express": { "version": "2.5.11", "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", @@ -2200,6 +2470,12 @@ } } }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -2220,110 +2496,444 @@ "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=", + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "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.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" + "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 - }, - "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 + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "aproba": { - "version": "1.1.1", - "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=", + "dev": true + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "dev": true, + "requires": { + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "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 + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "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=", + "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.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", @@ -3081,6 +3691,15 @@ } } }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "0.1.0" + } + }, "geojson": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.4.1.tgz", @@ -3105,6 +3724,12 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -3203,6 +3828,48 @@ } } }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "0.5.2" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "homedir-polyfill": "1.0.1", + "ini": "1.3.4", + "is-windows": "1.0.2", + "which": "1.3.0" + } + }, "globby": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", @@ -3232,6 +3899,58 @@ } } }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "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", @@ -3267,16 +3986,191 @@ "url-parse-lax": "1.0.0" } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.1.0", + "liftoff": "2.5.0", + "minimist": "1.2.0", + "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": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "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=", + "dev": true + }, + "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=", + "dev": true + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "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=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": 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" + } + }, + "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 + }, + "through2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", + "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", + "dev": true, + "requires": { + "readable-stream": "2.0.6", + "xtend": "4.0.1" + } + } + } + }, "gulp-decompress": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", @@ -3534,6 +4428,66 @@ "sparkles": "1.0.0" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "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=", + "dev": true + } + } + }, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -3558,6 +4512,15 @@ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "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", @@ -3674,6 +4637,23 @@ "is-relative": "0.1.3" } }, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3705,6 +4685,42 @@ "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=" }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "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==", + "dev": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "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==", + "dev": true + } + } + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -3785,6 +4801,64 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "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==", + "dev": true + } + } + }, + "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=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "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==", + "dev": true, + "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=", + "dev": true + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -3826,6 +4900,15 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "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==", + "dev": true, + "requires": { + "unc-path-regex": "0.1.2" + } + }, "is-url": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", @@ -3841,6 +4924,12 @@ "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=" }, + "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==", + "dev": true + }, "is-zip": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", @@ -4124,6 +5213,22 @@ "invert-kv": "1.0.0" } }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "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", @@ -4418,11 +5523,35 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=" }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "dev": true, + "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=", + "dev": true + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, "marked": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", @@ -4526,6 +5655,27 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -4596,6 +5746,71 @@ "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==", + "dev": true, + "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=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, + "natives": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.2.tgz", + "integrity": "sha512-5bRASydE1gu6zPOenLN043++J8xj1Ob7ArkfdYO3JN4DF5rDmG7bMoiybkTyD+GnXQEMixVeDHMzuqm6kpBmiA==", + "dev": true + }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -4712,11 +5927,143 @@ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, - "object-path": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", - "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", - "dev": true + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + } + } + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "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=", + "dev": true + } + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "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==", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "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=", + "dev": true + } + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "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=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + } + } }, "object.omit": { "version": "2.0.1", @@ -4727,6 +6074,23 @@ "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=", + "dev": true, + "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=", + "dev": true + } + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -4778,6 +6142,37 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + } + } + }, "ordered-read-streams": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", @@ -4798,6 +6193,12 @@ "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=", + "dev": true + }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -4818,6 +6219,38 @@ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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", @@ -4837,6 +6270,12 @@ "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=", + "dev": true + }, "parsejson": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", @@ -4866,6 +6305,12 @@ "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=", + "dev": true + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", @@ -4890,12 +6335,33 @@ "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=", + "dev": true + }, "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 }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "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=", + "dev": true + }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -4959,6 +6425,12 @@ } } }, + "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=", + "dev": true + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -4969,6 +6441,12 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -5238,6 +6716,37 @@ "is-equal-shallow": "0.1.3" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -5345,6 +6854,22 @@ "path-parse": "1.0.5" } }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", @@ -5355,6 +6880,12 @@ "minimatch": "3.0.4" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "retry": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", @@ -5416,6 +6947,15 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, "seek-bzip": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", @@ -5513,6 +7053,12 @@ } } }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, "serve-index": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", @@ -5574,73 +7120,206 @@ "send": "0.15.2" } }, - "server-destroy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", - "dev": true - }, - "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 - }, - "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=" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "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 - }, - "shelljs": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", - "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "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 + }, + "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==", + "dev": true, + "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 + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "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 + }, + "shelljs": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", + "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", + "dev": true, + "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=", + "dev": true + } + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "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": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, + "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==", "dev": true, "requires": { - "glob": "7.1.2", - "interpret": "1.1.0", - "rechoir": "0.6.2" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } }, "sntp": { "version": "1.0.9", @@ -5784,6 +7463,25 @@ "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==", + "dev": true, + "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-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, "sparkles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", @@ -5813,6 +7511,36 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, + "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==", + "dev": true, + "requires": { + "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=", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "squeak": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", @@ -5852,6 +7580,84 @@ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", @@ -5876,6 +7682,12 @@ "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==", + "dev": true + }, "stream-http": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", @@ -6145,6 +7957,15 @@ } } }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } + }, "time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", @@ -6196,6 +8017,69 @@ "resolved": "https://registry.npmjs.org/to-executable-name/-/to-executable-name-1.1.1.tgz", "integrity": "sha512-r+6FRFK8VnpimozExAVA9b5WXgo9e8W04UHqfToyhY4hznxygCdp5zww8lei55hNnZuyw5xWZjhZooq4c4kieA==" }, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "tokml": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/tokml/-/tokml-0.4.0.tgz", @@ -6402,12 +8286,44 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" }, + "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=", + "dev": true + }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", "dev": true }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "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=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, "unique-stream": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", @@ -6428,11 +8344,63 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "unzip-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -6496,6 +8464,29 @@ "ip-regex": "1.0.3" } }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "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==", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, "useragent": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", @@ -6537,6 +8528,15 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, "vali-date": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", diff --git a/package.json b/package.json index 785a6ec..dd3893e 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "postinstall": "bower install", "tsc": "tsc", "tsc:w": "tsc -w", + "tsc:c": "gulp clear", "build": "webpack --config ./webpack.config.js", "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors", "clean": "rm -f -r node_modules bower_components" @@ -80,6 +81,8 @@ "concurrently": "^3.0.0", "dojo-typings": "^1.11.9", "file-loader": "^0.9.0", + "gulp": "^3.9.1", + "gulp-clean-compiled-typescript": "^1.2.0", "jasmine-core": "^2.5.2", "karma": "^1.3.0", "karma-chrome-launcher": "^2.0.0", From 9290ddb3a2350eb6366e9d436eed9cff6d45d93c Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 14:20:01 +0100 Subject: [PATCH 06/48] Init tslint tool --- tslint.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tslint.json diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..32fa6e5 --- /dev/null +++ b/tslint.json @@ -0,0 +1,9 @@ +{ + "defaultSeverity": "error", + "extends": [ + "tslint:recommended" + ], + "jsRules": {}, + "rules": {}, + "rulesDirectory": [] +} \ No newline at end of file From 2204843f620c75878d7ab4b4729e842cb3abf05a Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 14:43:38 +0100 Subject: [PATCH 07/48] Move the GOOGLE_GEOCODE_KEY in a "conf" folder --- src/app/core/geo.service.ts | 2 +- src/conf/.gitignore | 1 + src/{app/core => conf}/example.secret.ts | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 src/conf/.gitignore rename src/{app/core => conf}/example.secret.ts (57%) diff --git a/src/app/core/geo.service.ts b/src/app/core/geo.service.ts index 32a8112..141e9d5 100644 --- a/src/app/core/geo.service.ts +++ b/src/app/core/geo.service.ts @@ -1,6 +1,6 @@ import {Injectable} from "@angular/core"; -import { GOOGLE_GEOCODE_KEY } from './secret'; +import { GOOGLE_GEOCODE_KEY } from '../../conf/secret'; import googleMaps = require("google-maps"); import Point = require("esri/geometry/Point"); import { Observable } from 'rxjs/Observable'; 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 = ""; From e6b224a8a91ef50e051fd18decd7a11723a50934 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 15:03:21 +0100 Subject: [PATCH 08/48] Clear and split .gitignore file --- .gitignore | 27 +++++++-------------------- src/.gitignore | 2 ++ 2 files changed, 9 insertions(+), 20 deletions(-) create mode 100644 src/.gitignore diff --git a/.gitignore b/.gitignore index 5f88ac3..70fef71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,10 @@ -node_modules -typings -*.info.txt -*.log -*.js -!gulpfile.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 +/.idea/ +/.DS_STORE/ /assets/ +/bower_components/ +/dist/ /doc/ -*secret.ts -!example.*secret.ts +/node_modules/ +/output/ -.DS_STORE \ No newline at end of file +abaplan-core.iml 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 From 23b0b55292f512ab154dc8f796ec513e07eac00e Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 15:08:34 +0100 Subject: [PATCH 09/48] Remove all purescript traces --- .gitignore | 1 - bower.json | 10 - package-lock.json | 1456 ++++----------------------------------------- package.json | 8 +- webpack.config.js | 18 +- 5 files changed, 133 insertions(+), 1360 deletions(-) delete mode 100644 bower.json diff --git a/.gitignore b/.gitignore index 70fef71..68cde67 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ /.idea/ /.DS_STORE/ /assets/ -/bower_components/ /dist/ /doc/ /node_modules/ 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/package-lock.json b/package-lock.json index b8e2182..a7543eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -238,12 +238,14 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, "anymatch": { "version": "1.3.2", @@ -254,14 +256,6 @@ "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=", - "requires": { - "file-type": "3.9.0" - } - }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", @@ -290,7 +284,8 @@ "array-differ": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true }, "array-each": { "version": "1.0.1", @@ -298,11 +293,6 @@ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", "dev": true }, - "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-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", @@ -320,7 +310,8 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true }, "array-unique": { "version": "0.2.1", @@ -381,11 +372,6 @@ "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=" - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -493,7 +479,8 @@ "beeper": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true }, "better-assert": { "version": "1.0.2", @@ -508,80 +495,11 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, - "bin-build": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", - "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=", - "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" - } - }, - "bin-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", - "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=", - "requires": { - "executable": "1.1.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=", - "requires": { - "find-versions": "1.2.1" - } - }, - "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=", - "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=" - } - } - }, - "bin-wrapper": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", - "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", - "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" - } - }, "binary-extensions": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" }, - "bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "requires": { - "readable-stream": "2.3.3" - } - }, "blob": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", @@ -623,11 +541,6 @@ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=" }, - "bower": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", - "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=" - }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", @@ -1024,31 +937,16 @@ "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=", - "requires": { - "file-type": "3.9.0", - "readable-stream": "2.3.3", - "uuid": "2.0.3", - "vinyl": "1.2.0" - } - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true }, "builtin-status-codes": { "version": "3.0.0", @@ -1121,49 +1019,12 @@ "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=", - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } - }, - "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=" - }, "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=" - } - } - }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -1178,6 +1039,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -1307,17 +1169,14 @@ "clone": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true }, "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=" + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true }, "code-point-at": { "version": "1.1.0", @@ -1361,6 +1220,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, "requires": { "graceful-readlink": "1.0.1" } @@ -1385,16 +1245,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "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=", - "requires": { - "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", @@ -1514,11 +1364,6 @@ "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", @@ -1530,11 +1375,6 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "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=" - }, "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", @@ -1556,36 +1396,6 @@ "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=", - "requires": { - "capture-stack-trace": "1.0.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, - "requires": { - "lru-cache": "4.1.1", - "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" - } - } - } - }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", @@ -1607,25 +1417,11 @@ "sha.js": "2.2.6" } }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "1.0.2" - } - }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=" }, - "dargs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", - "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", - "dev": true - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1658,7 +1454,8 @@ "dateformat": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true }, "debug": { "version": "2.6.9", @@ -1671,7 +1468,8 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -1679,160 +1477,11 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "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" - } - }, - "decompress-tar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", - "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=", - "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" - } - } - } - }, - "decompress-tarbz2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", - "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=", - "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" - }, - "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" - } - } - } - }, - "decompress-targz": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", - "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=", - "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" - }, - "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" - } - } - } - }, - "decompress-unzip": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", - "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=", - "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" - }, - "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" - } - } - } - }, "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", @@ -1956,56 +1605,6 @@ "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" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "2.3.3" - } - }, - "duplexify": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", - "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", - "requires": { - "end-of-stream": "1.4.0", - "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", @@ -2063,14 +1662,6 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "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=", - "requires": { - "once": "1.4.0" - } - }, "engine.io": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", @@ -2167,12 +1758,6 @@ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", @@ -2185,6 +1770,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, "requires": { "is-arrayish": "0.2.1" } @@ -2197,7 +1783,8 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "esri-system-js": { "version": "1.0.0-beta.0", @@ -2221,23 +1808,6 @@ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", "dev": true }, - "exec-series": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", - "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=", - "requires": { - "async-each-series": "1.1.0", - "object-assign": "4.1.0" - } - }, - "executable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", - "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=", - "requires": { - "meow": "3.7.0" - } - }, "expand-braces": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", @@ -2354,6 +1924,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -2376,28 +1947,12 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "dev": true, "requires": { "chalk": "1.1.3", "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" - } - }, - "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" - } - }, "file-loader": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz", @@ -2412,31 +1967,11 @@ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.3.tgz", "integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=" }, - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" - }, "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", @@ -2480,22 +2015,12 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" } }, - "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" - } - }, "findup-sync": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", @@ -2818,7 +2343,8 @@ "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=" + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true }, "flagged-respawn": { "version": "1.0.0", @@ -3711,19 +3237,6 @@ "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=", - "requires": { - "rc": "1.2.2" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -3777,57 +3290,6 @@ "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=", - "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" - } - } - } - }, "glob-watcher": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", @@ -3955,6 +3417,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true, "requires": { "sparkles": "1.0.0" } @@ -3964,28 +3427,6 @@ "resolved": "https://registry.npmjs.org/google-maps/-/google-maps-3.2.1.tgz", "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", - "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" - } - }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -3994,7 +3435,8 @@ "graceful-readlink": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true }, "gulp": { "version": "3.9.1", @@ -4171,49 +3613,11 @@ } } }, - "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=", - "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" - } - } - } - }, "gulp-util": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, "requires": { "array-differ": "1.0.0", "array-uniq": "1.0.3", @@ -4238,17 +3642,20 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true }, "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-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true }, "through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, "requires": { "readable-stream": "2.3.3", "xtend": "4.0.1" @@ -4258,6 +3665,7 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, "requires": { "clone": "1.0.2", "clone-stats": "0.0.1", @@ -4270,6 +3678,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, "requires": { "glogg": "1.0.0" } @@ -4390,6 +3799,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -4424,6 +3834,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, "requires": { "sparkles": "1.0.0" } @@ -4524,7 +3935,8 @@ "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==" + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true }, "http-errors": { "version": "1.6.2", @@ -4580,14 +3992,6 @@ "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", "dev": true }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "2.0.1" - } - }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -4610,7 +4014,8 @@ "ini": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true }, "interpret": { "version": "0.6.6", @@ -4624,19 +4029,6 @@ "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" - } - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -4657,7 +4049,8 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-binary-path": { "version": "1.0.1", @@ -4676,15 +4069,11 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, "requires": { "builtin-modules": "1.1.1" } }, - "is-bzip2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", - "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=" - }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", @@ -4744,14 +4133,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "1.0.1" - } - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -4769,16 +4150,6 @@ "is-extglob": "1.0.0" } }, - "is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=" - }, - "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-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -4796,11 +4167,6 @@ "lodash.isfinite": "3.3.2" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, "is-odd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", @@ -4869,31 +4235,6 @@ "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-relative": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", - "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=" - }, - "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-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-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -4909,20 +4250,11 @@ "unc-path-regex": "0.1.2" } }, - "is-url": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", - "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=" - }, "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=" + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true }, "is-windows": { "version": "1.0.2", @@ -4930,11 +4262,6 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, - "is-zip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", - "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=" - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -4971,12 +4298,6 @@ "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true }, - "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 - }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -4994,6 +4315,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, "requires": { "jsonify": "0.0.0" } @@ -5026,7 +4348,8 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true }, "jsprim": { "version": "1.4.1", @@ -5191,19 +4514,6 @@ "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=", - "requires": { - "readable-stream": "2.3.3" - } - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -5260,6 +4570,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -5330,58 +4641,62 @@ "lodash._basecopy": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true }, "lodash._basetostring": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true }, "lodash._basevalues": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true }, "lodash._getnative": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true }, "lodash._isiterateecall": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true }, "lodash._reescape": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true }, "lodash._reevaluate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true }, "lodash._root": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, "lodash.escape": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, "requires": { "lodash._root": "3.0.1" } @@ -5389,17 +4704,14 @@ "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true }, "lodash.isarray": { "version": "3.0.4", "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=" + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true }, "lodash.isfinite": { "version": "3.3.2", @@ -5411,6 +4723,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, "requires": { "lodash._getnative": "3.9.1", "lodash.isarguments": "3.1.0", @@ -5420,12 +4733,14 @@ "lodash.restparam": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true }, "lodash.template": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, "requires": { "lodash._basecopy": "3.0.1", "lodash._basetostring": "3.0.1", @@ -5442,6 +4757,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, "requires": { "lodash._reinterpolate": "3.0.0", "lodash.escape": "3.2.0" @@ -5479,44 +4795,11 @@ } } }, - "logalot": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", - "requires": { - "figures": "1.7.0", - "squeak": "1.3.0" - } - }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "0.4.1", - "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=" - }, - "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" - } + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true }, "lru-cache": { "version": "2.2.4", @@ -5538,11 +4821,6 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -5572,38 +4850,6 @@ "readable-stream": "2.3.3" } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "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" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "requires": { - "readable-stream": "2.3.3" - } - }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -5705,6 +4951,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, "requires": { "duplexer2": "0.0.2" }, @@ -5713,6 +4960,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, "requires": { "readable-stream": "1.1.14" } @@ -5720,12 +4968,14 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -5736,7 +4986,8 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, @@ -5868,11 +5119,6 @@ } } }, - "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=" - }, "nopt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz", @@ -5885,6 +5131,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", @@ -5909,7 +5156,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth-sign": { "version": "0.8.2", @@ -6107,11 +5355,6 @@ "wrappy": "1.0.2" } }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" - }, "openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -6173,26 +5416,12 @@ } } }, - "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=", - "requires": { - "is-stream": "1.1.0", - "readable-stream": "2.3.3" - } - }, "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 }, - "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", @@ -6266,6 +5495,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { "error-ex": "1.3.1" } @@ -6317,15 +5547,11 @@ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, "requires": { "pinkie-promise": "2.0.1" } @@ -6366,6 +5592,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -6378,11 +5605,6 @@ "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=" - }, "performance-now": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", @@ -6392,17 +5614,20 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { "pinkie": "2.0.4" } @@ -6431,11 +5656,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -6464,76 +5684,17 @@ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, - "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" - } - }, "prr": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "purescript": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.10.7.tgz", - "integrity": "sha1-iMtXghqekbTl9CGGvT/ezBEToas=", - "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" - } - }, - "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, - "requires": { - "bluebird": "3.5.1", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "dargs": "5.1.0", - "debug": "2.6.9", - "globby": "4.1.0", - "js-string-escape": "1.0.1", - "loader-utils": "1.1.0", - "lodash.difference": "4.5.0", - "promise-retry": "1.1.1" - }, - "dependencies": { - "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" - } - } - } - }, "qjobs": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", @@ -6614,37 +5775,11 @@ "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=", - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "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=", - "requires": { - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.3" - } - }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -6655,6 +5790,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -6694,15 +5830,6 @@ "resolve": "1.5.0" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, "reflect-metadata": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", @@ -6762,18 +5889,11 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "1.0.2" - } - }, "replace-ext": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true }, "request": { "version": "2.81.0", @@ -6886,12 +6006,6 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -6956,39 +6070,11 @@ "ret": "0.1.15" } }, - "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=", - "requires": { - "commander": "2.8.1" - } - }, "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=", - "requires": { - "semver": "5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - } - } - }, "send": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz", @@ -7190,11 +6276,6 @@ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, "slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", @@ -7485,7 +6566,8 @@ "sparkles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true }, "spawn-command": { "version": "0.0.2-1", @@ -7497,6 +6579,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, "requires": { "spdx-license-ids": "1.2.2" } @@ -7504,12 +6587,14 @@ "spdx-expression-parse": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true }, "spdx-license-ids": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true }, "split-string": { "version": "3.1.0", @@ -7541,16 +6626,6 @@ } } }, - "squeak": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", - "requires": { - "chalk": "1.1.3", - "console-stream": "0.1.1", - "lpad-align": "1.1.2" - } - }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -7575,11 +6650,6 @@ } } }, - "stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=" - }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -7673,15 +6743,6 @@ "readable-stream": "2.3.3" } }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.3" - } - }, "stream-consume": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", @@ -7701,11 +6762,6 @@ "xtend": "4.0.1" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, "stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", @@ -7745,6 +6801,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -7753,60 +6810,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, "requires": { "is-utf8": "0.2.1" } }, - "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=", - "requires": { - "first-chunk-stream": "1.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=" - } - } - }, - "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": { - "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" - } - }, "strxml": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/strxml/-/strxml-0.0.0.tgz", @@ -7815,18 +6823,11 @@ "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=", - "requires": { - "chalk": "1.1.3" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true }, "symbol-observable": { "version": "1.0.4", @@ -7875,26 +6876,6 @@ "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" - } - }, - "tempfile": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", - "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", - "requires": { - "os-tmpdir": "1.0.2", - "uuid": "2.0.3" - } - }, "tfunk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", @@ -7909,6 +6890,7 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, "requires": { "readable-stream": "1.0.34", "xtend": "4.0.1" @@ -7917,12 +6899,14 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -7933,27 +6917,8 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "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" - } + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, @@ -7969,12 +6934,8 @@ "time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "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=" + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true }, "timers-browserify": { "version": "2.0.4", @@ -7993,14 +6954,6 @@ "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", @@ -8012,11 +6965,6 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "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-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -8117,19 +7065,6 @@ "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=" - }, - "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" - } - }, "ts-helpers": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ts-helpers/-/ts-helpers-1.1.2.tgz", @@ -8161,11 +7096,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -8182,11 +7112,6 @@ "mime-types": "2.1.17" } }, - "typedarray": { - "version": "0.0.6", - "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", @@ -8324,15 +7249,6 @@ } } }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "requires": { - "json-stable-stringify": "1.0.1", - "through2-filter": "2.0.0" - } - }, "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", @@ -8390,11 +7306,6 @@ } } }, - "unzip-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" - }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -8448,22 +7359,6 @@ } } }, - "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" - } - }, "use": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", @@ -8523,11 +7418,6 @@ "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=" - }, "v8flags": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", @@ -8537,15 +7427,11 @@ "user-home": "1.1.1" } }, - "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=", + "dev": true, "requires": { "spdx-correct": "1.0.2", "spdx-expression-parse": "1.0.4" @@ -8570,60 +7456,6 @@ } } }, - "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=", - "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" - }, - "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" - } - } - } - }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -8638,14 +7470,6 @@ "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", @@ -8893,14 +7717,6 @@ "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", @@ -8945,7 +7761,8 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true }, "y18n": { "version": "3.2.1", @@ -8953,12 +7770,6 @@ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, "yamlish": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/yamlish/-/yamlish-0.0.7.tgz", @@ -9017,15 +7828,6 @@ } } }, - "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", diff --git a/package.json b/package.json index dd3893e..57fd43e 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "test": "karma start karma.conf.js --single-run", "start": "concurrently \"webpack --watch --progress\" \"lite-server\" ", "lite": "lite-server", - "postinstall": "bower install", "tsc": "tsc", "tsc:w": "tsc -w", "tsc:c": "gulp clear", @@ -30,7 +29,9 @@ "author": "Joel Cavat", "contributors": [ "Joel Cavat", - "Maxiume Burri" + "Maxiume Burri ", + "Pierre Johner", + "Robin Chappatte " ], "license": "MIT", "bugs": { @@ -54,7 +55,6 @@ "angular-in-memory-web-api": "^0.2.2", "artyom.js": "1.0.5", "bootstrap": "^3.3.7", - "bower": "^1.8.0", "braille": "^1.1.0", "core-js": "^2.4.1", "esri-system-js": "^1.0.0-beta.0", @@ -65,7 +65,6 @@ "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", @@ -94,7 +93,6 @@ "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^2.0.2", "lite-server": "^2.2.2", - "purs-loader": "^2.3.0", "ts-helpers": "^1.1.2", "typedoc": "^0.11.1", "typescript": "^2.0.3", diff --git a/webpack.config.js b/webpack.config.js index e59c561..23b6dad 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -21,11 +21,6 @@ module.exports = { "angular-in-memory-web-api", "ng2-bootstrap" ] - /*, - pure: [ - './app/shared/pagination/paginate.purs' - ] - */ }, output: { filename: 'dist/[name].bundle.js', @@ -33,7 +28,7 @@ module.exports = { }, resolve: { modulesDirectories: [ 'node_modules', 'bower_components' ], - extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js', '.html', '.purs'] + extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js', '.html'] }, module: { loaders: [ @@ -44,17 +39,6 @@ module.exports = { { 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 - } } ] }, From fa7ea981b83e66c34d74e6faee0d4a09b8561c2c Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 16:03:34 +0100 Subject: [PATCH 10/48] Remove incompatible npm script The "clean" script use "rm" command which is not available on windows for example. A "rimraf" node module exists to solve this compatibility issue, but in this use case where the command was used to remove the node_modules folder it fails because the rimraf module has to delete itself. --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 57fd43e..f1a1382 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,7 @@ "tsc:w": "tsc -w", "tsc:c": "gulp clear", "build": "webpack --config ./webpack.config.js", - "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors", - "clean": "rm -f -r node_modules bower_components" + "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors" }, "repository": { "type": "git", From 38f438cd6bd200ffb55406c04fb8208f4f54c146 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 20 Mar 2018 16:24:42 +0100 Subject: [PATCH 11/48] Document npm scripts --- package.json | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f1a1382..a44ffef 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\" ", + "build-help": "echo Build and pack", + "build": "webpack --config ./webpack.config.js", + "doc-help": "echo Generate the documentation", + "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors", + "lite-help": "echo Run a developpement server but **DONT** watch for changes", "lite": "lite-server", + "start-help": "echo Run a developpement server and watch for changes", + "start": "concurrently \"webpack --watch --progress\" \"lite-server\" ", + "test-help": "echo Run the tests", + "test": "karma start karma.conf.js --single-run", + "tsc-help": "echo Transpile to js", "tsc": "tsc", - "tsc:w": "tsc -w", + "tsc:c-help": "echo Clear the transpiled files safely (remove only the js file that match ts files)", "tsc:c": "gulp clear", - "build": "webpack --config ./webpack.config.js", - "doc": "typedoc --out ./doc/ ./src/ --ignoreCompilerErrors" + "tsc:w-help": "echo Transpile to js and watch for changes", + "tsc:w": "tsc -w" }, "repository": { "type": "git", From 67d0db7d133757270081527ddde7eb8e88bebcd8 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 13:18:45 +0100 Subject: [PATCH 12/48] Transform purescript code into typescript --- src/app/shared/pagination/paginate.purs | 21 ----- .../pagination-buttons.component.html | 12 +-- .../pagination-buttons.component.ts | 89 ++++++++++++++----- 3 files changed, 71 insertions(+), 51 deletions(-) delete mode 100644 src/app/shared/pagination/paginate.purs 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..562c62c 100644 --- a/src/app/shared/pagination/pagination-buttons.component.ts +++ b/src/app/shared/pagination/pagination-buttons.component.ts @@ -1,41 +1,82 @@ -import { Component, Input, Output, EventEmitter } from "@angular/core"; - -const Pagination = require('./paginate'); - +import { Component, EventEmitter, Input, Output } from "@angular/core"; +import * as _ from 'lodash' @Component({ - selector: 'aba-pagination-buttons', - templateUrl: 'pagination-buttons.component.html', - styleUrls: ['pagination-buttons.component.css'] + 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; + } - private activePage: number; - @Input() collectionSize: number; - @Input() chunkSize: number; - @Output() selectedPageChange: EventEmitter = new EventEmitter(); + @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.activePage; } - set selectedPage(val: number){ - this.activePage = val; + get selectedPage() { + return this.activePageNumero; + } + set selectedPage(val: number) { + this.activePageNumero = val; this.selectedPageChange.emit(val); } - - constructor(){ - - } + private _activePageNumero: number; private paginationButtonClick(id: string): void { - this.activePage = parseInt(id); - this.selectedPageChange.emit(this.activePage); + this.activePageNumero = +id; + this.selectedPageChange.emit(this.activePageNumero); } private movePagination(inc: number): void { - this.paginationButtonClick((this.activePage+inc).toString()); + this.paginationButtonClick((this.activePageNumero + inc).toString()); } - private paginate(activePage: string, size: number): string[] { - const length = Math.ceil(size); - return Pagination.paginate(length)(parseInt(activePage)); + public getPagination(): Array { + // no pages + if (this.pageNumber === 0) { + return []; + } + // less than 10 pages + else if (this.pageNumber < 10) { + return _.range(1, this.pageNumber + 1).map((value, index) => String(index)); + } + // more than 10 pages + else { + // 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)) + ] + } + // currently in the 5 last + else if (this.activePageNumero >= this.pageNumber - 5) { + return [ + ..._.range(1, 2 + 1).map(value => String(value)), + "...", + ..._.range(this.pageNumber - 6, this.pageNumber + 1).map(value => String(value)) + ]; + } + // in the middle + else { + 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)) + ]; + } + } } } From 4e04a66992548016bd922598a83318cbef7ac5f7 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 14:11:53 +0100 Subject: [PATCH 13/48] Move the webpack configuration in a "build" folder Good practice: In prevision of more elaborate or alternative configurations. Allow us also to divide configuration in smaller files. --- build/webpack.config.js | 55 ++++++++++++++++++++++++++++++++++ package.json | 8 +++-- webpack.config.js | 65 ----------------------------------------- 3 files changed, 60 insertions(+), 68 deletions(-) create mode 100644 build/webpack.config.js delete mode 100644 webpack.config.js diff --git a/build/webpack.config.js b/build/webpack.config.js new file mode 100644 index 0000000..9640fb4 --- /dev/null +++ b/build/webpack.config.js @@ -0,0 +1,55 @@ +const path = require("path"); + +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", + "ng2-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: /\.tsx?$/, + loaders: ["ts-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") + }, + resolve: { + extensions: ["*", ".ts", ".tsx", ".js"] + } +}; diff --git a/package.json b/package.json index a44ffef..396cb98 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,16 @@ "description": "Abaplan core project", "main": "index.js", "scripts": { - "build-help": "echo Build and pack", - "build": "webpack --config ./webpack.config.js", + "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", "lite-help": "echo Run a developpement server but **DONT** watch for changes", "lite": "lite-server", "start-help": "echo Run a developpement server and watch for changes", - "start": "concurrently \"webpack --watch --progress\" \"lite-server\" ", + "start": "concurrently \"webpack -d --watch --progress --config ./build/webpack.config.js\" \"lite-server\" ", "test-help": "echo Run the tests", "test": "karma start karma.conf.js --single-run", "tsc-help": "echo Transpile to js", diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 23b6dad..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,65 +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" - ] - }, - output: { - filename: 'dist/[name].bundle.js', - libraryTarget: "amd" - }, - resolve: { - modulesDirectories: [ 'node_modules', 'bower_components' ], - extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js', '.html'] - }, - module: { - loaders: [ - { - test: /\.tsx?$/, - loaders: ['ts-loader', 'angular2-template-loader'], - }, - { - test: /\.(html|css)$/, - loader: 'raw-loader' - } - ] - }, - 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' -}; From 9237d8c284ff6496896fd82356e9e6bd9dcefa9f Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 14:17:04 +0100 Subject: [PATCH 14/48] Update dependency and fix type definitions of geojson The @types/geojson module is a trap: It doesn't document the geojson module but the specification (RFC 7946). This commit add a proper .d.ts file to solve this issue. --- package-lock.json | 17932 ++++++++++++++++++++++----------- package.json | 86 +- src/definitions/geojson.d.ts | 7 + 3 files changed, 11888 insertions(+), 6137 deletions(-) create mode 100644 src/definitions/geojson.d.ts diff --git a/package-lock.json b/package-lock.json index a7543eb..182c4d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,67 +5,96 @@ "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.9", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.9.tgz", + "integrity": "sha512-g2hPcI0fnT4TV+Fd+1IohjuqBxPvxwyH9IzTn8PkU9X2M+F6cHCUvHxL1sWI2sF8pYcaHzVjq9WClym10X36Lg==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.9.tgz", + "integrity": "sha512-mN+ofInk8y/tk2TCJZx8RrGdOKdrfunoCair7tfDy4XoQJE90waGfaYWo07hYU+UYwLhrg19m2Czy6rIDciUJA==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.9.tgz", + "integrity": "sha512-cvHBJGtasrIoARvbLFyHaOsiWKVwMNrrSTZLwrlyHP8oYzkDrE0qKGer6QCqyKt+51hF53cgWEffGzM/u/0wYg==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.9.tgz", + "integrity": "sha512-zyIOiZV/FAm1iVZWTk3Joz6Jt096hbhfDbBUrssmuiTKi9dU6rWG+Z4b88zStqulKe3HFVZkgdixWlminG8nKA==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.9.tgz", + "integrity": "sha512-DKjgIk+Dp0Xv1ieG8LawvUnL4dYZp1KroAq5cfKuO9EojP0zM3tUvBtw2vbPLsHYma7g7ZMjOoAbzVxtmTBZqw==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.9.tgz", + "integrity": "sha512-P6iviRTuLsLRuqtZNOO0fd4cjTo8DWsDCecwntUlI08R3kH5qeqvqarTzlw/4oD+wBzZY6bfb89JyY+n5XbX3Q==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.9.tgz", + "integrity": "sha512-8C3MtyguJKDTT8FcHIRDlBxswcIdpfugOf4S2t94pVedCr4h9w2da/lcfwJKUISw1aKjfA77Sl8TDUhoS8ymmQ==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.9.tgz", + "integrity": "sha512-NtDbFK0EA1rfFc+5Dqd5mIv8E1Wcc5rDUnSty4cX2V+HxTEZvQ9DRdpO2Q0abWU5siXyqponuPHJzF08OVGyNA==", + "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.9", + "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-5.2.9.tgz", + "integrity": "sha512-R3LwId5J8ynlzDaeD+SFe1HWuxM0Xqg6Ugl3vzxDWDKuzbFCdEsc2ZvhMpASrfs+JPdazANHoFPLrRaeXulWeQ==", + "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.20.0", - "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-3.20.0.tgz", - "integrity": "sha1-HonLAkrCgoExDI6pbmgKx0eoedE=", - "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==", - "dev": true + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==" }, "@types/file-saver": { "version": "1.3.0", @@ -76,25 +105,18 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", - "dev": true, "requires": { - "@types/node": "8.0.47" + "@types/node": "9.4.7" } }, - "@types/geojson": { - "version": "7946.0.2", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.2.tgz", - "integrity": "sha512-JuRe9eeID7XvL7viIcFqIAAXDLfyRcImIWE/XjBIhrUZjxX5z4fLcF3QXS9zYnvIn8mmtW/7OxDV3XC8QMb7OA==" - }, "@types/glob": { "version": "5.0.35", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", - "dev": true, "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "8.0.47" + "@types/node": "9.4.7" } }, "@types/google-maps": { @@ -113,52 +135,54 @@ "@types/handlebars": { "version": "4.0.36", "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.0.36.tgz", - "integrity": "sha512-LjNiTX7TY7wtuC6y3QwC93hKMuqYhgV9A1uXBKNvZtVC8ZvyWAjZkJ5BvT0K7RKqORRYRLMrqCxpw5RgS+MdrQ==", - "dev": true + "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==", - "dev": true + "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.105", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.105.tgz", + "integrity": "sha512-LB5PKR4QNoDrgcl4H8JdhBMp9wHWp0OATkU9EHzuXKiutRwbvsyYmqPUaMSWmdCycJoKHtdAWh47/zSe/GZ1yA==" }, "@types/marked": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz", - "integrity": "sha512-CSf9YWJdX1DkTNu9zcNtdCcn6hkRtB5ILjbhRId4ZOQqx30fXmdecuaXhugQL6eyrhuXtaHJ7PHI+Vm7k9ZJjg==", - "dev": true + "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==", - "dev": true + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@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.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", + "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==" }, "@types/shelljs": { "version": "0.7.8", "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.7.8.tgz", "integrity": "sha512-M2giRw93PxKS7YjU6GZjtdV9HASdB7TWqizBXe4Ju7AqbKlWvTr0gNO92XH56D/gMxqD/jNHLNfC5hA34yGqrQ==", - "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "8.0.47" + "@types/node": "9.4.7" + } + }, + "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": { @@ -176,21 +200,58 @@ } }, "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=" }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "requires": { + "extend": "3.0.1", + "semver": "5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=" + } + } + }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, "requires": { "co": "4.6.0", "json-stable-stringify": "1.0.1" @@ -199,16 +260,19 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" } } }, + "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", @@ -218,34 +282,79 @@ "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-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.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "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", @@ -256,11 +365,15 @@ "normalize-path": "2.1.1" } }, + "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=", - "dev": true + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "arr-diff": { "version": "2.0.0", @@ -278,20 +391,37 @@ "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "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=", - "dev": true + "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=", - "dev": true + "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", @@ -302,7 +432,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" } @@ -310,8 +439,7 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.2.1", @@ -326,25 +454,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" } @@ -352,5504 +487,10711 @@ "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=", - "dev": true + "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-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=", - "dev": true + "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 - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "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" + } }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, + "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": { - "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" + "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": { - "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 - }, - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, - "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.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "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=", - "dev": true - }, - "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-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "tweetnacl": "0.14.5" + "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=" + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } } }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "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-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": { - "callsite": "1.0.0" + "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==" - }, - "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-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" + } }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + "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" + } }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + "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": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.5" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } + } }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "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": { - "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-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "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-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": { - "hoek": "2.16.3" + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, - "bootstrap": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", - "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=" + "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" + } }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "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": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" + "babel-runtime": "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-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": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, - "braille": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/braille/-/braille-1.1.0.tgz", - "integrity": "sha1-NIQZWEomm9L1YSsHYf0grUeZ1NQ=" + "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": { + "babel-runtime": "6.26.0", + "babel-types": "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-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": { - "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-types": "6.26.0", + "lodash": "4.17.5" }, "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" - } + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } + } + }, + "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": { + "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" + } + }, + "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" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "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" + } + }, + "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" + } + }, + "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": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "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": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "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" + } + }, + "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" + } + }, + "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": { + "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" + } + }, + "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": { + "babel-runtime": "6.26.0" + } + }, + "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" + } + }, + "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": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.5" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } + } + }, + "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.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } + } + }, + "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.3", + "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==" }, - "debug": { - "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" - } + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } + } + }, + "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==" }, - "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 - } - } - }, - "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=", - "dev": true, - "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=", - "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 - } - } - }, - "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", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.6", - "wtf-8": "1.0.0" - }, - "dependencies": { - "has-binary": { - "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" - } - } - } - }, - "finalhandler": { - "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", - "on-finished": "2.3.0", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } - }, - "http-proxy": { - "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" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "qs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz", - "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=", - "dev": true - }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "dev": true - }, - "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", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.6.0", - "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=", - "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 - } - } - }, - "socket.io-client": { - "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", - "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.0", - "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": { - "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 - } - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true - }, - "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" - } + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, - "browser-sync-client": { - "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" - } - }, - "browser-sync-ui": { - "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, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "async-each-series": "0.1.1", - "connect-history-api-fallback": "1.4.0", - "immutable": "3.8.1", - "server-destroy": "1.0.1", - "stream-throttle": "0.1.3", - "weinre": "2.0.0-pre-I0Z7U9OV" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" }, "dependencies": { - "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 + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, - "browserify-aes": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", - "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } + "babylon": { + "version": "7.0.0-beta.42", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.42.tgz", + "integrity": "sha512-h6E/OkkvcBw/JimbL0p8dIaxrcuQn3QmIYGC/GtJlRYif5LTKBYPHXYwqluJpfS/kOXoz0go+9mkmOVC0M+zWw==" }, - "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, - "requires": { - "pako": "0.2.9" - } + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" }, - "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 + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" - } - }, - "buffer-equal": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.2.tgz", - "integrity": "sha1-7Lt5D1aNQAmKYkK1SAXHWAXrk48=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "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 - }, - "bunker": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/bunker/-/bunker-0.1.2.tgz", - "integrity": "sha1-yImSRkqOKm7ehpMDdfkrWAd++Xw=", - "requires": { - "burrito": "0.2.12" - } - }, - "burrito": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/burrito/-/burrito-0.2.12.tgz", - "integrity": "sha1-0NbmrIHV6ZeJxvpKzLCwAx6lT2s=", - "requires": { - "traverse": "0.5.2", - "uglify-js": "1.1.1" - }, - "dependencies": { - "traverse": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.5.2.tgz", - "integrity": "sha1-4gPFjV9/DjfbbnTArLkpuwm2HYU=" - } - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", + "cache-base": "1.0.1", + "class-utils": "0.3.6", "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", + "define-property": "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" + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "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 + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "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" + } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "callsite": { + "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/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=" }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, + "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": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "tweetnacl": "0.14.5" } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, + "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": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "callsite": "1.0.0" } }, - "charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" + "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==" }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "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": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "buffer-more-ints": "0.0.2" } }, - "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==", - "dev": true, + "bl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "optional": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "readable-stream": "2.0.6" }, "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=", - "dev": true, - "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=", - "dev": true, - "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=", - "dev": true, - "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=", - "dev": true, - "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=", - "dev": true, - "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==", - "dev": true, + "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": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "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" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "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==", - "dev": true + "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 } } }, - "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=", - "dev": true + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, - "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 + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "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" } }, - "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=", + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "lodash": "4.17.2" + "hoek": "2.16.3" } }, - "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, + "bootstrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==" + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "delayed-stream": "1.0.0" + "balanced-match": "1.0.0", + "concat-map": "0.0.1" } }, - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "graceful-readlink": "1.0.1" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + "braille": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/braille/-/braille-1.1.0.tgz", + "integrity": "sha1-NIQZWEomm9L1YSsHYf0grUeZ1NQ=" }, - "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=" + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + "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" + } + } + } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "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=" + } + } }, - "concurrently": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.0.tgz", - "integrity": "sha1-jPG3cHppFqeKT/W3e7BN7FSzebI=", - "dev": true, + "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": { - "chalk": "0.5.1", - "commander": "2.6.0", - "date-fns": "1.29.0", - "lodash": "4.17.2", - "rx": "2.3.24", - "spawn-command": "0.0.2-1", - "supports-color": "3.2.3", - "tree-kill": "1.2.0" + "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": { - "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 + "after": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", + "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=" }, - "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 + "base64id": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", + "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=" }, - "chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", - "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=" + }, + "connect": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", + "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=", "requires": { - "ansi-styles": "1.1.0", - "escape-string-regexp": "1.0.5", - "has-ansi": "0.1.0", - "strip-ansi": "0.3.0", - "supports-color": "0.2.0" - }, - "dependencies": { - "supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "dev": true - } + "debug": "2.2.0", + "finalhandler": "0.5.0", + "parseurl": "1.3.2", + "utils-merge": "1.0.0" } }, - "commander": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "dev": true - }, - "has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", - "dev": true, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { - "ansi-regex": "0.2.1" + "ms": "0.7.1" } }, - "strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", - "dev": true, + "engine.io": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz", + "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=", "requires": { - "ansi-regex": "0.2.1" + "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=", + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, + "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": { - "has-flag": "1.0.0" + "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=", + "requires": { + "after": "0.8.1", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.6", + "wtf-8": "1.0.0" + }, + "dependencies": { + "has-binary": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", + "integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "finalhandler": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", + "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=", + "requires": { + "debug": "2.2.0", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "http-proxy": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "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=" + }, + "qs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz", + "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=" + }, + "socket.io": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz", + "integrity": "sha1-PkDZMmN+a9kjmBslyvfFPoO24uE=", + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.0", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.6.0", + "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", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "socket.io-client": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz", + "integrity": "sha1-W2aPT3cTBN/u0XkGRwg4b6ZxeFM=", + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.0", + "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": { + "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=" + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "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=" + }, + "ws": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz", + "integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg=", + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } + } + } }, - "connect": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz", - "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=", + "browser-sync-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.5.1.tgz", + "integrity": "sha1-7BrWmknC4tS2RbGLHAbCmz2a+Os=", "requires": { - "debug": "2.6.9", - "finalhandler": "1.0.6", - "parseurl": "1.3.2", - "utils-merge": "1.0.1" + "etag": "1.8.1", + "fresh": "0.3.0" } }, - "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 + "browser-sync-ui": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.3.tgz", + "integrity": "sha1-ZApTfBgGiTA9W+krxHa568RBwLw=", + "requires": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "1.4.0", + "immutable": "3.8.1", + "server-destroy": "1.0.1", + "stream-throttle": "0.1.3", + "weinre": "2.0.0-pre-I0Z7U9OV" + }, + "dependencies": { + "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=" + } + } }, - "connect-logger": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/connect-logger/-/connect-logger-0.0.1.tgz", - "integrity": "sha1-TZmZeKHSC7RgjnzUNNdBZSJVF0s=", - "dev": true, + "browserify": { + "version": "14.5.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", + "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", "requires": { - "moment": "2.18.1" + "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" + } + } } }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "requires": { - "date-now": "0.1.4" + "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" } }, - "constants-browserify": { + "browserify-cipher": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "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" + } }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "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" + } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" - }, - "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=" - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, + "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": { - "boom": "2.10.1" + "bn.js": "4.11.8", + "randombytes": "2.0.6" } }, - "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, + "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.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { - "browserify-aes": "0.4.0", - "pbkdf2-compat": "2.0.1", - "ripemd160": "0.2.0", - "sha.js": "2.2.6" + "pako": "1.0.6" } }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=" + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=" }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "base64-js": "1.2.3", + "ieee754": "1.1.10", + "isarray": "1.0.0" } }, - "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 + "buffer-equal": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.2.tgz", + "integrity": "sha1-7Lt5D1aNQAmKYkK1SAXHWAXrk48=" }, - "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 + "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=" }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "buildmail": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", + "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=", + "optional": true, "requires": { - "ms": "2.0.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" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, - "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=", - "dev": true + "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=" }, - "deep-equal": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz", - "integrity": "sha1-mWedO70EcVb81FDT0B7rkGhpHoM=" + "bunker": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/bunker/-/bunker-0.1.2.tgz", + "integrity": "sha1-yImSRkqOKm7ehpMDdfkrWAd++Xw=", + "requires": { + "burrito": "0.2.12" + } }, - "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=" + "burrito": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/burrito/-/burrito-0.2.12.tgz", + "integrity": "sha1-0NbmrIHV6ZeJxvpKzLCwAx6lT2s=", + "requires": { + "traverse": "0.5.2", + "uglify-js": "1.1.1" + }, + "dependencies": { + "traverse": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.5.2.tgz", + "integrity": "sha1-4gPFjV9/DjfbbnTArLkpuwm2HYU=" + } + } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, + "bytes": { + "version": "3.0.0", + "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": { - "clone": "1.0.2" + "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==" + } } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, + "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": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "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=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "del": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", - "integrity": "sha1-mlDwS/NzJeKDtPROmFM2wlJFa9U=", - "dev": true, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", "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" + "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" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "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=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "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=" }, - "detect-file": { + "callsite": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" }, - "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 + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=" + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "difflet": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/difflet/-/difflet-0.2.6.tgz", - "integrity": "sha1-qyOzH1ZJtvqo49KsvTNEZzZcpvo=", + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, "requires": { - "charm": "0.1.2", - "deep-is": "0.1.3", - "traverse": "0.6.6" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, - "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, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "@types/chai": "4.0.4" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.1", - "void-elements": "2.0.1" - } + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" }, - "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 + "charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" }, - "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, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "requires": { - "lodash": "3.10.1" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, - "eazy-logger": { - "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" - } + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, + "chrome-trace-event": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.2.tgz", + "integrity": "sha1-kPNohdU0WlBiEzLwcXtZWIPV2YI=" + }, + "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": { - "jsbn": "0.1.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "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 - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "circular-json": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.1.tgz", + "integrity": "sha512-UjgcRlTAhAkLeXmDe2wK7ktwy/tgAqxiSndTIPiFZuIPLZmzHzWMwUIe9h9m/OokypG7snxCDEuwJshGBdPvaw==" }, - "engine.io": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "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": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.2" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "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=" - } - } - }, - "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=", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.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", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "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" + } + } + } }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "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": { - "ms": "0.7.2" + "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" + } + } } }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + "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==" } } }, - "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=", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "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": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.0", - "tapable": "0.2.8" + "restore-cursor": "2.0.0" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=" }, - "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "requires": { - "prr": "0.0.0" + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } } }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", "requires": { - "is-arrayish": "0.2.1" + "slice-ansi": "0.0.4", + "string-width": "1.0.2" } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "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" + } }, - "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=" + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" + "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" + } }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "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": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" + "inherits": "2.0.3", + "process-nextick-args": "2.0.0", + "readable-stream": "2.3.5" }, "dependencies": { - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "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": { - "expand-range": "0.1.1" + "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" } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" - } - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=" - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=" } } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "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": { - "is-posix-bracket": "0.1.1" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "requires": { - "fill-range": "2.2.3" + "color-name": "1.1.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=", - "dev": true, + "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": { - "homedir-polyfill": "1.0.1" + "lodash": "4.17.5" } }, - "express": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", - "integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=", - "dev": true, + "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": { - "connect": "1.9.2", - "mime": "1.2.4", - "mkdirp": "0.3.0", - "qs": "0.4.2" + "convert-source-map": "1.1.3", + "inline-source-map": "0.6.2", + "lodash.memoize": "3.0.4", + "source-map": "0.5.7" }, "dependencies": { - "connect": { - "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", - "qs": "0.4.2" - } - }, - "mime": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz", - "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=", - "dev": true - }, - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true - }, - "qs": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz", - "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=", - "dev": true + "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=" } } }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "is-extendable": "0.1.1" + "delayed-stream": "1.0.0" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { - "is-extglob": "1.0.0" + "graceful-readlink": "1.0.1" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, - "fancy-log": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "time-stamp": "1.1.0" - } + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" }, - "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, - "requires": { - "loader-utils": "0.2.17" - } + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=" }, - "file-saver": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.3.tgz", - "integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=" + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" } }, - "finalhandler": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", - "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", + "concurrently": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz", + "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==", "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "chalk": "0.5.1", + "commander": "2.6.0", + "date-fns": "1.29.0", + "lodash": "4.17.5", + "rx": "2.3.24", + "spawn-command": "0.0.2-1", + "supports-color": "3.2.3", + "tree-kill": "1.2.0" }, "dependencies": { - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "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=" + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=" + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "requires": { + "ansi-styles": "1.1.0", + "escape-string-regexp": "1.0.5", + "has-ansi": "0.1.0", + "strip-ansi": "0.3.0", + "supports-color": "0.2.0" + }, + "dependencies": { + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=" + } + } + }, + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "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=", + "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=", + "requires": { + "ansi-regex": "0.2.1" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "1.0.0" + } } } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "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=" + }, + "connect-logger": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/connect-logger/-/connect-logger-0.0.1.tgz", + "integrity": "sha1-TZmZeKHSC7RgjnzUNNdBZSJVF0s=", + "requires": { + "moment": "2.18.1" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "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=" + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + }, + "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-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "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": { + "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": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + } + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "crypto-browserify": { + "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" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "1.0.2" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=" + }, + "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=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "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==" + }, + "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=" + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "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" + } + }, + "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": { + "clone": "1.0.2" + } + }, + "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": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "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": { + "ast-types": "0.11.3", + "escodegen": "1.9.1", + "esprima": "3.1.3" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "optional": true + } + } + }, + "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": { + "JSONStream": "1.3.2", + "shasum": "1.0.2", + "subarg": "1.0.0", + "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" + } + } + } + }, + "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" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, + "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" + } + }, + "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=" + }, + "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", + "integrity": "sha1-qyOzH1ZJtvqo49KsvTNEZzZcpvo=", + "requires": { + "charm": "0.1.2", + "deep-is": "0.1.3", + "traverse": "0.6.6" + } + }, + "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==", + "requires": { + "@types/chai": "4.0.4" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "requires": { + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "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", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "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.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.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + } + }, + "easy-extender": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz", + "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=", + "requires": { + "lodash": "3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + } + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "requires": { + "tfunk": "3.1.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "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.7", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", + "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=" + }, + "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=" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "end-of-stream": { + "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": "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.5", + "base64id": "1.0.0", + "cookie": "0.3.1", + "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": "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" + } + }, + "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": "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": "3.1.0", + "engine.io-parser": "2.1.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", + "yeast": "0.1.2" + }, + "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": "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" + } + }, + "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": "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.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "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": "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", + "tapable": "1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "requires": { + "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", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "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=" + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "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", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "requires": { + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" + }, + "dependencies": { + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "requires": { + "expand-range": "0.1.1" + } + }, + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "requires": { + "is-number": "0.1.1", + "repeat-string": "0.2.2" + } + }, + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=" + }, + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=" + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "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=", + "requires": { + "connect": "1.9.2", + "mime": "1.2.4", + "mkdirp": "0.3.0", + "qs": "0.4.2" + }, + "dependencies": { + "connect": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz", + "integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=", + "requires": { + "formidable": "1.0.17", + "mime": "1.2.4", + "qs": "0.4.2" + } + }, + "mime": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz", + "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=" + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" + }, + "qs": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz", + "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=" + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "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" + } + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + }, + "dependencies": { + "tmp": { + "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" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "requires": { + "chalk": "1.1.3", + "time-stamp": "1.1.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": "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" + } + }, + "file-loader": { + "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": "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.4", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.4.tgz", + "integrity": "sha512-4cUSbUiW6YI1WU2Mra5Be4hvX3bA1uO4s1aO0bfNK0npwDHluyGCC6JXBl1gI6wF4DmqjEmNoMSBn5N0Y9Kj1w==" + }, + "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=" + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "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", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "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", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, "requires": { - "detect-file": "1.0.0", - "is-glob": "3.1.0", - "micromatch": "3.1.9", - "resolve-dir": "1.0.1" + "detect-file": "1.0.0", + "is-glob": "3.1.0", + "micromatch": "3.1.9", + "resolve-dir": "1.0.1" + }, + "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.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "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" + } + } + } + }, + "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-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.68.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.68.0.tgz", + "integrity": "sha1-nMlmIKEC4xajFLa81WIFzqzoYtg=" + }, + "flush-write-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", + "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" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "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", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "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", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": 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.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "optional": true, + "requires": { + "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 + } + } + }, + "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=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "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.0", + "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", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "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", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "requires": { + "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=", + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "6.0.4", + "object-assign": "4.1.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "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", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "requires": { + "sparkles": "1.0.0" + } + }, + "google-maps": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/google-maps/-/google-maps-3.2.1.tgz", + "integrity": "sha1-wHWPKxdaSo0RDBq7H8TMOMEXbgY=" + }, + "got": { + "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", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "mimic-response": "1.0.0", + "p-cancelable": "0.4.0", + "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": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "requires": { + "lodash": "4.17.5" + } + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "requires": { + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.1.0", + "liftoff": "2.5.0", + "minimist": "1.2.0", + "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": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" + } + }, + "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": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "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=" }, - "braces": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", - "dev": true, + "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", + "replace-ext": "0.0.1" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "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=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "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": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "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": "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", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "requires": { + "sparkles": "1.0.0" + } + }, + "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==" + }, + "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": { + "has-symbol-support-x": "1.4.2" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "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": { - "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" + "kind-of": "3.2.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=", - "dev": true, - "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=", - "dev": true, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-extendable": "0.1.1" + "is-buffer": "1.1.6" } } } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "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=", - "dev": true, - "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=", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - } + "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" + } + }, + "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==" + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" + }, + "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=", + "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": "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", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "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=" + }, + "immutable": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", + "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=" + }, + "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", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "2.0.1" + } + }, + "indexof": { + "version": "0.0.1", + "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", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.1.0.tgz", + "integrity": "sha512-kn7N70US1MSZHZHSGJLiZ7iCwwncc7b0gc68YtlX29OjI3Mp0tSVV+snVXpZ1G+ONS3Ac9zd1m6hve2ibLDYfA==", + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rxjs": "5.5.7", + "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" } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, + "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=" + }, + "rxjs": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz", + "integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==", "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==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } + "symbol-observable": "1.0.1" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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=", - "dev": true, - "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=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, - "fill-range": { + "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "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=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "ansi-regex": "3.0.0" } }, - "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=", - "dev": true, + "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": { - "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=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "has-flag": "3.0.0" } }, - "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=", - "dev": true, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" + } + } + }, + "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": { + "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": { - "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=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "convert-source-map": "1.1.3", + "inline-source-map": "0.6.2", + "lodash.memoize": "3.0.4", + "source-map": "0.5.7" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "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" + } }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, + "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": { - "is-extglob": "2.1.1" + "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", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "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-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", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "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-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", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "requires": { + "lodash.isfinite": "3.3.2" + } + }, + "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": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "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=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, + "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-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=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", - "dev": true, - "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" - } + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "fined": { + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "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-retry-allowed": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", - "dev": true, + "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": { - "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" + "scoped-regex": "1.0.0" } }, - "first-chunk-stream": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "flagged-respawn": { + "is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", - "dev": true + "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" + } }, - "for-in": { + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { - "for-in": "1.0.2" + "isarray": "1.0.0" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "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, + "istextorbinary": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "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-core": { + "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=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "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.42", + "colors": "1.1.2", + "flow-parser": "0.68.0", + "lodash": "4.17.5", + "micromatch": "2.3.11", + "neo-async": "2.5.0", + "node-dir": "0.1.8", + "nomnom": "1.8.1", + "recast": "0.14.5", + "temp": "0.8.3", + "write-file-atomic": "1.3.4" } }, - "formidable": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz", - "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=", - "dev": true + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, - "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", - "dev": true + "json-parse-better-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", + "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==" }, - "fs-access": { + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "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", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "dev": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "null-check": "1.0.0" + "jsonify": "0.0.0" } }, - "fs-extra": { + "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=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" + "graceful-fs": "4.1.11" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "optional": true, + "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=", "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", - "bundled": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, - "delegates": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true - }, - "forever-agent": { + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "karma": { + "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.6", + "core-js": "2.5.3", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.16.2", + "isbinaryfile": "3.0.2", + "lodash": "4.17.5", + "log4js": "2.5.3", + "mime": "1.6.0", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.2.0", + "range-parser": "1.2.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "socket.io": "2.0.4", + "source-map": "0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + }, + "dependencies": { + "source-map": { "version": "0.6.1", - "bundled": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "karma-chrome-launcher": { + "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==", + "requires": { + "fs-access": "1.0.1", + "which": "1.3.0" + } + }, + "karma-cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", + "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", + "requires": { + "resolve": "1.5.0" + } + }, + "karma-dojo": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/karma-dojo/-/karma-dojo-0.0.1.tgz", + "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=", + "requires": { + "xmlbuilder": "3.1.0" + } + }, + "karma-jasmine": { + "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": "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.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=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "karma-webpack": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-3.0.0.tgz", + "integrity": "sha512-Ja1o9LLoqWaJyUNhTKaXjWiEH9y7a9H3mzP8pYB30SBsgoF5KBS/65NeHFd+QPuT9ITrym8xFt8BZeGbcOfujA==", + "requires": { + "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": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "lodash": "4.17.5" } }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "optional": 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": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, + } + } + }, + "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", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "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": { + "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=", + "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==" + }, + "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.7", + "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": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.0" } }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "optional": true, + "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": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "chalk": "1.1.3" } }, - "inflight": { - "version": "1.0.6", - "bundled": true, + "rxjs": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz", + "integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "symbol-observable": "1.0.1" } }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" + } + } + }, + "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": { - "number-is-nan": "1.0.1" + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "optional": true + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" }, - "jodid25519": { + "log-symbols": { "version": "1.0.2", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "requires": { - "jsbn": "0.1.1" + "chalk": "1.1.3" } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "optional": true, + } + } + }, + "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": { - "jsonify": "0.0.0" + "restore-cursor": "1.0.1" } }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "optional": true, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.0" } }, - "mime-db": { - "version": "1.27.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "requires": { - "mime-db": "1.27.0" - } + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, - "minimatch": { - "version": "3.0.4", - "bundled": true, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "requires": { - "brace-expansion": "1.1.7" + "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=", + "requires": { + "browser-sync": "2.18.13", + "connect-history-api-fallback": "1.4.0", + "connect-logger": "0.0.1", + "lodash": "4.17.5", + "minimist": "1.2.0" + }, + "dependencies": { "minimist": { - "version": "0.0.8", - "bundled": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "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", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.0" + } + }, + "localtunnel": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.3.tgz", + "integrity": "sha1-3MWSL9hWUQN9S94k/ZMkjQsk6wU=", + "requires": { + "debug": "2.6.8", + "openurl": "1.1.1", + "request": "2.81.0", + "yargs": "3.29.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "requires": { - "minimist": "0.0.8" + "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "bundled": true, - "optional": true, + "yargs": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", + "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "camelcase": "1.2.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "window-size": "0.1.4", + "y18n": "3.2.1" } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, + } + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "requires": { + "lodash._root": "3.0.1" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "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.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "2.3.2" + }, + "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": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "color-convert": "1.9.1" } }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "optional": true, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" } }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, + "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": { - "wrappy": "1.0.2" + "has-flag": "3.0.0" } + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "requires": { + "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=" }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { + "cli-cursor": { "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "restore-cursor": "1.0.1" } }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "optional": true + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true + "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" + } }, - "punycode": { - "version": "1.4.1", - "bundled": true, + "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 }, - "qs": { - "version": "6.4.0", - "bundled": 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 }, - "rc": { - "version": "1.2.1", - "bundled": 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": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" } }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, + "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": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "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.81.0", - "bundled": true, + "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", - "caseless": "0.12.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.1.4", - "har-validator": "4.2.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.15", + "mime-types": "2.1.17", + "node-uuid": "1.4.8", "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", + "qs": "6.2.3", "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "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", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "0.4.1", + "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=" + }, + "lru-cache": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=" + }, + "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" } }, - "rimraf": { - "version": "2.6.1", - "bundled": true, + "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=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.2.0" + } + }, + "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": { + "through2": "2.0.3", + "vinyl": "1.2.0", + "vinyl-file": "2.0.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" + } + } + } + }, + "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.7", + "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.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + }, + "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.1", + "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" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "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.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "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", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.10", + "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.1", + "duplexify": "3.5.4", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "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": { - "glob": "7.1.2" + "readable-stream": "2.3.3", + "xtend": "4.0.1" } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, + } + } + }, + "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": { - "hoek": "2.16.3" + "is-plain-object": "2.0.4" } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "optional": true, + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "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": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "inherits": "2.0.3", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true + "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-width": { - "version": "1.0.2", - "bundled": 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.1", - "bundled": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, - "tar": { - "version": "2.2.1", - "bundled": true, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "readable-stream": "2.3.3", + "xtend": "4.0.1" } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "optional": true, + } + } + }, + "moment": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + }, + "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", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "requires": { + "duplexer2": "0.0.2" + }, + "dependencies": { + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "readable-stream": "1.1.14" } }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "optional": true, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "optional": true + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "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.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=" }, - "uuid": { - "version": "3.0.1", - "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=" }, - "verror": { - "version": "1.3.6", - "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": { - "extsprintf": "1.0.2" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" } }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "optional": true, + "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": { - "string-width": "1.0.2" + "is-plain-object": "2.0.4" } }, - "wrappy": { - "version": "1.0.2", - "bundled": true + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "dev": true, - "requires": { - "globule": "0.1.0" - } + "natives": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.2.tgz", + "integrity": "sha512-5bRASydE1gu6zPOenLN043++J8xj1Ob7ArkfdYO3JN4DF5rDmG7bMoiybkTyD+GnXQEMixVeDHMzuqm6kpBmiA==" }, - "geojson": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.4.1.tgz", - "integrity": "sha1-wO3EGiL8n0ZnxAL5ZrFRWPQ8Adg=" + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, - "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 + "neo-async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", + "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==" }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "optional": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, + "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": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "moment": "2.18.1" } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } + "ng2-translate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ng2-translate/-/ng2-translate-5.0.0.tgz", + "integrity": "sha1-Ctu1EOtQB6LW3tX10miIwUdgrKU=" }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } + "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==" }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "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": { - "is-glob": "2.0.1" + "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.12.0", + "domain-browser": "1.2.0", + "events": "1.1.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.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" } }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "dev": true, + "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": { - "gaze": "0.5.2" + "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": { + "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" + } + } } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "dev": true, + "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": { - "find-index": "0.1.1" + "nodemailer-shared": "1.1.0", + "smtp-connection": "2.12.0" } }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, + "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": { - "global-prefix": "1.0.2", - "is-windows": "1.0.2", - "resolve-dir": "1.0.1" + "nodemailer-fetch": "1.6.0" } }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, + "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": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.4", - "is-windows": "1.0.2", - "which": "1.3.0" + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" } }, - "globby": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", - "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", - "dev": true, + "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": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "6.0.4", - "object-assign": "4.1.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "glob": { - "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", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - } + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" } }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, + "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": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" + "chalk": "0.4.0", + "underscore": "1.6.0" }, "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, + "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": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" } }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2.2.4", - "sigmund": "1.0.1" - } + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" } } }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true, + "nopt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz", + "integrity": "sha1-KqCbfRdoSHs7ianFqlIzW/8Lrqc=", "requires": { - "sparkles": "1.0.0" + "abbrev": "1.1.1" } }, - "google-maps": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/google-maps/-/google-maps-3.2.1.tgz", - "integrity": "sha1-wHWPKxdaSo0RDBq7H8TMOMEXbgY=" + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "4.3.6", + "validate-npm-package-license": "3.0.1" + } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } }, - "graceful-readlink": { + "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" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" + }, + "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "dev": true, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=" + }, + "object-component": { + "version": "0.0.3", + "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": { - "archy": "1.0.0", - "chalk": "1.1.3", - "deprecated": "0.0.1", - "gulp-util": "3.0.8", - "interpret": "1.1.0", - "liftoff": "2.5.0", - "minimist": "1.2.0", - "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" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.4.0" - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, + "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": { - "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" + "is-descriptor": "0.1.6" } }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, + "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": { - "natives": "1.1.2" + "kind-of": "3.2.2" } }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, + "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": { - "brace-expansion": "1.1.8" + "kind-of": "3.2.2" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "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=", - "dev": true - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, + "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": { - "first-chunk-stream": "1.0.0", - "is-utf8": "0.2.1" + "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-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "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==" }, - "unique-stream": { + "for-own": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "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=", - "dev": true, - "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" + "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=" } } }, - "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=", - "dev": true, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", "requires": { - "del": "2.2.0", - "through2": "2.0.1" + "for-own": "1.0.0", + "make-iterator": "1.0.0" }, "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": 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" - } - }, - "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 - }, - "through2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", - "dev": true, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "requires": { - "readable-stream": "2.0.6", - "xtend": "4.0.1" + "for-in": "1.0.2" } } } }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "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" + "for-own": "0.1.5", + "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": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "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=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "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=", - "dev": true, - "requires": { - "clone": "1.0.2", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" - } + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { - "glogg": "1.0.0" + "ee-first": "1.1.1" } }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "dev": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "wrappy": "1.0.2" + } + }, + "onetime": { + "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=" + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "requires": { + "object-assign": "4.1.0", + "pinkie-promise": "2.0.1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.10", + "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": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "optional": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, + } + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "requires": { + "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": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "restore-cursor": "1.0.1" } }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } + "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" } }, - "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, - "optional": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "wrappy": "1.0.2" } } } }, - "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 + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, - "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" - } + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { - "ansi-regex": "2.1.1" + "lcid": "1.0.0" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-cancelable": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.0.tgz", + "integrity": "sha512-/AodqPe1y/GYbhSlnMjxukLGQfQIgsmjSy2CXCNB96kg4ozKvmlovuHEKICToOO/yS3LLWgrWI1dFtFfrePS1g==" + }, + "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": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } + "p-reduce": "1.0.0" } }, - "has-cors": { + "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/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" }, - "has-flag": { + "p-lazy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", + "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=" }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, + "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": { - "sparkles": "1.0.0" + "p-try": "1.0.0" } }, - "has-value": { + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "1.2.0" + } + }, + "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/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, + "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": { - "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=", - "dev": true - } + "p-finally": "1.0.0" } }, - "has-values": { + "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, + "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": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "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" + } + }, + "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" + } + }, + "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-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, + "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": { - "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=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "is-relative": "1.0.0", + "is-windows": "1.0.2" } }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, + "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-buffer": "1.1.6" + "is-unc-path": "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, + "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=" + }, + "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=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-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=" + }, + "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": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "path-root-regex": "0.1.2" } }, - "highlight.js": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", - "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=", - "dev": true + "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=" }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "requires": { - "parse-passwd": "1.0.0" + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.11" } }, - "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==", - "dev": true + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "pinkie": "2.0.4" } }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "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" + } + } } }, - "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, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "async": "1.5.2", + "is-number-like": "1.0.8" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } } }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true + "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=" }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, - "immutable": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", - "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", - "dev": true + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "prettier": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==" }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, - "interpret": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", - "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", - "dev": true + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, - "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 + "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=" }, - "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==", - "dev": true, + "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=", "requires": { - "kind-of": "6.0.2" + "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": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "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 } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" }, - "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=", + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "requires": { - "binary-extensions": "1.10.0" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" } }, - "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", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { - "builtin-modules": "1.1.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, + "pumpify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "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==", - "dev": true - } + "duplexify": "3.5.4", + "inherits": "2.0.3", + "pump": "2.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "purs-loader": { + "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": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "bluebird": "3.5.1", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "dargs": "5.1.0", + "debug": "2.6.9", + "globby": "4.1.0", + "js-string-escape": "1.0.1", + "loader-utils": "1.1.0", + "lodash.difference": "4.5.0", + "promise-retry": "1.1.1" }, "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "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=", + "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" + } } } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "optional": true }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "qjobs": { + "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==" }, - "is-fullwidth-code-point": { - "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" - } + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "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": { - "is-extglob": "1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.0", + "strict-uri-encode": "1.1.0" } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "requires": { - "kind-of": "3.2.2" - } + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, - "is-number-like": { - "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" - } + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "requires": { - "is-number": "4.0.0" + "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/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } } } }, - "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=", - "dev": true + "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" + } }, - "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=", - "dev": true, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "is-path-inside": "1.0.1" + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" } }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", "requires": { - "path-is-inside": "1.0.2" + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" } }, - "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==", - "dev": true, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" + }, + "read-chunk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", + "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", "requires": { - "isobject": "3.0.1" + "pify": "3.0.0", + "safe-buffer": "5.1.1" }, "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" - }, - "is-primitive": { + "read-only-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "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==", - "dev": true, + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "requires": { - "unc-path-regex": "0.1.2" + "readable-stream": "2.3.3" } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "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==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } }, - "isbinaryfile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=" + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "isobject": { + "readdirp": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "isarray": "1.0.0" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" } }, - "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 - }, - "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 - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "recast": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.5.tgz", + "integrity": "sha512-GNFQGQrqW1R8w9XhhgYIN8H7ePPp088D+svHlb7DdP5DCqNDqTwH7lt378EouM+L18kCwkmqpAz1unLqpPhHmw==", + "requires": { + "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==" + } + } }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "1.5.0" + } }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, + "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": { - "jsonify": "0.0.0" + "double-ended-queue": "2.1.0-0", + "redis-commands": "1.3.5", + "redis-parser": "2.6.0" } }, - "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 + "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 }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + "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 }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "reflect-metadata": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==" }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, + "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": { - "graceful-fs": "4.1.11" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "is-equal-shallow": "0.1.3" } }, - "karma": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", - "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "bluebird": "3.5.1", - "body-parser": "1.18.2", - "chokidar": "1.7.0", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.5", - "core-js": "2.5.1", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.2", - "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", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.1.5", - "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" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" }, "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + "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" + } } } }, - "karma-chrome-launcher": { - "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" - } - }, - "karma-cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", - "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", - "dev": true, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "resolve": "1.5.0" + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, - "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 + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, - "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, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "xmlbuilder": "3.1.0" + "jsesc": "0.5.0" } }, - "karma-jasmine": { + "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", - "integrity": "sha1-IuTAa/mhguUpTR9wXjczgRuBCs8=", - "dev": true + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, - "karma-jasmine-html-reporter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", - "dev": true, - "requires": { - "karma-jasmine": "1.1.0" - } + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, - "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, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "graceful-fs": "4.1.11" + "is-finite": "1.0.2" } }, - "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, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "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" + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" }, "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" }, - "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, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "amdefine": "1.0.1" + "safe-buffer": "5.1.1" } + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" } } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requestretry": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz", + "integrity": "sha512-Lmh9qMvnQXADGAQxsXHP4rbgO6pffCfuR8XUBdP9aitJcLQJxhp7YZK4xAVYXnPJ5E52mwrfiKQtKonPL8xsmg==", + "optional": true, "requires": { - "is-buffer": "1.1.6" + "extend": "3.0.1", + "lodash": "4.17.5", + "request": "2.81.0", + "when": "3.7.8" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, - "lcid": { + "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=" + }, + "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "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=", + "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": { - "invert-kv": "1.0.0" + "lowercase-keys": "1.0.0" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, + "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": { - "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" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, - "limiter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.2.tgz", - "integrity": "sha512-JIKZ0xb6fZZYa3deZ0BgXCgX6HgV8Nx3mFGeFHmFWW8Fb2c08e0CyE+G3nalpD0xGvGssjGb1UdFr+PprxZEbw==", - "dev": true + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, - "lite-server": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/lite-server/-/lite-server-2.3.0.tgz", - "integrity": "sha1-W0zI9dX9SDYQVICrKsSKOg3isMg=", - "dev": true, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "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=", + "optional": true, "requires": { - "browser-sync": "2.18.13", - "connect-history-api-fallback": "1.4.0", - "connect-logger": "0.0.1", - "lodash": "4.17.2", - "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 - } + "align-text": "0.1.4" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "glob": "7.1.2" } }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.0" + "hash-base": "2.0.2", + "inherits": "2.0.3" } }, - "localtunnel": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.3.tgz", - "integrity": "sha1-3MWSL9hWUQN9S94k/ZMkjQsk6wU=", - "dev": true, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "debug": "2.6.8", - "openurl": "1.1.1", - "request": "2.81.0", - "yargs": "3.29.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "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" - } - }, - "yargs": { - "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", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "window-size": "0.1.4", - "y18n": "3.2.1" - } - } + "is-promise": "2.1.0" } }, - "lodash": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", - "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I=" - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true + "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" + } }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true + "runforcover": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/runforcover/-/runforcover-0.0.2.tgz", + "integrity": "sha1-NE8FfY1F0zrrxsyCIEZ49pxIV8w=", + "requires": { + "bunker": "0.1.2" + } }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true + "rw": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/rw/-/rw-0.0.4.tgz", + "integrity": "sha1-3iex7VuRdXcuqiKnlmJRC9BZjEw=" }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true + "rx": { + "version": "2.3.24", + "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", + "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=" }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, + "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": { - "lodash._root": "3.0.1" + "rx-lite": "4.0.8" } }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true + "rxjs": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz", + "integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==", + "requires": { + "symbol-observable": "1.0.1" + } }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, - "lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", - "dev": true + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, + "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": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "ajv": "6.3.0", + "ajv-keywords": "3.1.0" + }, + "dependencies": { + "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" + } + } } }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, + "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=", "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" + "debug": "2.6.4", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.0", + "http-errors": "1.6.2", + "mime": "1.3.4", + "ms": "1.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", + "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", + "requires": { + "ms": "0.7.3" + }, + "dependencies": { + "ms": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", + "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=" + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + }, + "ms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz", + "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } } }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" - } + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" }, - "log4js": { - "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "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=", "requires": { - "readable-stream": "1.0.34", - "semver": "4.3.6" + "accepts": "1.3.3", + "batch": "0.5.3", + "debug": "2.2.0", + "escape-html": "1.0.3", + "http-errors": "1.5.1", + "mime-types": "2.1.17", + "parseurl": "1.3.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "http-errors": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", + "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", "requires": { - "core-util-is": "1.0.2", "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "setprototypeof": "1.0.2", + "statuses": "1.4.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "setprototypeof": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", + "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=" } } }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=" - }, - "make-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", - "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", - "dev": true, + "serve-static": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz", + "integrity": "sha1-5UbicmCBuBtLzsjpCAjrzdMjr7o=", "requires": { - "kind-of": "3.2.2" + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.15.2" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=" }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "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": { - "object-visit": "1.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" } }, - "marked": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", - "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ==", - "dev": true + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" }, - "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=", + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "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" + } + } } }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - }, - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" - }, - "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "mime-db": "1.30.0" + "shebang-regex": "1.0.0" } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "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": { - "brace-expansion": "1.1.8" + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" } }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, + "shelljs": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", + "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "glob": "7.1.2", + "interpret": "1.1.0", + "rechoir": "0.6.2" }, "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==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" } } }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.2", + "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": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "requestretry": "1.13.0" } }, - "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + "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=" }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "smart-buffer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, + "smtp-connection": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", + "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=", "requires": { - "duplexer2": "0.0.2" + "httpntlm": "1.6.1", + "nodemailer-shared": "1.1.0" + } + }, + "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": { + "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": { - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, + "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": { - "readable-stream": "1.1.14" + "is-descriptor": "0.1.6" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, + "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": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "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" + } + } } }, - "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 - } - } - }, - "nan": { - "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==", - "dev": true, - "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=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, + "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": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "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-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, + "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-plain-object": "2.0.4" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, - "natives": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.2.tgz", - "integrity": "sha512-5bRASydE1gu6zPOenLN043++J8xj1Ob7ArkfdYO3JN4DF5rDmG7bMoiybkTyD+GnXQEMixVeDHMzuqm6kpBmiA==", - "dev": true - }, - "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" - } - }, - "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, + "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": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.3.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "0.0.1", - "os-browserify": "0.2.1", - "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", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "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 + "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" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "nopt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz", - "integrity": "sha1-KqCbfRdoSHs7ianFqlIzW/8Lrqc=", - "requires": { - "abbrev": "1.1.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "4.3.6", - "validate-npm-package-license": "3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "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": { - "remove-trailing-separator": "1.1.0" + "kind-of": "3.2.2" } }, - "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 - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "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 - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, + "socket.io": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", + "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "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": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, - "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=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" }, - "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=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "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=" }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, + "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": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "component-emitter": "1.2.1", + "debug": "3.1.0", + "has-binary2": "1.0.2", + "isarray": "2.0.1" }, "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==", - "dev": true + "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" + } } } } } }, - "object-path": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", - "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, + "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": { - "isobject": "3.0.1" + "debug": "2.3.3", + "socket.io-parser": "2.3.1" }, "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "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=" } } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, + "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": { - "array-each": "1.0.1", - "array-slice": "1.1.0", - "for-own": "1.0.0", - "isobject": "3.0.1" + "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": { - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "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=" }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, + "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": { - "for-in": "1.0.2" + "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" + } + } } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", "requires": { - "for-own": "1.0.0", - "make-iterator": "1.0.0" + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" }, "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { - "for-in": "1.0.2" + "ms": "0.7.1" } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "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=" } } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "requires": { - "for-own": "0.1.5", - "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=", - "dev": true, + "socks": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "requires": { - "isobject": "3.0.1" + "ip": "1.1.5", + "smart-buffer": "1.1.15" }, "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" } } }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "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": { - "ee-first": "1.1.1" + "agent-base": "2.1.1", + "extend": "3.0.1", + "socks": "1.1.10" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "requires": { - "wrappy": "1.0.2" + "is-plain-obj": "1.1.0" } }, - "openurl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", - "dev": true + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" }, - "opn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", - "dev": true, + "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": { - "object-assign": "4.1.0", - "pinkie-promise": "2.0.1" + "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" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "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": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" + "source-map": "0.5.7" } }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + "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", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=" + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "dev": true, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "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": { - "end-of-stream": "0.1.5", - "sequencify": "0.0.7", - "stream-consume": "0.1.1" + "extend-shallow": "3.0.2" }, "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=", - "dev": true, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "once": "1.3.3" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" } }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, + "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": { - "wrappy": "1.0.2" + "is-plain-object": "2.0.4" } } } }, - "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 - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { - "lcid": "1.0.0" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true + "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" + } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "is-absolute": "1.0.0", - "map-cache": "0.2.2", - "path-root": "0.1.1" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "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==", - "dev": true, + "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-relative": "1.0.0", - "is-windows": "1.0.2" + "is-descriptor": "0.1.6" } }, - "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==", - "dev": true, + "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": { - "is-unc-path": "1.0.0" + "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==" } } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "inherits": "2.0.3", + "readable-stream": "2.3.3" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "requires": { - "error-ex": "1.3.1" + "duplexer2": "0.1.4", + "readable-stream": "2.3.3" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "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==" }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { - "better-assert": "1.0.2" + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" } }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "stream-http": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz", + "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==", "requires": { - "better-assert": "1.0.2" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "stream-shift": { + "version": "1.0.0", + "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": { - "better-assert": "1.0.2" + "inherits": "2.0.3", + "readable-stream": "2.3.3" } }, - "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=", - "dev": true - }, - "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 + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "requires": { + "commander": "2.8.1", + "limiter": "1.1.2" + } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, + "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": { - "pinkie-promise": "2.0.1" + "any-observable": "0.2.0" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "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" + } + } + } }, - "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=", - "dev": true + "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=" }, - "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 + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "path-root-regex": "0.1.2" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, - "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=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, + "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": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "safe-buffer": "5.1.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 - }, - "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 - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "pinkie": "2.0.4" + "is-utf8": "0.2.1" } }, - "portscanner": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", - "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", - "dev": true, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "async": "1.5.2", - "is-number-like": "1.0.8" + "first-chunk-stream": "2.0.0", + "strip-bom": "2.0.0" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "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" + } } } }, - "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=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "strxml": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/strxml/-/strxml-0.0.0.tgz", + "integrity": "sha1-j/UxTIyHTbBVBnN2GoHk0/JEFFw=", + "requires": { + "tap": "0.4.13" + } }, - "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=" + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "requires": { + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } }, - "progress": { + "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "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" + } }, - "qjobs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", - "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=" + "tap": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/tap/-/tap-0.4.13.tgz", + "integrity": "sha1-OYYTTWdZcn/CIj5hEm7rhyQ6zLw=", + "requires": { + "buffer-equal": "0.0.2", + "deep-equal": "0.0.0", + "difflet": "0.2.6", + "glob": "3.2.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "nopt": "2.2.1", + "runforcover": "0.0.2", + "slide": "1.1.6", + "yamlish": "0.0.7" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "requires": { + "lru-cache": "2.2.4", + "sigmund": "1.0.1" + } + } + } }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" }, - "querystring": { + "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", + "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/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "textextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz", + "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==" }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "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", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.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" - }, - "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" - } - } - } + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "is-buffer": "1.1.6" + "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=" } } }, - "range-parser": { + "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/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" + "os-homedir": "1.0.2" } }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" - }, - "read-pkg": { + "time-stamp": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "timers-browserify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", + "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "setimmediate": "1.0.5" } }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" - } + "timespan": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", + "optional": true }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "resolve": "1.5.0" + "os-tmpdir": "1.0.2" } }, - "reflect-metadata": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", - "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=" + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "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": { - "is-equal-shallow": "0.1.3" + "kind-of": "3.2.2" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, + "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": { @@ -5857,7 +11199,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -5867,450 +11208,277 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "2.0.4" } } } }, - "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=" - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, + "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": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "safe-buffer": "5.1.1" + "kind-of": "3.2.2" } - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "dev": true } } }, - "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 - }, - "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 - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "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-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "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" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "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, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", - "dev": true - }, - "runforcover": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/runforcover/-/runforcover-0.0.2.tgz", - "integrity": "sha1-NE8FfY1F0zrrxsyCIEZ49pxIV8w=", + "tokml": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/tokml/-/tokml-0.4.0.tgz", + "integrity": "sha1-fAMhtCRmPKMYegpBny37z5DaNyo=", "requires": { - "bunker": "0.1.2" + "minimist": "0.1.0", + "rw": "0.0.4", + "strxml": "0.0.0" + }, + "dependencies": { + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=" + } } }, - "rw": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/rw/-/rw-0.0.4.tgz", - "integrity": "sha1-3iex7VuRdXcuqiKnlmJRC9BZjEw=" - }, - "rx": { - "version": "2.3.24", - "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", - "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=", - "dev": true - }, - "rxjs": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.0.1.tgz", - "integrity": "sha1-Omm9+fDKCphjAzcNRwj3K9+sg1Y=", + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { - "symbol-observable": "1.0.4" + "punycode": "1.4.1" } }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } + "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==" }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, - "send": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz", - "integrity": "sha1-+R+rRAO8+H5xb3DOtdsvV4vcF9Y=", - "dev": true, + "ts-helpers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ts-helpers/-/ts-helpers-1.1.2.tgz", + "integrity": "sha1-/Gm+nx87rtAfsaDvjUz+dIgU2DU=" + }, + "ts-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.1.0.tgz", + "integrity": "sha512-R4VEE0SZhU8gLa9Aayg2XOvpVjXtbB7KMLXs4He0xr92DM5G12i76IWd+lMLfmCz66Ztr2XFvDNvMAymHJGIqg==", "requires": { - "debug": "2.6.4", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.0", - "http-errors": "1.6.2", - "mime": "1.3.4", - "ms": "1.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "chalk": "2.3.2", + "enhanced-resolve": "4.0.0", + "loader-utils": "1.1.0", + "micromatch": "3.1.9", + "semver": "5.5.0" }, "dependencies": { - "debug": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", - "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", - "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": { - "ms": "0.7.3" + "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.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "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": { - "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 + "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" + } } } }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", - "dev": true - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true + "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" + } }, - "ms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz", - "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=", - "dev": 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==" + } + } }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - } - } - }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, - "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", - "debug": "2.2.0", - "escape-html": "1.0.3", - "http-errors": "1.5.1", - "mime-types": "2.1.17", - "parseurl": "1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "ms": "0.7.1" + "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" + } + } } }, - "http-errors": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", - "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", - "dev": true, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "inherits": "2.0.3", - "setprototypeof": "1.0.2", - "statuses": "1.4.0" + "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" + } + } } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "setprototypeof": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", - "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=", - "dev": true - } - } - }, - "serve-static": { - "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", - "parseurl": "1.3.2", - "send": "0.15.2" - } - }, - "server-destroy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", - "dev": true - }, - "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 - }, - "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==", - "dev": true, - "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 - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "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 - }, - "shelljs": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", - "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", - "dev": true, - "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=", - "dev": true - } - } - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "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": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "is-descriptor": "0.1.6" + "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=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -6319,7 +11487,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6330,7 +11497,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -6339,1323 +11505,1555 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "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": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, + "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": { - "is-descriptor": "1.0.2" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "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" + } + }, + "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" + } } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", + "optional": true }, - "socket.io": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", - "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" - }, - "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=" - } + "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=", + "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" } }, - "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=", + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" + "media-typer": "0.3.0", + "mime-types": "2.1.18" }, "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "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": { - "ms": "0.7.2" + "mime-db": "1.33.0" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" } } }, - "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=", + "typedarray": { + "version": "0.0.6", + "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": { - "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" + "@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": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "@types/lodash": { + "version": "4.14.104", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.104.tgz", + "integrity": "sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ==" }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "requires": { - "ms": "0.7.2" + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" } }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" - } - } - }, - "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", - "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "ms": "0.7.1" + "graceful-fs": "4.1.11" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "typescript": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==" } } }, - "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 + "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=" }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "typescript": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==" }, - "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==", - "dev": true, - "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" - } + "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=" }, - "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=", - "dev": true + "uglify-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.1.1.tgz", + "integrity": "sha1-7nGpfEzv0GoamyBDfzQRiYKqA1s=" }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true }, - "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 + "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" + } + } + } }, - "spdx-correct": { + "ultron": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true, - "requires": { - "spdx-license-ids": "1.2.2" - } + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true + "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=" }, - "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==", - "dev": true, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { - "extend-shallow": "3.0.2" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "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==", - "dev": true, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "is-plain-object": "2.0.4" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "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" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "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=", - "dev": true, - "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=", - "dev": true, + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "kind-of": "3.2.2" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { - "is-buffer": "1.1.6" + "isarray": "1.0.0" } } } }, - "is-data-descriptor": { + "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "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=", - "dev": true, - "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==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, - "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==", - "dev": true + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "untildify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", + "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=" }, - "stream-browserify": { - "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" - } + "upath": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", + "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==" }, - "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==", - "dev": true + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, - "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, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } } }, - "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" - } + "url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=" }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, + "url-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.0.1.tgz", + "integrity": "sha512-rAonpHy7231fmweBKUFe0bYnlGDty77E+fm53NZdij7j/YOpyGzc7ttqG1nAXl3aRs0k41o0PC3TvGXQiw2Zvw==", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "loader-utils": "1.1.0", + "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==" + } } }, - "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==", + "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": { - "safe-buffer": "5.1.1" + "prepend-http": "2.0.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true + "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=" }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, + "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": { - "ansi-regex": "2.1.1" + "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==" + } } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, - "strxml": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/strxml/-/strxml-0.0.0.tgz", - "integrity": "sha1-j/UxTIyHTbBVBnN2GoHk0/JEFFw=", + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "requires": { - "tap": "0.4.13" + "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" + } + } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "symbol-observable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" - }, - "tap": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/tap/-/tap-0.4.13.tgz", - "integrity": "sha1-OYYTTWdZcn/CIj5hEm7rhyQ6zLw=", + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { - "buffer-equal": "0.0.2", - "deep-equal": "0.0.0", - "difflet": "0.2.6", - "glob": "3.2.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "nopt": "2.2.1", - "runforcover": "0.0.2", - "slide": "1.1.6", - "yamlish": "0.0.7" + "inherits": "2.0.1" }, "dependencies": { - "glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "requires": { - "inherits": "2.0.3", - "minimatch": "0.3.0" - } - }, - "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "requires": { - "lru-cache": "2.2.4", - "sigmund": "1.0.1" - } + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" } } }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + "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=" + }, + "uws": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", + "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", + "optional": true }, - "tfunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", - "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", - "dev": 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": { - "chalk": "1.1.3", - "object-path": "0.9.2" + "user-home": "1.1.1" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, + "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": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "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": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": 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=", - "dev": true + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, - "tildify": { + "vinyl": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "dev": true, + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "os-homedir": "1.0.2" + "clone": "1.0.2", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" } }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "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, + "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": { - "setimmediate": "1.0.5" + "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" } }, - "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "requires": { - "os-tmpdir": "1.0.2" + "indexof": "0.0.1" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "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 - }, - "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=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, + "watchpack": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", + "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "chokidar": "2.0.2", + "graceful-fs": "4.1.11", + "neo-async": "2.5.0" }, "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.9", + "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.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "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" + } + } + } + }, + "chokidar": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.1", + "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=", - "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "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-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-plain-object": "2.0.4" + "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" + } + } } - } - } - }, - "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=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - }, - "dependencies": { + }, + "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=", - "dev": true, "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" } } } }, - "tokml": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tokml/-/tokml-0.4.0.tgz", - "integrity": "sha1-fAMhtCRmPKMYegpBny37z5DaNyo=", - "requires": { - "minimist": "0.1.0", - "rw": "0.0.4", - "strxml": "0.0.0" - }, - "dependencies": { - "minimist": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", - "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=" - } - } - }, - "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" - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, - "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 - }, - "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 - }, - "ts-loader": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-1.3.3.tgz", - "integrity": "sha1-MMYgPh5muEGohwHtiFjxcl2UsCY=", - "requires": { - "colors": "1.1.2", - "enhanced-resolve": "3.4.1", - "loader-utils": "0.2.17", - "object-assign": "4.1.0", - "semver": "5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - } - } - }, - "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 - }, - "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-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.17" - } - }, - "typedoc": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.11.1.tgz", - "integrity": "sha512-jdNIoHm5wkZqxQTe/g9AQ3LKnZyrzHXqu6A/c9GUOeJyBWLxNr7/Dm3rwFvLksuxRNwTvY/0HRDU9sJTa9WQSg==", - "dev": true, - "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" + "webpack": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.1.1.tgz", + "integrity": "sha512-PwxKH81yLjbPyBSZvPj/Ji9pT99XOGFA0t6zipoOKOMNRZ+09N39J5Uzcx3rYKnsHgKwDnfGkvzac4MF2Taknw==", + "requires": { + "acorn": "5.5.3", + "acorn-dynamic-import": "3.0.0", + "ajv": "6.3.0", + "ajv-keywords": "3.1.0", + "chrome-trace-event": "0.1.2", + "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.9", + "mkdirp": "0.5.1", + "neo-async": "2.5.0", + "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": { - "@types/lodash": { - "version": "4.14.104", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.104.tgz", - "integrity": "sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ==", - "dev": true + "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" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "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" + } + } + } }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dev": true, + "enhanced-resolve": { + "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", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "memory-fs": "0.4.1", + "tapable": "1.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": 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": { - "graceful-fs": "4.1.11" + "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==" + } } }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true + "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" + } + } + } }, - "typescript": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", - "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", - "dev": true - } - } - }, - "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=", - "dev": true - }, - "typescript": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", - "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==", - "dev": true - }, - "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 - }, - "uglify-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.1.1.tgz", - "integrity": "sha1-7nGpfEzv0GoamyBDfzQRiYKqA1s=" - }, - "uglify-to-browserify": { - "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 - }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" - }, - "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=", - "dev": true - }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "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=", - "dev": 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", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "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" + } + } } - } - } - }, - "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "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=", - "dev": true, + }, + "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": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "kind-of": "3.2.2" }, "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "isarray": "1.0.0" + "is-buffer": "1.1.6" } } } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "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=", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "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" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "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, - "requires": { - "loader-utils": "1.1.0", - "mime": "1.3.6" - }, - "dependencies": { + "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 - } - } - }, - "use": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "dev": true, - "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==", - "dev": true - } - } - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, - "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 + "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" + } + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" } } }, - "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=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "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=", - "dev": true, - "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, + "webpack-addons": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz", + "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==", "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "jscodeshift": "0.4.1" }, "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 + "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": { + "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.68.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.3", + "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=" - }, - "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, + "webpack-cli": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.12.tgz", + "integrity": "sha512-kMi6NquWwUhmQok2IFrtAEIbaVvujzYvtDGb5WElkwylbLboDsCgizv8IjSi/Q6SQRJ8Crayl1JCBnIJ3rU4Rg==", "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", + "chalk": "2.3.2", + "cross-spawn": "6.0.5", + "diff": "3.5.0", + "enhanced-resolve": "4.0.0", + "glob-all": "3.1.0", + "global-modules": "1.0.0", + "got": "8.3.0", + "inquirer": "5.1.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.11.1", + "resolve-cwd": "2.0.0", + "supports-color": "5.3.0", + "v8-compile-cache": "1.1.2", + "webpack-addons": "1.1.5", + "yargs": "11.0.0", + "yeoman-environment": "2.0.5", + "yeoman-generator": "2.0.3" }, "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": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "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, + "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.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 - } + "memory-fs": "0.4.1", + "tapable": "1.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" + } + }, + "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" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "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 - }, - "uglify-js": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", - "dev": true, - "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 - } - } - }, - "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 + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "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=" }, "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", + "cliui": "4.0.0", "decamelize": "1.2.0", - "window-size": "0.1.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" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "requires": { + "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==" } } }, @@ -7663,7 +13061,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", @@ -7674,18 +13071,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" } @@ -7693,25 +13094,45 @@ "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" @@ -7722,13 +13143,31 @@ "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": { @@ -7740,7 +13179,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" }, @@ -7748,8 +13186,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=" } } }, @@ -7758,17 +13195,26 @@ "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", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "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=" }, "yamlish": { "version": "0.0.7", @@ -7779,7 +13225,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", @@ -7800,14 +13245,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=" } } }, @@ -7815,7 +13258,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" }, @@ -7823,8 +13265,7 @@ "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=" } } }, @@ -7833,10 +13274,315 @@ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" }, + "yeoman-environment": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.0.5.tgz", + "integrity": "sha512-6/W7/B54OPHJXob0n0+pmkwFsirC8cokuQkPSmT/D0lCcSxkKtg/BA6ZnjUBIwjuGqmw3DTrT4en++htaUju5g==", + "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.0.0", + "chalk": "2.3.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.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=" + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "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.3", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-2.0.3.tgz", + "integrity": "sha512-mODmrZ26a94djmGZZuIiomSGlN4wULdou29ZwcySupb2e9FdvoCl7Ps2FqHFjEHio3kOl/iBeaNqrnx3C3NwWg==", + "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.5" + }, + "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" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "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.1" + } + }, + "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.20", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.20.tgz", + "integrity": "sha512-FXlA37ErSXCMy5RNBcGFgCI/Zivqzr0D19GuvDxhcYIJc7xkFp6c29DKyODJu0Zo+EMyur/WPPgcBh1EHjB9jA==" } } } diff --git a/package.json b/package.json index 396cb98..9e29cc9 100644 --- a/package.json +++ b/package.json @@ -48,64 +48,62 @@ }, "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.9", + "@angular/compiler": "^5.2.9", + "@angular/core": "^5.2.9", + "@angular/forms": "^5.2.9", + "@angular/http": "^5.2.9", + "@angular/platform-browser": "^5.2.9", + "@angular/platform-browser-dynamic": "^5.2.9", + "@angular/router": "^5.2.9", + "@angular/upgrade": "^5.2.9", + "@types/arcgis-js-api": "^3.23.0", "@types/file-saver": "^1.3.0", - "@types/geojson": "^7946.0.2", "@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", + "@types/jasmine": "^2.8.6", + "@types/lodash": "^4.14.105", + "@types/node": "^9.4.7", + "angular-in-memory-web-api": "^0.5.4", + "angular2-template-loader": "^0.6.0", + "artyom.js": "^1.0.6", + "bootstrap": "^4.0.0", "braille": "^1.1.0", - "core-js": "^2.4.1", + "concurrently": "^3.5.1", + "core-js": "^2.5.3", + "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.4", + "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", - "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", "gulp": "^3.9.1", "gulp-clean-compiled-typescript": "^1.2.0", - "jasmine-core": "^2.5.2", - "karma": "^1.3.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", + "lodash": "^4.17.5", + "ng2-bootstrap": "^1.1.14", + "ng2-translate": "^5.0.0", + "purs-loader": "^3.1.4", + "raw-loader": "^0.5.1", + "reflect-metadata": "^0.1.12", + "rxjs": "^5.5.7", + "tokml": "^0.4.0", "ts-helpers": "^1.1.2", + "ts-loader": "^4.1.0", "typedoc": "^0.11.1", - "typescript": "^2.0.3", - "url-loader": "^0.5.7", - "webpack": "^1.15.0" + "typescript": "^2.7.2", + "url-loader": "^1.0.1", + "webpack": "^4.1.1", + "webpack-cli": "^2.0.12", + "zone.js": "^0.8.20" } } diff --git a/src/definitions/geojson.d.ts b/src/definitions/geojson.d.ts new file mode 100644 index 0000000..9b8eb47 --- /dev/null +++ b/src/definitions/geojson.d.ts @@ -0,0 +1,7 @@ +declare module 'geojson' { + interface dataType {} + + interface settingsType {} + + function parse(data: dataType, settings: settingsType, callback?: Function): string; +} From 92abdb40cb5f0665648c7a33418c6559da1ba357 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 14:40:19 +0100 Subject: [PATCH 15/48] Update sources file to work with updated dependencies --- src/app/core/voice.service.ts | 5 ++-- src/app/editor/draw.ts | 2 +- src/app/editor/toolbar/toolbar.component.ts | 26 ++++++++++----------- src/app/map/layer.ts | 4 ++-- src/app/map/map.component.ts | 2 +- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/app/core/voice.service.ts b/src/app/core/voice.service.ts index 5489a7d..1b44a5a 100644 --- a/src/app/core/voice.service.ts +++ b/src/app/core/voice.service.ts @@ -1,6 +1,5 @@ import { Injectable } from '@angular/core'; -import artyomjs = require('artyom.js'); -import ArtyomCommand = artyomjs.ArtyomCommand; +import artyomjs from 'artyom.js/source/artyom'; import * as _ from "lodash"; @Injectable() @@ -55,7 +54,7 @@ interface IVoiceProvider { class ArtyomProvider implements IVoiceProvider { - readonly artyom = artyomjs.ArtyomBuilder.getInstance(); + readonly artyom = new artyomjs(); private lang :string; constructor() { diff --git a/src/app/editor/draw.ts b/src/app/editor/draw.ts index bf2394d..9e4e5e2 100644 --- a/src/app/editor/draw.ts +++ b/src/app/editor/draw.ts @@ -41,7 +41,7 @@ export class DrawInfoBasicGeometry implements DrawInfo{ public geometryType : string; public editTools : any; - private urlDot = require("file?name=./assets/[name].[ext]!./dot.png"); + private urlDot = require("file-loader?name=./assets/[name].[ext]!./dot.png"); private blackColor = new Color([0, 0, 0, 1]); private whiteColor = new Color([255, 255, 255, 1]); diff --git a/src/app/editor/toolbar/toolbar.component.ts b/src/app/editor/toolbar/toolbar.component.ts index e62aeb2..12bc54e 100644 --- a/src/app/editor/toolbar/toolbar.component.ts +++ b/src/app/editor/toolbar/toolbar.component.ts @@ -44,21 +44,21 @@ export class ToolbarMapComponent { { kind: 'texture', command: 'fill', - image: require("file?name=./assets/[name].[ext]!./img/blackTextureFill.png"), + image: require("file-loader?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"), + image: require("file-loader?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"), + image: require("file-loader?name=./assets/[name].[ext]!./img/water.png"), color: 'black', texture: 'water' }, @@ -69,56 +69,56 @@ export class ToolbarMapComponent { { kind: 'edit', command: 'move', - image: require("file?name=./assets/[name].[ext]!./img/move.png") + image: require("file-loader?name=./assets/[name].[ext]!./img/move.png") }, { kind: 'edit', command: 'select', - image: require("file?name=./assets/[name].[ext]!./img/select.png") + image: require("file-loader?name=./assets/[name].[ext]!./img/select.png") }, { kind: 'edit', command: 'delete', - image: require("file?name=./assets/[name].[ext]!./img/delete.png") + image: require("file-loader?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") + image: require("file-loader?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") + image: require("file-loader?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") + image: require("file-loader?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") + image: require("file-loader?name=./assets/[name].[ext]!./img/pedestrian.png") }, { kind: 'action', command: 'print', - image: require("file?name=./assets/[name].[ext]!./img/print.png") + image: require("file-loader?name=./assets/[name].[ext]!./img/print.png") }, { kind: 'action', command: 'open', - image: require("file?name=./assets/[name].[ext]!./img/open.png") + image: require("file-loader?name=./assets/[name].[ext]!./img/open.png") }, { kind: 'action', command: 'save', - image: require("file?name=./assets/[name].[ext]!./img/save.png") + image: require("file-loader?name=./assets/[name].[ext]!./img/save.png") }, { kind: 'texture', diff --git a/src/app/map/layer.ts b/src/app/map/layer.ts index d951a56..b99f57f 100644 --- a/src/app/map/layer.ts +++ b/src/app/map/layer.ts @@ -69,8 +69,8 @@ const surface = { 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 url_traitilles = require("file-loader?name=./assets/[name].[ext]!./../core/img/traitilles.png"); +const url_cercle = require("file-loader?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); diff --git a/src/app/map/map.component.ts b/src/app/map/map.component.ts index e62ae52..5ddd37a 100644 --- a/src/app/map/map.component.ts +++ b/src/app/map/map.component.ts @@ -3,7 +3,7 @@ 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"); +const img_loading = require("file-loader?name=./assets/img/[name].[ext]!./assets/img/spin.gif"); import 'rxjs/add/operator/toPromise'; import Extent = require("esri/geometry/Extent"); From 9438ec05a5037ee43d7df5c919cff10932a48daa Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 14:44:42 +0100 Subject: [PATCH 16/48] Remove useless lines in tsconfig.json --- tsconfig.json | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index e1adad8..c3dcb0e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,17 +7,9 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, - "noImplicitAny": true, - "rootDir": "src", - "strictNullChecks": true, - "skipLibCheck": true, - "types": [ - "node" - ], - "typeRoots" : ["../node_modules/@types"] + "skipLibCheck": true }, "include": [ - "src/**/*.ts", - "node_modules/@types" + "src/**/*.ts" ] } From cefd4666b7291ba6224f79ed867e0ba042be9a14 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 14:48:05 +0100 Subject: [PATCH 17/48] Update tslint.json to allow leading underscore In class definition, private member should be prefixed by an underscore and be accessed by the outside through getters and setters. --- tslint.json | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tslint.json b/tslint.json index 32fa6e5..d938f8a 100644 --- a/tslint.json +++ b/tslint.json @@ -1,9 +1,14 @@ { - "defaultSeverity": "error", - "extends": [ - "tslint:recommended" - ], - "jsRules": {}, - "rules": {}, - "rulesDirectory": [] -} \ No newline at end of file + "defaultSeverity": "error", + "extends": ["tslint:recommended"], + "jsRules": {}, + "rules": { + "variable-name": [ + true, + "ban-keywords", + "check-format", + "allow-leading-underscore" + ] + }, + "rulesDirectory": [] +} From ae4c50e0fe2ac5ca521c20fa49b144bf2e21d256 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 15:16:51 +0100 Subject: [PATCH 18/48] Refactor map.ts to follow typescript guidelines --- src/app/map/map.service.ts | 7 +- src/app/map/map.ts | 183 +++++++++++++++++++++---------------- tslint.json | 4 + 3 files changed, 112 insertions(+), 82 deletions(-) diff --git a/src/app/map/map.service.ts b/src/app/map/map.service.ts index 6012db3..8032f1a 100644 --- a/src/app/map/map.service.ts +++ b/src/app/map/map.service.ts @@ -49,7 +49,12 @@ export class MapService { return Observable.create( o => { - const om = new OptionMap(800, 1176, 0, JSON.stringify(startExtent)); + const om: OptionMap = { + city: 0, + extent: JSON.stringify(startExtent), + height: 800, + width: 1176, + }; om.layerType = { kind: "osm" }; o.next(om) } diff --git a/src/app/map/map.ts b/src/app/map/map.ts index 1036e3f..d48c1d2 100644 --- a/src/app/map/map.ts +++ b/src/app/map/map.ts @@ -1,32 +1,70 @@ -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 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"); -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 - ) {} - +import * as _ from "lodash"; +import { + City, + CityRootBrailleLayer, + LayerType, + OsmRootLayer, + RootLayer, + Square, + SquareRootBrailleLayer, +} from "./layer"; + +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)), + ); - private layers: RootLayer[] = []; + 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; @@ -34,24 +72,29 @@ export class AbaMap extends ArcgisMap { public hash?: string; public creationDate?: string; - public currentLayerVisible : LayerType; - public onUpdateStart? : () => void; - public onUpdateEnd? : () => void; + public currentLayerVisible: LayerType; + public onUpdateStart?: () => void; + public onUpdateEnd?: () => void; - // Create a new fresh instance - public constructor(divId: Node | string, extent?: Extent, layerType? : LayerType) { + 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){ + if (!extent) { extent = new Extent({ - xmin: 780000.0, - ymin: 5720000.0, + spatialReference: { + wkid: 102100, + }, xmax: 1105000.0, + xmin: 780000.0, ymax: 6100000.0, - spatialReference: { - wkid: 102100 - } + ymin: 5720000.0, }); } @@ -60,79 +103,55 @@ export class AbaMap extends ArcgisMap { this.layers.push(new OsmRootLayer()); this.layers.push(new SquareRootBrailleLayer()); this.layers.push(new CityRootBrailleLayer()); - let finalLayers = _.flatten(this.layers.map ( l => l.layers() )); + const finalLayers = _.flatten(this.layers.map((l) => l.layers())); - this.setLayerVisible({kind:"osm"}); + 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) + if (layer.id === this.currentLayerVisible.kind && this.onUpdateStart) { this.onUpdateStart(); - } + } + }; layer.onUpdateEnd = () => { - if(layer.id == this.currentLayerVisible.kind && this.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; + this.layers.forEach((layer) => { + layer.setVisibility(layerType.kind === layer.id); + }); } public toOptionMap(): OptionMap { - - let optionMap: OptionMap = new OptionMap(this.height, this.width, 0, this.extent.toJson()); + const optionMap: OptionMap = { + city: 0, + extent: this.extent.toJson(), + height: this.height, + width: this.width, + }; optionMap.title = this.title; - let graphics = this.graphics.graphics.filter( g => g.symbol !== undefined).map( g => g.toJson() ); + const graphics = this.graphics.graphics + .filter((g) => g.symbol !== undefined) + .map((g) => g.toJson()); optionMap.graphics = graphics; - if ( this.isCityMap() ) { + if (this.isCityMap()) { optionMap.city = 1; } else { optionMap.city = 0; @@ -142,6 +161,8 @@ export class AbaMap extends ArcgisMap { } public isCityMap(): boolean { - return this.layers.some( (l: RootLayer) => l.layers().some( (l: Layer) => l.id === 'city' && l.visible)); + return this.layers.some((rootLayer: RootLayer) => + rootLayer.layers().some((l: Layer) => l.id === "city" && l.visible), + ); } } diff --git a/tslint.json b/tslint.json index d938f8a..8023601 100644 --- a/tslint.json +++ b/tslint.json @@ -3,6 +3,10 @@ "extends": ["tslint:recommended"], "jsRules": {}, "rules": { + "interface-name": [ + true, + "never-prefix" + ], "variable-name": [ true, "ban-keywords", From 12a0d9347726d03aa87538661f391e00a6ccd669 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 21 Mar 2018 15:17:59 +0100 Subject: [PATCH 19/48] Remove commented line --- src/app/map/map.component.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/app/map/map.component.ts b/src/app/map/map.component.ts index 5ddd37a..d6052c9 100644 --- a/src/app/map/map.component.ts +++ b/src/app/map/map.component.ts @@ -19,8 +19,6 @@ import * as br from 'braille'; styleUrls: ['map.component.css'] }) export class MapComponent implements OnInit { - - //optionMaps: OptionMap[]; map : AbaMap; search: ArcgisSearch; From 2a5bfcc7f1ece1d541da3b1cd0d282a1a9685edd Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Mon, 26 Mar 2018 15:38:11 +0200 Subject: [PATCH 20/48] Upgrade dependencies --- package-lock.json | 297 +++++++++++++++------------------------------- package.json | 10 +- 2 files changed, 100 insertions(+), 207 deletions(-) diff --git a/package-lock.json b/package-lock.json index 182c4d0..1778295 100644 --- a/package-lock.json +++ b/package-lock.json @@ -106,7 +106,7 @@ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/glob": { @@ -116,7 +116,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/google-maps": { @@ -148,9 +148,9 @@ "integrity": "sha512-clg9raJTY0EOo5pVZKX3ZlMjlYzVU73L71q5OV1jhE2Uezb7oF94jh4CvwrW6wInquQAdhOxJz5VDF2TLUGmmA==" }, "@types/lodash": { - "version": "4.14.105", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.105.tgz", - "integrity": "sha512-LB5PKR4QNoDrgcl4H8JdhBMp9wHWp0OATkU9EHzuXKiutRwbvsyYmqPUaMSWmdCycJoKHtdAWh47/zSe/GZ1yA==" + "version": "4.14.106", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz", + "integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA==" }, "@types/marked": { "version": "0.3.0", @@ -163,9 +163,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "9.4.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", - "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==" + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.0.tgz", + "integrity": "sha512-h3YZbOq2+ZoDFI1z8Zx0Ck/xRWkOESVaLdgLdd/c25mMQ1Y2CAkILu9ny5A15S5f32gGcQdaUIZ2jzYr8D7IFg==" }, "@types/shelljs": { "version": "0.7.8", @@ -173,7 +173,7 @@ "integrity": "sha512-M2giRw93PxKS7YjU6GZjtdV9HASdB7TWqizBXe4Ju7AqbKlWvTr0gNO92XH56D/gMxqD/jNHLNfC5hA34yGqrQ==", "requires": { "@types/glob": "5.0.35", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "JSONStream": { @@ -337,9 +337,9 @@ } }, "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" + "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", @@ -598,11 +598,6 @@ "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, @@ -625,11 +620,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, @@ -673,13 +663,6 @@ "babel-runtime": "6.26.0", "babel-types": "6.26.0", "lodash": "4.17.5" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - } } }, "babel-helper-explode-assignable-expression": { @@ -750,13 +733,6 @@ "babel-runtime": "6.26.0", "babel-types": "6.26.0", "lodash": "4.17.5" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - } } }, "babel-helper-remap-async-to-generator": { @@ -943,13 +919,6 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "lodash": "4.17.5" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - } } }, "babel-plugin-transform-es2015-classes": { @@ -1266,13 +1235,6 @@ "lodash": "4.17.5", "mkdirp": "0.5.1", "source-map-support": "0.4.18" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - } } }, "babel-runtime": { @@ -1300,11 +1262,6 @@ "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, @@ -1328,11 +1285,6 @@ "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" } } }, @@ -1345,13 +1297,6 @@ "esutils": "2.0.2", "lodash": "4.17.5", "to-fast-properties": "1.0.3" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - } } }, "babylon": { @@ -2119,6 +2064,11 @@ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.2.tgz", "integrity": "sha1-7Lt5D1aNQAmKYkK1SAXHWAXrk48=" }, + "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", @@ -2259,6 +2209,13 @@ "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": { @@ -2642,10 +2599,11 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", + "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" @@ -3266,9 +3224,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "ejs": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", - "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=" + "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", @@ -3720,16 +3678,6 @@ "chardet": "0.4.2", "iconv-lite": "0.4.19", "tmp": "0.0.33" - }, - "dependencies": { - "tmp": { - "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" - } - } } }, "extglob": { @@ -3800,9 +3748,9 @@ } }, "file-saver": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.4.tgz", - "integrity": "sha512-4cUSbUiW6YI1WU2Mra5Be4hvX3bA1uO4s1aO0bfNK0npwDHluyGCC6JXBl1gI6wF4DmqjEmNoMSBn5N0Y9Kj1w==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz", + "integrity": "sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==" }, "file-uri-to-path": { "version": "1.0.0", @@ -4177,9 +4125,9 @@ "integrity": "sha1-nMlmIKEC4xajFLa81WIFzqzoYtg=" }, "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", + "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" @@ -5206,7 +5154,7 @@ "is-retry-allowed": "1.1.0", "is-stream": "1.1.0", "isurl": "1.0.0", - "lowercase-keys": "1.0.0", + "lowercase-keys": "1.0.1", "p-cancelable": "0.3.0", "p-timeout": "1.2.1", "safe-buffer": "5.1.1", @@ -5447,7 +5395,7 @@ "into-stream": "3.1.0", "is-retry-allowed": "1.1.0", "isurl": "1.0.0", - "lowercase-keys": "1.0.0", + "lowercase-keys": "1.0.1", "mimic-response": "1.0.0", "p-cancelable": "0.4.0", "p-timeout": "2.0.1", @@ -6176,7 +6124,7 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.1.0.tgz", "integrity": "sha512-kn7N70US1MSZHZHSGJLiZ7iCwwncc7b0gc68YtlX29OjI3Mp0tSVV+snVXpZ1G+ONS3Ac9zd1m6hve2ibLDYfA==", "requires": { - "ansi-escapes": "3.0.0", + "ansi-escapes": "3.1.0", "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-width": "2.2.0", @@ -6219,14 +6167,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, - "rxjs": { - "version": "5.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz", - "integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==", - "requires": { - "symbol-observable": "1.0.1" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -6251,11 +6191,6 @@ "requires": { "has-flag": "3.0.0" } - }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" } } }, @@ -6769,7 +6704,7 @@ "neo-async": "2.5.0", "node-dir": "0.1.8", "nomnom": "1.8.1", - "recast": "0.14.5", + "recast": "0.14.7", "temp": "0.8.3", "write-file-atomic": "1.3.4" } @@ -7142,19 +7077,6 @@ "requires": { "chalk": "1.1.3" } - }, - "rxjs": { - "version": "5.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz", - "integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==", - "requires": { - "symbol-observable": "1.0.1" - } - }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" } } }, @@ -7691,9 +7613,9 @@ } }, "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + "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", @@ -7855,7 +7777,7 @@ "requires": { "commondir": "1.0.1", "deep-extend": "0.4.2", - "ejs": "2.5.7", + "ejs": "2.5.8", "glob": "7.1.2", "globby": "6.1.0", "mkdirp": "0.5.1", @@ -7866,9 +7788,9 @@ }, "dependencies": { "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + "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", @@ -7906,7 +7828,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", "requires": { - "clone": "2.1.1", + "clone": "2.1.2", "clone-buffer": "1.0.0", "clone-stats": "1.0.0", "cloneable-readable": "1.1.2", @@ -8010,10 +7932,10 @@ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "requires": { - "concat-stream": "1.6.1", + "concat-stream": "1.6.2", "duplexify": "3.5.4", "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", + "flush-write-stream": "1.0.3", "from2": "2.3.0", "parallel-transform": "1.1.0", "pump": "2.0.1", @@ -9580,9 +9502,9 @@ } }, "recast": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.5.tgz", - "integrity": "sha512-GNFQGQrqW1R8w9XhhgYIN8H7ePPp088D+svHlb7DdP5DCqNDqTwH7lt378EouM+L18kCwkmqpAz1unLqpPhHmw==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", + "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", "requires": { "ast-types": "0.11.3", "esprima": "4.0.0", @@ -9865,7 +9787,7 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "requires": { - "lowercase-keys": "1.0.0" + "lowercase-keys": "1.0.1" } }, "restore-cursor": { @@ -11891,6 +11813,21 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==" }, + "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", @@ -12108,7 +12045,7 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", "requires": { - "chokidar": "2.0.2", + "chokidar": "2.0.3", "graceful-fs": "4.1.11", "neo-async": "2.5.0" }, @@ -12118,7 +12055,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "requires": { - "micromatch": "3.1.9", + "micromatch": "3.1.10", "normalize-path": "2.1.1" } }, @@ -12170,9 +12107,9 @@ } }, "chokidar": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", - "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "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", @@ -12405,9 +12342,9 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "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", @@ -12427,13 +12364,13 @@ } }, "webpack": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.1.1.tgz", - "integrity": "sha512-PwxKH81yLjbPyBSZvPj/Ji9pT99XOGFA0t6zipoOKOMNRZ+09N39J5Uzcx3rYKnsHgKwDnfGkvzac4MF2Taknw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.2.0.tgz", + "integrity": "sha512-O/KmJ2MYoSfsZzq3//RyyYICYTb1gPAuYSIoD4XbxWFqkDrZCkF8BIAwPuFjA8SFqTcsIL3gTS7hiTZaUN2Tjw==", "requires": { "acorn": "5.5.3", "acorn-dynamic-import": "3.0.0", - "ajv": "6.3.0", + "ajv": "6.4.0", "ajv-keywords": "3.1.0", "chrome-trace-event": "0.1.2", "enhanced-resolve": "4.0.0", @@ -12441,7 +12378,7 @@ "loader-runner": "2.3.0", "loader-utils": "1.1.0", "memory-fs": "0.4.1", - "micromatch": "3.1.9", + "micromatch": "3.1.10", "mkdirp": "0.5.1", "neo-async": "2.5.0", "node-libs-browser": "2.1.0", @@ -12453,13 +12390,14 @@ }, "dependencies": { "ajv": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", - "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=", + "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" + "json-schema-traverse": "0.3.1", + "uri-js": "3.0.2" } }, "arr-diff": { @@ -12509,16 +12447,6 @@ } } }, - "enhanced-resolve": { - "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", - "tapable": "1.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -12714,9 +12642,9 @@ } }, "micromatch": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "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", @@ -12732,11 +12660,6 @@ "snapdragon": "0.8.2", "to-regex": "3.0.2" } - }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" } } }, @@ -12800,9 +12723,9 @@ } }, "webpack-cli": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.12.tgz", - "integrity": "sha512-kMi6NquWwUhmQok2IFrtAEIbaVvujzYvtDGb5WElkwylbLboDsCgizv8IjSi/Q6SQRJ8Crayl1JCBnIJ3rU4Rg==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.13.tgz", + "integrity": "sha512-0lnOi3yla8FsZVuMsbfnNRB/8DlfuDugKdekC+4ykydZG0+UOidMi5J5LLWN4c0VJ8PqC19yMXXkYyCq78OuqA==", "requires": { "chalk": "2.3.2", "cross-spawn": "6.0.5", @@ -12864,16 +12787,6 @@ "wrap-ansi": "2.1.0" } }, - "enhanced-resolve": { - "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", - "tapable": "1.0.0" - } - }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -12897,11 +12810,6 @@ "json5": "0.5.1" } }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", @@ -12937,11 +12845,6 @@ "has-flag": "3.0.0" } }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -13342,7 +13245,7 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.0.0", + "ansi-escapes": "3.1.0", "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-width": "2.2.0", @@ -13363,11 +13266,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -13495,11 +13393,6 @@ "strip-bom": "3.0.0" } }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - }, "lru-cache": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", diff --git a/package.json b/package.json index 9e29cc9..c493d7f 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,8 @@ "@types/file-saver": "^1.3.0", "@types/google-maps": "^3.2.0", "@types/jasmine": "^2.8.6", - "@types/lodash": "^4.14.105", - "@types/node": "^9.4.7", + "@types/lodash": "^4.14.106", + "@types/node": "^9.6.0", "angular-in-memory-web-api": "^0.5.4", "angular2-template-loader": "^0.6.0", "artyom.js": "^1.0.6", @@ -73,7 +73,7 @@ "dojo-typings": "^1.11.9", "esri-system-js": "^1.0.0-beta.0", "file-loader": "^1.1.11", - "file-saver": "^1.3.4", + "file-saver": "^1.3.8", "geojson": "^0.5.0", "google-maps": "^3.2.1", "gulp": "^3.9.1", @@ -102,8 +102,8 @@ "typedoc": "^0.11.1", "typescript": "^2.7.2", "url-loader": "^1.0.1", - "webpack": "^4.1.1", - "webpack-cli": "^2.0.12", + "webpack": "^4.2.0", + "webpack-cli": "^2.0.13", "zone.js": "^0.8.20" } } From 404e08771fd713444f58b2c42a77b07618252c1c Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Tue, 27 Mar 2018 18:15:54 +0200 Subject: [PATCH 21/48] Import files instead of requiring them by calling file-loader --- build/webpack.config.js | 21 +- src/app/editor/draw.ts | 5 +- src/app/editor/toolbar/toolbar.component.ts | 42 ++-- src/app/map/assets/img/spin.gif | Bin 55377 -> 0 bytes src/app/map/layer.ts | 12 +- src/app/map/map.component.html | 2 +- src/app/map/map.component.ts | 206 +++++++++----------- src/definitions/images.d.ts | 2 + 8 files changed, 152 insertions(+), 138 deletions(-) delete mode 100644 src/app/map/assets/img/spin.gif create mode 100644 src/definitions/images.d.ts diff --git a/build/webpack.config.js b/build/webpack.config.js index 9640fb4..e51f00c 100644 --- a/build/webpack.config.js +++ b/build/webpack.config.js @@ -35,21 +35,34 @@ module.exports = { module: { rules: [ { - test: /\.tsx?$/, + test: /\.(gif|png)$/, + use: { + loader: 'file-loader', + options: { + outputPath: "assets/", + publicPath: "dist/assets/", + } + } + }, + { + test: /\.ts$/, loaders: ["ts-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") + path: path.resolve(__dirname, "../dist"), }, resolve: { - extensions: ["*", ".ts", ".tsx", ".js"] + alias: { + Assets: path.resolve(__dirname, "../assets"), + }, + extensions: [".ts", ".tsx", ".js"] } }; diff --git a/src/app/editor/draw.ts b/src/app/editor/draw.ts index 9e4e5e2..b971659 100644 --- a/src/app/editor/draw.ts +++ b/src/app/editor/draw.ts @@ -16,6 +16,8 @@ import * as _ from "lodash"; //import * as Vector from '../core/vector2d'; import { Vector2d, subVec, addVec, norm, multVec, perp, clone } from '../core/vector2d'; +import * as dotUrl from "Assets/img/icons/dot.png"; + export type DrawGraphic = (graphic: Graphic) => void; export interface DrawInfo { @@ -41,13 +43,12 @@ export class DrawInfoBasicGeometry implements DrawInfo{ public geometryType : string; public editTools : any; - private urlDot = require("file-loader?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, + 'water' : new PictureFillSymbol(dotUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),16,16), 'black' : new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), this.blackColor), diff --git a/src/app/editor/toolbar/toolbar.component.ts b/src/app/editor/toolbar/toolbar.component.ts index 12bc54e..a66b602 100644 --- a/src/app/editor/toolbar/toolbar.component.ts +++ b/src/app/editor/toolbar/toolbar.component.ts @@ -4,6 +4,22 @@ import { DrawType } from '../drawEditMap'; import {TranslateService} from 'ng2-translate'; +import * as blackTextureFillUrl from "Assets/img/textures/blackTextureFill.png"; +import * as whiteTextureFillUrl from "Assets/img/textures/whiteTextureFill.png"; + +import * as circleIconUrl from "Assets/img/icons/circle.png"; +import * as deleteIconUrl from "Assets/img/icons/delete.png"; +import * as dottedIconUrl from "Assets/img/icons/dotted.png"; +import * as moveIconUrl from "Assets/img/icons/move.png"; +import * as pedestrianIconUrl from "Assets/img/icons/pedestrian.png"; +import * as polygonIconUrl from "Assets/img/icons/polygon.png"; +import * as selectIconUrl from "Assets/img/icons/select.png"; +import * as waterIconUrl from "Assets/img/icons/water.png"; + +import * as openIconUrl from "Assets/img/icons/open.png"; +import * as printIconUrl from "Assets/img/icons/print.png"; +import * as saveIconUrl from "Assets/img/icons/save.png"; + export interface ITool { image?: string, command: string } export interface DrawTool { kind: 'draw', drawType : DrawType } @@ -44,21 +60,21 @@ export class ToolbarMapComponent { { kind: 'texture', command: 'fill', - image: require("file-loader?name=./assets/[name].[ext]!./img/blackTextureFill.png"), + image: blackTextureFillUrl, color: 'white', texture: 'black' }, { kind: 'texture', command: 'fill', - image: require("file-loader?name=./assets/[name].[ext]!./img/whiteTextureFill.png"), + image: whiteTextureFillUrl, color: 'black', texture: 'white' }, { kind: 'texture', command: 'fill', - image: require("file-loader?name=./assets/[name].[ext]!./img/water.png"), + image: waterIconUrl, color: 'black', texture: 'water' }, @@ -69,56 +85,56 @@ export class ToolbarMapComponent { { kind: 'edit', command: 'move', - image: require("file-loader?name=./assets/[name].[ext]!./img/move.png") + image: moveIconUrl, }, { kind: 'edit', command: 'select', - image: require("file-loader?name=./assets/[name].[ext]!./img/select.png") + image: selectIconUrl, }, { kind: 'edit', command: 'delete', - image: require("file-loader?name=./assets/[name].[ext]!./img/delete.png") + image: deleteIconUrl, }, { kind: 'draw', command: 'draw_circle', drawType : { kind: 'circle' }, - image: require("file-loader?name=./assets/[name].[ext]!./img/circle.png") + image: circleIconUrl, }, { kind: 'draw', command: 'draw_polygon', drawType : { kind: 'polygon' }, - image: require("file-loader?name=./assets/[name].[ext]!./img/polygon.png") + image: polygonIconUrl, }, { kind: 'draw', command: 'draw_traits', drawType : { kind: 'line' }, - image: require("file-loader?name=./assets/[name].[ext]!./img/dotted.png") + image: dottedIconUrl, }, { kind: 'draw', command: 'draw_pedestrian', drawType : { kind: 'pedestrian' }, - image: require("file-loader?name=./assets/[name].[ext]!./img/pedestrian.png") + image: pedestrianIconUrl, }, { kind: 'action', command: 'print', - image: require("file-loader?name=./assets/[name].[ext]!./img/print.png") + image: printIconUrl, }, { kind: 'action', command: 'open', - image: require("file-loader?name=./assets/[name].[ext]!./img/open.png") + image: openIconUrl, }, { kind: 'action', command: 'save', - image: require("file-loader?name=./assets/[name].[ext]!./img/save.png") + image: saveIconUrl, }, { kind: 'texture', diff --git a/src/app/map/assets/img/spin.gif b/src/app/map/assets/img/spin.gif deleted file mode 100644 index 6879c3d425a2802789b72813eb52fa945cc36057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55377 zcmd43WmMGt-nOqumvp0aH;90M)X)M$gMf5NOM?nX&J3LjC@I}tN_U4Kp|nUSrIc_z z-)qm_Y_Gic|5^85&;NWO!{9>SusGIne$JnQlDvqhS?iV7D@Rv;4GIbhCMG5}Ha5;* z1oy9lhlfW*L_|eJ#lXP8!otG(hp_zzVP|LOGBPqICMG^UJ}D_F zB_-v>ix;UsCGEFKPfvgO^5v^nuQD?;b8>R>^74v`ib_jM%gf6vDk>@~E32!kYyXkD z-=_Z0($LV*)YR10*4EY4)z{ZII5;>oG&C|YGCDdsHa0f?k4*k6Q@_o-ckiaBr)Oqn z-oJl8J3Bi!H#a{&|KY=jkN?Qx;^Ol1^2*A}+CQ?szW(|1=dG=+?d|QIot-aVzI^@q zb$54ne}Dh*@bLTh??*>R$H&K~r>AFUXXoeV7r)If|33)*FF0xtZ7o@84Tt~_-?gjY z=YjqN6$|ys=PO*l{&4*IV{!%a;>rXTjbeF5+cQjJ4x`@k%#JVuM&&fcimWa;g`oX> zZ$)-bG@UGrMyWEVFP=@S(5SC6cOaS1qCZWk>h(~n$fM2qzN);DS5nWgX_c$<$FddU zIk+)#wA1rEq}mLXrx@Az1XXPp3O&$iG;}(2x4S}$462NLBaFAoN8i_3<5Z->32^6| z?zfFDaJpc9c*~NsoBoh|_d(0E4i*6i5vX}#j|m_8kL4MQTxS;Q(npkbyh8|XFP=sU zA=94hh@@NR$tw0)aRw`o_k8mmT5FyKHJ*FfJH2Z1`G|JbWaF~r96|ok2UpZ+j0*nQ z@M7%bKB94(so_ed-x1>j+srd`-#{iYz3@Ue7Rb#Ppi2?I z(DTzlp0u#0$a#jdWqT=+RFMccWaMW*P1A5sd(#<~}AsQ9c#tqjR#>|A~SVk}t^{S$(I8?TbF3CPfFtEf?xR?Jr z&aDB9)z(cp2cE9Au0X=-SNi^S>X*RKU_&BD>5X*AUUGh1zN-P9g>x_#6epgH{iQ~) z5iFOA{F^3)iK)~J)BFo<{E++tWovg;R#UDqHX@aPv4}jPmaCkx^0+#fCCa5KTIn6b zB9n=|oB3R7@plwGay78Ncu3s%dA5$HiNvWO zzI<=it4-t8Xexuc?E3wWv9k0_&QINTh4NcJP;yMxV+b}7euV3n6_}l}?UmBom0RyiZT$77&?0uQzfm zU+*6))6eS3N~?Q8YjJy~om@;yFOes-*{pL(-hVIjebDVM$15=kJSVFOdQK;6DK@1i z>uFwJPCjLX@tkfv+!>FcbIalBVaR5ZJ-ye*wI4!SJ?-R2+tw^O!B#c*rD-RqzO+dt z?1xkHj>C3kgJ92bmI`;teAWP8e?3$0-ps^s$bQOoMitJ*u$ymq+Vk8We}Dfd)^BZi zp5fwb`Fi{~>&Enm{7Ee5fy9p=b;|=veTy>Zn|a}VqSt)Sw{C_iyS=&k`ufwT2?z=+ zCRa3SN8mLsy45KDHmr9+OottGr!xeiM;?5E-4sf+a{6z--HM`QO`|)KVUQxTRws+5 zmd7OymyMkvczi+SV8rK{B4u;D8#aTJwdgP1c_CfSsHnQUk}@NAED_5H6@N)oAlS+A zW+Yr_aQUn6j0mkSzrQ7FA9k1R9dc~^P#e^bxY9&2!iHCMVg#2cwbAx1(~R6t$l*pyl0VxVX+7W|?`)HT{O7U!6JA zeet`%rxw)BEMG46mzYz0Jp=qBKBE&|ho+y2K8W&pcfcbUe7(e_^#xLR`P1o^TL(qh z%t?9?uZ8lIhU^UwUd#->7Ov|Xa`HV$UBt~3=}{VXdvTCf(-*>oDUErnH84FRgIbIq z1zRM4>E-doAS=BaKe_pFJ6Y{08vl#fln0~quP`BO^xg#tmKj;ZDdG8Y{8wS>!&W3% zL$;D%cX4usu8|Vs705|1_2!srXR~?OC`890)WZ*RQ#OJj1#$3%*+YC>Qe^=;Y^{`G zA@=_Ayn9;8;aNf*xe_~eN?{BUnfQsXWUtz3`fXwbvE)*y(b_{j#HI>1OV~1cH#OEi z6Bl@rzE0QZr|q<#pgRf9vkCdk9^I~+dV_(jBmAM}TMm-qcci)Z&m(vbXSM3^b6-E5 zVxtW*$7ye$ESHgXFc<9C?|DN~DSgsqDM+RNYNNf9p{uxFxJaWpNI0iLv0qvVuC9cd zOPQB`v7sI@uKn)Aqg<)05C=y4scglhY8Q%rQwumOw>rLNbP`k0a|uiK$5O*nzF=0* zHbm6M_v%yx*F*9mLPI)~#>EgG2HUpS`+>qPN_(BwO9A)ce6oZ~k-YAtP~%A4H{R zlOJ2%+nl6;&ZXFEXv^g6bh;J4wmj_KwmJ3LOs`sPW%7_iFe>Ule=%?U`xkQ<_yvuM ziV7f=)D)=8n=(hnpDU2$mX0Iqg-clY%4 z0BG&+?+4Hda24PwfKWi6fIX2}`fZRvy1KfGq|wdI&EL`J-rgPn(u02lVClDS-vF6j z!YSa>lamu9q5?|&@#DuILG`!T`X`_LzXDkRrqloXU@CFEIgzKQk{ue%6c&ak()Z~N zWUATflGCk#kq$7%PFG!ruu~3r785~jR~UXIWS1Bhi%Rw_aPo~UywxAthj3z-n^C%8 zcs@vp@Cf?LGfPosEuqMe=WcROO~qGELR!{*<*E zELFbSGS|S(`Aq8GK=EQgm&-^i2D8jgHcLaKg z&LF+U#J?C!Qh4;=vxF03d4`)}E_&R;4kk*fr=@7pmJ18mRwC*5yU~sL0P~sR8fFB` zi=TDcb~cGffsc;nWo;%dQghmye97jiVSKDm$ON*Y*` zP4yE@Y`K-S^D_0EDrU1B+s(&VT{qvom%Fdwn~Mwi9L64BrjzjTfpL!5Sl~q#6{WdG zQ(FHT1=Z3%Cat^s7+P60u052k!XzS3BXg#I)%MOk!(v1dLlIZJc-Ni-AlAg*Y873- z62yD#T&6k}-?NgiCGChE{LzewTPjI-jhNwwUSy$?RFfBooMBw#QRQ?AL?#Q#Gp7EP4XDU zoH=VeTTT4}z0U#P(qMX!D*HmI&0%X$j+@Iq3A&@%lckbxq&Y+h7lYo5pyeoegqXAG41y)bx= z7lX;2j+eq&OOKZkzXemV29$n=G%p4iZ_0|$0IjK!+3Dxk6R|EE0w-=5o8{T~=z+ym zt1$A4Pfr@@V`Nw0+%>)CI6NKAlUQFGS=BK%;M9UD9HR=?&pGWdF&5rYez)6Ytw1_k{=oO6W2a#pv6%p9i{>)ze)m>LHYM=kt3e7>aq7 z4IWFe8{C-sU@@pd=FCo+i8t76+m@X6!DP(i3!cf$FW&VuH!nv0N-(nsELc05#&*NU zo6Hnd>*Z#031H(7m(YvC8`H6Pg7sC=ux>Bo@Vvx-Op0rPt`yh7%;MsL)46<2I_oY^ zRDsJccb2bw?CD}5Dt*G>fOerM^M+Xs%QXNugHFp$g4Rjhb>X4uv94P)F;BGXaMjIk zMs9boG)GSFn^E|PjGvCn_z>!Vh@hZG;baeS_9w2hZ&%f?4pFFz@-BM~xPTbCdC72zwu-emJCl;N*&9 zVah@gbtO-%O$kGX0gWtc1C?c6bVQ@MJRw4dG$tAu5_=Zq`VMVFF&H6pW3oAFAqao~0t%3E|xwPV}hGCW^%7l=mHrzPd)n zDq;63K>#z!WYS57&{p*h6>e^8`)h7mY%WjV@i_D~VyPB3VXsPPmYchW;)$##_i4ea z-iZR57Kmn!*wmBdLstEre3HoVsSxYKT(h+e=?KktPlP8~`R;AWPKzZxuGL9@uoJ<* zDmGp6fwW9!iBq};mLUIwG|l3h5*wpgYBvJu=H>>8H))nxU6Gk!rrb=F*I#--t-)p``~GgAh{Z1^pulS z-?p~cc|4pAcWiEb{~dvRVmQA$Os8ELLSmIGt1g&z|C6s*oyJf&f3V7=ntmN;mPqNn zEsfc5_oJqdc)aomepq@aO1)Ab#L=KJe8-%LWEXGurnO(JX(w@3CZ?m2Os2_`i@;Kn zz>om6H2ui=Wzyna7g41SnEa2n(xw(`1#xk+TOL)6)Z8`o}Q- zPXR0nL@D4Ba ze-5yx$RsBxUusmOF3rfu0In3UC(@N7MJaHlmjMV00@Nu8l0|_n1vuK=+zeP0_));2 zfH?th_V)Gy<{TIpK)TZ5p8~w;&p|p=AWwlP1%C8Wj$WeaC5{3j1(FmArGQA0W)!d} z;7|acKV#?bfb;(qO#bP=3kY-Uf1fao`>WUT#Et4P35jlv z2o4{n*b()G#%t^LV;-yyDW3UC;?A;_k0H>K@u?`kJ?JkAVR1X3cHGXWvYW1Xe3qxZ z;NEbE-bit5*wgWNT^K*fYd?M9xu1uVYZ9CI%$^XD$5~2`;dtA{yG9X}s2GxsiR|di zTwvSiPj=P zS$@(;n>j1%y_#={&B3w85OddFlhC_6l68zlh37LwlS&55lAW|hp4x$slvp-Ng-lfLcsD0i}1Qg9;CbDvLfh~hrh1P3EaT*J^BtFhoP zjs|Av3odLcK0|(iX+sA-w;VYUU6?s8WT)UWT+`lCmGh#+G7hUaThsk@foLJ+WT8}l zFL9}|lMG4O-Tt--uGaPN9*rIXoa~A_5pi6w0sOUX_~<6nPBp16=VT4dhc+$#c~6xD zvPF)K4`plE`J5VFIjM9h;%lQ$0nG&8BAO3xe4()R~sn4O)gh3;B?+mDa zM^EEz+X(V2SJ(gGR{%XTDMHJWVt4)8son)1WrHQMC_7uY5%1e)rKIB3?sHy~w%u`zWx9xZr(Dml9N;D5Ap^fBPygn1yLx-5m4jY-7I zM%S<^?|v0$MWoHVb2ZJ&Nty;efQsO*rL#EZHgqp-{Pd<$2#3)lgZ^wA7GN&6Sgv1w z`X%ilp_p>*D*xGTM^9Vdjz4Sr*?xSF3yv~^fcNnp)0YzQgPES)CdFRNyXQx?oo28P z4HnLlL`)vnFHUX69gp}LQ=Oj-(L+Wgk6pE|d(rF~Fn=f^vq@8WqqUh#Gug)zSnT@`>#Kym6peR?-lWBcO-cI zAe>vbUXq@f6^Bpg6)Tsb?CyIPk&Dy;`UB5iLbXEz{}HS#0-sOeQ51XO6DrF@$@JZzYT_8zZHyKaqQJ4hq;O!wk4mw4&ch_Mq^%ia>-rd+j}mJo*v;qoYOV!{@5p_H{M&EB7cUxd!7~oz=-yNKb7C@vg9PROx_1-lK=P93bIVgxFn9l3w2FoZ*dr^lMqcc;!4Vlu8ZpT_i zH?NVZ=yJB8H^`-URsGQ)~?a55aW0M-VI1CJmd=`SQ@5Wf7J4Y8RB@W zQg2+InDb?cgQ1`%LZkKQ?N_|6IX+GO-tnx)drIhx91o2Un6kuIqFk7T_#YsSlgetP z_;ll9A5_GdGq%Q*hjW^lz$u=Q8An1QQiDulIhNo22-yv1ERMK(XND|$EkAV099IqZ zb`I>=h0um;8Qm+GvYQXxf%5=IGp3y|jSj-4ibH5Z;M3`GpH0rv--_yCgNE^qipaNV z1ct!|ooCE~$+EM4>zFtOL%4g+saI*RMQ+OtKMHkD-)SZg|Mb4aZ~c*s>7LDTzsx9h zga%Xo9dJKiPSWDzO~dQ_1Q)V)M_O7QU0{&`{Rl?Fgl8 z-%(@XPetSmxN3+LV$zo$G6D2(oww7(mHHK>zfqst)_2a{k4Dv2=iS?}f5b%hPYwFz zw~z`nC>9ph_3PIGcm7of|2Ck<2T~LmPtf6Wad83Z`8VPDv+(lr^6~KjRVpAL03a3E z&)c_e15^d}Q%Xt-2vC5Yz=48x{*M7-^lt)y73oZY9@Wy)0`RJu6{u1V4-e4nBkOxWrN0X(^nVUuR#5IEffdjy;8D=&gBt&` zy9Ye_yMQ(yBr7WmX;FbTEhs2JN>WhnBRwggRV1V$2^HDh140GP^fEx6BJ(r00#ynm zDd5qGi3uP{L2Hk!>;aX60B3p`0I47g3kyH@_yAaeNBv!!4`}t%KeDm00h)cJO9iz) z==1@(f*_lHq(uegJ_r(IkqY&9X7o>i^1tyWfYgQm2Bc1|vCAViMgx5d3v?n2Hx&8X zYdH1T-L;KrsmCa&%52B7_~mO$WbWOc=sz#)D=`j2tZ(l0Za?X?IVi8^5gvm2)c2EnTssg6 z+0$FzGP<0oH}aPP{ReHv?8Y;pgq*ijZ5f_EHt^^V<+>5x%}d5@llJJkkK1zOYVMde z1NV1*Ix1{k?VB#g_v9F&6nQEqVUnlE=8(|<#W~7y$m-w|#bsN1%@U!{YqU4iQ16je z>p-pK>@1(>;$Njo%uJTlHHRkTXS%Y;73UYQ+*IJl%8Tzan#8b4(QyxbY4C1zUBmg} z{R$%mUNbd z3p~gk;lp_8FWMm`ie$MxrIJn!S|qK@;n>g)qPeUzapoefs$t2w`0Cp{ceJaf>^Cyh z-kRSrhP4j`+P>e&-D;H*wcu;P`sgQL7lHY0xA6n>w}I}?al)_aVdg3wSqe2Wm3b`0 zYq*ttIy^)!A!@A9?WwLsMjqk zF(;;tD~~9Pc7#o_yp(qG)Xj`jAl0FufsopH2i=-=pZ-foWyL=hh+M4bTv1603}c6_ zOe*3LS%Q9^GG$C-!)J8?|taL|KKrRte{?{HSq66O zG)lDGXvl>h{tateiRfLFu#5R;+HRh`va2Tq;d8{xF5&uebMFZvMxL2Dr_6MY*AT#3 zcAOWby8%rLRZN7!xIwF)MWqK6Axn)FR?xu1FBb<%DanMdfrzPfk# zV=>AYG!F0ZKj$+*XQaUp?Q6OI7yUdEQq?l`JIG!K$T6%x4_D3zLhM{rD{@dtk31Q# zB05&Z7Ea5=wW5)w9H^H!OMqfM6-#)T@DO$j#t(-XR%bP*+}BEI8wvBRCVHo@EWo3z z2}hC5v{=el&@)sIJk84COGo38u_t}l8=uP=nGZFg0{#3X$Lm&hwQIBSvEPMWziCC+ zdP%RHW}U_MPGl3B*hZo)rbtJz zghZ(IyZ-S^wri#QXrY?^($k5vq-ByiFz(aMu}qq4<$UR!X0)ezohI64O8njC=U5S$ zTpbnB#>xt;shH^~Yg8#Uw!HBI*u%pUp}v@&n2OWCLL* zCaBc?Y`m(`W~N1K9kn92AP$0Yu&dWaNN-YZ@CWc4n_gkejOPz!7gkYM%#dlK84C&F zF2-@B>Y%9I4dK_AkF_iI?rIsbk=1v#z**7l!TszMjn=G4N4-iZTgw+2iHI?0@@cIy z7m(5ZVR>Au->+3#nOKo##r^cC--xGIp!vtbSf~%3FpHqwBkIAmD@8uVHe})PQ(PZJ zs8>lWU%yC?-Ckp!drtT0iCg+F{xMQV-lM^iy#m1wOPVR7V;BvgJQU{(nj1kwF+7R_ z?y)enJQ;H6a5d1No0_Sollf{jg?dAqx=p83($E-ns;6nIep zrN~25z@^}N^zwF8RaF%UoS=pWs0o_*-vz+u-vr#90yH%=Gz2ykd3_4#)XvThm{VtG zXCO~q{}FIs`Zoa;J~Hm^?f_FkoezTat-z=PY6T({&?&Oo2T+PYAb?0k2K4to2iVo0 z6B`?gG_6R21^5c66#y!z_yL_3{}j;W|1sbs74Ry!MFk=iKq;`OpuR`e_Q0Zo0Finb z0H~J%b`=Da`arG%Y6VxQNN`17oFds3U@B<(0h9uB3J?^jO#yZyuSo%9UN-c?GSnhJORgqN1H9L46Z+J(HDl!!W>7sTlDHQKD0c(hE}R4GTPkP zu*rWBujy8mAXFKrEw36yquPH(c}n%5(zLMsqDbJo17qnYBUfVw&w}1>N4sUoO4eTQ z3#2^uw?>?8_2g}Wm|43aJ6$$({sHdf?*t2vD?UCuMO*#|$(N{8f(%`8TMYdg0aeu* zpg>s)KQ*=`4CqUgo|YTZ?^%LF{Cl+p@Z)T=>DP4JZ@6wkwY%X`>jW#B1CzGdkts$A z*e*rT9J3fHSmq*hB;0#7G0$j~#&HbViJhQ<5|_ZCmt+vePhPS=%R$C}l_lYjQYYuR zo^BA7&l&Ps!Hzh0pC!SM#sfRus{6V1OW)6J>yWz_l&cA{O9~sY2KLpe94S9CKi^Er zsZ^C862Z2Lmt_|GoEUn%nwKvHQzGHJ$TRso!CZ`DAP=?dwzr77GiJycrn*>I6luF( z-BZSkeP=to>&qciB?d>+_OmJ(zr_GKN7WVevFQBKM*fn@@PQCnco@S(Zp z_U5URMiIkSq2`Dw(N?$2i6Lk0Jv`;Sn?yIQDzmLbniKdF6MSIp^0}IOsW;(?gY1-F z^{_ZkcoGNS@bXBPSqxB26zex%sjLdLis`4(X*P1hqVuyIf(`10aetq&Om_VK-Zrn~ z`>aFV&i6T&9`2+0U$Jv;sM#&zg5JMqzkflL{!s)WJ&BX|5=V0;_M+e|i*W2Pg(u$l zrJa_lTovB!%3N;(B5OHfRCpSf^u5(I1@pzTPB)7lGT_dIB6ymXL@h&!gbK?`?`$R0 z#eb)+!nhfPU7I|KU}<7~>$_+9fT4MpBV~9@Ad$`aoRR6lPXECOwKS1X?*nIv1HDhJ z=Lh7^RwIs=$%p1yKHa_fSh2U9_YJFg>dm*i1wrl+=gSAQkF+b^ehIXsyh8GEIprV> zMN&P0b`OG5X2ZI^F%nqCnWFISw)9qm`fUml69#{YG`L2fa!!sSM6=lcXmor{4cP?#e*iu^_y13tE$|UeOlAfc1x--s)qbBEz;ZZ4| zt0U4#^AsRc+@m6RgIP=A^|8C$v4~pw3<_Bd)Ke(oQ?rgNinF{o%)(>0cL$b#$e>8l z#6^p`iJPC|>$l)rM~jN*m{CXC$e*3_JNOta-B1a-bM}qL(Jp3{Q6Z>N=8GC}s>2O* zI6;4$5f54Zj1gasp77|-b?jnG8rGXf%?#RVNqmGxgz|YoLjHuw0(POC!fm%@^Ouua z|J}Zi{&W`Vzs}E>8B9vEn2Hg8h2UZl?hs^2Dh1m2X}ch|=YouH6hDc5Do`Uv-A*UD zXp=+T=u`K|Qso+x3gy$69@WEKiGqmA-X+H#Cgrn`Zl(y4V-KqXRG!3XddJb1d{v91O`KS96xdPRB(tYgO9;afjXgUhPjcGw`qn7rM)g04> zd?EyjX6213R%Jy_g~%-II=3lSmY6Mh@>?WLn}^O4V_PQh<>}-b`z%3L`TEZ^^^jiQQp+5E2CI*Q_oQ&$P3iZg`(TGF6q$H>vi7Z`KFjgRMvEqC_sQ zKmKmDZaOEQvXI!;``mAx4@U&YC3n;L6%h|+T01>udEjnS&s z%~gnye^kfu0l~)j7PC7XlSb>NyNGgZ%GNU%aI z?17~S!$|#ZNHh+iwS!0rZ7H>f4#L#jD3}rteG6NhtIm4#xV^%%_of_NlfT*1Y3-ap zsDgvg+BPBku6Nn|m!j1l7v_v}2u=w-DK!IK(YBigT^xLwnEW>>T_i8uVxK%is0Za3 z3~g9FN<~A#6ItH%@e$jAT_ip*c^oBsJWpwhpIl9CcQAq5x;9H@zj z$)9eVE=Nzl+d3haPDoV>z!Z5~3NA{KcnY`^uqL2PP}=`-_=KE6{j`4i=SyU_4|Y(% zq5?1lwiML+U<3tJDd_VrtNWieP`|ze{`BVn7zII2p^z>W_){dCg7Z?~OhL&H%KXa> z)bG|$K%RmCFa`4`pilvxA`ecx{!#J+5(Vf9PD%lH{%ig8>qj6@e-03-$obPHk^*xI zs1(>zz9QbZesb{-FggaMTs-xt#GG6nL-1$T4^JDA} zai70V=s&~g5f~&foa*$S;4|sR+Ba2;kC&`<&~vlS?h?7q^SyzMV=M@o$kIseasO@6 zGZZ&Rat(*fD!aOx$JDk?3l=^{-%qHIb(T7ObcK1y9__yjfBwL@c#M=q)pwMjJ-C0{ z(y}xBLUarB-su#g@{o(Y{mo-P{=zk)Gm?#{^Rr-+$Pu>Q<_vf*>hgzxYhv^R2Avvi zAA@k85aG!Wq|_lGrNs)1Av=WQq@1{(^>lQdrjt~T<@emNL)mKc!n~9rRS{u)9~6us zqw`niX}RRx&0*r3W0P=xbWuh~SMi!5We$`HH(Hg9zgLq6osx;J*GQYmUUA&kES~*F zI0?UIC?#gFu%Ty9FsWHPbG#Z;u4#%Uz7nBO8bzNTW!fqQp}_sph-G$#K&-rkUIRIs z=MD?8tn#VHeN0pej|FT~beyUYylIyG5xln6!J*lzn^@Y9{Bx ztN6-&o$^=*71^9Og#{1^m}w+Jq>mbc`CRD_u$Zw?WRzG=B|Q2E*?0mY@<&KLly9hXM)yqhoz>l{`js?{5A7^GXz?&cU`2ab%1lc=c!k`*_%7NPyCYa$PpgTsRJ5vk z@^UwS@k?dvGC$kRu`m|?`iAvplTr!6S8ON&7tdrBZS(H#Fx!a~TrvG- zdnL}Aq};z`_a#cvG(39sYhdR@=Of|UZPN=QjO3k*yDw#1@EgDQ-mrU#8F55IeEQ`s zyAeH3{7U@(tH)67cJyEbULc1#? z#d4$kHWnglkpeT0rZnd1$jK|RYphZ+_0bXga4M4Ql+NfF^{`KH!_#U-^f*iBka^-c zs)uZEV)J(cN8?SfjKkaGyvKaH=ZwD^)i=k}SP-vu82{29+Ki8)&Yb1!6%|F9d&|Oi!~MBy)bFtDBRTWTrQiq+xn`me{mdY&WX-) zkr8aqL67$olTzrm04BM};;*YE>`s?1M?+L%4orZjCm24@wHStX*Tp_js^N(2agATt z%JT=)BP`^i*(()UB`~nn+(g$X$|*u*$i-kfgXVEEu_0)f%45!wee9!(Y_hitM-3D^ z*oFygA?&jeuW2kuY3_YyGr2nUviDIANsW|fq#JJHtUD?96c&pqwiYuR8kI2KCZ{A7 zN$h??))5yBob^s-3^TAj6R}sXdpG%deUgPYkpp5wMUtR9^;-R#5`Q)J1e}PO@&Vo^ z$CFB}O5Fr3ewBwBzx2i5t*^=A;DgDpy%@JVmc#NY$u~JE)XeyXS{}%}VTv^X?bt`H zh{$Etdt9m4%~KtHC(yxi+AhIB-!t2NL5T`T#urbLGUZA*?WR9#<-XL-bQ`~j;L)sR;5u3)(7l-R^b#$`a*pm};eNezb;Y1wj8p4Z+HMb=zJ4vS&a(6KQg(HXb?#n#v za_Tw@f`<0(nsK@mjTL8;i8?pGukmQ&29fR!PFFv;`O}`Mg@yaHT7@clM~rZN6w*r` zS~{;x#o9L)d8*g_NK#Q~`-kzhPX+@HNsnG)2v~}o`HXsy3BJTgCt!6J?MIkk3cM^v zD5{`RncXPoLpXd66z`xQK`-M)WDcn5SyGP%poiZ3$%@|FGMqboS3g`+id-!@UcLIy zZhq&t6bcSV0fK^V9v~&z|Hu4KJEdR0jyx{~ho#8o{{L>P^xNfnq?hms-00uua_oGaQ6v^j<1dbMqfyPg4u>;bdlw1s#O~_SS86oH!gwe!4oV-c{_G_OlvYo zI7`%hhAGQb?j)ZvzLeEA-5V+So=|=->xMq4`2KrF`kS;CaBg?|YNafNaaV1&C^3Uq z>h7k#Ovy4zr(Q)QfrlBfL8Di4Q|@Y_i9W-XGm&O2!52Q-UIxVpNu~xO!b2dzMlT@Z`8T zB^U=*V#Dx#*fg|S2IrpVMah=2(q~6(lq*E-OuFSe`7JVEr8@f(N8(UTS3CE{N2zz$ zsrhSf3z7fsa#SboM)%iYpUHgQGO;bX2BMa|lo^^imUkF;gB81+pEi%xggG~{(c3w{ z*&7k5L!7qZ5RGqrJt*~d$QpG%JHE;O;KK8E(+oxX)7ooF{OG++ktOQ^n5qjG0s^?` zUxov73rtY2huw+N9t|q*ShNwUmwxNv!ia;KxgnQAiJ3I&LfjdCMF+D1MRGSJtm!5m zBYDTj;q|bK$HX#co|p~C^fphVR#VTV1Y`*qc!fW!Fr0u*qxN_c zb&K-2zl?#b)#_rL4nbYm2}1~qlSLE@Eh$5f12?bOC?%He;^6s6 zT982U`xxbzD=%h*SZJPDC)u#cQfjzb3->6g(y`fcj?jg2X|}0(Hnx)maP{-`DX9}3 z@3XaCxIpe4y&u*OIAB}OVU-AMy_X}-NcKb3_Rfe>f->e|CUpvm*2_KY5JMqS<^v_Z zQY>g-Av-%p%LarJJ0ZX`Ax%UBn@5gg{OJV~1#5`y8{BTq*lq^4!0^wqfdM3jliE3Z zgMH#2%Ib0WkXLtWY~@{1w6d_>U&}(}HF;0FUlg|&piF5)L;0uR7o7z9xp{IsQ#x?p z5f)LrEs-AO1k(haOr8ZL!ztLkTKujO=e0aS9|65a`3W}7p)JX$ZaQyei1FopLQUtC z;IDey%SUlLq3;@IZhSz+h`F^c;pc|vYBVpC;4d)Kf|2yUnaUSucd#aelUUQ$6s6W& z^a`epA*@BNRZ~2dvA!K(n1$+DSk~$&pB0O1e!N`Y%PcRD6-zjEs#B=~?S5#0jk9DP zOxZ3~>KV(4sFDfB31ya+j&8@DFd-p-*V4;hJ7BV^3uEY`;LzQ{O0-C+OaF?hsqk*@ z!^Imf25Oxxg|PyJDTOzM>yDzp>452jgnfp}n6FAoe2e80*==}gymE1wb1CD=4nMkF z{C-i1RW>Ed3Zy8T&Z1vNf7D4p^n^vg52x0;I;Bl_T#*l#uyDVXo}l8}Y>@N338_{U zT`!$mZ1f<31>5tMZqt34&>xnoR0jP!`tpf2XQo^?SKIGPmWH;7BlzyW8yLi_GVyAe z$6t|rPT^qED_E&wX@(FT-myhbhj8JZFN4~IY>)5D51T*&uaP;@Za19s7+by$iY|gs zKA0JMuXA{0)BZmWmB6hiKvLj40g?iI1ZDhXyZ-Yo z>8}P!OiWC`ih?;3AWozS1-cVVlfd05I1B~S6IsiH@jHM>WZw?#=bz@c`=oz&^58K} zfENKQ{^v6#z$Lix1pWDMCrZEn?B~4_a;$`up2)M%%Z?pjC9-1&T{>`@ zphEw7ru6e`6*4HWL)p^OBTu_2m2-NZ*MKU^*Q_!0{c|9B;#BxlegpW1(s8`}dtHeV3-r zXE&TvY4Wqy%t!-C-pyOEZkXP&BkBGeMaI6^b}=v(j8n-4&7!j-nkxL!ZT>L1gHRQk zlD&I;Fc3>xH_aj!jLK#j01K}iV;OY}B4quz_Q}+H+>yCIfCN7u^C?A}*StSD`~G6s zQiXK7R*#hCQUnTBIFx&@4ZX*aj22}Xp&33i$sd`K&q$ALuHEnCVvvIsDO5R@5OHS{ zQ$@bCT7;4&(?AY8R!%-;GFa&g<_e@HUzqa7ecev9L^*SBZC(QwtUmc%Z=dP=l&&%? zv2IK?N-vZ`8_Ze4Xi#)tJ>Re!OL;WD@e+DvxxgY?a!Hdd_5}?yJnIev%4AIRuzns? zUlX>RDejZ<8KK~@X%`Z-&eW5iLlv@GaFKse%~5nSN-=?@{ACJ2(_xZ;55bEdqiB}dN$h6$pq1@(4Q>Km+z&tGg+N-fZrlGIXl zIhG?X4q^3CY`5%6!)XK)8oTVrc*^q_P&hQ|g%mj(R2P)k8C1xa;bq^%LbzU{FnTz? zo|V)YD1vXMCUBw0Q+_t6`JtD|ke<;*!t;Zu0ge6HlIFl*P5zHbPVT$)=6Un#B)C)Sn8N_=}3pv*jIIW z&U>#oc3$-I5X!^;xB(Fr5L8!Az!)|hqQ zm%fHvura9}dv9E0KroTBUD|Au?<#^-D-55{0E&C~v$?F>K@{fSL_N9d=kA-LH z+ofSrbLpKSO~l3%eEN4M3xX+3Q5RUaj)a8GMs!fa9l*Y3SoZbIt!gGrdx())2KgE=g>`})*;_v15gbJ-M>`ZWP-)-QFjN=hqe z`>qnZ?zUlAD-Dpjw-G*dXNK@8fH{06ns;w55A8BG)A4@FTmMx)%KZp3x`XE}o!1Pb z0^$0dS)`@mU0iONh+H9*7mGPov{tRimKcr}0#=+fZ1=C9} z=t7}JOM~8_@lMLmyCg7thjqoTvvnV`irzyxeJf@b> zTbZ?s7>62VLLV;}k=C_Yox4x)Bb z3@785m|2lTy`B$g z*G#yIQ`A_?P@GZfO=vn7#*|!{qyrO3yRX?HFGto+`_+Y6YC1&Yu%yWm#;vcSp--dD zU=UO0T}4N@?UabwuI+rQqj3lktk=5C{Z&@YZ<35DMegk}M3r9v6%+1-N&KAs9-(TD zvA1_~ZX~7?XMYIJ?R$-^uS-4XWpJ=Nh_OEB8WNhTE->hKlDf9G3Epo-Ti3i-A)q>K zDQUKX7R=&<$Dsx&56CcSR&m3`^DM|cO9ikre^^n3`E)qjAroUY9=)| zj^e>F+P7~9Jf8l`462P|sPC%+m`80iIOWJ-ubs#Q95;h{QLd-qI}+};ZtAiI6Q@y7 zmpcB*bDBJ5P*DCUKz~=mU%Pe<&?fRRO@B2`LcagE3#DJb2o6Yr@dU0D@FxJyKb^t|W022x0*yQHp1^n_T_+MpLCgO0nJ3sMUFLG7 zgnWSb2=_ z4wDYHEh&oBx$cI%%u^7Yn&F3-!ej4!9j{Lz{7RiNi~U|bKBvxSUb5jP#ek8EPPYv_ z=6N*i;V5sL$AvY^lRx^}EG6=Sa)NmZH z+g9~UFf+yd1P=P{ln2aA=1h?hnWRJp5Q@qTi!hbPY}p7QYo>d?QP4_8$msFXN<210 z?qH0zNo6d1v#Teie6sk7CAG>e#kH6c2c{urgJF-pI8yqR++-;#@W0j8WuRB+PBDiu zCvDi_DkL?ZSZQXDD&_J?*U)do_tJ&D$`o+=9G?n5t?z?&ONr&U-EGk4iH-F-9Q=M@h}8J9a76reT6$v!rdN`b(6Dbb0ay zn#E82&ru^Q(YuvMI7Zg>R@A>h&u$1Q5}s{W+;v=bqzGoS>aTi=oy%4OrP7J4s#d0& zEbD*WlpqjoZ*K*SyE2Dfue!JOHC;}+1EbhB;8TJ?GR6O)?ycjZ-uta@>F%LJ7;5O0 z66qW|MFb?J6=@WdW*89Z?rxC=gOmmZL6MLSDG>od6z}gob8QYs_rA_`KhJZW`+k0Z z3_nKqKl_ip*K4iyULU91diW2fc8#j`>7g9k99UZI!Fvn4MiaPoB_XM~V?qWc&jz7% zDWnYM`X!$Cm@g)aN_iN(e&#;Fp5n5H9Jx&Gy8q8asX2u}MWws?0+A^$9+`D8ywKB4@>-^YarS^$DY>iqz z`3icaS&Yk1?;okWDUdxG(y!OKt5()0dvehB{(-F8@te7ijT5pzjbiRyfXrVguxZCw z)CtO3%DF|S);t!(cAwOi;Rnn?oZ$YlKkfI>Z^>OU#I@T2SMe7(JHKXpPSbVOr@_Of zbasnNK8F0<<0TL~?P+N}5Nm@Vl#KWd0EBC3oJfy4|J56y6|P*tThO%YJGWvxy+yj%^Cx=~0$nN7n6I-?_xGtt?Zw4L7qW4x_rp#96s78=dFZ6ZHR!}9%ve0l z3*^J=Y%1yU2)){QV1TaBBJ$wKdg0{ep(1+yYZ?)vON1?i9Q=Os_>CquwEYq)!ttZg zE`mk0`lQ98R*@kZ*NSL6n#07J%Cu~lhhVQWizTiFhFD9zr0bk7mTFS3&%fZ2x!8>+ zkfQ(4qVh|2(tn~H*AQo0p>fYDQJ$Qi91%+r` zHGV8fb6TPJfy=~?yQoNg8_WD6lu1 ze!1@pMKKyMfE&nZ9lj>>j*#3Dn`EX{x7Y-u?r2L{*wQo(?)&a(kt>2nO6tvl^h#=% zn!P~yo#>lR-A$jcc9g{AZy-&@oOXzIJ$jE~kKg(@RTfh&F|Bk`+JO+SD!cs z%nULUwA3k87sWlAnPjV|CDhz;p}o($1QT!UX%G!dqNl&6?QS{fx6=Ly3*Amo$8V_f zf`~m9`Q=q%)#D+X`w@aKhHQyzBu7#Z?*6@Ic1-l*Bbe7P9>w80gct^opsmUw39iH% z@xE`-Sr;zAvqq}29zRY{K?vf0#-!Rx!ZKj)&Jy`cIEj&*^dF*g>A$A#f5#=E=A3}s z{5ufock<}$8(@;6_M3nK3an31^E`7r&y(*c_Y-JJV1WLPCH+n$p}s*?L_yvTtWO{! zQKV9T`{vBI{ z@{FSa&)%@vW#V6hWW3j_!~58QVAe|)$x_-d~0{vxqA{Nt__JSt<=eapnnwkQU6(cAM{*=pB4Db|34<6WLn z70IO2K|C+LiHhw;?<s_fIbYt>H-GX=nG)9p8X_oi+<5tCFHO--7}F19r8G9Da5X4R?F1ebqonF?GZ}ogey#Z896M{9!rK1 z1T%Ug`UU9B$)|7Ae70JAcq20?Prt2Z(mEm|@F)#Ibt#xN<_@HJJX}^xeObAFa`hcE zk?HBKJjPU$6`BJgw@ZSNK&XL@fy zb*~~#S;|z>?r!LumX*^nS17j(SjEbIhVq2vFi}QU;aRl4sYbiyWXRqAHbO(!i9CZT zRk=T&7utdr7Fo9*mJH$O$A4;2IvJA>;cHhBcF+ym8NfCuo=mr|wkLfGH<#L)DD~B`0OsRTKFp7 zgD1;JCS1MUL|f`(`lgu5M%HzGa^A;lF-YsVJK9gz*gnRe>?Y8QpL~j)<{#tfB6;=n zPCfJ7F+J-g*=HZej`@Bp86eo69Xu`}%v_q5y(Okn7x=T4XRb`|#W72NzRbtc`kylM zi@|I^zo$+=_&I%iqW0}5MdDDsH{hqo^fCY574$_d|5lb8=r0@FqoPNG3J~V@_2L~B z>Q-z+UGuPPoXmBvU8nIc*|Qo z1vPZr;}=@1vuvpYW6_t#b>+o_ZK(@hhmfS@hF87+{3wvHkQqn4Pl0YP7NJ=P{Zn*S z;&P9_4#6UwkH-|0Cq2r2siqK0a?g!tjvlTAJk@u-HjEk*4>9 zUVO^w6NH>-V{#A~w=bD({zZD>TqAB!3fQVriL@*tQMBG5li;+uNQar_)&0fx4CR(E z_D{4UOy8BLruI3dep)7Slh$Vy5A_REa=*G*`h~N`*WohJK!Snpc+Mxn0S3{j5$%ys zqKn&WBnWiOc%(?7gt`O#6`odJvtg#(WTdJ+_p8geFUiG;O7OhNb+WT5BIMDWbSu;i z3-S}Pcg?sByn^*hvJGIYNlrpO3fL7Em�M%e9dkMmO*mO00^CaKy-Sv~syvZTWZv z;_wrri<1(m(?aRo0)t+Bqr`E_rBpuRx_Sd00%LEkfc2}#$?Z-&jt%1_Mz_TznrbhVXSOa|I z6-K2}nAEJV`8`x?cq234mdOUr>*@-<&P|qs4jKt~ED4gCt96uqHb=5=XpE81K%r06 z9^Vfd{BU|VC0{@Gv7WBH#Y6Z)JJ~{4aK?#Q#CQ4PJzGWJNA6J@jUH$oxqT#JLo-Rn zO4R-r?uhhTnw6L+G%Z%5hqDJ0P>DA^r;>chSh{ZZy3^JQu9~{mYP2#l}Y^8#7ZhsMHU<-(QVo&i%=}} z$s(;O%){;DSD-uEHMTxC+jRY8YH|cf9Ief>+R$YUJGebf96bjAx&IsGKUyDW>RW_T z|IQX?-u*nc27(|Oa@c?nz3W=K4{eq30%Ap|me3IGW@&!la~DxUpA^PgN)_;5_yP~D zqUJ>;pHtzy9nsC@sE10$dMpOiJIyvQhFggQw)fesud8@M)C(V|aTP2lmw0v$@#o8N z8AJ287A;kZOw?^zG(I-3AlnEj^U}qv#S=wtyK{~6dy=cG>px#^VGovDdB+*)$+l9Q zOFMF8z!EW)I?ffnGr3d{7w=%Nn`m5~&o6HWhbAj|ZE%I>qF*X0J&BV_EITbBrs33$ zt!=#_q_#lL6Ru_LRB>PZN3C;^LeVjgp9=@&KuuaR)KI85Uff*2Rj^`6x8W4&tUrRN zt*BG{e7u>X!AQZw6>9D5%)lv3=}?qsc70rUDYEsW-gDjzPOiQ5MyH$#B`?BCp4Rvs zy%*yZHyO}84hTBX!x!OgaJ~e-IM12QM3Jto{3!mm{cq#^)Ea$m-kM=4YAj?_`nc?L z1-xH|MBlmmQ?;rUD_kxC?HzX~-NO^mehP_Zyzco&M^qx-3qC-)cktdm#41N)(6ds5 zuVrft-0ayJBA|Cz`{8v8<>RW;;0wfIlHiY-8XBa&%lY9F3lAFW(NgfHzRz$6b9M7# zbip{mawbNM##3RQkgqE#kKD%uvP!ZCmto=xQXg;VGK>k8z1wlRJz#PwwaUJte{Z|? z>*}|iLY%ocp|*F~8y=3NI;|g}pX2?vhoz~bzZAX`BIkcoVsYf!Z23Tv272X9z(%{Y z__L$PsKTM+tQ*|YC&;HHvTJ*DjWRzRQXa@If7BQ`J^I?P{X@rXE=ubNH?=WN?NeZ2 zg@t={Z~J3M9k#xZ`Mvlz&+xs8?m|D$qCKR}KqHS0WyqWTdCMnb#!t|LO`h?)vA75Y zQox(@z1de8RS`SS*axS~qWyx!oRS$vF%JZlBIoo~n==_>0@MxFrznkJ#>pMU|3V@m74k-<2zKq^tG>7<{MC} z{=_`<7s8=5wYY9_m;@LfW6gboum};rB0WaGtfov|X^F)pe4JGc!5~Zkx&5_3M6s_m zvHETh_tlRWf`a)8I%Hv3O6r5UFD$RCepaF|=^r%WKvU9|RN{+}RHv%xg!Nre6iE3v zNW}4yxI6kL8=u=y-nwdn)RRP2wJ#aG?JGK-ad20sgbX#Sm%MFU!_=5qw3DJG zVik^w(3*s-!qekO;T6Xbwjm@eznSy$wcP~m-Gm&E(h|A%j{Vu)Uvj^&4e(P9X#4DS z=aMGb(;?8ckoP^}MA8&hR?;x@c{>W`hDx*tB*zf=c3CiX4hHZ1sN?~IBDu&i(a0JK z*W)_DV1bV)~{2S$&)xJyOPB%60(s{@wT>HQoh{S zuYV$&w4)+FvrIV#4JjzWg2y2!Po7DNt&50;_R%;CjM74M^S$Et6V(JdN#AwSHP%@5 z@tbuAXUOeLUObxUhE_`2>g>BECgJ(W$P1_jKfr?alNIrmJTV|&9s?3ZJ8 zzmK))W^U1h`!6H#i6uOdi+kI4nOut>MV9pEfi{%ugs<}*sF825~*B(LK-W!6YZH_x_>X_3U zn8ai~)pxi$k)jN~X_m3BhQv=6OvzaUDdk-eUf0K>YZgf()G%n=X7GNvhf!Lte-cfx z#32!}?U~d{k7F4lVB_?8dN1*Dg4gvMa&W(avZ}p{kE88|v?XHAwfR`F7J~&ZzQwXJ z?)9f0a+wq;Oe1sQ=Z!&szbuh)VIZJVF;gIQ)h1DLh`+t=;sV2}WXUx~%XN20lByUE z%@(|98MS=-XX|PN-J~pHp+yv9QI~AK5>(BK%4?%VY~B>Zc6(i0O6?wHFupM1CGj%l z>aU~{xUY0rj`3$$zxH31DCmx&==XnxRQfwS33#hOlA;#x!Dth(OM%1$Ug=rp4us}k zKEGf{=YIttJ<3u&1Cu~Z4`O$e)&%>Y;5mO)>F+_LfBXr^=)q7E$ml^?6ve>*!XTYN zN8kliNzbo00S^^5%LMAAK$rsV9f;0&^si-U-2vL9`fql?l7$h*o1Z>o^ z2c$tAzxxh(7qB`aK?`j@Bk5z1Q&^S5#y8Agbm>?Qba&jaYsc% zM65u`B$n!NSI}Y?1k$ulLYeS{lio&)#Eh2}*SGoa!_^vB4CUE91@082tvXI>CVWNN#`8Li*5?zF6%@b<2=eq}qi zlWq_5b?0n#K8m%18T=%8RkTFI5bV(&98#9JGn&&fr%iiH&xO0Zw^r|cdhl4;zT$`(Y)O zdjq^pTYH0oy}v6_BH98ZEE+P){#r0HABS2~d{~q&fF{ZlUY5JCKcW5g^NvP8DQmPq z2d>SKhyZ8s!F#O?G82uL>(Iezw>BcpLJs?=!&$Rb7M@dhe>3CPx!V*4?iYQjUmU9U z%%dMI)~dM*vxZUM3SVMlFOXP@GGJm9j8i?mss73==6F#fK3a7xu7V(5u)rpU;Qi=I zaO)Zy-=i%kc0Me)xMS-n2}n4WLrI6bnzO)|E>_Mna7aO=kQ{k_kO|t4<0-AeL-wvraqn9+6gpMyP;}A-S*B=)0_0!MKuNLwlT*oPaH!=HQu!=!^58f z=^*Nh$@ZP=axnpR4tZ+v9Z}PG{C1)Aa|`-oVm-sIcBkGV7PRE4@znuZG}a;SF)m*X zXVlhWE0a)Mt3Omqgb}>A!F)NRZnU20JKggi*Ap^$4ebj&{&2pnKQXBi8!)PbE5+ zxJcpEx5OeN^jHeMOkv@RhJ~%(C%>9Y9I(HnAQKm=AT<_ep=PUxWWkfxWWh_-RDg`s zAmXkl)9CpY!U#SFDZ+|q?)4RNU-iQtm3~PjNmIm&_Ytd54T@heRK)#tUcM-?6Qhoh z11sJVBE7zsn#Q0g@CX`hf-jQVz<{KSRoBvLCFgqRUo5Ca3$ZayNFPudV5vXWBvISr zh(B5tp9qA=#~Y-MZmA2om5n&TJ7Hd@z9nL>)DsNf)}8 z{3s1H`G`>vD98^5DmO<*6X{*3q~!Gj_>Lsn~?F4M*uwW7XjqjXper=fYS?8Qn5 zmUn~c-qp4+XC;%ocgf^f6*^g`TZ*{%rlznHp{ImS_Gurl7W7a+9ZIX*ZUkZ@A&P{p z&x`foqti*Nxj{r}-EI+=@s_lc3h=cCB(6>cMbm}STuH5VyQfQL%zQOpudiC4c+@Ol z)v^MAG{iR|<60!drtTm**gd7wESLkWmAJpdKkP&|N-e)|Ji3!bx&mU=Zk#IM=BlJG zG{1lpgvRT3d3|lg#TI`_6_ja5ym2{hz__`Qtx=5&zK}$D&xE_EG=$pF5BrL53X8tP z9oM4VK96OS-r|)f&>;UQ^pm*0lI=UbaV{o%+7YI<7H8RKVHZGCO9U;}LY)mzg-x z7?&{8nact@{qt(p6a}pNOSU_5NFK(jPoj-^ZU-@zYkWkkTSE$JJWBpzNtEA9?oVjx z7s&}Cd9Ys(7DE49ZVB}lz=b6sQGvz;Vf=Yq>G$`)1eic|6u6y0S^^;nmO%d!OG175 zmv9nTZ~~qvus~J+EQ$g;9;H2jumpkqUqVa3|3p0~O6lwq*r7mv0^te5_}}j-pDj%!Nl@eq6v+jP}nbo*gkiED0)zGq}1(yQbJJs>V z%Lnv4SlDSb7X7L=Mu+qSUq%}hOsqD)%vZHR8|K^HuW&r+s`=R+AOR$A_P0f^!RI^dqqB=O^dfihDbNy zN6R6Db3B`$H>gL__17-NVDYnS#LCxBjtbQ`=OekRU%S()hVZr&+=H`(FeeI;uOL${ z$E1w&+Nwy7M>^y;_v#BYzF&xt-zKw1l0oe_W2|O^*nleZc9p$D4vSc-~sNM@y<{BFWb}d znTN#e$N7`C(wXj&X=IM`*Lw02#M4Fa?)CkhyAmf;Z}eKj#ZEX3k^jqj_8B8N5a0)sb*Pwye)b zs}vAE2JWPY7l$j*=e5Tl?U{X=*DFPs;wei!b|hUKYi`}+WKLr`SvA>x8@b(B64avV zy!E05@7V;g^k$NOcgW|Al>(nnW!mIoXC3Db^ zi)CUYYMiDGw7zmQi|@KF`%#;v?+YqkAui_&VdS#F4M~=!Kn4XdjLzb-l%~(!(e-5x zGRM8l3I5MZ>T}w1-D)GWt`)77pDo>knIsNF>PJ;a2s7IBPblY;{=83-?07Rj@k^dS z(LW*BBd?z{(+EG)t9HLzIO!euMhE#UmaN9-eRa^3$8_{kGPA3b2M_w& z+_&-imS~}JiXE?Ss{Tzs^kE)4MQWcBr#%G0n=6M20C}RrDO4WAB-q+qXjhIz+Prj$yh=sXT4r?s!MgQLQxp=Gde^R8$rlY*cyj(pYydCq1+q!xP;kwN zC#POz?mI(cPw2CG3{t3uX&-tJNm3Rrl^{=;B{qBYUFB1GL&jQs*2Kfc*h>m!Fm%JG zbZ=qu>%91^V~Ekk!)7^$P-SE1tMBmHA3FwgxX_LvmQ1N@2a0exx14kf)I_Ut!uq(Y zH7w}2jG-ah+_Z`DQS;Vb%_MPQcLt+o#ueB|4B11j#l;hVs|Qbr_ukgsw6pvc5iV*_wQo5oNO4AXdh$&Bku7a z&Q++=fPu`dq$(Fu68qyumepFh>Rr1T3;7|e4);fC>QC)N36zGN!(B3F&1NN3#h%`h z=?&Q?ymo?okMG|YM7gI)Du+q;DpV%Ib;%`EiK1}CS*5<K*a-f`3sx$7x)oB|Ct#IoJ}A_f#d|` zPmrR62>mYsq~GZyV11rnW&&Y5xQ>KUpl1{Gz~2O6`}xVw^BB_a3=(ic!N3wAjzA0a z3@bvtoQI3f-cfgvKuz?_*+dO2fgt@CvIzY82UK+K0oEso*?|rPjwf(AL1h&5LeDln zf!O?oI6}FcKyrc>C=i%nLmriiqXs+wk|{y~MJSHw?BLOvcM0-ylzj=rCKy#Z3(tYl z1okEBR6Hs?Kd&fJC=m)PI{W-fzUcpWwEn*(MSuUxK%92``}|ON)`kb9SjmLKicYzK zNAYSZF&UkP_ZHZ5dRERZ0e5-dbW^L!hycIZyf$}Lzv^DoZHwo+S_h1pFv|IoTX@sT zp3Pi0Ui$nL(?;UD-{?t*tF4umaJ^X&EIF5S(gNcc^$|)EdpK3SF`=l_bpM3T`*m+! zuX_WdsL@VsxF61?{fyTv3ktN9_My`2t8^gA~kegsUA|MsjAG95B3a(N-sbuHc-+`pZj+N+=S`r{IpqH=0Uq&?Hi>>S>B;qhEaDkn%j z-wqX|K#Cj7F+WOQiX}t+z>g~kiC^?FG=>UmpaipAI5ECpgL+l(^h!P)FIb*sY{T~+ zFBSnu?G&ydtO*&Brq7e_RH9Sa_>Eh?h5^5V*o)YH#2u54apm4?q5@TaDx)DVC<5UsWs?=cO zUW_(eDPjy_-8=gQ$JYL9#1tUvRZclL7g)Z|u^A5G)A>p} zQ4`~RA+gw*#pt(e5#fngiJA_~WXZU#tuo7CMEq@Tyt)Vewn%jZM=iZ_MB=u8w}sRO zZI;!^+{In&r#rDaFZ77oem*?5&m(Pt z2|bCMQ4G`HeBz7WYdbMiOik1_HdH?^bO8Sz#*)3sv$l5~Ls zdkJh3iUyc^*qoDl$&H!8Ovc9$mE8HH_WeSL3Kv946D_6hSrO!0E_VrTFlI;eD)wDD z&74vN;{KskzOMGjVnGE!)N|+=l3}~1zroXQXVI5N({h6w;48AMNxtF=yTxILyL0MU z!pnK-m7jKAnhKec%&dB_(}!i!A6siO5BCOxf<5xCNZwQcd-!>{<9YME);gF%qxX|L zU^eZgmxcTiOuap`FHpi2mFcv;uP9M+ZrkGpbn3ei=W)g$K1v_RCEk83nl8SAr{Lu@ z@`xCVO!i^1iq{xUK2;J-P0LB}-k4#@%{Qel6S)OLS`*4mDbq|Sk;XUrjk1>aEBX?_ zz>}b{?x8Mcp&XAemR=%P{Xv4~b2XUzI}F+*BkU{d=ojJ2WRU|Cc+Uv&FYauphX@z? zJ$P7Y`&4ccvA$5F?OUO%-|_ZoXC2fbw$g!}paU7JfFF_dQD>yxL`PSNQtyu*=})?_ zM0j_F@q`QO+D28n zTg($=g7#3m)E&<*ZZcI%@nR=Cq`9+H@H4m)*&^j_@{8`XsZLF>8Okyr9`flU{jbn+ zi7us*nwcWpMNDEwbWe(4+@HvlLee{->J5@%CmigQ_VccSIv1=WLf>_CvENoUyn}ls zaiQBTHiVhnnMFoZzAH<*gI#3oDk(t|4v%7JjQP_zjY;3uls-23`4gLk5%D-8{ympR z(P}a}+s7_yMh@5Nd+clt&@sllcR=Gj{$L`T2Jk6Zjt3rl2+o z#3@MX|H(@30S2lNeh%LNa2AE3d)_or0QqxCunv8>l27mls-jq?q@FN z*~{;m?*B*M{JZ7nH<7p8M&%|i^9LrZcnv{kit#$WQB}1A!3O+NW7V`_>sWr3*Fe?m zlM=W7A|%h&Y+KRdPFQ)x&RkasCdsYxjT#%>aw_rdlOs3FKiGMhXZUscT^XOU_cBH6 zZN^mZq{&oLUm7*3_<76g3dGyxX`Q2orcoI=liYLJ4~-S~Y`D1C@nJWrXK=C&dmmhj*lB80Bg2RgdI~V_sy2#>D2s`E`@fa|6+m-N<;Fo{W+4Bum25TaBc`*`3+`M{yH3?1}&P&78B zk_K^P4;5z$n~kSIk0;}=$j!e9v#u6iQ7Ja_V`o=O0z39{6ZysI-)SjdW^gC(B}99e zepE|VEJD}^I2AsRzFQV3L)OprPbkmaUk{v1zuHW#qFG*9s=NuF z_k;&y>eN;szwiPwk)mEf1HwZzB57(+9qZ(@6>C~u2m8}|vO+929a&8;Doq~IRnJt{c`lEC)pFTY_-s6i(!PmcKZ zyn~Br%#N3|LJZ~6aconx#7G_}9X4pBPFfyL-%Pj=@y@wmAD`T9jj`#pM!icP$&m!f zkK|Cu@I+4E<Nzlpw70+-E&tAPycVzFKB)fKGTU!8c-|j> zy;7A)ZH4`_+qW$S%lz8gRcjw`qM<+JPqxJNo9^y(;|SkXEBYyOZ)2iL;rka~2$Y;* z07KS-<+beNLsi7p9Lc%*viKigf&vSXU+ZpfrL!%`zPhaXq9Dg_xAkCD=JVaVq2b?4 zHdnv@Xi3Oc4Q+25a(yJah+(;jIZ1|2C3vUNLyH?S*(&4T9Yiv89aB$49=~=cn09;` z?Mi|i2|Ol<;r$KVg;iOK`@~`Nk#qQiJ;95Uufk#nZ>Wxlch#1WTsqzAVqyBwOGdRH z>oV`5g{NgA6RZ0;;!-8?p_zn24BPGSA)b++(zuF``UFGt7+&o{9His>_(SO#NOpFb zp2nL!3A_gR@Wa9y;^U>yP5M#CGBg4c!!bFQ-&k-$@=Y87$HJK3v6c zl*{FHu~b@rh$^gzDu@PLpMM{rPRCBwe`;1DlSHdlkQz+*g|Jkbej(9B!YT*1L0&e( z8ZSu7Gc&N+M1L$zH?%b&k7RhAYQ82>)=)H0dYwZ@6AU_ueTF@m?@*-}2+tiy&t)Hm z!D1IjlQMi?d8^Q;}USv2jC$@JeKb85aC% zzU7b=YWCTB&Tl{o34`g|HyFXHuZ{wp!vL?nU5@PRlevD`t5ZYQNFd zHcm8<`6>CWMTIWtW0Jai?da=%HmDv*hUVr91UzzLmIzEDToc8A(6SNwN+y&_hjiCJ zPcABI-Lu5am)}5l;X_iVI5ap`FklIHe$XkAFy8W$zV&DG(7nKJvY;Bo+DRzB4JKqL zi<6!vZ=tjjO2~g262eM8Px~sRohGiBovp*xU_X`Ti7zI7?(S7iIW&@msy^R`W)?Cu z1}wVs?tY)Y*@YtfUf79!NlNR_SPiL68+PUI%Xmz0FZqhL#fw9YZpVN6VEGy|%c_U# z_VqPG+}6g}*_G_$tu(_2_;=Ytp5wC1QLAI5v8*`O8*>FLf!H_k13tE zS%IECZ?ghB6=kHJ3D~oj|2uUnkf_7|PKOkK-=xN}x6~Al@HmPp{sP6q}A~v%g^=sgsZ$f)05gH zHu<7ih?slfX^RI-mMFRi@uBM;GAi}*+y}G1-N@b-r*C7D4!(8s&%6bdV6JuOz_ z5*dK!(~$ZhN0Tg36l7f*{Ed_G1Onaum_woJ9C&uRSEL*-Qp<;pt)$V?c_C97k}p8w z?YaHN!(BLz@^o(Yye|q;W-%$bD|cuZoox?Q9nZmwe@`J0>P;J^hxou5s#7nTZVOW$ zB`*s|I24U4lCp*y3S^YO3qF3&HGNFJCiJH6ad<`h;*j1^QdjWs|~P-i-MLr-~r zVQPp`AGqJ*PabY-!at{vluwMzt-bb=W?MT8I0EY7rc`BL5Q;nL z`i}9C%v6AA=#;OiuTxy}#w4HbByVbfs9-Kze(z%RW?a8B52Mi0GK?l$M5vH(>}WNL z+WNM7kdF58+B>uYiM7&A`2qDH#Eul1Uq)}#YFUZ)j#?ww9IfsrQ@pob7NS5-)w-$O z>R5tt$M?31$qaB01|AcW6HGnL#=BJ?_}HI?xkLZO z=4jX3$ZrFjPvgFP(z%a$EBH0ZckYXEil-c^m@`KtzKffP3pf%I7)-Cd(QGX-tiH(M z-n9)Pce#$nWg+Z``h)D(FaP=XESR#rSL%4#N@}bsJ38|`b#RhlLkh0&=h@ERV*s2kU z*F?Xh%`>c0(Wq3(RxV_&YjQHcS&}qDzhreuD+oji6M7VX$^Lj69b%rjsO{UCfcu4T zfNweQRdBvXmez5oEcIPX_tRynNzqcJckS9mGm9AnVQW<3!i2%vp7}G&cnrenqZ+s` zvo9vW7~r-LgILi5w(od+`sw;=%yvWqd|bM^aD&L=Xc*1#$IA=52^RaJMV4$xg|LlR zM2DCV)gS8@qoKIP{Gz!M3yy{aaHEQEZy++G8^)jd_4DS(D?VX5>p-R628WMxbSgPZ z$Sx!_!uP8##f6x4l^JIvCaRq$*L2HU-`O8}aXx6M(EE06()tvWJn*?aLo|AH50wWI z{irf8q~n@$w*oaonxpNgqd|d5M{So9rb=)gLQHL;p(fzel^$YM7+rIzHkcjXhCl-| zLLs!l1X1N?6@@irT?i={zNsH=c}?C#iMpDx+S86;DyrM6zJ(8|;kS7`VjSB1hDdx@IMqL55}X+Fu_54UuC0 zM|S^9u@tP~gW*vWB2P(4`L7U7zx*8_SATy1+5|K#Fiij3Q%mRhrC;99SSHjlderU{ z>eSLNAk%rM>FoVH-2}{5&@BZsqp0!FUnnN<>v@m~^$u_*@SK^gDA5Y!Dqxv_6h#@P zK#Kl;OzD?z&WI*ZI7Q|DK#-!;=zj|}0j-MiRZ&JN*ue)?Q{bP1+#f(qsCp?7q2T$G zVEWIWzjRJfg;QXjo(`YLiJ3UqF(-Q)2ILLVkx|V+sLlVZ8l$dld9TkxDt6~aww&;&f(2B{L9{3LZ*&O z`9)rpRTI{3D;q^dLp$S5cQFR@H^rU!I)Ys(?@JL1Em}ooFnKdH8!s32!dR>C(Ux5s z4hr%*B$TRoJgRyp>1`B2!>C2YO18JwzK2VFo#Sm$FC6@YIn9yXw23E^+w}onHknx1 zq2X(<3pShUp1i+PKOpc;isJcG9~z|S=|*cc&pl;>k>?eUM%a9m?cOD&<&-)+5BOLt zi2jt1Zdu@Z9p+J#zy5^JTo7HL+>G*4l5w_bPcAt=C&aifl8Z#j4nLS-W1dNwNI!W& zWuV4-A(Ap3oz~z*VedkarLCx@MbKz1RCORVcrhk3bdSJb=6T-&CvB2llv!itN}O=v z?)vg0^X;q&7bGiQA%g|m9ojmi=#sze&d1qVNDzJ`)skD72+ok| zwAl_U6)S2@eY~5q2PrRw#dH5b)!(Jg)~U>QxTYuHGi6>N-G7ZIERMJ#qWVKic>;Hv zKFxrhJ~=@avD|DtFK0P(QApjZYxsruI1GK-h*B?`RrF0a;WOB}OP_JCXfI(F-Z);qx=g|xkXCZCzSK2Gr^-rqN% z{#?U{H^?cdKxEo4C_?n+;|3;#;>g3^Ih1TS5c}_|dczwss}5%zPIUXHVMX~Er?dVA z53$FdCqnU{p{$Fz9F=axu+k&Z$9`zz7z#t-idKI)qD5ChgjXaOF~$B zXE5AQeXs06wb|yYCE}Z^zPdSgmkSsZe(V;7hCciHa8Bzw-_p_xX|?r=>g!zFOE2!J zHgtbF+9=htXxnT$!d=^cC%)Oz^WZ0i`GqUOa_D2jfj>0n*QpS)IC~Et6v*dd5~y~> zn8e`-Tf*L!@M2xGQk|*RXm5eQOAc}U747drgL-R71({SHU(j|-x@@*+rcWSzRE@*aJ*}>WhSj^08x<^yCs>b- z1zEj-uRGZ_Nq&BK^w%|fXbTqG$S&r*pcUcW(r!{cJTl|Vj-+PH80gJ3$c@-ViX`7| z&cK^VR{Ja|ecy*E&;c;B#Y_A;nnUz}G%|(Hj>blNALWQ?#x)bAz4xZXWu z$`C`Jn`OjXrHg=m`(J&pHtLSH;P!9=weZcoL9VF{Ayi}jHErh z!SPl0QD+fW5mZl8$iOpZfwQo^Ooq$~l6~lzAxm4PJF7mP@4H{x&#8omu+(CvF5s^veN?MlH0-@nD_SRWz=y*s`m0-ON|y4(oC!Ff2LU z4O)ruE&MK}C_~Yv-Uf@2)8d_O8j^7(4y7lNP;vEKG#k9$cgiA3^|8zNORh;l>X&kB zTrS0<*VC)+Xid~Y;g%_;e8tjU#e@wA*33;aRm*PbPA^BM^65mlgK?fUj9y(X9tyte7!KPR54XZMkb^?lSJi~%hRjXrLZ9>A+PP;wGf(rCsY*ROb!rl&-pjXK9|iamGvgfBDIPunhcc#U-_%lRV!P4=49&qj7TT0#dT&*2&GHf` zQ5&yzI+#COVg1=Lh{>gLl{UrFBwHfdQ}`xGC1 z5nPoeP@)Xp+4d!xjkOMilKUY%nV@9&;v(P1{_675)N3@fe~8Te|7w4p(M$g#zy!R~ zv-3;95Cxr5RCg2w%%4q+{);dZif{seJup*2%M^H`|2onH_U`57<$>}9Mk&e)1-(-g z%!Jx)0)aiMNBR$T=|6s)p-bmqKzZ9jP&|erPATrNCsA+rPiK6PJKzX93 zn^3|Mb!_RM<4qu~2g(yXD903qH-TCy=#-vKH=Spj{_frqa7lsq1nZ+H@rk`2Vr}$#TU{AykcPtc2ZXmbNyx ze4<=^XDfKXYl)xlYFGF~Z9~QT$lKlJL?^42)8XBv)mc$VlhaSJeL8XnebAz7eLs;; zPp1eFJ`I`+=9{^yVcmqF5mDK1<`E){CwMAnM(a2=6gKUxf~57lL0ItUuJEvl@kYLx z3H9n;dMWAqfUt2UqXx!@`VKUu_Wf86qF@5j4}__ zVukkb*5`fQG(9u!@3@8%3HQl;NflbWvYtmx-tW$ANrhKH!1uT?70Tac`GqQksRt3v zNY1yKX+zCo6NQv6SBnz3g$A>U&QPi!#2PV|TU2V>UoS+qHup`y6bFuig~%dHGo7in z_m)#0&p=lUh>Sn7JS1CrNB@8l4}&B1f39_uS z|Msp^tPD!jM?rTyNS z?rFRQ^YN5CUKCbCNaqI%8$wCxJ`Rjy(rW35!j*6_ufE*Ys_9Uie&4l$S#lfBpIaYbgOJnCev3j5=S(X#2+ zg!%A{XjvAxNzO|)LA4LF8=kOp3pouX0@5$Y4x_n~bSCv)7K^;XlQXHldc?LVsPloT zluX%dx2STKjWes>AAdZorPPO*M)*(+K`q95@*(tQ1?)t*40_pl`z2xOerFXaoqxD6 z?`}KB7}# zwqt^aej7Gu{-~pmCo|#G!IaB{{o!Y~rJ_Uh7th1>!>?WhLf@zT=p4S!JUhwgxfJLK zA($&;GZ|&OwP$*?5YGf5NQY+>sWIkR@De=?3kdYfv3yIpa?-$GtVyhQyfR0j% z#TFFTFC;AwgmT5=3O8(JNMurO)N_AT*?h><*0VK4ezj7=jwe-a)s>(5$3aUd>aj+k zVaX{a!~Kh-hsy>#8XDd7ml}5hE9^RkaVg~uSLyCp9|%C@I$2pzsSEK8(^+LD7% zl1gqrV1iyJ$flR0@M-rpsJM-rFR3JSYlz*fVhZbos)JPw&Y>^B_OtWgDkm|VW4#`A z+9}z@`h}chhJTiF`8|vn8Ra3@&iuJTO=&X)*IfX&<8yMZqHqRoH2Gfo=cj>CmU_iA<~9}A2aTyg&Te_BHn%%;3Mu2!wR@`UK8OvvMLbdmDcLI8U zn<3Jc%T&Y*j}RS8Z`|YIQhg1pJfeb2#OA5z`|4e`B~BaLeJv>8iLj^}4=8rx*2cT1 zW##muOhzwXe#QTm@kjk?v^bbMuzFkN7?yEiycpenPsioWM5JU!v6pMEse8smEAw8y zs>YgZ=S;j0`vqBHnZH(L&3YyH!dFl()~LeCK02J`eL zQlXzEwJH_lvaZb=N2iy-J_uM{vW?R1$ExnWw!yII7!odlszkX8TG=>5?p!dao$Oe@ z;KmQ>+qhh=)?K5#saiEZy7t(+*J0^!Kn+IzFr~-)?fwlH#z?w+wa%2{k6^ZlT6h z^Ha?-7l{o*wj|Fxy$&&~dYzlGkl8SSuaEi&hW+D5>vcs)p#A294k3vHYoQWW1}&dl z#2*gWMXvU`*SZLGvu%VKY0oFJR!#3ROy0AUovNjHCPbL@xnU8yDLp`ST|%C8{jP*Y z9qVA4OU!!OoR<0VFsBJLSKgjtjya(=%Opr#G2Le2BNlb$^-AUBbP~9u4^`TbYT@0# zSh)l$^eNxY%JRRhoj(gd|NY7(@avznrr+LU*4G0-#R&9&xqIoimw-rrJ3x8@sVT@p zuUxqTU={R?0?8gwD5%N*_q`{K356k55QKt3PM~fN5EK;ZK~3J$((+fu33LBT(FxS; zG3hACLP7N&P%D5{K%^iA#YpzQ2~gni%zHY!U|`gNm+~&f2PP$6+7d)xVE(*uKdrE@cYDrLX4C^Fr^JKg#Y)nH9e})72OM zwM|#m@>{*wy{p5zr$^@^u5^e~&qUtAliK2rV#ku?VLAU^(2eymu}oHgFMUX$?-Reyb!T(tC}*gW#xDFH`-t$KTychgL1s_NKO_k6q#*Fx6|U1D~KF!LaOTO7^JxrKOB zJ{rzM#U#<;*dm+YsA$K7M6Ks)H6myTCShgs2E682b%62Aj^^H4oz`= zHoiSRo6bR+jlF(<-PtY2Q5X>wZvayK+P)4@r8}v0=;b=7AMe%ge*oeV zD9cx`AAEA`5c{$)n#uN_a{*xX)Rv@kwju zDLNf3h3!JFO$||J_O0}3?;<(VsvD&kGRx(!@#hAiPS!KBkfd4>H5(_?Z*q%BHrl^N z5KHjd%%1F6WZ8%Fb*SAx+2CTBJKAad=~Q(&Uwu=4pCjE{{-D$DZOGxWu*wMEocVo% z@usxrXkL-WxN0Z!2G-ZscOIAYsef-X;pC%kLc8nSU{O*%7f%pKobt}=iwaELqgru- zMoWnT`t_%xatm?Qb*0hnv_m~e^ojeH@9E6|!fZ9=$b>DwRNY8o1H%T|r&+!t6&DC? z4BLnnw;rJB=E=!}t6OlKb`uBZak8TsAU1~BNt1q-jBMPr=2@+j z!Gu<9T;9aD-TH-^x>Y16j{2djy1bp|a;26S2GvS4go@EpII@Q;{&EewJb7ukiXApY z^T7*r$MZ`HKWwONyPeZ;p7=4vvxWQdxugb*^r~E991ady$)H=vfn)a$M_->!R(HZv z7f#AcqtDC|xze`GX{OHQmiln|FK$g%?~4Ex&iD=3oVV zOPVfoj%qw-I}ACvE+c{ z)G2~}lslcp7rc0q3}V6hM?*?aA4EZnDGb&=G>=xc+4Z~FDe;44*#qbV@#t^oH@yk-h>@JYI?%I_6u>CpPD}wFa3}EXe-)m7z5hvj z0-OqjCrsBUpi&T<0t^KOdoc0-FC{0?Q~Imt1QJ!yVhT_dw3wdFgThR_2QYe8m_Ku# zz~xu%3Da4Msn!D+1psQ9~%U{i4ZF(Rt(pF^TR%^rlLU<4_ERKTN{n*Eum zkI6|v?gFpN$HEf zM`G-Tv%0R8(EhdAA(cfIAzyXxXX z&L5Xe#-A8faCtC1G#e=QjVLpoba6;~=0=6yWvba~Y!5vled_7(U_p-Ma_T*eOkUk6 z3ge%6Ddy`d)=p^MQ-2-}@7?8h^{l=H55y3UL60M4yB57_jtCo0>ign$bBiqQG%wf- zA39O9q1j06dZTsRyq)@Wwo4f6e&E(ArwV$ zt3>)5jfX!D^8=)XU&)OOBE9Uk zFND^xmNXyD8;oXz>yiFwi940=H}(XhW{#m7(GL?IZ-n|1R&InlEbeWDMiN#oHjtV; z9(^m6^NFhRlyAA@+AC~6-sBQy z(x@Wu<3s`Zx>wjUMHZ{weHu}y%ggoLOpgb=TZ92S2nT3cFf)qh}$Zw`!{NM(wCU8vf%ZM`09U-<1u_*qt*wV zp>#pV@_YFhisi`d1YLYg7;y!ey;d|s%=75Vd*Mh9r3H6#dhf282&>|w#pFjDM@wme zLdVNl@eao;dAY^M-wLZYj#qnspfs2fN;LTFRXjK+*Xo8$PB!)3%z`)SyRyPIo4Get z1&X+1w8ce#Ak}up)Gj|<={fb$5}0x>=@S_$*$br`kH3${p3Psbb-4EEd7sGptSoK% z#h33ymO3j+o*mY;KO5QG7iTe5Gzj~_AVOP1$fBVMX+9puaygPs!#YumKDu1`^w9UZ zconx2PNy~pX+zo(^JMKE7r0M5NiYl4unFZ@%)tG^R2bIUdTjj82`?-iOEeH-JT~Ns zj+(wL?Bb?q#ImpM6pEU4#v+4h})qYp)>k$_kRVo;yp2v6G9IDa$H%_`mcuyI?M=LUBAy%rT!# zG?&mCIrJ`qL2nR$_`8xynP^l>Xc`r-A>}#SH_<75=A=|^lqAcqC zvUF2%zb-YsP%jC%a>4jOs=Em__JFh3O%tcBS?;~Gj<@KrzeoXh1B_PKBg2qO?^|<_ zApp_I{v65bo&g7sU66|AN_A-rK1kXHO`*9m6Fq|u%LeHiw>re8q@&IJP~=YN?py^1 zGvdo5y6lanehLJdL-76>fzC-)zGCwb<8y5c&x!DqxMhZ9N#VSMld3#2EyEEH_h=_7 zdc|0khNHig8>)+T!sL5LA{JW(pNZsa&v}hxoXgCXTDRt7^@!E%cgdl<*n7=cb1aFA zllE%L%Ej}1)aDfX`6)FW6VWodO++0G{QkDrf4Ea;AzgEB@An8*9P4G$a^~EL&A;g$ zeWPqvqEO`~?3NXAU#ir25%kFl!c%l25&v$X+kj1ZkXT4#uLMs%p#UNZY1kGwMyDw1 zk8{5^{i|MerD=3S|Ie?ZW-sMHQw0sCgU#?&#Q`OXxh4b!PZ~>B2pP) zleA*I;R^y5qR24q+lLLy1MN-g z-O!p|Ep}xaJXd6-vYnYtI#=s_*UyR<`4!tps)<%Z=%z-?)Ej#CMvZJJ%+G9wk{wmg zC>r47#2B(!cb6g4t5o~Y%Pd5(wVn37BP=W`6p?j6OI{Qvs;KlSSl^kQrqjv$-l>c^ znCl6b^p}$rBjPl2qx|VYC{}oT7T@ZKwPt$9zo{WoFQ~RTpS3(m8Q*j9gxPRlTjc)B z^@3YcEbaZyu=`2tb`)|;M|F=E#g#m_mv$ozhH!Z+T$#MBef^Y&eeL(+NY)o%&u8C7 zIk?CrAQmKbd>E1x2*qCWFT(U>#-%S3(Te`Mx3)U~;gYizXe@4>3fBE|h{QU*~{sMo0f&ax9_z!m^)TICb diff --git a/src/app/map/layer.ts b/src/app/map/layer.ts index b99f57f..4824976 100644 --- a/src/app/map/layer.ts +++ b/src/app/map/layer.ts @@ -17,6 +17,9 @@ import esriConfig = require('esri/config'); import { removeCommonSegments } from './polygon'; import {LayerOptions} from "esri"; +import * as cercleTextureUrl from "Assets/img/icons/cercle.png"; +import * as tiledLinesTextureUrl from "Assets/img/textures/traitilles.png"; + export type LayerType = City | Square | Osm; export interface City { kind: "city"; } export interface Square { kind: "square"; } @@ -69,12 +72,9 @@ const surface = { const HARD_SYMBOL = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(), new Color('black')); -const url_traitilles = require("file-loader?name=./assets/[name].[ext]!./../core/img/traitilles.png"); -const url_cercle = require("file-loader?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 BUILDING_SYMBOL = new PictureFillSymbol(tiledLinesTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); +const WATER_SYMBOL = new PictureFillSymbol(cercleTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); +const GREEN_SYMBOL = new PictureFillSymbol(tiledLinesTextureUrl, 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'; diff --git a/src/app/map/map.component.html b/src/app/map/map.component.html index cf5a88e..351869b 100644 --- a/src/app/map/map.component.html +++ b/src/app/map/map.component.html @@ -5,7 +5,7 @@
diff --git a/src/app/map/map.component.ts b/src/app/map/map.component.ts index d6052c9..68f35ca 100644 --- a/src/app/map/map.component.ts +++ b/src/app/map/map.component.ts @@ -1,77 +1,76 @@ -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-loader?name=./assets/img/[name].[ext]!./assets/img/spin.gif"); - -import 'rxjs/add/operator/toPromise'; +import { + Component, + EventEmitter, + Input, + OnInit, + Output, + SimpleChanges, +} from "@angular/core"; + +import "rxjs/add/operator/toPromise"; + +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'; +import * as br from "braille"; + +import { LayerType } from "./layer"; +import { AbaMap, OptionMap } from "./map"; +import { MapService } from "./map.service"; +import * as loadingSpinnerUrl from "Assets/img/spin.gif"; @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 { - map : AbaMap; - search: ArcgisSearch; - - mapLoading : boolean = false; - imgLoading : string = img_loading; - - needZoom : boolean = false; - - @Output() onMapInstancied: EventEmitter = new EventEmitter(); - @Input() searchable: boolean = true; +export class MapComponent { + public get loadingSpinnerURL(): string { return String(loadingSpinnerUrl); } + public map: AbaMap; + public mapLoading: boolean = false; + public mapZoom = ""; - readonly ZOOM_LEVEL_MINIMUM : number = 16; + @Output() + public onMapInstancied: EventEmitter = new EventEmitter(); + @Input() + public searchable: boolean = true; - mapZoom = ""; + private needZoom: boolean = false; + private search: ArcgisSearch; + private readonly ZOOM_LEVEL_MINIMUM: number = 16; - constructor(private mapService: MapService) { - } - - getDefaultMap(): void { - this.mapService - .defaultMap() - .subscribe( - optionMap => { - console.log(optionMap); - this.initMap(optionMap); - } - ); - } + constructor(private mapService: MapService) {} - ngOnInit(): void { + public getDefaultMap(): void { + this.mapService.defaultMap().subscribe((optionMap) => { + this.initMap(optionMap); + }); } - 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; @@ -79,107 +78,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/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"; From 9ce91c5d883829fad45f54739321e9d2f0fdc36f Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 28 Mar 2018 15:28:09 +0200 Subject: [PATCH 22/48] Move all the images in the assets folder --- .gitignore | 1 - .../img/icons/mouseActions}/delete.png | Bin .../img/icons/mouseActions}/move.png | Bin .../img/icons/mouseActions}/select.png | Bin .../img/icons/operations}/open.png | Bin .../img/icons/operations}/print.png | Bin .../img/icons/operations}/save.png | Bin .../img/icons/shapes}/circle.png | Bin .../img/icons/shapes}/passage.png | Bin .../img/icons/shapes}/pedestrian.png | Bin .../img/icons/shapes}/polygon.png | Bin .../img/icons/shapes/tiledLines.png | Bin .../img/icons/textures}/water.png | Bin {img => assets/img}/spin.gif | Bin .../img/textures/blackDot.png | Bin .../img/textures}/blackTextureFill.png | Bin .../img/textures}/traitilles.png | Bin .../img/textures}/whiteTextureFill.png | Bin src/app/editor/dot.png | Bin 441 -> 0 bytes src/app/editor/draw.ts | 4 +-- src/app/editor/toolbar/img/dot.png | Bin 441 -> 0 bytes src/app/editor/toolbar/img/pedestrian2.png | Bin 1167 -> 0 bytes src/app/editor/toolbar/toolbar.component.ts | 28 ++++++++++-------- src/app/map/layer.ts | 4 +-- 24 files changed, 19 insertions(+), 18 deletions(-) rename {src/app/editor/toolbar/img => assets/img/icons/mouseActions}/delete.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/mouseActions}/move.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/mouseActions}/select.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/operations}/open.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/operations}/print.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/operations}/save.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/shapes}/circle.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/shapes}/passage.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/shapes}/pedestrian.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/shapes}/polygon.png (100%) rename src/app/editor/toolbar/img/dotted.png => assets/img/icons/shapes/tiledLines.png (100%) rename {src/app/editor/toolbar/img => assets/img/icons/textures}/water.png (100%) rename {img => assets/img}/spin.gif (100%) rename src/app/core/img/cercle.png => assets/img/textures/blackDot.png (100%) rename {src/app/editor/toolbar/img => assets/img/textures}/blackTextureFill.png (100%) rename {src/app/core/img => assets/img/textures}/traitilles.png (100%) rename {src/app/editor/toolbar/img => assets/img/textures}/whiteTextureFill.png (100%) delete mode 100644 src/app/editor/dot.png delete mode 100644 src/app/editor/toolbar/img/dot.png delete mode 100644 src/app/editor/toolbar/img/pedestrian2.png diff --git a/.gitignore b/.gitignore index 68cde67..e27df68 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ /.idea/ /.DS_STORE/ -/assets/ /dist/ /doc/ /node_modules/ 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/passage.png b/assets/img/icons/shapes/passage.png similarity index 100% rename from src/app/editor/toolbar/img/passage.png rename to assets/img/icons/shapes/passage.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/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/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/src/app/core/img/cercle.png b/assets/img/textures/blackDot.png similarity index 100% rename from src/app/core/img/cercle.png rename to assets/img/textures/blackDot.png diff --git a/src/app/editor/toolbar/img/blackTextureFill.png b/assets/img/textures/blackTextureFill.png similarity index 100% rename from src/app/editor/toolbar/img/blackTextureFill.png rename to assets/img/textures/blackTextureFill.png diff --git a/src/app/core/img/traitilles.png b/assets/img/textures/traitilles.png similarity index 100% rename from src/app/core/img/traitilles.png rename to assets/img/textures/traitilles.png diff --git a/src/app/editor/toolbar/img/whiteTextureFill.png b/assets/img/textures/whiteTextureFill.png similarity index 100% rename from src/app/editor/toolbar/img/whiteTextureFill.png rename to assets/img/textures/whiteTextureFill.png diff --git a/src/app/editor/dot.png b/src/app/editor/dot.png deleted file mode 100644 index 13cb07b9ca015571dd3b3875f3ac2b79744ea073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)N2bZe?^J zG%heMF*ZbLuk`=`0X9iQK~y+Tt&lOxf>0EOGj+&8s6=wHDYw?3KnL*;I5_uL+}s)( z3WA_8qRGV{_;${PK)-vY%Qrk+&U4@QaCHLU-w>rKqBKR6rigOL=kvk+en;E3G|HJD zqGV2|6S6Er7>4jX5A*pPd7k5Xz0$SZ5oKN1NRmV?v27ccWvO#En_<0PM$|2de=z00000NkvXXu0mjfAy>U% diff --git a/src/app/editor/draw.ts b/src/app/editor/draw.ts index b971659..76eda8c 100644 --- a/src/app/editor/draw.ts +++ b/src/app/editor/draw.ts @@ -16,7 +16,7 @@ import * as _ from "lodash"; //import * as Vector from '../core/vector2d'; import { Vector2d, subVec, addVec, norm, multVec, perp, clone } from '../core/vector2d'; -import * as dotUrl from "Assets/img/icons/dot.png"; +import * as blackDotTextureUrl from "Assets/img/textures/blackDot.png"; export type DrawGraphic = (graphic: Graphic) => void; @@ -48,7 +48,7 @@ export class DrawInfoBasicGeometry implements DrawInfo{ //Array of all the texture available private textureTypes : { [name:string] : Symbol; } = { - 'water' : new PictureFillSymbol(dotUrl, + 'water' : new PictureFillSymbol(blackDotTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL),16,16), 'black' : new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), this.blackColor), diff --git a/src/app/editor/toolbar/img/dot.png b/src/app/editor/toolbar/img/dot.png deleted file mode 100644 index 13cb07b9ca015571dd3b3875f3ac2b79744ea073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)N2bZe?^J zG%heMF*ZbLuk`=`0X9iQK~y+Tt&lOxf>0EOGj+&8s6=wHDYw?3KnL*;I5_uL+}s)( z3WA_8qRGV{_;${PK)-vY%Qrk+&U4@QaCHLU-w>rKqBKR6rigOL=kvk+en;E3G|HJD zqGV2|6S6Er7>4jX5A*pPd7k5Xz0$SZ5oKN1NRmV?v27ccWvO#En_<0PM$|2de=z00000NkvXXu0mjfAy>U% diff --git a/src/app/editor/toolbar/img/pedestrian2.png b/src/app/editor/toolbar/img/pedestrian2.png deleted file mode 100644 index d99fb25c80b0fc9b6f491a99bd6ffdd66b869dd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmV;A1aSL_P)?UN7!k7( zH;P3!)vAq_3KmPN*dj&EbRqshNwm0VZAj5Zg27G_nLjx1&d<$>-d^6Dcb(4UWuONF zN#4Ehec!#`{mwb>iL^L?EHKW0F%Aq#I|Oim_!wR3;Ikyh&`Ktd_aKnJ+~))>B!Cxy zAh;|H8ENxqC4o~OV?Mreh+9lzZ`<0aMPkTtqf}T!X;v=uHd!KppV&z?dh2;j{>h#{eHySq*s-m`DTsa0HOOwj7j* zZw#g_oqU5$%)jK*l+HXb5HYUa;dTqV!m`vvG13{1*`>P9qr}}92X?lSK*6VvReOz# z^B(2(G_bR&7OSh4C>($>VO}#%VZA{2kiO9Vle;$AV`aV3)F{1POo=|VK@lf58MItjEsx~Y3SdLfrJ{V zpsRiZ@F?)EX6BcG`+&8}NnpaGPlzIsQxa={TlMdQz?Z zcnA2w7;_{H!^g|za{uh?Y|tzMM-x^*1FSQ~Yz1Bhz6C;O{7K!Ru9#?{G ze8|$~ciNB`N8`WgxW|C?rBbN_m~>ycEG{ng8Dq8qZv($5i4d3q-U7A(H%?7Wb@<5S zb>MdkMA5cEjY+Fy=mxd`Bbtcj93n<{>Ts=A+XXxq_uT+k2RsP8rb)7-V=e%PHQ{Ys zSXk(Y+!Ek6;8m4C)slrBW#AFl{){neRC2r3UH*)4ojJ9{vXv9&V=QzF@B;9)$`Z{f zpXxI6^0(sy`ZOktrGBY#N1*`|2Q0ts^<{N8e%fKFBRg5B51Dn)p hKL-|c-bLW6e*kr!ZOF?PFv9=<002ovPDHLkV1gTv6k7lQ diff --git a/src/app/editor/toolbar/toolbar.component.ts b/src/app/editor/toolbar/toolbar.component.ts index a66b602..446ca2b 100644 --- a/src/app/editor/toolbar/toolbar.component.ts +++ b/src/app/editor/toolbar/toolbar.component.ts @@ -7,18 +7,20 @@ import {TranslateService} from 'ng2-translate'; import * as blackTextureFillUrl from "Assets/img/textures/blackTextureFill.png"; import * as whiteTextureFillUrl from "Assets/img/textures/whiteTextureFill.png"; -import * as circleIconUrl from "Assets/img/icons/circle.png"; -import * as deleteIconUrl from "Assets/img/icons/delete.png"; -import * as dottedIconUrl from "Assets/img/icons/dotted.png"; -import * as moveIconUrl from "Assets/img/icons/move.png"; -import * as pedestrianIconUrl from "Assets/img/icons/pedestrian.png"; -import * as polygonIconUrl from "Assets/img/icons/polygon.png"; -import * as selectIconUrl from "Assets/img/icons/select.png"; -import * as waterIconUrl from "Assets/img/icons/water.png"; - -import * as openIconUrl from "Assets/img/icons/open.png"; -import * as printIconUrl from "Assets/img/icons/print.png"; -import * as saveIconUrl from "Assets/img/icons/save.png"; +import * as waterIconUrl from "Assets/img/icons/textures/water.png"; + +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 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 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"; export interface ITool { image?: string, command: string } @@ -113,7 +115,7 @@ export class ToolbarMapComponent { kind: 'draw', command: 'draw_traits', drawType : { kind: 'line' }, - image: dottedIconUrl, + image: tiledLinesIconUrl, }, { kind: 'draw', diff --git a/src/app/map/layer.ts b/src/app/map/layer.ts index 4824976..484a767 100644 --- a/src/app/map/layer.ts +++ b/src/app/map/layer.ts @@ -17,7 +17,7 @@ import esriConfig = require('esri/config'); import { removeCommonSegments } from './polygon'; import {LayerOptions} from "esri"; -import * as cercleTextureUrl from "Assets/img/icons/cercle.png"; +import * as blackDotTextureUrl from "Assets/img/textures/blackDot.png"; import * as tiledLinesTextureUrl from "Assets/img/textures/traitilles.png"; export type LayerType = City | Square | Osm; @@ -73,7 +73,7 @@ const surface = { const HARD_SYMBOL = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(), new Color('black')); const BUILDING_SYMBOL = new PictureFillSymbol(tiledLinesTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); -const WATER_SYMBOL = new PictureFillSymbol(cercleTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); +const WATER_SYMBOL = new PictureFillSymbol(blackDotTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); const GREEN_SYMBOL = new PictureFillSymbol(tiledLinesTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 25, 25); const URL_FEATURE_LAYER = "https://hepiageo.hesge.ch/arcgis/rest/services/audiotactile/audiotactile/FeatureServer/"; From d867a65eec129ee3f3e645a0b4aa3395792c95b4 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Thu, 5 Apr 2018 20:45:28 +0200 Subject: [PATCH 23/48] fix linting by removing wrong config option --- tslint.json | 1 - 1 file changed, 1 deletion(-) diff --git a/tslint.json b/tslint.json index 8023601..7bc000f 100644 --- a/tslint.json +++ b/tslint.json @@ -1,6 +1,5 @@ { "defaultSeverity": "error", - "extends": ["tslint:recommended"], "jsRules": {}, "rules": { "interface-name": [ From ca2c33a9d639224825344c6248b8d524aaa71c63 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Fri, 6 Apr 2018 17:01:24 +0200 Subject: [PATCH 24/48] add tslint module to package --- package-lock.json | 87 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + tslint.json | 1 + 3 files changed, 89 insertions(+) diff --git a/package-lock.json b/package-lock.json index 1778295..f276263 100644 --- a/package-lock.json +++ b/package-lock.json @@ -375,6 +375,14 @@ "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": { + "sprintf-js": "1.0.3" + } + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -6681,6 +6689,15 @@ "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", @@ -10608,6 +10625,11 @@ } } }, + "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", @@ -11511,12 +11533,77 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" }, + "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", diff --git a/package.json b/package.json index c493d7f..fa000dd 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "tokml": "^0.4.0", "ts-helpers": "^1.1.2", "ts-loader": "^4.1.0", + "tslint": "^5.9.1", "typedoc": "^0.11.1", "typescript": "^2.7.2", "url-loader": "^1.0.1", diff --git a/tslint.json b/tslint.json index 7bc000f..6bf3b5c 100644 --- a/tslint.json +++ b/tslint.json @@ -1,5 +1,6 @@ { "defaultSeverity": "error", + "extends": "tslint:recommended", "jsRules": {}, "rules": { "interface-name": [ From 312044333e26de3f83ab4cd4c2874093baca206b Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Fri, 6 Apr 2018 17:02:34 +0200 Subject: [PATCH 25/48] refactor: clean all the code to match tslint:recommended --- src/app/app-routing.module.ts | 43 +- src/app/app.component.ts | 38 +- src/app/app.module.ts | 80 +- .../blind-creator/blind-creator.component.ts | 490 ++++---- src/app/blind-creator/blind-creator.module.ts | 34 +- src/app/boot.ts | 10 +- src/app/core/artyomProvider.ts | 64 + src/app/core/core.module.ts | 32 +- src/app/core/direction.ts | 55 +- src/app/core/geo.service.ts | 212 +--- src/app/core/googleProvider.ts | 123 ++ src/app/core/kml.service.ts | 162 +-- src/app/core/opendataProvider.ts | 24 + src/app/core/state.service.ts | 50 +- src/app/core/transport.service.ts | 73 +- src/app/core/vector2d.ts | 327 ++--- src/app/core/voice.service.ts | 154 +-- src/app/editor/draw.ts | 305 ----- src/app/editor/draw/drawInfoBasicGeometry.ts | 115 ++ src/app/editor/draw/drawInfoCircle.ts | 14 + src/app/editor/draw/drawInfoPedestrian.ts | 257 ++++ src/app/editor/draw/drawInfoPolygon.ts | 18 + src/app/editor/draw/drawInfoPolyline.ts | 17 + src/app/editor/drawEditMap.ts | 398 +++--- .../editor/modal-maps-list/filtermaps.pipe.ts | 47 +- .../modal-maps-list.component.ts | 131 +- .../modal-save-map.component.ts | 68 +- .../select-lang/select-lang.component.ts | 41 +- src/app/editor/toolbar/toolbar.component.ts | 478 +++---- src/app/map/layer.ts | 417 ++---- src/app/map/layers/CityBrailleSubLayer.ts | 44 + src/app/map/layers/CityRootBrailleLayer.ts | 12 + src/app/map/layers/OsmRootLayer.ts | 12 + src/app/map/layers/OsmSubLayer.ts | 9 + src/app/map/layers/RailroadBrailleSubLayer.ts | 36 + src/app/map/layers/SquareBrailleSubLayer.ts | 118 ++ src/app/map/layers/SquareRootBrailleLayer.ts | 14 + src/app/map/layers/StairsBrailleLayer.ts | 41 + src/app/map/map.service.ts | 160 +-- src/app/map/map.ts | 338 ++--- src/app/map/symbols.ts | 34 + src/app/shared/drop.pipe.ts | 18 +- src/app/shared/length.pipe.ts | 16 +- .../modal-yesno/modal-yesno.component.ts | 78 +- .../pagination-buttons.component.ts | 162 ++- src/app/shared/shared.module.ts | 86 +- src/app/shared/take.pipe.ts | 18 +- src/app/touchpad/touchpad.component.ts | 1116 +++++++++-------- src/app/touchpad/touchpad.module.ts | 55 +- src/conf/featureLayerApiUrls.ts | 4 + src/conf/surfaces.ts | 25 + src/definitions/braille.d.ts | 6 +- src/definitions/geojson.d.ts | 8 +- src/definitions/tokml-function.d.ts | 6 +- 54 files changed, 3533 insertions(+), 3160 deletions(-) create mode 100644 src/app/core/artyomProvider.ts create mode 100644 src/app/core/googleProvider.ts create mode 100644 src/app/core/opendataProvider.ts delete mode 100644 src/app/editor/draw.ts create mode 100644 src/app/editor/draw/drawInfoBasicGeometry.ts create mode 100644 src/app/editor/draw/drawInfoCircle.ts create mode 100644 src/app/editor/draw/drawInfoPedestrian.ts create mode 100644 src/app/editor/draw/drawInfoPolygon.ts create mode 100644 src/app/editor/draw/drawInfoPolyline.ts create mode 100644 src/app/map/layers/CityBrailleSubLayer.ts create mode 100644 src/app/map/layers/CityRootBrailleLayer.ts create mode 100644 src/app/map/layers/OsmRootLayer.ts create mode 100644 src/app/map/layers/OsmSubLayer.ts create mode 100644 src/app/map/layers/RailroadBrailleSubLayer.ts create mode 100644 src/app/map/layers/SquareBrailleSubLayer.ts create mode 100644 src/app/map/layers/SquareRootBrailleLayer.ts create mode 100644 src/app/map/layers/StairsBrailleLayer.ts create mode 100644 src/app/map/symbols.ts create mode 100644 src/conf/featureLayerApiUrls.ts create mode 100644 src/conf/surfaces.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 016b23d..d0fcad5 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 }, +]; + +@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..b83ccfd 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,19 +1,19 @@ -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"; +import {ScalarObservable} from "rxjs/observable/ScalarObservable"; +@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..0ed99c1 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,40 +1,40 @@ -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 { AppComponent } from "./app.component"; +import { CoreModule } from "./core/core.module"; + +import { AppRoutingModule } from "./app-routing.module"; + +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 { BlindCreatorModule } from "./blind-creator/blind-creator.module"; +import { EditorModule } from "./editor/editor.module"; +import { TouchpadModule } from "./touchpad/touchpad.module"; + +@NgModule({ + bootstrap: [ AppComponent ], + declarations: [ + AppComponent, + ], + imports: [ + BrowserModule, + CoreModule, + AppRoutingModule, + TouchpadModule, + EditorModule, + BlindCreatorModule, + TranslateModule.forRoot(), + ], + providers: [{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..e35e5c5 100644 --- a/src/app/blind-creator/blind-creator.component.ts +++ b/src/app/blind-creator/blind-creator.component.ts @@ -1,242 +1,248 @@ -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 Point = require("esri/geometry/Point"); +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 { MapService } from "../map/map.service"; + +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.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 + 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..68a7124 100644 --- a/src/app/blind-creator/blind-creator.module.ts +++ b/src/app/blind-creator/blind-creator.module.ts @@ -1,20 +1,14 @@ -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..1e07ec5 --- /dev/null +++ b/src/app/core/artyomProvider.ts @@ -0,0 +1,64 @@ +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 141e9d5..222feb1 100644 --- a/src/app/core/geo.service.ts +++ b/src/app/core/geo.service.ts @@ -1,166 +1,46 @@ -import {Injectable} from "@angular/core"; - -import { GOOGLE_GEOCODE_KEY } from '../../conf/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 Point = require("esri/geometry/Point"); +import WebMercatorUtils = require("esri/geometry/webMercatorUtils"); +import { Observable } from "rxjs/Observable"; + +import { GeoProvider, GoogleProvider } from "./googleProvider"; + +@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): string[] { + const data: string[] = []; + + const 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; + } + } +} diff --git a/src/app/core/googleProvider.ts b/src/app/core/googleProvider.ts new file mode 100644 index 0000000..eb232c7 --- /dev/null +++ b/src/app/core/googleProvider.ts @@ -0,0 +1,123 @@ +import googleMaps = require("google-maps"); + +import Point = require("esri/geometry/Point"); +import { Observable } from "rxjs/Observable"; + +import { Direction } from "./direction"; + +import LatLng = google.maps.LatLng; + +import { GOOGLE_GEOCODE_KEY } from "../../conf/secret"; + +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/kml.service.ts b/src/app/core/kml.service.ts index 6721747..510177f 100644 --- a/src/app/core/kml.service.ts +++ b/src/app/core/kml.service.ts @@ -1,75 +1,87 @@ -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: ["lat", "lng"] }); + 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..9da6c06 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 Point = require("esri/geometry/Point"); +import { Observable } from "rxjs/Observable"; + +import { OpendataCHProvider, TransportProvider } from "./opendataProvider"; + +@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 1b44a5a..e321f6b 100644 --- a/src/app/core/voice.service.ts +++ b/src/app/core/voice.service.ts @@ -1,101 +1,53 @@ -import { Injectable } from '@angular/core'; -import artyomjs from 'artyom.js/source/artyom'; -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 = new artyomjs(); - 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/draw.ts b/src/app/editor/draw.ts deleted file mode 100644 index 76eda8c..0000000 --- a/src/app/editor/draw.ts +++ /dev/null @@ -1,305 +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'; - -import * as blackDotTextureUrl from "Assets/img/textures/blackDot.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{ - private symbol : Symbol; - public geometryType : string; - public editTools : any; - - 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(blackDotTextureUrl, - 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..c7c8423 --- /dev/null +++ b/src/app/editor/draw/drawInfoBasicGeometry.ts @@ -0,0 +1,115 @@ +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 * as blackDotTextureUrl from "Assets/img/textures/blackDot.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, + ), + 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..0ccc1d4 --- /dev/null +++ b/src/app/editor/draw/drawInfoPedestrian.ts @@ -0,0 +1,257 @@ +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, DrawInfoBasicGeometry } 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..1412405 100644 --- a/src/app/editor/drawEditMap.ts +++ b/src/app/editor/drawEditMap.ts @@ -1,187 +1,211 @@ -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"; + +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(), + 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?: DrawType) { + if (enable && drawType) { + const 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(); + } + } +} 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..71cc7b7 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,65 @@ -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..11e69b5 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, EventEmitter, Input, Output } 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/toolbar.component.ts b/src/app/editor/toolbar/toolbar.component.ts index 446ca2b..fbd8f2d 100644 --- a/src/app/editor/toolbar/toolbar.component.ts +++ b/src/app/editor/toolbar/toolbar.component.ts @@ -1,212 +1,266 @@ -import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core"; -import { LayerType } from '../../map/layer'; -import { DrawType } from '../drawEditMap'; - -import {TranslateService} from 'ng2-translate'; - -import * as blackTextureFillUrl from "Assets/img/textures/blackTextureFill.png"; -import * as whiteTextureFillUrl from "Assets/img/textures/whiteTextureFill.png"; - -import * as waterIconUrl from "Assets/img/icons/textures/water.png"; - -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 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 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"; - -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: blackTextureFillUrl, - color: 'white', - texture: 'black' - }, - { - kind: 'texture', - command: 'fill', - image: whiteTextureFillUrl, - color: 'black', - texture: 'white' - }, - { - kind: 'texture', - command: 'fill', - image: waterIconUrl, - color: 'black', - texture: 'water' - }, - ]; - private activeFill: number = 0; - - private tools: Array = [ - { - kind: 'edit', - command: 'move', - image: moveIconUrl, - }, - { - kind: 'edit', - command: 'select', - image: selectIconUrl, - }, - { - kind: 'edit', - command: 'delete', - image: deleteIconUrl, - }, - { - kind: 'draw', - command: 'draw_circle', - drawType : { kind: 'circle' }, - image: circleIconUrl, - }, - { - kind: 'draw', - command: 'draw_polygon', - drawType : { kind: 'polygon' }, - image: polygonIconUrl, - }, - { - kind: 'draw', - command: 'draw_traits', - drawType : { kind: 'line' }, - image: tiledLinesIconUrl, - }, - { - kind: 'draw', - command: 'draw_pedestrian', - drawType : { kind: 'pedestrian' }, - image: pedestrianIconUrl, - }, - { - kind: 'action', - command: 'print', - image: printIconUrl, - }, - { - kind: 'action', - command: 'open', - image: openIconUrl, - }, - { - kind: 'action', - command: 'save', - image: saveIconUrl, - }, - { - 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, + ViewChild, +} from "@angular/core"; +import { LayerType } from "../../map/layer"; +import { DrawType } from "../drawEditMap"; + +import { TranslateService } from "ng2-translate"; + +import * as blackTextureFillUrl from "Assets/img/textures/blackTextureFill.png"; +import * as whiteTextureFillUrl from "Assets/img/textures/whiteTextureFill.png"; + +import * as waterIconUrl from "Assets/img/icons/textures/water.png"; + +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 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 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"; + +export interface ITool {// tslint:disable-line interface-name + 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", + styleUrls: ["toolbar.component.css"], + templateUrl: "toolbar.component.html", +}) +export class ToolbarMapComponent { + @Input() public activeTab: LayerType; + @Output() public onUpdateTool: EventEmitter = new EventEmitter(); + + // Array of state for the fill button + private fillState: Tool[] = [ + { + color: "white", + command: "fill", + image: blackTextureFillUrl, + kind: "texture", + texture: "black", + }, + { + color: "black", + command: "fill", + image: whiteTextureFillUrl, + kind: "texture", + texture: "white", + }, + { + color: "black", + command: "fill", + image: waterIconUrl, + kind: "texture", + texture: "water", + }, + ]; + private activeFill: number = 0; + + private tools: Tool[] = [ + { + command: "move", + image: moveIconUrl, + kind: "edit", + }, + { + command: "select", + image: selectIconUrl, + kind: "edit", + }, + { + command: "delete", + image: deleteIconUrl, + kind: "edit", + }, + { + command: "draw_circle", + drawType: { kind: "circle" } as DrawType, + image: circleIconUrl, + kind: "draw", + }, + { + command: "draw_polygon", + drawType: { kind: "polygon" } as DrawType, + image: polygonIconUrl, + kind: "draw", + }, + { + command: "draw_traits", + drawType: { kind: "line" } as DrawType, + image: tiledLinesIconUrl, + kind: "draw", + }, + { + command: "draw_pedestrian", + drawType: { kind: "pedestrian" } as DrawType, + image: pedestrianIconUrl, + kind: "draw", + }, + { + command: "print", + image: printIconUrl, + kind: "action", + }, + { + command: "open", + image: openIconUrl, + kind: "action", + }, + { + command: "save", + image: saveIconUrl, + kind: "action", + }, + { + color: (this.fillState[this.activeFill] as TextureTool).color, + command: "fill", + image: this.fillState[this.activeFill].image, + kind: "texture", + texture: (this.fillState[this.activeFill] as TextureTool).texture, + }, + ]; + private activeTool: Tool = this.tools[0]; + + constructor(private translateService: TranslateService) {} + + 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; + } + + 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; + } + + private drawTools(): Tool[] { + return this.tools.filter((tool) => tool.kind === "draw"); + } + + private editTools(): Tool[] { + return this.tools.filter((tool) => tool.kind === "edit"); + } + + private actionTools(): Tool[] { + return this.tools.filter((tool) => tool.kind === "action"); + } + + private textureTools(): Tool[] { + return this.tools.filter((tool) => tool.kind === "texture"); + } + + private increaseActiveFill(): void { + this.activeFill++; + if (this.fillState.length === this.activeFill) { + this.activeFill = 0; + } + } +} diff --git a/src/app/map/layer.ts b/src/app/map/layer.ts index 484a767..91fa18c 100644 --- a/src/app/map/layer.ts +++ b/src/app/map/layer.ts @@ -1,333 +1,84 @@ -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"; - -import * as blackDotTextureUrl from "Assets/img/textures/blackDot.png"; -import * as tiledLinesTextureUrl from "Assets/img/textures/traitilles.png"; - -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 BUILDING_SYMBOL = new PictureFillSymbol(tiledLinesTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); -const WATER_SYMBOL = new PictureFillSymbol(blackDotTextureUrl, new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), 15, 15); -const GREEN_SYMBOL = new PictureFillSymbol(tiledLinesTextureUrl, 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 { LayerOptions } from "esri"; +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"); + +import * as _ from "lodash"; + +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..34ef793 --- /dev/null +++ b/src/app/map/layers/CityBrailleSubLayer.ts @@ -0,0 +1,44 @@ +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 {WATER_SYMBOL} from "../symbols"; + +import {URL_FEATURE_LAYER_SURFACE} from "../../../conf/featureLayerApiUrls"; +import Surfaces from "../../../conf/surfaces"; + +/** + * 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..e296fed --- /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..baed109 --- /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..99be521 --- /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..0232535 --- /dev/null +++ b/src/app/map/layers/SquareBrailleSubLayer.ts @@ -0,0 +1,118 @@ +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 {BUILDING_SYMBOL, HARD_SYMBOL, WATER_SYMBOL} from "../symbols"; + +import { removeCommonSegments } from "../polygon"; + +/** + * 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..53924a4 --- /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..e8b1184 --- /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.service.ts b/src/app/map/map.service.ts index 8032f1a..4f7075c 100644 --- a/src/app/map/map.service.ts +++ b/src/app/map/map.service.ts @@ -1,80 +1,80 @@ -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: OptionMap = { - city: 0, - extent: JSON.stringify(startExtent), - height: 800, - width: 1176, - }; - 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, 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 LAYER_TYPE_ID: { [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: OptionMap = { + city: 0, + extent: JSON.stringify(startExtent), + height: 800, + width: 1176, + }; + 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 = LAYER_TYPE_ID[optionMap.city]; + return optionMap; + } +} diff --git a/src/app/map/map.ts b/src/app/map/map.ts index d48c1d2..cb104e0 100644 --- a/src/app/map/map.ts +++ b/src/app/map/map.ts @@ -1,168 +1,170 @@ -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 { - City, - CityRootBrailleLayer, - LayerType, - OsmRootLayer, - RootLayer, - Square, - SquareRootBrailleLayer, -} from "./layer"; - -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), - ); - } -} +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 CityRootBrailleLayer from "./layers/CityRootBrailleLayer"; +import OsmRootLayer from "./layers/OsmRootLayer"; +import SquareRootBrailleLayer from "./layers/SquareRootBrailleLayer"; + +import { + City, + LayerType, + RootLayer, + Square, +} from "./layer"; + +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/symbols.ts b/src/app/map/symbols.ts new file mode 100644 index 0000000..9de067f --- /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), + 15, + 15, +); + +export const WATER_SYMBOL = new PictureFillSymbol( + blackDotTextureUrl, + new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), + 15, + 15, +); + +export const GREEN_SYMBOL = new PictureFillSymbol( + tiledLinesTextureUrl, + new SimpleLineSymbol(SimpleLineSymbol.STYLE_NULL), + 25, + 25, +); 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/pagination-buttons.component.ts b/src/app/shared/pagination/pagination-buttons.component.ts index 562c62c..3895958 100644 --- a/src/app/shared/pagination/pagination-buttons.component.ts +++ b/src/app/shared/pagination/pagination-buttons.component.ts @@ -1,82 +1,80 @@ -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; - - private paginationButtonClick(id: string): void { - this.activePageNumero = +id; - this.selectedPageChange.emit(this.activePageNumero); - } - private movePagination(inc: number): void { - this.paginationButtonClick((this.activePageNumero + inc).toString()); - } - - public getPagination(): Array { - // no pages - if (this.pageNumber === 0) { - return []; - } - // less than 10 pages - else if (this.pageNumber < 10) { - return _.range(1, this.pageNumber + 1).map((value, index) => String(index)); - } - // more than 10 pages - else { - // 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)) - ] - } - // currently in the 5 last - else if (this.activePageNumero >= this.pageNumber - 5) { - return [ - ..._.range(1, 2 + 1).map(value => String(value)), - "...", - ..._.range(this.pageNumber - 6, this.pageNumber + 1).map(value => String(value)) - ]; - } - // in the middle - else { - 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)) - ]; - } - } - } -} +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..34f4532 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -1,45 +1,41 @@ -// 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..2e5deec 100644 --- a/src/app/touchpad/touchpad.component.ts +++ b/src/app/touchpad/touchpad.component.ts @@ -1,546 +1,570 @@ -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, Params, Router } from "@angular/router"; +import "rxjs/add/operator/switchMap"; +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 { OptionMap } from "../map/map"; +import { MapComponent } from "../map/map.component"; +import { MapService } from "../map/map.service"; + +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 {Plane2d, transform, Vector2d} from "../core/vector2d"; +import LatLng = google.maps.LatLng; + +import {TranslateService} from "ng2-translate"; +import {ScalarObservable} from "rxjs/observable/ScalarObservable"; + +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, + ) { + + /**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 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) 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); + } + }, + ); + } + + /** Notity the user of direction */ + private searchLocationClick(location: Point, touchPoint: Point): void { + const data: string[] = 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): 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..1d548f0 100644 --- a/src/app/touchpad/touchpad.module.ts +++ b/src/app/touchpad/touchpad.module.ts @@ -1,28 +1,27 @@ -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 { MapComponent } from "../map/map.component"; +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/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/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/definitions/braille.d.ts b/src/definitions/braille.d.ts index f2e2191..a3d9371 100644 --- a/src/definitions/braille.d.ts +++ b/src/definitions/braille.d.ts @@ -1,4 +1,4 @@ -declare module 'braille' { - function toBraille(string: text): string; - function toText(string: braille): string; +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 index 9b8eb47..8170221 100644 --- a/src/definitions/geojson.d.ts +++ b/src/definitions/geojson.d.ts @@ -1,7 +1,3 @@ -declare module 'geojson' { - interface dataType {} - - interface settingsType {} - - function parse(data: dataType, settings: settingsType, callback?: Function): string; +declare module "geojson" { + function parse(data: {}, settings: {}, callback?: function): string; } diff --git a/src/definitions/tokml-function.d.ts b/src/definitions/tokml-function.d.ts index 8a73b53..b4f3c23 100644 --- a/src/definitions/tokml-function.d.ts +++ b/src/definitions/tokml-function.d.ts @@ -1,6 +1,6 @@ // import { GeoJsonObject } from "geojson"; -declare module 'tokml' { +declare module "tokml" { interface Options { name?: string; description?: string; @@ -11,7 +11,7 @@ declare module 'tokml' { } function tokml(geojsonObject: GeoJsonObject, options: tokml.Options): string; - + namespace tokml {} // workaround: https://github.com/Microsoft/TypeScript/issues/5073#issue-109478860 export = tokml; -} \ No newline at end of file +} From 558425cff77002ce2dbaa1e9bff79aa0791cfbd1 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Fri, 6 Apr 2018 20:56:43 +0200 Subject: [PATCH 26/48] refactor: clean remaining code to match tslint:recommended --- .../blind-creator/blind-creator.component.ts | 4 +- src/app/editor/editor.component.ts | 173 +++++++++--------- src/app/editor/editor.module.ts | 30 +-- src/app/map/map.module.ts | 35 ++-- src/app/map/map.service.spec.ts | 64 +++---- src/app/map/map.service.ts | 85 ++++----- src/app/map/polygon.ts | 77 +++++--- 7 files changed, 240 insertions(+), 228 deletions(-) diff --git a/src/app/blind-creator/blind-creator.component.ts b/src/app/blind-creator/blind-creator.component.ts index e35e5c5..9fe46f5 100644 --- a/src/app/blind-creator/blind-creator.component.ts +++ b/src/app/blind-creator/blind-creator.component.ts @@ -148,11 +148,11 @@ export class BlindCreatorComponent { private printMap() { if (this.isSave) { if (!this.mapComponent.mapLoading) { - window.print(); + (window as any).print(); } else { this.mapComponent.map.onUpdateEnd = () => { this.mapComponent.mapLoading = false; - window.print(); + (window as any).print(); // At the end load the older UpdateEnd this.mapComponent.map.onUpdateEnd = () => (this.mapComponent.mapLoading = false); diff --git a/src/app/editor/editor.component.ts b/src/app/editor/editor.component.ts index 1581060..c885901 100644 --- a/src/app/editor/editor.component.ts +++ b/src/app/editor/editor.component.ts @@ -1,71 +1,98 @@ -import { Component, ViewChild } from '@angular/core'; -import { LayerType } from '../map/layer'; -import { MapComponent } from '../map/map.component' -import { OptionMap } from '../map/map'; +import { Component, ViewChild } from "@angular/core"; + +import { LayerType } from "../map/layer"; +import { OptionMap } from "../map/map"; +import { MapComponent } from "../map/map.component"; import { - ToolbarMapComponent - , DrawTool - , Command - , KindTool + Command, + DrawTool, + KindTool, + ToolbarMapComponent, } from "./toolbar/toolbar.component"; -import { AbaDrawEdit } from './drawEditMap'; +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 {TranslateService} from 'ng2-translate'; -import {ScalarObservable} from 'rxjs/observable/ScalarObservable'; +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(); + } + + public ngAfterViewInit() { + // Init default btnInfo to first + this.setActive(this._btnInfos[0]); + } + + 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); } private onClick(btnInfo: ButtonInfo) { this.setActive(btnInfo); - this.mapComponent.mapZoom = (this.translateService.get("mapZoom")as ScalarObservable).value; + this.mapComponent.mapZoom = (this.translateService.get( + "mapZoom", + ) as ScalarObservable).value; } private updateTool(tool: Command & KindTool) { - // Personalized operation on command switch (tool.command) { - case "move": this.drawEdit.enableDraw(false); this.mapComponent.map.enableMapNavigation(); @@ -84,16 +111,15 @@ export class EditorComponent { break; case "fill": - this.drawEdit.changeTexture( - this.toolbarMapComponent.changeFillTool()); + this.drawEdit.changeTexture(this.toolbarMapComponent.changeFillTool()); break; case "print": - if (!this.flagSavable) + if (!this.flagSavable) { this.modalYesNoComponent.open(); - else - window.print(); - + } else { + (window as any).print(); + } break; case "open": @@ -103,65 +129,48 @@ export class EditorComponent { this.modalSaveMapComponent.open(); break; default: - console.warn("action buttons not implemented"); - + if (process.env.NODE_ENV !== "production") { + // tslint:disable-next-line no-console + console.warn("action buttons not implemented"); + } } // Global operation on kind switch (tool.kind) { - case "draw" : + 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; + break; - case "action" : + case "action": this.drawEdit.enableDraw(false); this.drawEdit.enableDelete(false); this.drawEdit.enableEdit(false); - break; + break; } - } 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 +202,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(); + (window as any).print(); } - - - ngOnInit(): void { - this.mapComponent.getDefaultMap(); - } - - ngAfterViewInit() { - // Init default btnInfo to first - this.setActive(this._btnInfos[0]); - } - } diff --git a/src/app/editor/editor.module.ts b/src/app/editor/editor.module.ts index c0ddf2c..876662e 100644 --- a/src/app/editor/editor.module.ts +++ b/src/app/editor/editor.module.ts @@ -1,16 +1,16 @@ -import { NgModule } from '@angular/core'; +import { NgModule } from "@angular/core"; import { SharedModule } from "../shared/shared.module"; /* Services */ -import { MapService } from '../map/map.service'; +import { MapService } from "../map/map.service"; /* Internal Components */ +import { EditorComponent } from "./editor.component"; 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"; +import { ToolbarMapComponent } from "./toolbar/toolbar.component"; /* Internal Pipes */ import { FilterMapsPipe } from "./modal-maps-list/filtermaps.pipe"; @@ -18,19 +18,19 @@ import { FilterMapsPipe } from "./modal-maps-list/filtermaps.pipe"; /* External Components */ import { PaginationComponent } from "../shared/pagination/pagination-buttons.component"; -import {TranslateModule} from "ng2-translate"; +import { TranslateModule } from "ng2-translate"; @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/map/map.module.ts b/src/app/map/map.module.ts index 1c565d5..dc193eb 100644 --- a/src/app/map/map.module.ts +++ b/src/app/map/map.module.ts @@ -1,16 +1,20 @@ -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 { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { FormsModule } from "@angular/forms"; +import { ModalMapComponent } from "../editor/modal-maps-list/modal-maps-list.component"; +import { ModalSaveMapComponent } from "../editor/modal-save-map/modal-save-map.component"; +import { SharedModule } from "../shared/shared.module"; +import { MapComponent } from "./map.component"; @NgModule({ + declarations: [ + /* + MapComponent + , ModalSaveMapComponent + , ModalMapComponent + */ + ], imports: [ /* CommonModule @@ -18,13 +22,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..41499e4 100644 --- a/src/app/map/map.service.spec.ts +++ b/src/app/map/map.service.spec.ts @@ -1,53 +1,53 @@ -import { OptionMap } from './map'; -import { MapService } from './map.service'; +import { OptionMap } from "./map"; +import { MapService } from "./map.service"; -import {HttpModule} from '@angular/http'; +import { HttpModule } from "@angular/http"; -import { inject, async, TestBed} from '@angular/core/testing'; -import 'rxjs/add/operator/map'; +import { async, inject, 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 4f7075c..48a826e 100644 --- a/src/app/map/map.service.ts +++ b/src/app/map/map.service.ts @@ -1,75 +1,66 @@ -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'; +import { Injectable } from "@angular/core"; +import { Headers, Http, RequestOptions, Response } from "@angular/http"; +import "rxjs/add/operator/toPromise"; +import { Observable } from "rxjs/Observable"; + +import { LayerType } from "./layer"; +import { AbaMap, OptionMap } from "./map"; const LAYER_TYPE_ID: { [id: number]: LayerType } = { 0: { kind: "square" }, - 1: { kind: "city" } + 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 { + private divId: Node | string = "map-div"; - return this.http.post( - this.mapsUrl, JSON.stringify(optionMap) - ).map( r => r.json().id ); + constructor(private http: Http) {} + public 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()) - ); + public map(id: number): Observable { + return this.http + .get(this.mapsUrl + `maps/${id}`) + .map((r: Response) => this.build(r.json())); } - defaultMap(): Observable { + public defaultMap(): Observable { const startExtent = { - xmin: 780000.0, - ymin: 5720000.0, xmax: 1105000.0, + xmin: 780000.0, ymax: 6100000.0, + ymin: 5720000.0, spatialReference: { - wkid: 102100 - } + 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) - } - ); + return Observable.create((o) => { + const om: OptionMap = { + city: 0, + extent: JSON.stringify(startExtent), + height: 800, + width: 1176, + }; + 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) ); - } ); + 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)); + }); } - delete(id: number) {} - /** * Build a complete OptionMap from the basic OptionMap */ 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; } From 9e7c3504e9b1804b822dfec29e98964203414c5b Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Sun, 8 Apr 2018 14:02:31 +0200 Subject: [PATCH 27/48] Speed up the typescript transpilation --- build/webpack.config.js | 17 ++++++++++++- package-lock.json | 54 +++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 71 insertions(+), 1 deletion(-) diff --git a/build/webpack.config.js b/build/webpack.config.js index e51f00c..c23ece1 100644 --- a/build/webpack.config.js +++ b/build/webpack.config.js @@ -1,4 +1,5 @@ const path = require("path"); +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); module.exports = { entry: { @@ -46,7 +47,18 @@ module.exports = { }, { test: /\.ts$/, - loaders: ["ts-loader", "angular2-template-loader"] + use: [ + { + loader: "ts-loader", + options: { + // disable type checker - we will use it in fork plugin + transpileOnly: true, + } + }, + { + loader: "angular2-template-loader", + } + ], }, { test: /\.(html|css)$/, @@ -59,6 +71,9 @@ module.exports = { libraryTarget: "amd", // necessary for esri (arcgis) path: path.resolve(__dirname, "../dist"), }, + plugins: [ + new ForkTsCheckerWebpackPlugin() + ], resolve: { alias: { Assets: path.resolve(__dirname, "../assets"), diff --git a/package-lock.json b/package-lock.json index f276263..cf472bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4168,6 +4168,24 @@ "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", @@ -7342,6 +7360,11 @@ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "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", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", @@ -7365,6 +7388,16 @@ "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", "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", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -7385,6 +7418,11 @@ "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", @@ -8967,6 +9005,14 @@ "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.0" + } + }, "parsejson": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", @@ -12127,6 +12173,14 @@ "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", diff --git a/package.json b/package.json index fa000dd..2f7cc05 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "esri-system-js": "^1.0.0-beta.0", "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", "gulp": "^3.9.1", From cda41188b51e8da831a467fcf2f06f75963a2520 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Wed, 11 Apr 2018 18:46:33 +0200 Subject: [PATCH 28/48] remove useless asset file --- assets/img/icons/shapes/passage.png | Bin 244 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/img/icons/shapes/passage.png diff --git a/assets/img/icons/shapes/passage.png b/assets/img/icons/shapes/passage.png deleted file mode 100644 index de045de3d8e7137334f34bfff7fa8f5d8fe7a99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmVQnQ5hQ4S8Zn9~X`M%_K%JVj{rSGJ!3}Vx)}DREQB1 z*mCTABbk|HJjTL^c!mFIWK1JQsFvvYXT*Zd7>W@i+)^|~O4y7=^XJHzfk-39bMQoO z-?hx^k;n7 Date: Wed, 11 Apr 2018 18:48:48 +0200 Subject: [PATCH 29/48] Update editor layout --- src/app/editor/editor.component.css | 26 ++---- src/app/editor/editor.component.html | 66 +++++++------- src/app/editor/toolbar/toolbar.component.html | 90 +++++++++---------- src/app/map/map.component.css | 60 +++++-------- src/app/map/map.component.html | 65 ++++++++------ 5 files changed, 142 insertions(+), 165 deletions(-) diff --git a/src/app/editor/editor.component.css b/src/app/editor/editor.component.css index f2bc686..dc7aa0b 100644 --- a/src/app/editor/editor.component.css +++ b/src/app/editor/editor.component.css @@ -1,30 +1,18 @@ -.show-grid { - margin-bottom:10px; +#main-container { + overflow-x: hidden; + width: 1088px; } -aba-map { - float: left; -} - -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..303c80c 100644 --- a/src/app/editor/editor.component.html +++ b/src/app/editor/editor.component.html @@ -1,35 +1,39 @@ -
-
-

{{title}}

-

{{ _activeButtonInfo.kind | translate}}

-
- -
-
- +
+
+
+
+

{{title}}

+

{{ _activeButtonInfo.kind | translate}}

+
- -
- - -
-
- - - - - +
+
+
+ +
+ +
+
+ +
+
+
+
+ +
-
-
+
- - - - +
+ + + + +
+
\ No newline at end of file diff --git a/src/app/editor/toolbar/toolbar.component.html b/src/app/editor/toolbar/toolbar.component.html index d766630..9b92a66 100644 --- a/src/app/editor/toolbar/toolbar.component.html +++ b/src/app/editor/toolbar/toolbar.component.html @@ -1,57 +1,47 @@ -
- -
- -
+
+
-
-
- -
+
+
-
-
- -
+
+
-
-
- -
- +
+
diff --git a/src/app/map/map.component.css b/src/app/map/map.component.css index 9d767fb..77ec617 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-style: 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 351869b..f4bb854 100644 --- a/src/app/map/map.component.html +++ b/src/app/map/map.component.html @@ -1,34 +1,41 @@ -