diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index b18a8982cf..8edce6929a 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -541,6 +541,11 @@ "from": "babel-core@>=6.0.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz" }, + "babel-eslint": { + "version": "7.2.3", + "from": "babel-eslint@latest", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz" + }, "babel-generator": { "version": "6.24.1", "from": "babel-generator@>=6.24.1 <7.0.0", @@ -630,6 +635,11 @@ "from": "babel-plugin-syntax-async-functions@>=6.13.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz" }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "from": "babel-plugin-syntax-dynamic-import@latest", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz" + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "from": "babel-plugin-syntax-object-rest-spread@>=6.8.0 <7.0.0", @@ -4198,6 +4208,700 @@ "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", @@ -10808,6 +11512,11 @@ "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", "dev": true }, + "simple-html-tokenizer": { + "version": "0.1.1", + "from": "simple-html-tokenizer@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.1.1.tgz" + }, "simple-is": { "version": "0.2.0", "from": "simple-is@>=0.2.0 <0.3.0", @@ -11507,6 +12216,28 @@ "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" }, + "svg-inline-loader": { + "version": "0.7.1", + "from": "svg-inline-loader@latest", + "resolved": "https://registry.npmjs.org/svg-inline-loader/-/svg-inline-loader-0.7.1.tgz" + }, + "svg-url-loader": { + "version": "2.0.2", + "from": "svg-url-loader@latest", + "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-2.0.2.tgz", + "dependencies": { + "file-loader": { + "version": "0.10.0", + "from": "file-loader@0.10.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.10.0.tgz" + }, + "loader-utils": { + "version": "0.2.16", + "from": "loader-utils@0.2.16", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz" + } + } + }, "svgo": { "version": "0.7.2", "from": "svgo@>=0.7.0 <0.8.0", @@ -11534,6 +12265,18 @@ } } }, + "svgo-loader": { + "version": "1.2.1", + "from": "svgo-loader@latest", + "resolved": "https://registry.npmjs.org/svgo-loader/-/svgo-loader-1.2.1.tgz", + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "from": "loader-utils@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz" + } + } + }, "syntax-error": { "version": "1.3.0", "from": "syntax-error@>=1.1.1 <2.0.0", @@ -12517,16 +13260,16 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", "dependencies": { "async": { - "version": "2.4.0", - "from": "async@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz" + "version": "2.4.1", + "from": "async@^2.1.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz" } } }, "webpack": { - "version": "2.5.1", - "from": "webpack@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.5.1.tgz", + "version": "2.6.1", + "from": "webpack@2.6.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz", "dependencies": { "acorn": { "version": "5.0.3", @@ -12534,9 +13277,9 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz" }, "async": { - "version": "2.4.0", + "version": "2.4.1", "from": "async@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz" + "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz" }, "source-list-map": { "version": "1.1.2", @@ -12549,9 +13292,9 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" }, "uglify-js": { - "version": "2.8.26", - "from": "uglify-js@>=2.8.5 <3.0.0", - "resolved": "http://registry.npmjs.org/uglify-js/-/uglify-js-2.8.26.tgz", + "version": "2.8.28", + "from": "uglify-js@>=2.8.27 <3.0.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.28.tgz", "dependencies": { "yargs": { "version": "3.10.0", diff --git a/package.json b/package.json index 5074830b0b..fc07a01935 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,10 @@ "aws-sdk": "^2.0.25", "axios": "^0.16.0", "babel-core": "^6.0.0", + "babel-eslint": "^7.2.3", "babel-loader": "^6.0.0", "babel-plugin-syntax-async-functions": "^6.13.0", + "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-async-to-module-method": "^6.8.0", "babel-plugin-transform-object-rest-spread": "^6.16.0", "babel-plugin-transform-regenerator": "^6.16.1", @@ -109,6 +111,9 @@ "shelljs": "^0.7.6", "stripe": "^4.2.0", "superagent": "^3.4.3", + "svg-inline-loader": "^0.7.1", + "svg-url-loader": "^2.0.2", + "svgo-loader": "^1.2.1", "universal-analytics": "~0.3.2", "url-loader": "^0.5.7", "useragent": "^2.1.9", @@ -208,6 +213,7 @@ "nightwatch": "^0.9.12", "phantomjs-prebuilt": "^2.1.12", "protractor": "^3.1.1", + "raw-loader": "^0.5.1", "require-again": "^2.0.0", "rewire": "^2.3.3", "selenium-server": "^3.0.1", diff --git a/test/client/unit/specs/filters/roundBigNumber.js b/test/client/unit/specs/filters/roundBigNumber.js new file mode 100644 index 0000000000..948d2da2c6 --- /dev/null +++ b/test/client/unit/specs/filters/roundBigNumber.js @@ -0,0 +1,20 @@ +import roundBigNumberFilter from 'client/filters/roundBigNumber'; + +describe('round big number filter', () => { + it('can round a decimal number', () => { + expect(roundBigNumberFilter(4.567)).to.equal(4.57); + expect(roundBigNumberFilter(4.562)).to.equal(4.56); + }); + + it('can round thousands', () => { + expect(roundBigNumberFilter(70065)).to.equal('70.1k'); + }); + + it('can round milions', () => { + expect(roundBigNumberFilter(10000987)).to.equal('10.0m'); + }); + + it('can round bilions', () => { + expect(roundBigNumberFilter(1000000000)).to.equal('1.0b'); + }); +}); \ No newline at end of file diff --git a/webpack/webpack.base.conf.js b/webpack/webpack.base.conf.js index 74da258fa7..6d7a041d09 100644 --- a/webpack/webpack.base.conf.js +++ b/webpack/webpack.base.conf.js @@ -83,7 +83,7 @@ const baseConfig = { }, }, { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + test: /\.(png|jpe?g|gif)(\?.*)?$/, loader: 'url-loader', query: { limit: 10000, @@ -98,6 +98,22 @@ const baseConfig = { name: utils.assetsPath('fonts/[name].[hash:7].[ext]'), }, }, + { + test: /\.svg$/, + use: [ + { loader: 'svg-inline-loader' }, + { loader: 'svgo-loader' }, + ], + exclude: [path.resolve(projectRoot, 'website/client/assets/svg/for-css')], + }, + { + test: /\.svg$/, + use: [ + { loader: 'svg-url-loader' }, + { loader: 'svgo-loader' }, + ], + include: [path.resolve(projectRoot, 'website/client/assets/svg/for-css')], + }, ], }, }; diff --git a/website/client/.babelrc b/website/client/.babelrc index af030180b9..9f639b0b76 100644 --- a/website/client/.babelrc +++ b/website/client/.babelrc @@ -15,6 +15,7 @@ "plugins": [ "transform-object-rest-spread", "syntax-async-functions", + "syntax-dynamic-import", "transform-regenerator", ], } \ No newline at end of file diff --git a/website/client/.eslintrc b/website/client/.eslintrc index 64155c32ec..2a1dea094a 100644 --- a/website/client/.eslintrc +++ b/website/client/.eslintrc @@ -8,5 +8,9 @@ ], "globals": { "$": true, + }, + "parser": "babel-eslint", + "rules": { + "strict": 0 } } \ No newline at end of file diff --git a/website/client/assets/guilds/gold-guild-badge.svg b/website/client/assets/guilds/gold-guild-badge.svg deleted file mode 100644 index 29ea8e7d54..0000000000 --- a/website/client/assets/guilds/gold-guild-badge.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/website/client/assets/header/png/bits.png b/website/client/assets/header/png/bits.png deleted file mode 100755 index a972907fc1..0000000000 Binary files a/website/client/assets/header/png/bits.png and /dev/null differ diff --git a/website/client/assets/header/png/bits@2x.png b/website/client/assets/header/png/bits@2x.png deleted file mode 100755 index 3e2c49b324..0000000000 Binary files a/website/client/assets/header/png/bits@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/bits@3x.png b/website/client/assets/header/png/bits@3x.png deleted file mode 100755 index 7775e0fe73..0000000000 Binary files a/website/client/assets/header/png/bits@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/experience.png b/website/client/assets/header/png/experience.png deleted file mode 100755 index 6538309fcd..0000000000 Binary files a/website/client/assets/header/png/experience.png and /dev/null differ diff --git a/website/client/assets/header/png/experience@2x.png b/website/client/assets/header/png/experience@2x.png deleted file mode 100755 index 8f40a4ba05..0000000000 Binary files a/website/client/assets/header/png/experience@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/experience@3x.png b/website/client/assets/header/png/experience@3x.png deleted file mode 100755 index 7aded1bbc3..0000000000 Binary files a/website/client/assets/header/png/experience@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/gem.png b/website/client/assets/header/png/gem.png deleted file mode 100755 index 1386d0b387..0000000000 Binary files a/website/client/assets/header/png/gem.png and /dev/null differ diff --git a/website/client/assets/header/png/gem@2x.png b/website/client/assets/header/png/gem@2x.png deleted file mode 100755 index 0024c43a04..0000000000 Binary files a/website/client/assets/header/png/gem@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/gem@3x.png b/website/client/assets/header/png/gem@3x.png deleted file mode 100755 index 528e29f30e..0000000000 Binary files a/website/client/assets/header/png/gem@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/gold.png b/website/client/assets/header/png/gold.png deleted file mode 100755 index 39a11c51dc..0000000000 Binary files a/website/client/assets/header/png/gold.png and /dev/null differ diff --git a/website/client/assets/header/png/gold@2x.png b/website/client/assets/header/png/gold@2x.png deleted file mode 100755 index 096c86e984..0000000000 Binary files a/website/client/assets/header/png/gold@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/gold@3x.png b/website/client/assets/header/png/gold@3x.png deleted file mode 100755 index 3baec2db5a..0000000000 Binary files a/website/client/assets/header/png/gold@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/health.png b/website/client/assets/header/png/health.png deleted file mode 100755 index ef82adaf6e..0000000000 Binary files a/website/client/assets/header/png/health.png and /dev/null differ diff --git a/website/client/assets/header/png/health@2x.png b/website/client/assets/header/png/health@2x.png deleted file mode 100755 index 2a7d87283a..0000000000 Binary files a/website/client/assets/header/png/health@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/health@3x.png b/website/client/assets/header/png/health@3x.png deleted file mode 100755 index 57d60006a2..0000000000 Binary files a/website/client/assets/header/png/health@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/logo.png b/website/client/assets/header/png/logo.png deleted file mode 100755 index 09f6b7ccee..0000000000 Binary files a/website/client/assets/header/png/logo.png and /dev/null differ diff --git a/website/client/assets/header/png/logo@2x.png b/website/client/assets/header/png/logo@2x.png deleted file mode 100755 index 65210359b7..0000000000 Binary files a/website/client/assets/header/png/logo@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/logo@3x.png b/website/client/assets/header/png/logo@3x.png deleted file mode 100755 index 3e94efc581..0000000000 Binary files a/website/client/assets/header/png/logo@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/magic.png b/website/client/assets/header/png/magic.png deleted file mode 100755 index fb8758a823..0000000000 Binary files a/website/client/assets/header/png/magic.png and /dev/null differ diff --git a/website/client/assets/header/png/magic@2x.png b/website/client/assets/header/png/magic@2x.png deleted file mode 100755 index 3211f79174..0000000000 Binary files a/website/client/assets/header/png/magic@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/magic@3x.png b/website/client/assets/header/png/magic@3x.png deleted file mode 100755 index a66a841284..0000000000 Binary files a/website/client/assets/header/png/magic@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/notifications.png b/website/client/assets/header/png/notifications.png deleted file mode 100755 index c382560731..0000000000 Binary files a/website/client/assets/header/png/notifications.png and /dev/null differ diff --git a/website/client/assets/header/png/notifications@2x.png b/website/client/assets/header/png/notifications@2x.png deleted file mode 100755 index 86b8a47396..0000000000 Binary files a/website/client/assets/header/png/notifications@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/notifications@3x.png b/website/client/assets/header/png/notifications@3x.png deleted file mode 100755 index 281a557676..0000000000 Binary files a/website/client/assets/header/png/notifications@3x.png and /dev/null differ diff --git a/website/client/assets/header/png/user.png b/website/client/assets/header/png/user.png deleted file mode 100755 index 196a670e06..0000000000 Binary files a/website/client/assets/header/png/user.png and /dev/null differ diff --git a/website/client/assets/header/png/user@2x.png b/website/client/assets/header/png/user@2x.png deleted file mode 100755 index 123780ac68..0000000000 Binary files a/website/client/assets/header/png/user@2x.png and /dev/null differ diff --git a/website/client/assets/header/png/user@3x.png b/website/client/assets/header/png/user@3x.png deleted file mode 100755 index e4c4a48962..0000000000 Binary files a/website/client/assets/header/png/user@3x.png and /dev/null differ diff --git a/website/client/assets/header/svg/bits.svg b/website/client/assets/header/svg/bits.svg deleted file mode 100755 index 2bc40769e5..0000000000 --- a/website/client/assets/header/svg/bits.svg +++ /dev/null @@ -1,96 +0,0 @@ - - - - 5E629D7C-1B16-4B17-8A09-5769348D3BB0 - Created with sketchtool. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/experience.svg b/website/client/assets/header/svg/experience.svg deleted file mode 100644 index 20cadb92d4..0000000000 --- a/website/client/assets/header/svg/experience.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - EEA09955-0BD9-4FA6-B404-275F69C78BA0 - Created with sketchtool. - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/gem.svg b/website/client/assets/header/svg/gem.svg deleted file mode 100755 index 0a5a32cc86..0000000000 --- a/website/client/assets/header/svg/gem.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - 9830DCF8-FFC1-4ABB-BD3F-11C30C41F8FE - Created with sketchtool. - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/gold.svg b/website/client/assets/header/svg/gold.svg deleted file mode 100755 index affd093239..0000000000 --- a/website/client/assets/header/svg/gold.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - 45D3A740-CE56-4F37-90D2-5871CB868045 - Created with sketchtool. - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/health.svg b/website/client/assets/header/svg/health.svg deleted file mode 100644 index 5fdbbae8ed..0000000000 --- a/website/client/assets/header/svg/health.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - 03D27E53-B4F4-4600-B8F0-7C6348593CE5 - Created with sketchtool. - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/logo.svg b/website/client/assets/header/svg/logo.svg deleted file mode 100755 index c77ea1ac34..0000000000 --- a/website/client/assets/header/svg/logo.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - 3FAFE54A-3179-4DDB-A979-179E451CC634 - Created with sketchtool. - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/magic.svg b/website/client/assets/header/svg/magic.svg deleted file mode 100644 index 4ce8df1c0d..0000000000 --- a/website/client/assets/header/svg/magic.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - 7E7FE8AE-769F-4424-8713-31DAA23B5DA6 - Created with sketchtool. - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/notifications.svg b/website/client/assets/header/svg/notifications.svg deleted file mode 100755 index 891b3db645..0000000000 --- a/website/client/assets/header/svg/notifications.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - 3FDC9D95-73E9-4C8D-990F-8CC8EC415CCD - Created with sketchtool. - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/header/svg/user.svg b/website/client/assets/header/svg/user.svg deleted file mode 100755 index 56c84308bb..0000000000 --- a/website/client/assets/header/svg/user.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - E4029491-6F2E-4C6A-9D7A-E4F780C314B9 - Created with sketchtool. - - - - - - - - - - - \ No newline at end of file diff --git a/website/client/assets/scss/colors.scss b/website/client/assets/scss/colors.scss index add4bd4500..8684ceecb9 100644 --- a/website/client/assets/scss/colors.scss +++ b/website/client/assets/scss/colors.scss @@ -5,6 +5,9 @@ $white: #FFFFFF; $black: #1A181D; +$header-color: #D5C8FF; +$header-dark-background: #271B3D; + $gray-10: #34313A; $gray-50: #4E4A57; $gray-100: #686274; diff --git a/website/client/assets/scss/form.scss b/website/client/assets/scss/form.scss index 38e3654310..7f138c985e 100644 --- a/website/client/assets/scss/form.scss +++ b/website/client/assets/scss/form.scss @@ -27,11 +27,11 @@ input, textarea, input.form-control, textarea.form-control { background: $gray-500; } - &.input-search { // TODO Abstract to work with all icons + &.input-search { background-repeat: no-repeat; background-position: center left 16px; background-size: 16px 16px; - background-image: url(~client/assets/svg/search.svg); + background-image: url(~client/assets/svg/for-css/search.svg); padding-left: 40px; } @@ -42,13 +42,13 @@ input, textarea, input.form-control, textarea.form-control { &.input-valid { padding-right: 37px; - background-image: url(~client/assets/svg/check.svg); + background-image: url(~client/assets/svg/for-css/check.svg); background-size: 13px 10px; } &.input-invalid { padding-right: 40px; - background-image: url(~client/assets/svg/alert.svg); + background-image: url(~client/assets/svg/for-css/alert.svg); background-size: 16px 16px; } } @@ -84,7 +84,7 @@ $bg-disabled-control: #34303a; .custom-control-input { &:checked~.custom-control-indicator { - background-image: url(~client/assets/svg/checkbox-white.svg); + background-image: url(~client/assets/svg/for-css/checkbox-white.svg); background-color: $purple-400; border-color: $purple-400; } diff --git a/website/client/assets/scss/icon.scss b/website/client/assets/scss/icon.scss new file mode 100644 index 0000000000..6039d4fae9 --- /dev/null +++ b/website/client/assets/scss/icon.scss @@ -0,0 +1,9 @@ +.svg-icon { + display: inline-block; + width: 1em; + height: 1em; + stroke-width: 0; + stroke: currentColor; + fill: currentColor; + transition: none; +} \ No newline at end of file diff --git a/website/client/assets/scss/index.scss b/website/client/assets/scss/index.scss index cf1df2022c..8f4e979447 100644 --- a/website/client/assets/scss/index.scss +++ b/website/client/assets/scss/index.scss @@ -2,7 +2,7 @@ @import './utils'; @import './colors'; -* { +*:not(.svg-icon *) { transition-duration: .15s; transition-property: border-color, box-shadow, color; transition-timing-function: ease-in; @@ -19,3 +19,5 @@ @import './dropdown'; @import './popover'; @import './item'; +@import './stats'; +@import './icon'; \ No newline at end of file diff --git a/website/client/assets/scss/stats.scss b/website/client/assets/scss/stats.scss new file mode 100644 index 0000000000..828aa592aa --- /dev/null +++ b/website/client/assets/scss/stats.scss @@ -0,0 +1,11 @@ +.bg-health { + background: $red-50; +} + +.bg-experience { + background: $yellow-100; +} + +.bg-mana { + background: $blue-100; +} \ No newline at end of file diff --git a/website/client/assets/scss/utils.scss b/website/client/assets/scss/utils.scss index 6acb42d26b..ce6a3a51da 100644 --- a/website/client/assets/scss/utils.scss +++ b/website/client/assets/scss/utils.scss @@ -13,4 +13,8 @@ } @return $string; +} + +@function base64svg ($image) { + @return 'data:image/svg+xml;base64,' + $image; } \ No newline at end of file diff --git a/website/client/assets/svg/README.md b/website/client/assets/svg/README.md new file mode 100644 index 0000000000..e518a74ed2 --- /dev/null +++ b/website/client/assets/svg/README.md @@ -0,0 +1 @@ +SVGs used inside CSS / SCSS with `url(...)` must go in the `for-css` folder. \ No newline at end of file diff --git a/website/client/assets/guilds/bronze-guild-badge.svg b/website/client/assets/svg/bronze-guild-badge.svg similarity index 100% rename from website/client/assets/guilds/bronze-guild-badge.svg rename to website/client/assets/svg/bronze-guild-badge.svg diff --git a/website/client/assets/svg/buff.svg b/website/client/assets/svg/buff.svg new file mode 100755 index 0000000000..d0e1140fdf --- /dev/null +++ b/website/client/assets/svg/buff.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/client/assets/chat/copy.svg b/website/client/assets/svg/copy.svg similarity index 100% rename from website/client/assets/chat/copy.svg rename to website/client/assets/svg/copy.svg diff --git a/website/client/assets/chat/delete.svg b/website/client/assets/svg/delete.svg similarity index 100% rename from website/client/assets/chat/delete.svg rename to website/client/assets/svg/delete.svg diff --git a/website/client/assets/drawer/expand.svg b/website/client/assets/svg/expand.svg similarity index 100% rename from website/client/assets/drawer/expand.svg rename to website/client/assets/svg/expand.svg diff --git a/website/client/assets/svg/experience.svg b/website/client/assets/svg/experience.svg new file mode 100755 index 0000000000..8728bfb3ca --- /dev/null +++ b/website/client/assets/svg/experience.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website/client/assets/svg/alert.svg b/website/client/assets/svg/for-css/alert.svg similarity index 100% rename from website/client/assets/svg/alert.svg rename to website/client/assets/svg/for-css/alert.svg diff --git a/website/client/assets/svg/for-css/bits.svg b/website/client/assets/svg/for-css/bits.svg new file mode 100755 index 0000000000..5a568f9e15 --- /dev/null +++ b/website/client/assets/svg/for-css/bits.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/client/assets/svg/check.svg b/website/client/assets/svg/for-css/check.svg similarity index 100% rename from website/client/assets/svg/check.svg rename to website/client/assets/svg/for-css/check.svg diff --git a/website/client/assets/svg/checkbox-white.svg b/website/client/assets/svg/for-css/checkbox-white.svg similarity index 100% rename from website/client/assets/svg/checkbox-white.svg rename to website/client/assets/svg/for-css/checkbox-white.svg diff --git a/website/client/assets/svg/search.svg b/website/client/assets/svg/for-css/search.svg similarity index 100% rename from website/client/assets/svg/search.svg rename to website/client/assets/svg/for-css/search.svg diff --git a/website/client/assets/guilds/green-gem.svg b/website/client/assets/svg/gem.svg old mode 100644 new mode 100755 similarity index 100% rename from website/client/assets/guilds/green-gem.svg rename to website/client/assets/svg/gem.svg diff --git a/website/client/assets/svg/gold-guild-badge.svg b/website/client/assets/svg/gold-guild-badge.svg new file mode 100755 index 0000000000..26665b7cd1 --- /dev/null +++ b/website/client/assets/svg/gold-guild-badge.svg @@ -0,0 +1,10 @@ + + +gold-guild-badge + + + + + + + diff --git a/website/client/assets/svg/gold.svg b/website/client/assets/svg/gold.svg new file mode 100755 index 0000000000..e5e6d7b44c --- /dev/null +++ b/website/client/assets/svg/gold.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/website/client/assets/guilds/grey-badge.svg b/website/client/assets/svg/grey-badge.svg similarity index 100% rename from website/client/assets/guilds/grey-badge.svg rename to website/client/assets/svg/grey-badge.svg diff --git a/website/client/assets/svg/healer.svg b/website/client/assets/svg/healer.svg new file mode 100644 index 0000000000..a966e46d61 --- /dev/null +++ b/website/client/assets/svg/healer.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/website/client/assets/svg/health.svg b/website/client/assets/svg/health.svg new file mode 100755 index 0000000000..7048738daa --- /dev/null +++ b/website/client/assets/svg/health.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/website/client/assets/guilds/information.svg b/website/client/assets/svg/information.svg similarity index 100% rename from website/client/assets/guilds/information.svg rename to website/client/assets/svg/information.svg diff --git a/website/client/assets/chat/like.svg b/website/client/assets/svg/like.svg similarity index 100% rename from website/client/assets/chat/like.svg rename to website/client/assets/svg/like.svg diff --git a/website/client/assets/chat/liked.svg b/website/client/assets/svg/liked.svg similarity index 100% rename from website/client/assets/chat/liked.svg rename to website/client/assets/svg/liked.svg diff --git a/website/client/assets/svg/logo.svg b/website/client/assets/svg/logo.svg new file mode 100755 index 0000000000..f1881f640a --- /dev/null +++ b/website/client/assets/svg/logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/website/client/assets/svg/mana.svg b/website/client/assets/svg/mana.svg new file mode 100755 index 0000000000..15f9d429ca --- /dev/null +++ b/website/client/assets/svg/mana.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/website/client/assets/drawer/minimize.svg b/website/client/assets/svg/minimize.svg similarity index 100% rename from website/client/assets/drawer/minimize.svg rename to website/client/assets/svg/minimize.svg diff --git a/website/client/assets/svg/notifications.svg b/website/client/assets/svg/notifications.svg new file mode 100755 index 0000000000..8c628b1baf --- /dev/null +++ b/website/client/assets/svg/notifications.svg @@ -0,0 +1,4 @@ + +notifications + + \ No newline at end of file diff --git a/website/client/assets/chat/report.svg b/website/client/assets/svg/report.svg similarity index 100% rename from website/client/assets/chat/report.svg rename to website/client/assets/svg/report.svg diff --git a/website/client/assets/svg/rogue.svg b/website/client/assets/svg/rogue.svg new file mode 100644 index 0000000000..c47d3f2f65 --- /dev/null +++ b/website/client/assets/svg/rogue.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/website/client/assets/guilds/silver-guild-badge.svg b/website/client/assets/svg/silver-guild-badge.svg similarity index 59% rename from website/client/assets/guilds/silver-guild-badge.svg rename to website/client/assets/svg/silver-guild-badge.svg index 8a4b120aea..57d88255c3 100644 --- a/website/client/assets/guilds/silver-guild-badge.svg +++ b/website/client/assets/svg/silver-guild-badge.svg @@ -6,8 +6,8 @@ - - + + diff --git a/website/client/assets/svg/user.svg b/website/client/assets/svg/user.svg new file mode 100755 index 0000000000..c87706cdf6 --- /dev/null +++ b/website/client/assets/svg/user.svg @@ -0,0 +1,4 @@ + +user + + diff --git a/website/client/assets/svg/warrior.svg b/website/client/assets/svg/warrior.svg new file mode 100644 index 0000000000..c80f151f80 --- /dev/null +++ b/website/client/assets/svg/warrior.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/client/assets/svg/wizard.svg b/website/client/assets/svg/wizard.svg new file mode 100644 index 0000000000..a98d47c49d --- /dev/null +++ b/website/client/assets/svg/wizard.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/website/client/components/appHeader.vue b/website/client/components/appHeader.vue index 7c45b5617d..c6f9d52776 100644 --- a/website/client/components/appHeader.vue +++ b/website/client/components/appHeader.vue @@ -1,31 +1,55 @@ diff --git a/website/client/components/appMenu.vue b/website/client/components/appMenu.vue index 6625808194..adb44cff02 100644 --- a/website/client/components/appMenu.vue +++ b/website/client/components/appMenu.vue @@ -1,8 +1,7 @@ \ No newline at end of file diff --git a/website/client/components/userListDetail.vue b/website/client/components/userListDetail.vue index c7436c52df..97fa2a98c7 100644 --- a/website/client/components/userListDetail.vue +++ b/website/client/components/userListDetail.vue @@ -1,53 +1,67 @@ diff --git a/website/client/filters/registerGlobals.js b/website/client/filters/registerGlobals.js index 4580bbec85..25604dac1a 100644 --- a/website/client/filters/registerGlobals.js +++ b/website/client/filters/registerGlobals.js @@ -1,6 +1,8 @@ import Vue from 'vue'; import round from './round'; import floor from './floor'; +import roundBigNumber from './roundBigNumber'; Vue.filter('round', round); Vue.filter('floor', floor); +Vue.filter('roundBigNumber', roundBigNumber); \ No newline at end of file diff --git a/website/client/filters/roundBigNumber.js b/website/client/filters/roundBigNumber.js new file mode 100644 index 0000000000..4f7e94961d --- /dev/null +++ b/website/client/filters/roundBigNumber.js @@ -0,0 +1,25 @@ +import round from './round'; + +function _convertToThousand (num) { + return `${(num / Math.pow(10, 3)).toFixed(1)}k`; +} + +function _convertToMillion (num) { + return `${(num / Math.pow(10, 6)).toFixed(1)}m`; +} + +function _convertToBillion (num) { + return `${(num / Math.pow(10, 9)).toFixed(1)}b`; +} + +export default function roundBigNumber (num) { + if (num > 999999999) { + return _convertToBillion(num); + } else if (num > 999999) { + return _convertToMillion(num); + } else if (num > 999) { + return _convertToThousand(num); + } else { + return round(num); + } +} \ No newline at end of file diff --git a/website/client/router.js b/website/client/router.js index 6329cf5775..3a9618bb49 100644 --- a/website/client/router.js +++ b/website/client/router.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import VueRouter from 'vue-router'; -import EmptyView from './components/emptyView'; +// import EmptyView from './components/emptyView'; // TODO Dummy elements used as placeholder until real components are implemented import ParentPage from './components/parentPage'; import Page from './components/page'; @@ -9,23 +9,28 @@ import Page from './components/page'; // Tasks import UserTasks from './components/userTasks'; +// Except for tasks that are always loaded all the other main level +// components are loaded in separate webpack chunks. +// See https://webpack.js.org/guides/code-splitting-async/ +// for docs + // Inventory -import InventoryContainer from './components/inventory/index'; -import ItemsPage from './components/inventory/items/index'; -import EquipmentPage from './components/inventory/equipment/index'; -import StablePage from './components/inventory/stable'; +const InventoryContainer = () => import(/* webpackChunkName: "inventory" */'./components/inventory/index'); +const ItemsPage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/items/index'); +const EquipmentPage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/equipment/index'); +const StablePage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/stable'); // Social -import SocialContainer from './components/social/index'; -import InboxPage from './components/social/inbox/index'; -import InboxConversationPage from './components/social/inbox/conversationPage'; +// TODO add inbox back +// import InboxPage from './components/social/inbox/index'; +// import InboxConversationPage from './components/social/inbox/conversationPage'; // Guilds -import GuildIndex from './components/guilds/index'; -import TavernPage from './components/guilds/tavern'; -import MyGuilds from './components/guilds/myGuilds'; -import GuildsDiscoveryPage from './components/guilds/discovery'; -import GuildPage from './components/guilds/guild'; +const GuildIndex = () => import(/* webpackChunkName: "guilds" */ './components/guilds/index'); +const TavernPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/tavern'); +const MyGuilds = () => import(/* webpackChunkName: "guilds" */ './components/guilds/myGuilds'); +const GuildsDiscoveryPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/discovery'); +const GuildPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/guild'); Vue.use(VueRouter); @@ -49,7 +54,7 @@ export default new VueRouter({ { name: 'stable', path: 'stable', component: StablePage }, ], }, - { name: 'market', path: '/market', component: Page }, + { name: 'shops', path: '/shops', component: Page }, { path: '/guilds', component: GuildIndex, @@ -73,30 +78,25 @@ export default new VueRouter({ }, ], }, - { - path: '/social', - component: SocialContainer, - children: [ - { - path: 'inbox', - component: EmptyView, - children: [ - { - name: 'inbox', - path: '', - component: InboxPage, - }, - { - name: 'conversation', - path: 'conversation/:id', - component: InboxConversationPage, - }, - ], - }, - { name: 'challenges', path: 'challenges', component: Page }, - { name: 'party', path: 'party', component: Page }, - ], - }, + { name: 'challenges', path: 'challenges', component: Page }, + { name: 'party', path: 'party', component: Page }, + /* TODO add inbox back + { + path: 'inbox', + component: EmptyView, + children: [ + { + name: 'inbox', + path: '', + component: InboxPage, + }, + { + name: 'conversation', + path: 'conversation/:id', + component: InboxConversationPage, + }, + ], + }, */ { path: '/user', component: ParentPage, diff --git a/website/client/store/getters/user.js b/website/client/store/getters/user.js index 2950a5a36c..dcb2c55754 100644 --- a/website/client/store/getters/user.js +++ b/website/client/store/getters/user.js @@ -1,3 +1,8 @@ export function gems (store) { return store.state.user.data.balance * 4; +} + +export function isBuffed (store) { + const buffs = store.state.user.data.stats.buffs; + return buffs.str || buffs.per || buffs.con || buffs.int; } \ No newline at end of file diff --git a/website/common/locales/en/newClient.json b/website/common/locales/en/newClient.json index f996f262ed..fdfecc8422 100644 --- a/website/common/locales/en/newClient.json +++ b/website/common/locales/en/newClient.json @@ -1,4 +1,6 @@ { + "shops": "Shops", + "faq": "FAQ", "costumePopoverText": "Select \"Use Costume\" to equip items to your avatar without affecting the stats from your Battle Gear! This means that you can dress up your avatar in whatever outfit you like while still having your best Battle Gear equipped.", "autoEquipPopoverText": "Select this option to automatically equip gear as soon as you purchase it.", "costumeDisabled": "You have disabled your costume.", @@ -22,6 +24,7 @@ "groupBy2": "Group By", "quantity": "Quantity", "AZ": "A-Z", + "editAvatar": "Edit Avatar", "sort": "Sort", "memberCount": "Member Count", "recentActivity": "Recent Activity", @@ -60,5 +63,6 @@ "noGuildsTitle": "You aren’t a member of any Guilds.", "noGuildsParagraph1": "Guilds are social groups created by other players that can offer you support, accountability, and encouraging chat.", "noGuildsParagraph2": "Click the Discover tab to see recommended Guilds based on your interests, browse Habitica’s public Guilds, or create your own Guild.", - "privateDescription": "A private Guild will not be displayed in Habitica’s Guild directory. New members can be added by invitation only." + "privateDescription": "A private Guild will not be displayed in Habitica’s Guild directory. New members can be added by invitation only.", + "inviteFriendsParty": "Inviting friends to your party will grant you an exclusive
Quest Scroll to battle the Basi-List together!" }