diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 80ee8e0ec8..ae9c9709f5 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -4208,700 +4208,6 @@ "from": "fs.realpath@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" }, - "fsevents": { - "version": "1.1.1", - "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", - "optional": true, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "optional": true - }, - "aproba": { - "version": "1.1.1", - "from": "aproba@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.2", - "from": "are-we-there-yet@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "optional": true - }, - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "from": "asynckit@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "optional": true - }, - "aws4": { - "version": "1.6.0", - "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "from": "balanced-match@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "optional": true - }, - "block-stream": { - "version": "0.0.9", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "brace-expansion": { - "version": "1.1.6", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz" - }, - "buffer-shims": { - "version": "1.0.0", - "from": "buffer-shims@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "optional": true - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "console-control-strings": { - "version": "1.1.0", - "from": "console-control-strings@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "from": "dashdash@>=1.12.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "optional": true - } - } - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "optional": true - }, - "deep-extend": { - "version": "0.4.1", - "from": "deep-extend@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "delegates": { - "version": "1.0.0", - "from": "delegates@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "optional": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "optional": true - }, - "extend": { - "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "optional": true - }, - "form-data": { - "version": "2.1.2", - "from": "form-data@>=2.1.1 <2.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "from": "fs.realpath@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - }, - "fstream": { - "version": "1.0.10", - "from": "fstream@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz" - }, - "fstream-ignore": { - "version": "1.0.5", - "from": "fstream-ignore@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "optional": true - }, - "gauge": { - "version": "2.7.3", - "from": "gauge@>=2.7.1 <2.8.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", - "optional": true - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "optional": true - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "optional": true - }, - "getpass": { - "version": "0.1.6", - "from": "getpass@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "optional": true - } - } - }, - "glob": { - "version": "7.1.1", - "from": "glob@>=7.0.5 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" - }, - "graceful-fs": { - "version": "4.1.11", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "optional": true - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "optional": true - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "optional": true - }, - "has-unicode": { - "version": "2.0.1", - "from": "has-unicode@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "optional": true - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@>=3.1.3 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "optional": true - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "optional": true - }, - "inflight": { - "version": "1.0.6", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - }, - "is-my-json-valid": { - "version": "2.15.0", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "optional": true - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "optional": true - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "optional": true - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "optional": true - }, - "jsbn": { - "version": "0.1.1", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "from": "json-schema@0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "optional": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "optional": true - }, - "jsonpointer": { - "version": "4.0.1", - "from": "jsonpointer@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "optional": true - }, - "jsprim": { - "version": "1.3.1", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "optional": true - }, - "mime-db": { - "version": "1.26.0", - "from": "mime-db@>=1.26.0 <1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" - }, - "mime-types": { - "version": "2.1.14", - "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz" - }, - "minimatch": { - "version": "3.0.3", - "from": "minimatch@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz" - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.33", - "from": "node-pre-gyp@>=0.6.29 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz", - "optional": true - }, - "nopt": { - "version": "3.0.6", - "from": "nopt@>=3.0.6 <3.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "optional": true - }, - "npmlog": { - "version": "4.0.2", - "from": "npmlog@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", - "optional": true - }, - "number-is-nan": { - "version": "1.0.1", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - }, - "oauth-sign": { - "version": "0.8.2", - "from": "oauth-sign@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "from": "object-assign@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "optional": true - }, - "once": { - "version": "1.4.0", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "optional": true - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "punycode": { - "version": "1.4.1", - "from": "punycode@>=1.4.1 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "optional": true - }, - "qs": { - "version": "6.3.1", - "from": "qs@>=6.3.0 <6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", - "optional": true - }, - "rc": { - "version": "1.1.7", - "from": "rc@>=1.1.6 <1.2.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", - "optional": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.2", - "from": "readable-stream@>=2.0.0 <3.0.0||>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "optional": true - }, - "request": { - "version": "2.79.0", - "from": "request@>=2.79.0 <3.0.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "optional": true - }, - "rimraf": { - "version": "2.5.4", - "from": "rimraf@>=2.5.4 <2.6.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz" - }, - "semver": { - "version": "5.3.0", - "from": "semver@>=5.3.0 <5.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "from": "set-blocking@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "from": "signal-exit@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "optional": true - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "optional": true - }, - "sshpk": { - "version": "1.10.2", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "optional": true - } - } - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "string-width": { - "version": "1.0.2", - "from": "string-width@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, - "strip-json-comments": { - "version": "2.0.1", - "from": "strip-json-comments@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "optional": true - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "optional": true - }, - "tar": { - "version": "2.2.1", - "from": "tar@>=2.2.1 <2.3.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" - }, - "tar-pack": { - "version": "3.3.0", - "from": "tar-pack@>=3.3.0 <3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", - "optional": true, - "dependencies": { - "once": { - "version": "1.3.3", - "from": "once@>=1.3.3 <1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "optional": true - }, - "readable-stream": { - "version": "2.1.5", - "from": "readable-stream@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", - "optional": true - } - } - }, - "tough-cookie": { - "version": "2.3.2", - "from": "tough-cookie@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "optional": true - }, - "tunnel-agent": { - "version": "0.4.3", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "from": "tweetnacl@>=0.14.0 <0.15.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "from": "uid-number@>=0.0.6 <0.1.0", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "uuid": { - "version": "3.0.1", - "from": "uuid@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "optional": true - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "optional": true - }, - "wide-align": { - "version": "1.1.0", - "from": "wide-align@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", - "optional": true - }, - "wrappy": { - "version": "1.0.2", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "optional": true - } - } - }, "fstream": { "version": "1.0.11", "from": "fstream@>=1.0.2 <2.0.0", @@ -6128,6 +5434,11 @@ "from": "he@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz" }, + "hellojs": { + "version": "1.15.1", + "from": "hellojs@>=1.15.1 <2.0.0", + "resolved": "http://registry.npmjs.org/hellojs/-/hellojs-1.15.1.tgz" + }, "hmac-drbg": { "version": "1.0.1", "from": "hmac-drbg@>=1.0.0 <2.0.0", @@ -7717,7 +7028,7 @@ "lazy-debug-legacy": { "version": "0.0.1", "from": "lazy-debug-legacy@>=0.0.0 <0.1.0", - "resolved": "http://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz" }, "lazy-req": { "version": "1.1.0", diff --git a/package.json b/package.json index d717c13f75..12cbb1c8a0 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "gulp-uglify": "^1.4.2", "gulp.spritesmith": "^4.1.0", "habitica-markdown": "^1.3.0", + "hellojs": "^1.15.1", "html-webpack-plugin": "^2.8.1", "image-size": "~0.3.2", "in-app-purchase": "^1.1.6", diff --git a/website/client/app.vue b/website/client/app.vue index 7697892f88..6f05b18552 100644 --- a/website/client/app.vue +++ b/website/client/app.vue @@ -2,15 +2,18 @@ - \ No newline at end of file + diff --git a/website/client/assets/images/auth/midground_foreground_extended.png b/website/client/assets/images/auth/midground_foreground_extended.png new file mode 100644 index 0000000000..e030b8a61b Binary files /dev/null and b/website/client/assets/images/auth/midground_foreground_extended.png differ diff --git a/website/client/assets/images/auth/midground_foreground_extended2.png b/website/client/assets/images/auth/midground_foreground_extended2.png new file mode 100644 index 0000000000..5976cd9681 Binary files /dev/null and b/website/client/assets/images/auth/midground_foreground_extended2.png differ diff --git a/website/client/assets/images/auth/repeatinghill_leftslope.png b/website/client/assets/images/auth/repeatinghill_leftslope.png new file mode 100644 index 0000000000..952123e055 Binary files /dev/null and b/website/client/assets/images/auth/repeatinghill_leftslope.png differ diff --git a/website/client/assets/images/auth/repeatinghill_rightslope.png b/website/client/assets/images/auth/repeatinghill_rightslope.png new file mode 100644 index 0000000000..cf7bbecc12 Binary files /dev/null and b/website/client/assets/images/auth/repeatinghill_rightslope.png differ diff --git a/website/client/assets/images/auth/seamless_mountains_demo.png b/website/client/assets/images/auth/seamless_mountains_demo.png new file mode 100644 index 0000000000..c9c2f4e9b7 Binary files /dev/null and b/website/client/assets/images/auth/seamless_mountains_demo.png differ diff --git a/website/client/assets/images/auth/seamless_stars_varied_opacity.png b/website/client/assets/images/auth/seamless_stars_varied_opacity.png new file mode 100644 index 0000000000..0abababa1b Binary files /dev/null and b/website/client/assets/images/auth/seamless_stars_varied_opacity.png differ diff --git a/website/client/assets/svg/google.svg b/website/client/assets/svg/google.svg new file mode 100644 index 0000000000..6fdd374c1b --- /dev/null +++ b/website/client/assets/svg/google.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/website/client/assets/svg/gryphon.svg b/website/client/assets/svg/gryphon.svg new file mode 100644 index 0000000000..fdff439489 --- /dev/null +++ b/website/client/assets/svg/gryphon.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/client/assets/svg/habitica-logo.svg b/website/client/assets/svg/habitica-logo.svg new file mode 100644 index 0000000000..e23bdf1981 --- /dev/null +++ b/website/client/assets/svg/habitica-logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/website/client/components/appMenu.vue b/website/client/components/appMenu.vue index b48fbde378..8c2f92b2d5 100644 --- a/website/client/components/appMenu.vue +++ b/website/client/components/appMenu.vue @@ -48,147 +48,147 @@ nav.navbar.navbar-inverse.fixed-top.navbar-toggleable-sm router-link.dropdown-item(:to="{name: 'stats'}") {{ $t('stats') }} router-link.dropdown-item(:to="{name: 'achievements'}") {{ $t('achievements') }} router-link.dropdown-item(:to="{name: 'settings'}") {{ $t('settings') }} - router-link.dropdown-item(to="/logout") {{ $t('logout') }} + a.nav-link.dropdown-item(to="/", @click.prevent='logout()') {{ $t('logout') }} diff --git a/website/client/components/auth/registerLogin.vue b/website/client/components/auth/registerLogin.vue new file mode 100644 index 0000000000..7be5b3e007 --- /dev/null +++ b/website/client/components/auth/registerLogin.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/website/client/components/static/home.vue b/website/client/components/static/home.vue new file mode 100644 index 0000000000..eef1253435 --- /dev/null +++ b/website/client/components/static/home.vue @@ -0,0 +1,30 @@ + + + + diff --git a/website/client/main.js b/website/client/main.js index dd8809fa1b..3e69523450 100644 --- a/website/client/main.js +++ b/website/client/main.js @@ -36,33 +36,8 @@ if (authSettings) { } export default new Vue({ + el: '#app', router, store: generateStore(), render: h => h(AppComponent), - beforeCreate () { - // Setup listener for title - this.$store.watch(state => state.title, (title) => { - document.title = title; - }); - - // Mount the app when user and tasks are loaded - const userDataWatcher = this.$store.watch(state => [state.user.data, state.tasks.data], ([user, tasks]) => { - if (user && user._id && tasks && Array.isArray(tasks.habits)) { - userDataWatcher(); // remove the watcher - this.$mount('#app'); - } - }); - - // Load the user and the user tasks - Promise.all([ - this.$store.dispatch('user:fetch'), - this.$store.dispatch('tasks:fetchUserTasks'), - ]).catch((err) => { - console.error('Impossible to fetch user. Copy into localStorage a valid habit-mobile-settings object.', err); // eslint-disable-line no-console - }); - }, - mounted () { // Remove the loading screen when the app is mounted - let loadingScreen = document.getElementById('loading-screen'); - if (loadingScreen) document.body.removeChild(loadingScreen); - }, -}); \ No newline at end of file +}); diff --git a/website/client/router.js b/website/client/router.js index 93f9a7364e..52e1d70a25 100644 --- a/website/client/router.js +++ b/website/client/router.js @@ -7,6 +7,9 @@ import EmptyView from './components/emptyView'; import ParentPage from './components/parentPage'; import Page from './components/page'; +// Static Pages +const Home = () => import(/* webpackChunkName: "static" */'./components/static/home'); +const RegisterLogin = () => import(/* webpackChunkName: "auth" */'./components/auth/registerLogin'); // All the main level // components are loaded in separate webpack chunks. @@ -45,6 +48,9 @@ export default new VueRouter({ return { x: 0, y: 0 }; }, routes: [ + { name: 'home', path: '/home', component: Home }, + { name: 'register', path: '/register', component: RegisterLogin }, + { name: 'login', path: '/login', component: RegisterLogin }, { name: 'tasks', path: '/', component: UserTasks }, { path: '/inventory', diff --git a/website/client/store/actions/auth.js b/website/client/store/actions/auth.js new file mode 100644 index 0000000000..31a05020de --- /dev/null +++ b/website/client/store/actions/auth.js @@ -0,0 +1,83 @@ +import axios from 'axios'; + +export async function register (store, params) { + let url = '/api/v3/user/auth/local/register'; + let result = await axios.post(url, { + username: params.username, + email: params.email, + password: params.password, + confirmPassword: params.passwordConfirm, + }); + + let user = result.data.data; + + let userLocalData = JSON.stringify({ + auth: { + apiId: user._id, + apiToken: user.apiToken, + }, + }); + localStorage.setItem('habit-mobile-settings', userLocalData); + + // @TODO: I think we just need analytics here + // Auth.runAuth(res.data._id, res.data.apiToken); + // Analytics.register(); + // $scope.registrationInProgress = false; + // Alert.authErrorAlert(data, status, headers, config) + // Analytics.login(); + // Analytics.updateUser(); + + store.state.user.data = user; +} + +export async function login (store, params) { + let url = '/api/v3/user/auth/local/login'; + let result = await axios.post(url, { + username: params.username, + // email: params.email, + password: params.password, + }); + + let user = result.data.data; + + let userLocalData = JSON.stringify({ + auth: { + apiId: user.id, + apiToken: user.apiToken, + }, + }); + + localStorage.setItem('habit-mobile-settings', userLocalData); + + // @TODO: I think we just need analytics here + // Auth.runAuth(res.data._id, res.data.apiToken); + // Analytics.register(); + // $scope.registrationInProgress = false; + // Alert.authErrorAlert(data, status, headers, config) + // Analytics.login(); + // Analytics.updateUser(); + + // @TODO: Update the api to return the user? + // store.state.user.data = user; +} + +export async function socialAuth (store, params) { + let url = '/api/v3/user/auth/social'; + let result = await axios.post(url, { + network: params.auth.network, + authResponse: params.auth.authResponse, + }); + + // @TODO: Analytics + + let user = result.data.data; + + let userLocalData = JSON.stringify({ + auth: { + apiId: user.id, + apiToken: user.apiToken, + }, + }); + + localStorage.setItem('habit-mobile-settings', userLocalData); +} diff --git a/website/client/store/actions/index.js b/website/client/store/actions/index.js index d86a04db6c..b47a7540e6 100644 --- a/website/client/store/actions/index.js +++ b/website/client/store/actions/index.js @@ -6,6 +6,7 @@ import * as tasks from './tasks'; import * as guilds from './guilds'; import * as party from './party'; import * as members from './members'; +import * as auth from './auth'; import * as quests from './quests'; // Actions should be named as 'actionName' and can be accessed as 'namespace:actionName' @@ -18,6 +19,7 @@ const actions = flattenAndNamespace({ guilds, party, members, + auth, quests, }); diff --git a/website/common/locales/en/newClient.json b/website/common/locales/en/newClient.json index 7605789369..35fe7fbb17 100644 --- a/website/common/locales/en/newClient.json +++ b/website/common/locales/en/newClient.json @@ -112,6 +112,15 @@ "guildInformationPlaceHolder": "This is our party’s description. It describes what we do in this party. If you want to learn more about what we do in this party, read the description. Party on.", "updateParty": "Update Party", "upgrade": "Upgrade", + "signUpWithSocial": "Sign up with <%= social %>", + "loginWithSocial": "Login with <%= social %>", + "confirmPassword": "Confirm Password", + "usernamePlaceholder": "e.g., HabitRabbit", + "emailPlaceholder": "e.g., rabbit@habitica.com", + "passwordPlaceholder": "e.g., •••••••••••• ", + "confirmPasswordPlaceholder": "Make sure it’s the same password!", + "termsAndAgreement": "By clicking the button below, you are indicating that you have read and agree to the Terms of Service and Privacy Policy.", + "joinHabitica": "Join Habitica", "showAllAnimals": "Show All <%= color %> <%= type %>", "showLessAnimals": "Show Less <%= color %> <%= type %>", "quickInventory": "Quick Inventory",