diff --git a/Makefile.am b/Makefile.am
index 842cf5c769b1..62d42cb80128 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -156,6 +156,7 @@ WEBPACK_PACKAGES = \
playground \
realmd \
selinux \
+ session_recording \
shell \
sosreport \
ssh \
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000000..1aa8766e8896
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,6456 @@
+{
+ "name": "CockpitDevelopmentDependencies",
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "Base64": {
+ "version": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz",
+ "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg="
+ },
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz",
+ "integrity": "sha1-MXrHghgmwixwLWYYmrg1lnXxNdc=",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "adm-zip": {
+ "version": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz",
+ "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E="
+ },
+ "ajv": {
+ "version": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz",
+ "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=",
+ "requires": {
+ "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "fast-deep-equal": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "fast-json-stable-stringify": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz"
+ }
+ },
+ "ajv-keywords": {
+ "version": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ }
+ },
+ "alphanum-sort": {
+ "version": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "angular": {
+ "version": "https://registry.npmjs.org/angular/-/angular-1.3.20.tgz",
+ "integrity": "sha1-sjo9fF5/mffZW5tNSbmsNVJpuu4="
+ },
+ "angular-bootstrap-npm": {
+ "version": "https://registry.npmjs.org/angular-bootstrap-npm/-/angular-bootstrap-npm-0.13.4.tgz",
+ "integrity": "sha1-UYhj9utxALNXTLLmjobbr5uY7PU=",
+ "requires": {
+ "napa": "https://registry.npmjs.org/napa/-/napa-0.4.1.tgz"
+ }
+ },
+ "angular-gettext": {
+ "version": "https://registry.npmjs.org/angular-gettext/-/angular-gettext-2.3.10.tgz",
+ "integrity": "sha1-9xJb8aJ7dnA3wgTeNS87FE25aXw="
+ },
+ "angular-route": {
+ "version": "https://registry.npmjs.org/angular-route/-/angular-route-1.3.20.tgz",
+ "integrity": "sha1-E6dc/+16Snh+rXdQI2CPO94G4ZQ="
+ },
+ "ansi": {
+ "version": "https://registry.npmjs.org/ansi/-/ansi-0.1.2.tgz",
+ "integrity": "sha1-JifilJjwbiocLs6cIeKP1JRDCCc="
+ },
+ "ansi-escapes": {
+ "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=",
+ "dev": true,
+ "requires": {
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
+ }
+ },
+ "argparse": {
+ "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ }
+ },
+ "arr-diff": {
+ "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ }
+ },
+ "arr-flatten": {
+ "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+ }
+ },
+ "array-uniq": {
+ "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "array.prototype.find": {
+ "version": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz",
+ "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz"
+ }
+ },
+ "arrify": {
+ "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asap": {
+ "version": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "assert": {
+ "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz"
+ }
+ },
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "async": {
+ "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "async-each": {
+ "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "autoprefixer": {
+ "version": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000756.tgz",
+ "normalize-range": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "num2fraction": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "aws-sign2": {
+ "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
+ },
+ "babel-code-frame": {
+ "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "babel-generator": "6.26.0",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-register": "6.26.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "convert-source-map": "1.5.1",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "private": "0.1.8",
+ "slash": "1.0.0",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ }
+ },
+ "babel-eslint": {
+ "version": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.1.1.tgz",
+ "integrity": "sha1-imqITwhapwYK9pz8dzQcL5k3D7I=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "lodash.pickby": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz"
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
+ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
+ "dev": true,
+ "requires": {
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "trim-right": "1.0.1"
+ }
+ },
+ "babel-helper-builder-react-jsx": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-loader": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz",
+ "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "babel-messages": {
+ "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
+ "dev": true
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "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": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "6.24.1",
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "6.26.0",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "regexpu-core": "2.0.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=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-flow": "6.18.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-display-name": {
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
+ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-jsx": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-react-jsx": "6.26.0",
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-jsx-self": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
+ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-jsx-source": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
+ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "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=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
+ }
+ },
+ "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=",
+ "dev": true,
+ "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-flow": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
+ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-flow-strip-types": "6.22.0"
+ }
+ },
+ "babel-preset-react": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
+ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-plugin-transform-react-display-name": "6.25.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-self": "6.22.0",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-preset-flow": "6.23.0"
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "home-or-tmp": "2.0.0",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.18"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "babel-runtime": {
+ "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "regenerator-runtime": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ }
+ },
+ "babel-traverse": {
+ "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "globals": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ }
+ },
+ "babel-types": {
+ "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "to-fast-properties": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"
+ }
+ },
+ "babylon": {
+ "version": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
+ "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ }
+ },
+ "big.js": {
+ "version": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
+ "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
+ "dev": true
+ },
+ "block-stream": {
+ "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ }
+ },
+ "bluebird": {
+ "version": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+ "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=",
+ "dev": true
+ },
+ "boolbase": {
+ "version": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "boom": {
+ "version": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz"
+ }
+ },
+ "bootstrap": {
+ "version": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
+ "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
+ },
+ "bootstrap-datepicker": {
+ "version": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.4.1.tgz",
+ "integrity": "sha1-icbxUjcKgLjzitxpe78PSCunLFQ=",
+ "requires": {
+ "jquery": "2.2.4"
+ }
+ },
+ "bootstrap-datetime-picker": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/bootstrap-datetime-picker/-/bootstrap-datetime-picker-2.4.4.tgz",
+ "integrity": "sha1-t8/oQ6PG0iHAMpPJpGSkzDXXOWg="
+ },
+ "brace-expansion": {
+ "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "braces": {
+ "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "requires": {
+ "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz"
+ }
+ },
+ "browserify-zlib": {
+ "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "dev": true,
+ "requires": {
+ "pako": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz"
+ }
+ },
+ "browserslist": {
+ "version": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000756.tgz",
+ "electron-to-chromium": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz"
+ }
+ },
+ "buffer": {
+ "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
+ "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "c3": {
+ "version": "https://registry.npmjs.org/c3/-/c3-0.4.18.tgz",
+ "integrity": "sha1-bxxECWNSY7ij3mB+26tL3GeMYss=",
+ "requires": {
+ "d3": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz"
+ }
+ },
+ "caller-path": {
+ "version": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz"
+ }
+ },
+ "callsites": {
+ "version": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "camel-case": {
+ "version": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
+ "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=",
+ "dev": true,
+ "requires": {
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "camelcase": {
+ "version": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ },
+ "caniuse-api": {
+ "version": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+ "dev": true,
+ "requires": {
+ "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000756.tgz",
+ "lodash.memoize": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "lodash.uniq": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"
+ }
+ },
+ "caniuse-db": {
+ "version": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000756.tgz",
+ "integrity": "sha1-6TimuZFjDzDSJj3TRYvrZdNiJos=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "center-align": {
+ "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "lazy-cache": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ }
+ },
+ "change-case": {
+ "version": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz",
+ "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=",
+ "dev": true,
+ "requires": {
+ "camel-case": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
+ "constant-case": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz",
+ "dot-case": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz",
+ "is-lower-case": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "is-upper-case": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "lower-case-first": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "param-case": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
+ "pascal-case": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz",
+ "path-case": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz",
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
+ "snake-case": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
+ "swap-case": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "title-case": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz"
+ }
+ },
+ "chokidar": {
+ "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "dev": true,
+ "requires": {
+ "anymatch": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "async-each": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "is-binary-path": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz"
+ }
+ },
+ "circular-json": {
+ "version": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=",
+ "dev": true
+ },
+ "clap": {
+ "version": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "integrity": "sha1-TzZ0WzIAhJJVf0ZBLWbVDLmbzlE=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
+ }
+ },
+ "clean-css": {
+ "version": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
+ "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
+ "dev": true,
+ "requires": {
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ }
+ }
+ }
+ },
+ "cli": {
+ "version": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz",
+ "integrity": "sha1-Aq1Eo4Cr8nraxebwzdewQ9dMU+M=",
+ "dev": true,
+ "requires": {
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
+ }
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz"
+ }
+ },
+ "cli-width": {
+ "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "requires": {
+ "center-align": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "right-align": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ }
+ }
+ },
+ "clone": {
+ "version": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+ "dev": true
+ },
+ "co": {
+ "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "coa": {
+ "version": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
+ "requires": {
+ "q": "https://registry.npmjs.org/q/-/q-1.5.1.tgz"
+ }
+ },
+ "code-point-at": {
+ "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "color": {
+ "version": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+ "dev": true,
+ "requires": {
+ "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "color-string": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz"
+ }
+ },
+ "color-convert": {
+ "version": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ }
+ },
+ "color-name": {
+ "version": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+ "dev": true,
+ "requires": {
+ "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ }
+ },
+ "colormin": {
+ "version": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+ "dev": true,
+ "requires": {
+ "color": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "css-color-names": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ }
+ },
+ "colors": {
+ "version": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ }
+ },
+ "commander": {
+ "version": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+ }
+ },
+ "comment-json": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-1.1.3.tgz",
+ "integrity": "sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54=",
+ "requires": {
+ "json-parser": "1.1.5"
+ }
+ },
+ "commondir": {
+ "version": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+ }
+ }
+ }
+ },
+ "console-browserify": {
+ "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"
+ }
+ },
+ "constant-case": {
+ "version": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz",
+ "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=",
+ "dev": true,
+ "requires": {
+ "snake-case": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "constants-browserify": {
+ "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz",
+ "integrity": "sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-3.0.1.tgz",
+ "integrity": "sha1-m7Pp1sYGTeZcW85EzyNrTQd6ITE=",
+ "dev": true,
+ "requires": {
+ "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+ "fs-extra": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "node-dir": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
+ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+ }
+ },
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "core-js": {
+ "version": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cryptiles": {
+ "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
+ "requires": {
+ "boom": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+ "integrity": "sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI=",
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz"
+ }
+ }
+ }
+ },
+ "crypto-browserify": {
+ "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz",
+ "integrity": "sha1-ubEdvm2WUd2IKgHmzEZ99xjs8Yk=",
+ "dev": true,
+ "requires": {
+ "pbkdf2-compat": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz",
+ "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz",
+ "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz"
+ }
+ },
+ "css-color-names": {
+ "version": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ },
+ "css-loader": {
+ "version": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz",
+ "integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "cssnano": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "lodash.camelcase": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-modules-extract-imports": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
+ "postcss-modules-local-by-default": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "postcss-modules-scope": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "postcss-modules-values": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "source-list-map": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "css-select": {
+ "version": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "css-what": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "nth-check": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz"
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz"
+ }
+ },
+ "css-what": {
+ "version": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-calc": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "postcss-colormin": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "postcss-convert-values": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "postcss-discard-comments": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "postcss-discard-duplicates": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "postcss-discard-empty": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "postcss-discard-overridden": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "postcss-discard-unused": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "postcss-filter-plugins": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "postcss-merge-idents": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "postcss-merge-longhand": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "postcss-merge-rules": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "postcss-minify-font-values": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "postcss-minify-gradients": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "postcss-minify-params": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "postcss-minify-selectors": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "postcss-normalize-charset": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "postcss-normalize-url": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "postcss-ordered-values": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "postcss-reduce-idents": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "postcss-reduce-initial": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "postcss-reduce-transforms": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "postcss-svgo": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "postcss-unique-selectors": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "postcss-zindex": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "csso": {
+ "version": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
+ "requires": {
+ "clap": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ }
+ },
+ "d": {
+ "version": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz"
+ }
+ },
+ "d3": {
+ "version": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz",
+ "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g="
+ },
+ "dashdash": {
+ "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ }
+ },
+ "date-now": {
+ "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "debug": {
+ "version": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "requires": {
+ "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ }
+ },
+ "decamelize": {
+ "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decompress": {
+ "version": "https://registry.npmjs.org/decompress/-/decompress-0.2.5.tgz",
+ "integrity": "sha1-0hMjPv4GbM2A2RTXk/GzDNmEuEc=",
+ "requires": {
+ "adm-zip": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz",
+ "ext-name": "https://registry.npmjs.org/ext-name/-/ext-name-1.0.1.tgz",
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "nopt": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "stream-combiner": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "tar": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
+ "tempfile": "https://registry.npmjs.org/tempfile/-/tempfile-0.1.3.tgz"
+ }
+ },
+ "deep-is": {
+ "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
+ "dev": true
+ }
+ }
+ },
+ "defined": {
+ "version": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "del": {
+ "version": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "is-path-cwd": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "is-path-in-cwd": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "doctrine": {
+ "version": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
+ "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=",
+ "dev": true,
+ "requires": {
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "dom-converter": {
+ "version": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz",
+ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=",
+ "dev": true,
+ "requires": {
+ "utila": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
+ "dev": true
+ }
+ }
+ },
+ "dom-serializer": {
+ "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "dev": true
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
+ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ }
+ },
+ "domutils": {
+ "version": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ }
+ },
+ "dot-case": {
+ "version": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz",
+ "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=",
+ "dev": true,
+ "requires": {
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz"
+ }
+ },
+ "download": {
+ "version": "https://registry.npmjs.org/download/-/download-0.1.19.tgz",
+ "integrity": "sha1-GtPlpBd+RrQawI5BqEyH48Q0haA=",
+ "requires": {
+ "decompress": "https://registry.npmjs.org/decompress/-/decompress-0.2.5.tgz",
+ "each-async": "https://registry.npmjs.org/each-async/-/each-async-0.1.3.tgz",
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz",
+ "get-urls": "https://registry.npmjs.org/get-urls/-/get-urls-0.1.2.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "nopt": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz",
+ "request": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz"
+ }
+ },
+ "duplexer": {
+ "version": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
+ },
+ "each-async": {
+ "version": "https://registry.npmjs.org/each-async/-/each-async-0.1.3.tgz",
+ "integrity": "sha1-tDYCWwjaL4ZggCVRnjCWdj3t/KM="
+ },
+ "ecc-jsbn": {
+ "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ }
+ },
+ "electron-to-chromium": {
+ "version": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz",
+ "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "encoding": {
+ "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
+ "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "memory-fs": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
+ "tapable": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "memory-fs": {
+ "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
+ "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
+ "dev": true
+ }
+ }
+ },
+ "entities": {
+ "version": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
+ "dev": true
+ },
+ "errno": {
+ "version": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "dev": true,
+ "requires": {
+ "prr": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz"
+ }
+ },
+ "es-abstract": {
+ "version": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz",
+ "integrity": "sha1-aQgpoHyuNrIi5/2bdcDQVz6yUic=",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "is-regex": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"
+ }
+ },
+ "es-to-primitive": {
+ "version": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "is-date-object": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "is-symbol": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz"
+ }
+ },
+ "es5-ext": {
+ "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz",
+ "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+ }
+ },
+ "es6-iterator": {
+ "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+ }
+ },
+ "es6-map": {
+ "version": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "es6-set": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
+ }
+ },
+ "es6-promise": {
+ "version": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz",
+ "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=",
+ "optional": true
+ },
+ "es6-set": {
+ "version": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
+ }
+ },
+ "es6-symbol": {
+ "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz"
+ }
+ },
+ "es6-weak-map": {
+ "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escope": {
+ "version": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "requires": {
+ "es6-map": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ }
+ },
+ "eslint": {
+ "version": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz",
+ "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
+ "escope": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "espree": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz",
+ "esquery": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "file-entry-cache": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "globals": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "ignore": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
+ "is-resolvable": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "natural-compare": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "pluralize": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
+ "progress": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "require-uncached": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "table": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "user-home": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "eslint-loader": {
+ "version": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.6.3.tgz",
+ "integrity": "sha1-Uv3LMunoNVEI+DgNrU7+UaKJhvk=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "object-hash": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"
+ }
+ },
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz",
+ "integrity": "sha1-VMLpkGt2+dEBQgML3DTp1oQKC7I=",
+ "dev": true,
+ "requires": {
+ "array.prototype.find": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz",
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "jsx-ast-utils": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ }
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "espree": {
+ "version": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz",
+ "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz",
+ "acorn-jsx": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz"
+ }
+ },
+ "esprima": {
+ "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
+ },
+ "esquery": {
+ "version": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true,
+ "requires": {
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ }
+ },
+ "esrecurse": {
+ "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "requires": {
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz"
+ }
+ },
+ "events": {
+ "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "dev": true
+ },
+ "exit": {
+ "version": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "exit-hook": {
+ "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz"
+ }
+ },
+ "expand-range": {
+ "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
+ }
+ },
+ "exports-loader": {
+ "version": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz",
+ "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"
+ }
+ }
+ }
+ },
+ "ext-list": {
+ "version": "https://registry.npmjs.org/ext-list/-/ext-list-0.2.0.tgz",
+ "integrity": "sha1-NhTV8pn0pZKolinn3oJfF3TRmr0=",
+ "requires": {
+ "got": "https://registry.npmjs.org/got/-/got-0.2.0.tgz"
+ }
+ },
+ "ext-name": {
+ "version": "https://registry.npmjs.org/ext-name/-/ext-name-1.0.1.tgz",
+ "integrity": "sha1-GCgzVtxAo5NFXFRGDwWZzpfTDgw=",
+ "requires": {
+ "ext-list": "https://registry.npmjs.org/ext-list/-/ext-list-0.2.0.tgz",
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
+ }
+ },
+ "extend": {
+ "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
+ },
+ "extglob": {
+ "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
+ }
+ },
+ "extract-text-webpack-plugin": {
+ "version": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz",
+ "integrity": "sha1-yVvzy6rEnclvHcbgclSfu2VMzSw=",
+ "dev": true,
+ "requires": {
+ "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "webpack-sources": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz"
+ }
+ },
+ "extract-zip": {
+ "version": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
+ "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
+ "optional": true,
+ "requires": {
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "yauzl": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+ "optional": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
+ },
+ "fast-json-stable-stringify": {
+ "version": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "fast-levenshtein": {
+ "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "fd-slicer": {
+ "version": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "optional": true,
+ "requires": {
+ "pend": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
+ }
+ },
+ "figures": {
+ "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "file-entry-cache": {
+ "version": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "filename-regex": {
+ "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "dev": true,
+ "requires": {
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ }
+ },
+ "find-cache-dir": {
+ "version": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "dev": true,
+ "requires": {
+ "commondir": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "pkg-dir": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "find-up": {
+ "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "flat-cache": {
+ "version": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "dev": true,
+ "requires": {
+ "circular-json": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "del": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "write": "https://registry.npmjs.org/write/-/write-0.2.1.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "flatten": {
+ "version": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "for-in": {
+ "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ }
+ },
+ "foreach": {
+ "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
+ "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
+ "requires": {
+ "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz"
+ }
+ },
+ "fs-extra": {
+ "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "optional": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "optional": true
+ }
+ }
+ },
+ "fs.realpath": {
+ "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fstream": {
+ "version": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz",
+ "integrity": "sha1-czfwWPu7vvqMn1YaKMqwhJICyYg=",
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "function-bind": {
+ "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
+ "dev": true
+ },
+ "generate-function": {
+ "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
+ }
+ },
+ "get-stdin": {
+ "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz",
+ "integrity": "sha1-WZivJKr8gC0VyCxoVlfuuLENSpE="
+ },
+ "get-urls": {
+ "version": "https://registry.npmjs.org/get-urls/-/get-urls-0.1.2.tgz",
+ "integrity": "sha1-kqPlziua8tJ2T/UZhoHbNzInuEQ="
+ },
+ "getpass": {
+ "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ }
+ },
+ "gettext-parser": {
+ "version": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.1.0.tgz",
+ "integrity": "sha1-LFpmONiTk0ubVQN9CtgstwBLJnk=",
+ "dev": true,
+ "requires": {
+ "encoding": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"
+ }
+ },
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "dev": true,
+ "requires": {
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "glob-base": {
+ "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
+ }
+ },
+ "glob-parent": {
+ "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
+ }
+ },
+ "globals": {
+ "version": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=",
+ "dev": true
+ },
+ "globby": {
+ "version": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "got": {
+ "version": "https://registry.npmjs.org/got/-/got-0.2.0.tgz",
+ "integrity": "sha1-0Awkiyn9zK6pQN+coJlev/MbUaU=",
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-0.3.1.tgz"
+ }
+ },
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+ "requires": {
+ "natives": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz"
+ }
+ },
+ "graceful-readlink": {
+ "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz",
+ "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
+ }
+ },
+ "has": {
+ "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ }
+ },
+ "has-ansi": {
+ "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "has-color": {
+ "version": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "hasha": {
+ "version": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+ "optional": true,
+ "requires": {
+ "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "hawk": {
+ "version": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity": "sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg=",
+ "requires": {
+ "boom": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "sntp": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz"
+ }
+ },
+ "he": {
+ "version": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "header-case": {
+ "version": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz",
+ "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "hoek": {
+ "version": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha1-ctnQdU9/4lyi0BrY+PmpRJqJUm0="
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "html-comment-regex": {
+ "version": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "html-minifier": {
+ "version": "https://registry.npmjs.org/html-minifier/-/html-minifier-0.7.2.tgz",
+ "integrity": "sha1-K3lZsQUaSB5xzXxuWaZCcq+JXP0=",
+ "dev": true,
+ "requires": {
+ "change-case": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz",
+ "clean-css": "https://registry.npmjs.org/clean-css/-/clean-css-3.1.9.tgz",
+ "cli": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz",
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz",
+ "relateurl": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz"
+ },
+ "dependencies": {
+ "async": {
+ "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "clean-css": {
+ "version": "https://registry.npmjs.org/clean-css/-/clean-css-3.1.9.tgz",
+ "integrity": "sha1-29BaFIvklDuzfOBnnmdsvJ9YAmY=",
+ "dev": true,
+ "requires": {
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
+ }
+ },
+ "commander": {
+ "version": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
+ "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz",
+ "integrity": "sha1-rMO79WAsuMyYDGrIQPp9hgPj7zY=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ }
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ }
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ }
+ },
+ "uglify-js": {
+ "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
+ "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=",
+ "dev": true,
+ "requires": {
+ "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
+ "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
+ "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=",
+ "dev": true,
+ "requires": {
+ "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ }
+ }
+ }
+ }
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.22.0.tgz",
+ "integrity": "sha1-frAv+QOdqE5bpxAE1Gk8BLktKQU=",
+ "dev": true,
+ "requires": {
+ "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "html-minifier": "https://registry.npmjs.org/html-minifier/-/html-minifier-2.1.7.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "pretty-error": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "toposort": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk=",
+ "dev": true
+ },
+ "camel-case": {
+ "version": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "change-case": {
+ "version": "https://registry.npmjs.org/change-case/-/change-case-3.0.1.tgz",
+ "integrity": "sha1-7l9a0EFa0a2egHLPSc1M+nZgpVQ=",
+ "dev": true,
+ "requires": {
+ "camel-case": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "constant-case": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz",
+ "dot-case": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz",
+ "header-case": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz",
+ "is-lower-case": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "is-upper-case": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "lower-case-first": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "param-case": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "pascal-case": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz",
+ "path-case": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz",
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
+ "snake-case": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "swap-case": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "title-case": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz"
+ }
+ },
+ "commander": {
+ "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+ }
+ },
+ "constant-case": {
+ "version": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz",
+ "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=",
+ "dev": true,
+ "requires": {
+ "snake-case": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "dot-case": {
+ "version": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz",
+ "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz"
+ }
+ },
+ "html-minifier": {
+ "version": "https://registry.npmjs.org/html-minifier/-/html-minifier-2.1.7.tgz",
+ "integrity": "sha1-kFHW/LvPIU7TB+GtdPQyu5rWVcw=",
+ "dev": true,
+ "requires": {
+ "change-case": "https://registry.npmjs.org/change-case/-/change-case-3.0.1.tgz",
+ "clean-css": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "he": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "ncname": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
+ "relateurl": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz"
+ }
+ },
+ "param-case": {
+ "version": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz"
+ }
+ },
+ "pascal-case": {
+ "version": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz",
+ "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=",
+ "dev": true,
+ "requires": {
+ "camel-case": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz"
+ }
+ },
+ "path-case": {
+ "version": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz",
+ "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz"
+ }
+ },
+ "sentence-case": {
+ "version": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
+ "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz"
+ }
+ },
+ "snake-case": {
+ "version": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz"
+ }
+ },
+ "title-case": {
+ "version": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
+ "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=",
+ "dev": true,
+ "requires": {
+ "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ }
+ }
+ },
+ "htmlparser": {
+ "version": "https://registry.npmjs.org/htmlparser/-/htmlparser-1.7.7.tgz",
+ "integrity": "sha1-GeezmX/2+6yZrlp9J2ZInv5+LQ4=",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
+ "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
+ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ }
+ }
+ }
+ },
+ "http-browserify": {
+ "version": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz",
+ "integrity": "sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=",
+ "dev": true,
+ "requires": {
+ "Base64": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ }
+ },
+ "http-signature": {
+ "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz"
+ }
+ },
+ "https-browserify": {
+ "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz",
+ "integrity": "sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs=",
+ "dev": true
+ },
+ "icss-replace-symbols": {
+ "version": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "ieee754": {
+ "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "integrity": "sha1-YSKJv7PCIOGGpYEYYY1b6MG6sCE=",
+ "dev": true
+ },
+ "image-size": {
+ "version": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz",
+ "integrity": "sha1-1LTh9hlS5MvBzqmmsMkV/stwdRA=",
+ "dev": true,
+ "optional": true
+ },
+ "imports-loader": {
+ "version": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz",
+ "integrity": "sha1-rnRlMDHVnjezwvslRKxhrq41MKY=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ }
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "indexof": {
+ "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "inherits": {
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "inquirer": {
+ "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "readline2": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "run-async": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ }
+ },
+ "interpret": {
+ "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz",
+ "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=",
+ "dev": true
+ },
+ "invariant": {
+ "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "dev": true,
+ "requires": {
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz"
+ }
+ },
+ "is-absolute-url": {
+ "version": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz"
+ }
+ },
+ "is-buffer": {
+ "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
+ "is-date-object": {
+ "version": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
+ }
+ },
+ "is-extendable": {
+ "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "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": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "is-glob": {
+ "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
+ }
+ },
+ "is-lower-case": {
+ "version": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=",
+ "dev": true,
+ "requires": {
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz"
+ }
+ },
+ "is-my-json-valid": {
+ "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
+ "integrity": "sha1-WoRnd+LCYg0eaRBOXToDsfYIjxE=",
+ "dev": true,
+ "requires": {
+ "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ }
+ }
+ },
+ "is-number": {
+ "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "requires": {
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ },
+ "is-path-cwd": {
+ "version": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "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": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz"
+ }
+ },
+ "is-path-inside": {
+ "version": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
+ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
+ }
+ },
+ "is-plain-obj": {
+ "version": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-posix-bracket": {
+ "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-property": {
+ "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ }
+ },
+ "is-resolvable": {
+ "version": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+ "dev": true,
+ "requires": {
+ "tryit": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz"
+ }
+ },
+ "is-stream": {
+ "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "optional": true
+ },
+ "is-svg": {
+ "version": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz"
+ }
+ },
+ "is-symbol": {
+ "version": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-upper-case": {
+ "version": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=",
+ "dev": true,
+ "requires": {
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "isexe": {
+ "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "optional": true
+ },
+ "isobject": {
+ "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "isstream": {
+ "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "jed": {
+ "version": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz",
+ "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=",
+ "dev": true
+ },
+ "jquery": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz",
+ "integrity": "sha1-LInWiJterFIqfuoywUUhVZxsvwI="
+ },
+ "jquery-flot": {
+ "version": "https://registry.npmjs.org/jquery-flot/-/jquery-flot-0.8.3.tgz",
+ "integrity": "sha1-onOs9D8TGQ9ueHAYae4kv+8Swio="
+ },
+ "jquery-resizable": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/jquery-resizable/-/jquery-resizable-1.0.6.tgz",
+ "integrity": "sha1-4vW/xHGgi7+Pvu7qFWqOfJdU5nw="
+ },
+ "js-base64": {
+ "version": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz",
+ "integrity": "sha1-p5qSNmY3K1gPjif1GEXG9+j7+68=",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
+ },
+ "js-yaml": {
+ "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
+ }
+ },
+ "jsbn": {
+ "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "optional": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "jshint": {
+ "version": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz",
+ "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=",
+ "dev": true,
+ "requires": {
+ "cli": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
+ "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"
+ },
+ "dependencies": {
+ "cli": {
+ "version": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
+ "dev": true,
+ "requires": {
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+ }
+ },
+ "domhandler": {
+ "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ }
+ },
+ "entities": {
+ "version": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
+ "dev": true
+ },
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "htmlparser2": {
+ "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
+ }
+ },
+ "lodash": {
+ "version": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
+ "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ }
+ },
+ "shelljs": {
+ "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "dev": true
+ }
+ }
+ },
+ "jshint-loader": {
+ "version": "https://registry.npmjs.org/jshint-loader/-/jshint-loader-0.8.4.tgz",
+ "integrity": "sha1-tD7kXRN3adVliUChH479mg7c1Hs=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "rcloader": "https://registry.npmjs.org/rcloader/-/rcloader-0.1.2.tgz",
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"
+ }
+ },
+ "strip-json-comments": {
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz",
+ "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=",
+ "dev": true
+ }
+ }
+ },
+ "json-parser": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-1.1.5.tgz",
+ "integrity": "sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc=",
+ "requires": {
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
+ }
+ },
+ "json-schema": {
+ "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
+ "json-stable-stringify": {
+ "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "requires": {
+ "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "json5": {
+ "version": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "optional": true
+ }
+ }
+ },
+ "jsonify": {
+ "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ },
+ "jsonpointer": {
+ "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "verror": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
+ "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
+ "dev": true
+ },
+ "kew": {
+ "version": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
+ "optional": true
+ },
+ "kind-of": {
+ "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ }
+ },
+ "klaw": {
+ "version": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "optional": true
+ }
+ }
+ },
+ "kubernetes-container-terminal": {
+ "version": "https://registry.npmjs.org/kubernetes-container-terminal/-/kubernetes-container-terminal-1.0.3.tgz",
+ "integrity": "sha1-2SPsaHQG8asuyCLj9uuxVXgobC4="
+ },
+ "kubernetes-object-describer": {
+ "version": "https://registry.npmjs.org/kubernetes-object-describer/-/kubernetes-object-describer-1.1.4.tgz",
+ "integrity": "sha1-fEHNDjOGd9rZPrda6JGdfxn3JZo="
+ },
+ "kubernetes-topology-graph": {
+ "version": "https://registry.npmjs.org/kubernetes-topology-graph/-/kubernetes-topology-graph-0.0.23.tgz",
+ "integrity": "sha1-5ra12frPACxlZ9B7/Uy+nQ5420w="
+ },
+ "lazy-cache": {
+ "version": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "less": {
+ "version": "https://registry.npmjs.org/less/-/less-2.6.1.tgz",
+ "integrity": "sha1-ZY4B7JrDFJlZxrbfvPvAoXCv2no=",
+ "dev": true,
+ "requires": {
+ "errno": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "image-size": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz",
+ "mime": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "promise": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
+ "request": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "less-loader": {
+ "version": "https://registry.npmjs.org/less-loader/-/less-loader-2.2.3.tgz",
+ "integrity": "sha1-ttj4E5yEk98J2ZKpOgBzSwj4RSg=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz"
+ }
+ },
+ "levn": {
+ "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
+ }
+ },
+ "loader-utils": {
+ "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "lodash-es": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz",
+ "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc="
+ },
+ "lodash._createcompounder": {
+ "version": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz",
+ "integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=",
+ "dev": true,
+ "requires": {
+ "lodash.deburr": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz",
+ "lodash.words": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz"
+ }
+ },
+ "lodash._root": {
+ "version": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz",
+ "integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=",
+ "dev": true,
+ "requires": {
+ "lodash._createcompounder": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz"
+ }
+ },
+ "lodash.clonedeep": {
+ "version": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
+ },
+ "lodash.deburr": {
+ "version": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz",
+ "integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=",
+ "dev": true,
+ "requires": {
+ "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz"
+ }
+ },
+ "lodash.memoize": {
+ "version": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.pickby": {
+ "version": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
+ "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "lodash.words": {
+ "version": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz",
+ "integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=",
+ "dev": true,
+ "requires": {
+ "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz"
+ }
+ },
+ "longest": {
+ "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "requires": {
+ "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
+ }
+ },
+ "lower-case": {
+ "version": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
+ "lower-case-first": {
+ "version": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=",
+ "dev": true,
+ "requires": {
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz"
+ }
+ },
+ "lru-cache": {
+ "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "macaddress": {
+ "version": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
+ "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
+ "dev": true
+ },
+ "math-expression-evaluator": {
+ "version": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+ "dev": true
+ },
+ "memory-fs": {
+ "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
+ "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=",
+ "dev": true,
+ "requires": {
+ "errno": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz"
+ }
+ },
+ "mime": {
+ "version": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=",
+ "dev": true,
+ "optional": true
+ },
+ "mime-db": {
+ "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
+ },
+ "mime-types": {
+ "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "requires": {
+ "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
+ }
+ },
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc="
+ },
+ "moment": {
+ "version": "https://registry.npmjs.org/moment/-/moment-2.10.6.tgz",
+ "integrity": "sha1-bLIZZ8ecunsMpeZmRPFzZis++nc="
+ },
+ "ms": {
+ "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mustache": {
+ "version": "https://registry.npmjs.org/mustache/-/mustache-0.8.2.tgz",
+ "integrity": "sha1-v1uSK49Azc+5HANdzZFhENFiH5s="
+ },
+ "mute-stream": {
+ "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "dev": true
+ },
+ "napa": {
+ "version": "https://registry.npmjs.org/napa/-/napa-0.4.1.tgz",
+ "integrity": "sha1-J392ssrQouZorwQqeUvu/GFKAGA=",
+ "requires": {
+ "download": "https://registry.npmjs.org/download/-/download-0.1.19.tgz",
+ "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-0.0.4.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+ }
+ },
+ "natives": {
+ "version": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
+ "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE="
+ },
+ "natural-compare": {
+ "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "ncname": {
+ "version": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
+ "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
+ "dev": true,
+ "requires": {
+ "xml-char-classes": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz"
+ }
+ },
+ "ng-cache-loader": {
+ "version": "https://registry.npmjs.org/ng-cache-loader/-/ng-cache-loader-0.0.16.tgz",
+ "integrity": "sha1-iLdIx4eTvCfzeiUuVH7wLmWZaSA=",
+ "dev": true,
+ "requires": {
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "html-minifier": "https://registry.npmjs.org/html-minifier/-/html-minifier-0.7.2.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz"
+ }
+ },
+ "no-case": {
+ "version": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=",
+ "dev": true,
+ "requires": {
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz"
+ }
+ },
+ "noVNC": {
+ "version": "https://github.com/novnc/noVNC/archive/v0.6.2.tar.gz",
+ "integrity": "sha1-xjWT+4EOGh4zfyqprreql/g2lBk="
+ },
+ "node-dir": {
+ "version": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+ "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=",
+ "dev": true,
+ "requires": {
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ }
+ },
+ "node-libs-browser": {
+ "version": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz",
+ "integrity": "sha1-JEgG1E0xngSLyGB7XMTq+aKdLjw=",
+ "dev": true,
+ "requires": {
+ "assert": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz",
+ "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz",
+ "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "http-browserify": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz",
+ "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz",
+ "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
+ "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "url": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
+ "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ }
+ }
+ }
+ },
+ "nomnom": {
+ "version": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz",
+ "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+ "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+ "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+ "has-color": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz"
+ }
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
+ "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=",
+ "dev": true
+ }
+ }
+ },
+ "nopt": {
+ "version": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz",
+ "integrity": "sha1-KqCbfRdoSHs7ianFqlIzW/8Lrqc=",
+ "requires": {
+ "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
+ }
+ },
+ "normalize-path": {
+ "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
+ }
+ },
+ "normalize-range": {
+ "version": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "prepend-http": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "query-string": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "sort-keys": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "npmlog": {
+ "version": "https://registry.npmjs.org/npmlog/-/npmlog-0.0.4.tgz",
+ "integrity": "sha1-oSp0GGBrfgGDooUdl6hym5oPODc=",
+ "requires": {
+ "ansi": "https://registry.npmjs.org/ansi/-/ansi-0.1.2.tgz"
+ }
+ },
+ "nth-check": {
+ "version": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "dev": true,
+ "requires": {
+ "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
+ }
+ },
+ "num2fraction": {
+ "version": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-0.3.1.tgz",
+ "integrity": "sha1-Bg4qKifXwNd+x3t48Rqkf9iACNI="
+ },
+ "object-describer": {
+ "version": "git+https://github.com/kubernetes-ui/object-describer.git#9a44712c75cacec0d328e40f9e1328a668e5c0ef"
+ },
+ "object-hash": {
+ "version": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz",
+ "integrity": "sha1-6Wrw6WmBmWodR/iOrY908evEQis=",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY="
+ },
+ "object.omit": {
+ "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "requires": {
+ "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ }
+ },
+ "once": {
+ "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "onetime": {
+ "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "optimist": {
+ "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
+ }
+ }
+ },
+ "optionator": {
+ "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
+ }
+ },
+ "os-browserify": {
+ "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
+ "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "pako": {
+ "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
+ "dev": true
+ },
+ "param-case": {
+ "version": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
+ "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=",
+ "dev": true,
+ "requires": {
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz"
+ }
+ },
+ "parse-glob": {
+ "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "requires": {
+ "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
+ }
+ },
+ "pascal-case": {
+ "version": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz",
+ "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=",
+ "dev": true,
+ "requires": {
+ "camel-case": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
+ "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz"
+ }
+ },
+ "path-browserify": {
+ "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+ "dev": true
+ },
+ "path-case": {
+ "version": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz",
+ "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=",
+ "dev": true,
+ "requires": {
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz"
+ }
+ },
+ "path-exists": {
+ "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "path-is-absolute": {
+ "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "patternfly": {
+ "version": "3.27.7",
+ "resolved": "https://registry.npmjs.org/patternfly/-/patternfly-3.27.7.tgz",
+ "integrity": "sha1-okEYcgvBPuu+b9bkgP2m65kBLaQ=",
+ "requires": {
+ "bootstrap": "3.3.7",
+ "bootstrap-datepicker": "1.6.4",
+ "bootstrap-select": "1.12.4",
+ "bootstrap-switch": "3.3.4",
+ "bootstrap-touchspin": "3.1.1",
+ "c3": "0.4.17",
+ "d3": "3.5.17",
+ "datatables.net": "1.10.15",
+ "datatables.net-colreorder": "1.3.3",
+ "datatables.net-colreorder-bs": "1.3.3",
+ "datatables.net-select": "1.2.2",
+ "drmonty-datatables-colvis": "1.1.2",
+ "eonasdan-bootstrap-datetimepicker": "4.17.47",
+ "font-awesome": "4.7.0",
+ "google-code-prettify": "1.0.5",
+ "jquery": "3.2.1",
+ "jquery-match-height": "0.7.2",
+ "moment": "2.14.1",
+ "moment-timezone": "0.4.1",
+ "patternfly-bootstrap-combobox": "1.1.7",
+ "patternfly-bootstrap-treeview": "2.1.5"
+ },
+ "dependencies": {
+ "bootstrap": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
+ "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
+ },
+ "bootstrap-datepicker": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.6.4.tgz",
+ "integrity": "sha1-iJ6+ztjqov8V7B8nPksHUxzEPaA=",
+ "optional": true,
+ "requires": {
+ "jquery": "3.2.1"
+ }
+ },
+ "bootstrap-select": {
+ "version": "1.12.4",
+ "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.12.4.tgz",
+ "integrity": "sha1-fxXTwM6XiGjZwJxw+WYk9V+gLuE=",
+ "optional": true,
+ "requires": {
+ "jquery": "3.2.1"
+ }
+ },
+ "bootstrap-switch": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz",
+ "integrity": "sha1-cOCusqh3wNx2aZHeEI4hcPwpov8=",
+ "optional": true
+ },
+ "bootstrap-touchspin": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/bootstrap-touchspin/-/bootstrap-touchspin-3.1.1.tgz",
+ "integrity": "sha1-l3nerHKq9Xfl52K4USx0fIcdlZc=",
+ "optional": true
+ },
+ "c3": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/c3/-/c3-0.4.17.tgz",
+ "integrity": "sha512-41T3yS3jq1XgA7ruvV1wFVEK1E2az2iUAqS7hU5de62JVrjPyxWqIPu8AHlKpShZxJbD+DXLRkQHfOLASYyqyg==",
+ "optional": true,
+ "requires": {
+ "d3": "3.5.17"
+ }
+ },
+ "d3": {
+ "version": "3.5.17",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz",
+ "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=",
+ "optional": true
+ },
+ "datatables.net": {
+ "version": "1.10.15",
+ "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.15.tgz",
+ "integrity": "sha1-x4kHe7/jhedf9aIz+l8jJRpy32g=",
+ "requires": {
+ "jquery": "3.2.1"
+ }
+ },
+ "datatables.net-bs": {
+ "version": "1.10.15",
+ "resolved": "https://registry.npmjs.org/datatables.net-bs/-/datatables.net-bs-1.10.15.tgz",
+ "integrity": "sha1-ssImEAfYTKW1q/VsGO3CJ+DaGk0=",
+ "optional": true,
+ "requires": {
+ "datatables.net": "1.10.15",
+ "jquery": "3.2.1"
+ }
+ },
+ "datatables.net-colreorder": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/datatables.net-colreorder/-/datatables.net-colreorder-1.3.3.tgz",
+ "integrity": "sha1-/HYuNQ+UIkyyzUXCuWImGg//73I=",
+ "optional": true,
+ "requires": {
+ "datatables.net": "1.10.15",
+ "jquery": "3.2.1"
+ }
+ },
+ "datatables.net-colreorder-bs": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/datatables.net-colreorder-bs/-/datatables.net-colreorder-bs-1.3.3.tgz",
+ "integrity": "sha1-Op3LCN7r612FQHlZHgbkk615OlM=",
+ "optional": true,
+ "requires": {
+ "datatables.net-bs": "1.10.15",
+ "datatables.net-colreorder": "1.3.3",
+ "jquery": "3.2.1"
+ }
+ },
+ "datatables.net-select": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/datatables.net-select/-/datatables.net-select-1.2.2.tgz",
+ "integrity": "sha1-llF5P1KJn05XRcByCCHouChvv0U=",
+ "optional": true,
+ "requires": {
+ "datatables.net": "1.10.15",
+ "jquery": "3.2.1"
+ }
+ },
+ "drmonty-datatables-colvis": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/drmonty-datatables-colvis/-/drmonty-datatables-colvis-1.1.2.tgz",
+ "integrity": "sha1-lque37SGQ8wu3aP4e4iTPN7oEnw=",
+ "optional": true,
+ "requires": {
+ "jquery": "3.2.1"
+ }
+ },
+ "eonasdan-bootstrap-datetimepicker": {
+ "version": "4.17.47",
+ "resolved": "https://registry.npmjs.org/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47.tgz",
+ "integrity": "sha1-ekmXAEQGUnbnll79Fvgic1IZ5zU=",
+ "optional": true,
+ "requires": {
+ "bootstrap": "3.3.7",
+ "jquery": "3.2.1",
+ "moment": "2.14.1",
+ "moment-timezone": "0.4.1"
+ }
+ },
+ "font-awesome": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+ "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+ },
+ "google-code-prettify": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/google-code-prettify/-/google-code-prettify-1.0.5.tgz",
+ "integrity": "sha1-n0d/Ik2/piNy5e+AOn4VdBBAAIQ=",
+ "optional": true
+ },
+ "jquery": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz",
+ "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c="
+ },
+ "jquery-match-height": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/jquery-match-height/-/jquery-match-height-0.7.2.tgz",
+ "integrity": "sha1-+NnzulMU2qsQnPB0CGdL4gS+Xw4=",
+ "optional": true
+ },
+ "moment": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.14.1.tgz",
+ "integrity": "sha1-s1snxH5X7S3ccAU9awe+zbKRdBw="
+ },
+ "moment-timezone": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.4.1.tgz",
+ "integrity": "sha1-gfWYw61eIs2teWtn7NjYjQ9bqgY=",
+ "optional": true,
+ "requires": {
+ "moment": "2.14.1"
+ }
+ },
+ "patternfly-bootstrap-combobox": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/patternfly-bootstrap-combobox/-/patternfly-bootstrap-combobox-1.1.7.tgz",
+ "integrity": "sha1-al48zRFwwhs8S0qhaKdBPh3btuE=",
+ "optional": true
+ },
+ "patternfly-bootstrap-treeview": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/patternfly-bootstrap-treeview/-/patternfly-bootstrap-treeview-2.1.5.tgz",
+ "integrity": "sha1-TCnyWC+4ovKPCpKPLw0yTSHWmQ0=",
+ "optional": true,
+ "requires": {
+ "bootstrap": "3.3.7",
+ "jquery": "3.2.1"
+ }
+ }
+ }
+ },
+ "patternfly-bootstrap-combobox": {
+ "version": "https://registry.npmjs.org/patternfly-bootstrap-combobox/-/patternfly-bootstrap-combobox-1.1.7.tgz",
+ "integrity": "sha1-al48zRFwwhs8S0qhaKdBPh3btuE="
+ },
+ "pbkdf2-compat": {
+ "version": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz",
+ "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=",
+ "dev": true
+ },
+ "pend": {
+ "version": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "optional": true
+ },
+ "performance-now": {
+ "version": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "phantomjs-prebuilt": {
+ "version": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.15.tgz",
+ "integrity": "sha1-IPhugtM0nFBZF1J3RbekEeCLOQM=",
+ "optional": true,
+ "requires": {
+ "es6-promise": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz",
+ "extract-zip": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
+ "fs-extra": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "hasha": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+ "kew": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+ "progress": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "request-progress": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "optional": true,
+ "requires": {
+ "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+ }
+ },
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "optional": true
+ },
+ "boom": {
+ "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ }
+ },
+ "cryptiles": {
+ "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "optional": true,
+ "requires": {
+ "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+ }
+ },
+ "form-data": {
+ "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "optional": true,
+ "requires": {
+ "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz"
+ }
+ },
+ "har-schema": {
+ "version": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+ "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
+ "optional": true
+ },
+ "har-validator": {
+ "version": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "optional": true,
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
+ }
+ },
+ "hawk": {
+ "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "optional": true,
+ "requires": {
+ "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+ }
+ },
+ "hoek": {
+ "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "http-signature": {
+ "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz"
+ }
+ },
+ "performance-now": {
+ "version": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
+ "optional": true
+ },
+ "qs": {
+ "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+ "optional": true
+ },
+ "request": {
+ "version": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+ "optional": true,
+ "requires": {
+ "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+ }
+ },
+ "sntp": {
+ "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "optional": true,
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ }
+ },
+ "uuid": {
+ "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=",
+ "optional": true
+ }
+ }
+ },
+ "pify": {
+ "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ }
+ },
+ "pkg-dir": {
+ "version": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
+ }
+ },
+ "pluralize": {
+ "version": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
+ "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
+ "dev": true
+ },
+ "po2json": {
+ "version": "https://registry.npmjs.org/po2json/-/po2json-0.4.5.tgz",
+ "integrity": "sha1-R7spUtoy1Yob4vJWpZjuvAt0URg=",
+ "dev": true,
+ "requires": {
+ "gettext-parser": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.1.0.tgz",
+ "nomnom": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz"
+ }
+ },
+ "postcss": {
+ "version": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-message-helpers": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "reduce-css-calc": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz"
+ }
+ },
+ "postcss-colormin": {
+ "version": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+ "dev": true,
+ "requires": {
+ "colormin": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "uniqid": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "caniuse-api": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-selector-parser": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "vendors": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz"
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-selector-parser": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz"
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
+ "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz",
+ "integrity": "sha1-ueyrTuAMids+yTEUW9lZC78/El8=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "regexpu-core": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz"
+ }
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz",
+ "integrity": "sha1-ueyrTuAMids+yTEUW9lZC78/El8=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "regexpu-core": {
+ "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "regjsgen": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "regjsparser": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"
+ }
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "regexpu-core": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz"
+ }
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz",
+ "integrity": "sha1-ueyrTuAMids+yTEUW9lZC78/El8=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "regexpu-core": {
+ "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "regjsgen": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "regjsparser": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"
+ }
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-modules-values": {
+ "version": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz",
+ "integrity": "sha1-ueyrTuAMids+yTEUW9lZC78/El8=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz"
+ }
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "normalize-url": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+ "dev": true,
+ "requires": {
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "indexes-of": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "uniq": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"
+ }
+ },
+ "postcss-svgo": {
+ "version": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+ "dev": true,
+ "requires": {
+ "is-svg": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "svgo": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "postcss-zindex": {
+ "version": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+ "dev": true,
+ "requires": {
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"
+ }
+ },
+ "prelude-ls": {
+ "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
+ "pretty-error": {
+ "version": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+ "dev": true,
+ "requires": {
+ "renderkid": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz",
+ "utila": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz"
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process": {
+ "version": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "progress": {
+ "version": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
+ },
+ "promise": {
+ "version": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
+ "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=",
+ "dev": true,
+ "requires": {
+ "asap": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
+ }
+ },
+ "prr": {
+ "version": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "dev": true
+ },
+ "punycode": {
+ "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "q": {
+ "version": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "dev": true
+ },
+ "qs": {
+ "version": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg="
+ },
+ "query-string": {
+ "version": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "strict-uri-encode": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "querystring": {
+ "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "qunit-tap": {
+ "version": "https://registry.npmjs.org/qunit-tap/-/qunit-tap-1.5.1.tgz",
+ "integrity": "sha1-KflRnFb6ne8y+WgXEVFcQe0jHpE="
+ },
+ "qunitjs": {
+ "version": "https://registry.npmjs.org/qunitjs/-/qunitjs-1.23.1.tgz",
+ "integrity": "sha1-GXHPl6yb4Bpk0jFVCNLkjm/U5xk="
+ },
+ "randomatic": {
+ "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=",
+ "dev": true,
+ "requires": {
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ }
+ }
+ }
+ },
+ "raw-loader": {
+ "version": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
+ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
+ "dev": true
+ },
+ "rcfinder": {
+ "version": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz",
+ "integrity": "sha1-8+gPOH3fmugK4wpBADKWQuroERU=",
+ "dev": true,
+ "requires": {
+ "lodash.clonedeep": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"
+ }
+ },
+ "rcloader": {
+ "version": "https://registry.npmjs.org/rcloader/-/rcloader-0.1.2.tgz",
+ "integrity": "sha1-oJY6ZDfQnvjLktky0trUl7DRc2w=",
+ "dev": true,
+ "requires": {
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "rcfinder": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ }
+ }
+ },
+ "react-lite": {
+ "version": "0.15.39",
+ "resolved": "https://registry.npmjs.org/react-lite/-/react-lite-0.15.39.tgz",
+ "integrity": "sha512-P/i5oOiVS1vlMmaSjP4lZ0KFc/SgbJkI3JeynScGVfeXfe3kC8dWoepkuUtkOB71F2iNiNl0QrrSYVZJSrxYRA=="
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ }
+ },
+ "readdirp": {
+ "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "set-immediate-shim": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+ }
+ }
+ }
+ },
+ "readline2": {
+ "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz"
+ }
+ },
+ "rechoir": {
+ "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "math-expression-evaluator": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+ "reduce-function-call": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "reduce-function-call": {
+ "version": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
+ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "redux": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz",
+ "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==",
+ "requires": {
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "lodash-es": "4.17.4",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "symbol-observable": "1.1.0"
+ }
+ },
+ "regenerate": {
+ "version": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha1-DDNtOYBVPXVcObWGrjsgqknIK38=",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
+ "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "private": "0.1.8"
+ }
+ },
+ "regex-cache": {
+ "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "regjsgen": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "regjsparser": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"
+ }
+ },
+ "registry-image-widgets": {
+ "version": "https://registry.npmjs.org/registry-image-widgets/-/registry-image-widgets-0.0.13.tgz",
+ "integrity": "sha1-cHqwCCC8OL1Zd9qkLimOd2MrzjI="
+ },
+ "regjsgen": {
+ "version": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "relateurl": {
+ "version": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "renderkid": {
+ "version": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz",
+ "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=",
+ "dev": true,
+ "requires": {
+ "css-select": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "dom-converter": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz",
+ "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "utila": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
+ "dev": true
+ }
+ }
+ },
+ "repeat-element": {
+ "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "integrity": "sha1-ygtl2gLtYpNYh4COb1EDgQNOM1Y=",
+ "requires": {
+ "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
+ "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "hawk": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "qs": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ="
+ }
+ }
+ },
+ "request-progress": {
+ "version": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "optional": true,
+ "requires": {
+ "throttleit": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz"
+ }
+ },
+ "require-uncached": {
+ "version": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "resolve-from": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz"
+ }
+ },
+ "requirejs": {
+ "version": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz",
+ "integrity": "sha1-3Xj9LTQYDA1ixyS1uK68BmTgNm8="
+ },
+ "resolve": {
+ "version": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
+ "integrity": "sha1-HwmsznlsmnYlefMbLBzEw83fnzY=",
+ "dev": true,
+ "requires": {
+ "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz"
+ }
+ },
+ "resolve-from": {
+ "version": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true,
+ "requires": {
+ "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz"
+ }
+ },
+ "right-align": {
+ "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "requires": {
+ "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
+ }
+ },
+ "rimraf": {
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
+ },
+ "ripemd160": {
+ "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz",
+ "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=",
+ "dev": true
+ },
+ "run-async": {
+ "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "dev": true,
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ }
+ },
+ "rx-lite": {
+ "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
+ },
+ "sax": {
+ "version": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
+ "dev": true
+ },
+ "sentence-case": {
+ "version": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
+ "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=",
+ "dev": true,
+ "requires": {
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz"
+ }
+ },
+ "set-immediate-shim": {
+ "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz",
+ "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+ "dev": true,
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz",
+ "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ }
+ }
+ },
+ "sigmund": {
+ "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "sizzle": {
+ "version": "https://registry.npmjs.org/sizzle/-/sizzle-2.1.1.tgz",
+ "integrity": "sha1-hpYTyUQfZzrHiy8hSWRza0J4teU=",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ },
+ "snake-case": {
+ "version": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
+ "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=",
+ "dev": true,
+ "requires": {
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz"
+ }
+ },
+ "sntp": {
+ "version": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+ "integrity": "sha1-LGzsFP7cIiJznK+bXD2F0cxaLMg=",
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz"
+ }
+ },
+ "sort-keys": {
+ "version": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz"
+ }
+ },
+ "source-list-map": {
+ "version": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+ "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ }
+ },
+ "sprintf-js": {
+ "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "requires": {
+ "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ }
+ },
+ "stdio": {
+ "version": "https://registry.npmjs.org/stdio/-/stdio-0.2.7.tgz",
+ "integrity": "sha1-ocV9oQ/hz6oMO/aDydB0PRtmCDk=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz",
+ "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ }
+ },
+ "stream-combiner": {
+ "version": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "requires": {
+ "duplexer": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz"
+ }
+ },
+ "strict-loader": {
+ "version": "https://registry.npmjs.org/strict-loader/-/strict-loader-1.1.0.tgz",
+ "integrity": "sha1-H1NlBscJEE0e5UjuKHMaEllGdc8=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ }
+ },
+ "strict-uri-encode": {
+ "version": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "stringstream": {
+ "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "strip-bom": {
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "style-loader": {
+ "version": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz",
+ "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
+ "requires": {
+ "coa": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "csso": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "sax": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "whet.extend": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "swap-case": {
+ "version": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=",
+ "dev": true,
+ "requires": {
+ "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "symbol-observable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.1.0.tgz",
+ "integrity": "sha512-dQoid9tqQ+uotGhuTKEY11X4xhyYePVnqGSoSm3OGKh2E8LZ6RPULp1uXTctk33IeERlrRJYoVSBglsL05F5Uw=="
+ },
+ "table": {
+ "version": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+ "dev": true,
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "ajv-keywords": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "slice-ansi": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "dev": true,
+ "requires": {
+ "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+ }
+ },
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
+ }
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+ }
+ }
+ }
+ },
+ "tapable": {
+ "version": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
+ "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
+ "dev": true
+ },
+ "tar": {
+ "version": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
+ "integrity": "sha1-QpQLrltfIsdEg2mRJvnz8nRJyxM=",
+ "requires": {
+ "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "fstream": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ }
+ },
+ "tempfile": {
+ "version": "https://registry.npmjs.org/tempfile/-/tempfile-0.1.3.tgz",
+ "integrity": "sha1-fWtxAEcznTn4RzJ6BW2t8YMQMBA=",
+ "requires": {
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-1.4.2.tgz"
+ }
+ },
+ "term.js-cockpit": {
+ "version": "https://registry.npmjs.org/term.js-cockpit/-/term.js-cockpit-0.0.7.tgz",
+ "integrity": "sha1-ESiD9Zhtyl6ETTyeUOkepU2inA4="
+ },
+ "text-table": {
+ "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "throttleit": {
+ "version": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+ "optional": true
+ },
+ "through": {
+ "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz",
+ "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=",
+ "requires": {
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz"
+ }
+ },
+ "timers-browserify": {
+ "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
+ "dev": true,
+ "requires": {
+ "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz"
+ }
+ },
+ "title-case": {
+ "version": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz",
+ "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=",
+ "dev": true,
+ "requires": {
+ "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "to-fast-properties": {
+ "version": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "toposort": {
+ "version": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz",
+ "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "requires": {
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ }
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tryit": {
+ "version": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
+ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
+ "dev": true
+ },
+ "tty-browserify": {
+ "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+ }
+ },
+ "tweetnacl": {
+ "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "type-check": {
+ "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
+ }
+ },
+ "typedarray": {
+ "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "uglify-js": {
+ "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
+ "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=",
+ "dev": true,
+ "requires": {
+ "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"
+ },
+ "dependencies": {
+ "async": {
+ "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true
+ },
+ "underscore": {
+ "version": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0="
+ },
+ "uniq": {
+ "version": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqid": {
+ "version": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
+ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
+ "dev": true,
+ "requires": {
+ "macaddress": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz"
+ }
+ },
+ "uniqs": {
+ "version": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "upper-case": {
+ "version": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "upper-case-first": {
+ "version": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
+ "dev": true,
+ "requires": {
+ "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz"
+ }
+ },
+ "url": {
+ "version": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
+ "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
+ "dev": true,
+ "requires": {
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "user-home": {
+ "version": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+ }
+ },
+ "util": {
+ "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utila": {
+ "version": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "https://registry.npmjs.org/uuid/-/uuid-1.4.2.tgz",
+ "integrity": "sha1-RTAZ9oaWam34PNxSROfJkOzDMvw="
+ },
+ "vendors": {
+ "version": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
+ "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
+ "dev": true
+ },
+ "verror": {
+ "version": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
+ }
+ },
+ "vm-browserify": {
+ "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "dev": true,
+ "requires": {
+ "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
+ }
+ },
+ "watchpack": {
+ "version": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",
+ "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=",
+ "dev": true,
+ "requires": {
+ "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "chokidar": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ },
+ "dependencies": {
+ "async": {
+ "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "webpack": {
+ "version": "https://registry.npmjs.org/webpack/-/webpack-1.13.3.tgz",
+ "integrity": "sha1-55xG/lo3xcpwCEugiUxZXNy0KBU=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "enhanced-resolve": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
+ "interpret": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz",
+ "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "memory-fs": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "node-libs-browser": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz",
+ "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "tapable": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
+ "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
+ "watchpack": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",
+ "webpack-core": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ },
+ "interpret": {
+ "version": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz",
+ "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
+ }
+ },
+ "uglify-js": {
+ "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
+ "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
+ "dev": true,
+ "requires": {
+ "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"
+ },
+ "dependencies": {
+ "async": {
+ "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ }
+ }
+ },
+ "yargs": {
+ "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
+ }
+ }
+ }
+ },
+ "webpack-core": {
+ "version": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
+ "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
+ "dev": true,
+ "requires": {
+ "source-list-map": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz",
+ "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=",
+ "dev": true,
+ "requires": {
+ "source-list-map": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ }
+ },
+ "whet.extend": {
+ "version": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
+ },
+ "which": {
+ "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
+ "optional": true,
+ "requires": {
+ "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ }
+ },
+ "window-size": {
+ "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "xml-char-classes": {
+ "version": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
+ "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "requires": {
+ "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz"
+ }
+ },
+ "yargs": {
+ "version": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz",
+ "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "optional": true,
+ "requires": {
+ "fd-slicer": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index f7c237bd270f..00a15e363a65 100644
--- a/package.json
+++ b/package.json
@@ -9,10 +9,12 @@
"angular-route": "1.3.20",
"bootstrap": "3.3.7",
"bootstrap-datepicker": "1.4.1",
+ "bootstrap-datetime-picker": "2.4.4",
"c3": "0.4.18",
"d3": "3.5.17",
"jquery": "2.2.4",
"jquery-flot": "0.8.3",
+ "jquery-resizable": "1.0.6",
"kubernetes-container-terminal": "1.0.3",
"kubernetes-object-describer": "1.1.4",
"kubernetes-topology-graph": "0.0.23",
diff --git a/pkg/session_recording/index.html b/pkg/session_recording/index.html
new file mode 100644
index 000000000000..e23d550aa5ea
--- /dev/null
+++ b/pkg/session_recording/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Journal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pkg/session_recording/manifest.json.in b/pkg/session_recording/manifest.json.in
new file mode 100644
index 000000000000..bab1160e01fb
--- /dev/null
+++ b/pkg/session_recording/manifest.json.in
@@ -0,0 +1,15 @@
+{
+ "version": "@VERSION@",
+ "name": "session_recording",
+
+ "requires": {
+ "cockpit": "122"
+ },
+
+ "menu": {
+ "index": {
+ "label": "Session Recording",
+ "order": 100
+ }
+ }
+}
diff --git a/pkg/session_recording/player.jsx b/pkg/session_recording/player.jsx
new file mode 100644
index 000000000000..f15af7e56257
--- /dev/null
+++ b/pkg/session_recording/player.jsx
@@ -0,0 +1,868 @@
+/*
+ * This file is part of Cockpit.
+ *
+ * Copyright (C) 2017 Red Hat, Inc.
+ *
+ * Cockpit is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * Cockpit is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Cockpit; If not, see .
+ */
+
+(function() {
+ "use strict";
+
+ let cockpit = require("cockpit");
+ let _ = cockpit.gettext;
+ let React = require("react");
+ let Term = require("term");
+ let Journal = require("journal");
+ let $ = require("jquery");
+
+ require("console.css");
+
+ /*
+ * Get an object field, verifying its presence and type.
+ */
+ let getValidField = function (object, field, type) {
+ let value;
+ if (!(field in object)) {
+ throw "\"" + field + "\" field is missing";
+ }
+ value = object[field];
+ if (typeof(value) != type) {
+ throw "invalid \"" + field + "\" field type: " + typeof(value);
+ }
+ return value;
+ }
+
+ /*
+ * An auto-loading buffer of recording's packets.
+ */
+ let PacketBuffer = class {
+ /*
+ * Initialize a buffer.
+ */
+ constructor(matchList) {
+ this.handleError = this.handleError.bind(this);
+ this.handleStream = this.handleStream.bind(this);
+ this.handleDone = this.handleDone.bind(this);
+ /* RegExp used to parse message's timing field */
+ this.timingRE = new RegExp(
+ /* Delay (1) */
+ "\\+(\\d+)|" +
+ /* Text input (2) */
+ "<(\\d+)|" +
+ /* Binary input (3, 4) */
+ "\\[(\\d+)/(\\d+)|" +
+ /* Text output (5) */
+ ">(\\d+)|" +
+ /* Binary output (6, 7) */
+ "\\](\\d+)/(\\d+)|" +
+ /* Window (8, 9) */
+ "=(\\d+)x(\\d+)|" +
+ /* End of string */
+ "$",
+ /* Continue after the last match only */
+ /* FIXME Support likely sparse */
+ "y"
+ );
+ /* List of matches to apply when loading the buffer from Journal */
+ this.matchList = matchList;
+ /*
+ * An array of two-element arrays (tuples) each containing a
+ * packet index and a deferred object. The list is kept sorted to
+ * have tuples with lower packet indices first. Once the buffer
+ * receives a packet at the specified index, the matching tuple is
+ * removed from the list, and its deferred object is resolved.
+ * This is used to keep users informed about packets arriving.
+ */
+ this.idxDfdList = [];
+ /* Last seen message ID */
+ this.id = 0;
+ /* Last seen time position */
+ this.pos = 0;
+ /* Last seen window width */
+ this.width = null;
+ /* Last seen window height */
+ this.height = null;
+ /* List of packets read */
+ this.pktList = [];
+ /* Error which stopped the loading */
+ this.error = null;
+ /* The journalctl reading the recording */
+ this.journalctl = Journal.journalctl(
+ this.matchList,
+ {count: "all", follow: false});
+ this.journalctl.fail(this.handleError);
+ this.journalctl.stream(this.handleStream);
+ this.journalctl.done(this.handleDone);
+ /*
+ * Last seen cursor of the first, non-follow, journalctl run.
+ * Null if no entry was received yet, or the second run has
+ * skipped the entry received last by the first run.
+ */
+ this.cursor = null;
+ /* True if the first, non-follow, journalctl run has completed */
+ this.done = false;
+ }
+
+ /*
+ * Return a promise which is resolved when a packet at a particular
+ * index is received by the buffer. The promise is rejected with a
+ * non-null argument if an error occurs or has occurred previously.
+ * The promise is rejected with null, when the buffer is stopped. If
+ * the packet index is not specified, assume it's the next packet.
+ */
+ awaitPacket(idx) {
+ let i;
+ let idxDfd;
+
+ /* If an error has occurred previously */
+ if (this.error !== null) {
+ /* Reject immediately */
+ return $.Deferred().reject(this.error).promise();
+ }
+
+ /* If the buffer was stopped */
+ if (this.journalctl === null) {
+ return $.Deferred().reject(null).promise();
+ }
+
+ /* If packet index is not specified */
+ if (idx === undefined) {
+ /* Assume it's the next one */
+ idx = this.pktList.length;
+ } else {
+ /* If it has already been received */
+ if (idx < this.pktList.length) {
+ /* Return resolved promise */
+ return $.Deferred().resolve().promise();
+ }
+ }
+
+ /* Try to find an existing, matching tuple */
+ for (i = 0; i < this.idxDfdList.length; i++) {
+ idxDfd = this.idxDfdList[i];
+ if (idxDfd[0] == idx) {
+ return idxDfd[1].promise();
+ } else if (idxDfd[0] > idx) {
+ break;
+ }
+ }
+
+ /* Not found, create and insert a new tuple */
+ idxDfd = [idx, $.Deferred()];
+ this.idxDfdList.splice(i, 0, idxDfd);
+
+ /* Return its promise */
+ return idxDfd[1].promise();
+ }
+
+ /*
+ * Return true if the buffer was done loading everything logged to
+ * journal so far and is now waiting for and loading new entries.
+ * Return false if the buffer is loading existing entries so far.
+ */
+ isDone() {
+ return this.done;
+ }
+
+ /*
+ * Stop receiving the entries
+ */
+ stop() {
+ if (this.journalctl === null) {
+ return;
+ }
+ /* Destroy journalctl */
+ this.journalctl.stop();
+ this.journalctl = null;
+ /* Notify everyone we stopped */
+ for (let i = 0; i < this.idxDfdList.length; i++) {
+ this.idxDfdList[i][1].reject(null);
+ }
+ this.idxDfdList = [];
+ }
+
+ /*
+ * Add a packet to the received packet list.
+ */
+ addPacket(pkt) {
+ /* TODO Validate the packet */
+ /* Add the packet */
+ this.pktList.push(pkt)
+ /* Notify any matching listeners */
+ while (this.idxDfdList.length > 0) {
+ let idxDfd = this.idxDfdList[0];
+ if (idxDfd[0] < this.pktList.length) {
+ this.idxDfdList.shift();
+ idxDfd[1].resolve();
+ } else {
+ break;
+ }
+ }
+ }
+
+ /*
+ * Handle an error.
+ */
+ handleError(error) {
+ /* Remember the error */
+ this.error = error;
+ /* Destroy journalctl, don't try to recover */
+ if (this.journalctl !== null) {
+ this.journalctl.stop();
+ this.journalctl = null;
+ }
+ /* Notify everyone we had an error */
+ for (let i = 0; i < this.idxDfdList.length; i++) {
+ this.idxDfdList[i][1].reject(error);
+ }
+ this.idxDfdList = [];
+ }
+
+ /*
+ * Parse packets out of a tlog message data and add them to the buffer.
+ */
+ parseMessageData(timing, in_txt, out_txt) {
+ let matches;
+ let in_txt_pos = 0;
+ let out_txt_pos = 0;
+ let t;
+ let x;
+ let y;
+ let s;
+ let io = [];
+ let is_output;
+
+ /* While matching entries in timing */
+ this.timingRE.lastIndex = 0;
+ for (;;) {
+ /* Match next timing entry */
+ matches = this.timingRE.exec(timing);
+ if (matches === null) {
+ throw "invalid timing string";
+ } else if (matches[0] == "") {
+ break;
+ }
+
+ /* Switch on entry type character */
+ switch (t = matches[0][0]) {
+ /* Delay */
+ case "+":
+ x = parseInt(matches[1], 10);
+ if (x == 0) {
+ break;
+ }
+ if (io.length > 0) {
+ this.addPacket({pos: this.pos,
+ is_io: true,
+ is_output: is_output,
+ io: io.join()});
+ io = [];
+ }
+ this.pos += x;
+ break;
+ /* Text or binary input */
+ case "<":
+ case "[":
+ x = parseInt(matches[(t == "<") ? 2 : 3], 10);
+ if (x == 0) {
+ break;
+ }
+ if (io.length > 0 && is_output) {
+ this.addPacket({pos: this.pos,
+ is_io: true,
+ is_output: is_output,
+ io: io.join()});
+ io = [];
+ }
+ is_output = false;
+ /* Add (replacement) input characters */
+ s = in_txt.slice(in_txt_pos, in_txt_pos += x);
+ if (s.length != x) {
+ throw("timing entry out of input bounds");
+ }
+ io.push(s);
+ break;
+ /* Text or binary output */
+ case ">":
+ case "]":
+ x = parseInt(matches[(t == ">") ? 5 : 6], 10);
+ if (x == 0) {
+ break;
+ }
+ if (io.length > 0 && !is_output) {
+ this.addPacket({pos: this.pos,
+ is_io: true,
+ is_output: is_output,
+ io: io.join()});
+ io = [];
+ }
+ is_output = true;
+ /* Add (replacement) output characters */
+ s = out_txt.slice(out_txt_pos, out_txt_pos += x);
+ if (s.length != x) {
+ throw("timing entry out of output bounds");
+ }
+ io.push(s);
+ break;
+ /* Window */
+ case "=":
+ x = parseInt(matches[8], 10);
+ y = parseInt(matches[9], 10);
+ if (x == this.width && y == this.height) {
+ break;
+ }
+ if (io.length > 0) {
+ this.addPacket({pos: this.pos,
+ is_io: true,
+ is_output: is_output,
+ io: io.join()});
+ io = [];
+ }
+ this.addPacket({pos: this.pos,
+ is_io: false,
+ width: x,
+ height: y});
+ this.width = x;
+ this.height = y;
+ break;
+ }
+ }
+
+ if (in_txt_pos < in_txt.length) {
+ throw "extra input present";
+ }
+ if (out_txt_pos < out_txt.length) {
+ throw "extra output present";
+ }
+
+ if (io.length > 0) {
+ this.addPacket({pos: this.pos,
+ is_io: true,
+ is_output: is_output,
+ io: io.join()});
+ }
+ }
+
+ /*
+ * Parse packets out of a tlog message and add them to the buffer.
+ */
+ parseMessage(message) {
+ let matches;
+ let ver;
+ let id;
+ let pos;
+
+ /* Check version */
+ ver = getValidField(message, "ver", "string");
+ matches = ver.match("^(\\d+)\\.(\\d+)$");
+ if (matches === null || matches[1] > 2) {
+ throw "\"ver\" field has invalid value: " + ver;
+ }
+
+ /* TODO Perhaps check host, rec, user, term, and session fields */
+
+ /* Extract message ID */
+ id = getValidField(message, "id", "number");
+ if (id <= this.id) {
+ throw "out of order \"id\" field value: " + id;
+ }
+
+ /* Extract message time position */
+ pos = getValidField(message, "pos", "number");
+ if (pos < this.message_pos) {
+ throw "out of order \"pos\" field value: " + pos;
+ }
+
+ /* Update last received message ID and time position */
+ this.id = id;
+ this.pos = pos;
+
+ /* Parse message data */
+ this.parseMessageData(
+ getValidField(message, "timing", "string"),
+ getValidField(message, "in_txt", "string"),
+ getValidField(message, "out_txt", "string"));
+ }
+
+ /*
+ * Handle journalctl "stream" event.
+ */
+ handleStream(entryList) {
+ let i;
+ let e;
+ for (i = 0; i < entryList.length; i++) {
+ e = entryList[i];
+ /* If this is the second, "follow", run */
+ if (this.done) {
+ /* Skip the last entry we added on the first run */
+ if (this.cursor !== null) {
+ this.cursor = null;
+ continue;
+ }
+ } else {
+ if (!('__CURSOR' in e)) {
+ this.handleError("No cursor in a Journal entry");
+ }
+ this.cursor = e['__CURSOR'];
+ }
+ /* TODO Refer to entry number/cursor in errors */
+ if (!('MESSAGE' in e)) {
+ this.handleError("No message in Journal entry");
+ }
+ /* Parse the entry message */
+ try {
+ this.parseMessage(JSON.parse(e['MESSAGE']));
+ } catch (error) {
+ this.handleError(error);
+ return;
+ }
+ }
+ }
+
+ /*
+ * Handle journalctl "done" event.
+ */
+ handleDone() {
+ this.done = true;
+ this.journalctl.stop();
+ /* Continue with the "following" run */
+ this.journalctl = Journal.journalctl(
+ this.matchList,
+ {cursor: this.cursor,
+ follow: true, count: "all"});
+ this.journalctl.fail(this.handleError);
+ this.journalctl.stream(this.handleStream);
+ /* NOTE: no "done" handler on purpose */
+ }
+ };
+
+ let Player = class extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.handleTimeout = this.handleTimeout.bind(this);
+ this.handlePacket = this.handlePacket.bind(this);
+ this.handleError = this.handleError.bind(this);
+ this.handleTitleChange = this.handleTitleChange.bind(this);
+ this.rewindToStart = this.rewindToStart.bind(this);
+ this.playPauseToggle = this.playPauseToggle.bind(this);
+ this.speedUp = this.speedUp.bind(this);
+ this.speedDown = this.speedDown.bind(this);
+ this.speedReset = this.speedReset.bind(this);
+ this.fastForwardToEnd = this.fastForwardToEnd.bind(this);
+ this.skipFrame = this.skipFrame.bind(this);
+ this.handleKeyDown = this.handleKeyDown.bind(this);
+ this.sync = this.sync.bind(this);
+
+ this.state = {
+ cols: 80,
+ rows: 25,
+ title: _("Player"),
+ term: null,
+ paused: true,
+ /* Speed exponent */
+ speedExp: 0,
+ containerWidth: 630,
+ scale: 1
+ };
+
+ this.containerHeight = 290;
+
+ /* Auto-loading buffer of recording's packets */
+ this.buf = new PacketBuffer(this.props.matchList);
+
+ /* Current recording time, ms */
+ this.recTS = 0;
+ /* Corresponding local time, ms */
+ this.locTS = 0;
+
+ /* Index of the current packet */
+ this.pktIdx = 0;
+ /* Current packet, or null if not retrieved */
+ this.pkt = null;
+ /* Timeout ID of the current packet, null if none */
+ this.timeout = null;
+
+ /* True if the next packet should be output without delay */
+ this.skip = false;
+ /* Playback speed */
+ this.speed = 1;
+ /*
+ * Timestamp playback should fast-forward to.
+ * Recording time, ms, or null if not fast-forwarding.
+ */
+ this.fastForwardTo = null;
+ }
+
+ reset() {
+ /* Clear any pending timeouts */
+ this.clearTimeout();
+
+ /* Reset the terminal */
+ this.state.term.reset();
+
+ /* Move to beginning of buffer */
+ this.pktIdx = 0;
+ /* No packet loaded */
+ this.pkt = null;
+
+ /* We are not skipping */
+ this.skip = false;
+ /* We are not fast-forwarding */
+ this.fastForwardTo = null;
+
+ /* Move to beginning of recording */
+ this.recTS = 0;
+ /* Start the playback time */
+ this.locTS = performance.now();
+
+ /* Wait for the first packet */
+ this.awaitPacket(0);
+ }
+
+ componentWillMount() {
+ let term = new Term({
+ cols: this.state.cols,
+ rows: this.state.rows,
+ screenKeys: true,
+ useStyle: true
+ });
+
+ term.on('title', this.handleTitleChange);
+
+ this.setState({ term: term });
+
+ window.addEventListener("keydown", this.handleKeyDown, false);
+ }
+
+ componentDidMount() {
+ if (this.refs.wrapper.offsetWidth) {
+ this.setState({containerWidth: this.refs.wrapper.offsetWidth});
+ }
+ /* Open the terminal */
+ this.state.term.open(this.refs.term);
+ /* Reset playback */
+ this.reset();
+ }
+
+ /* Subscribe for a packet at specified index */
+ awaitPacket(idx) {
+ this.buf.awaitPacket(idx).done(this.handlePacket).
+ fail(this.handleError);
+ }
+
+ /* Set next packet timeout, ms */
+ setTimeout(ms) {
+ this.timeout = window.setTimeout(this.handleTimeout, ms);
+ }
+
+ /* Clear next packet timeout */
+ clearTimeout() {
+ if (this.timeout !== null) {
+ window.clearTimeout(this.timeout);
+ this.timeout = null;
+ }
+ }
+
+ /* Handle packet retrieval error */
+ handleError(error) {
+ if (error !== null) {
+ console.warn(error);
+ }
+ }
+
+ /* Handle packet retrieval success */
+ handlePacket() {
+ this.sync();
+ }
+
+ /* Handle arrival of packet output time */
+ handleTimeout() {
+ this.timeout = null;
+ this.sync();
+ }
+
+ /* Handle terminal title change */
+ handleTitleChange(title) {
+ this.setState({ title: _("Player") + ": " + title });
+ }
+
+ _transform(width, height) {
+ var relation = Math.min(
+ this.state.containerWidth / this.state.term.element.offsetWidth,
+ this.containerHeight / this.state.term.element.offsetHeight
+ );
+ this.setState({
+ scale: relation,
+ cols: width,
+ rows: height
+ });
+ }
+
+ /* Synchronize playback */
+ sync() {
+ let locDelay;
+
+ /* We are already called, don't call us with timeout */
+ this.clearTimeout();
+
+ /* Forever */
+ for (;;) {
+ /* Get another packet to output, if none */
+ for (; this.pkt === null; this.pktIdx++) {
+ let pkt = this.buf.pktList[this.pktIdx];
+ /* If there are no more packets */
+ if (pkt === undefined) {
+ /*
+ * If we're done loading existing packets and we were
+ * fast-forwarding.
+ */
+ if (this.fastForwardTo != null && this.buf.isDone()) {
+ /* Stop fast-forwarding */
+ this.fastForwardTo = null;
+ }
+ /* Call us when we get one */
+ this.awaitPacket();
+ return;
+ }
+
+ /* Skip packets we don't output */
+ if (pkt.is_io && !pkt.is_output) {
+ continue;
+ }
+
+ this.pkt = pkt;
+ }
+
+ /* Get the current local time */
+ let nowLocTS = performance.now();
+
+ /* Ignore the passed time, if we're paused */
+ if (this.state.paused) {
+ locDelay = 0;
+ } else {
+ locDelay = nowLocTS - this.locTS;
+ }
+
+ /* Sync to the local time */
+ this.locTS = nowLocTS;
+
+ /* If we are skipping one packet's delay */
+ if (this.skip) {
+ this.skip = false;
+ this.recTS = this.pkt.pos;
+ /* Else, if we are fast-forwarding */
+ } else if (this.fastForwardTo !== null) {
+ /* If we haven't reached fast-forward destination */
+ if (this.pkt.pos < this.fastForwardTo) {
+ this.recTS = this.pkt.pos;
+ } else {
+ this.recTS = this.fastForwardTo;
+ this.fastForwardTo = null;
+ continue;
+ }
+ /* Else, if we are paused */
+ } else if (this.state.paused) {
+ return;
+ } else {
+ this.recTS += locDelay * this.speed;
+ let pktRecDelay = this.pkt.pos - this.recTS;
+ let pktLocDelay = pktRecDelay / this.speed;
+ /* If we're more than 5 ms early for this packet */
+ if (pktLocDelay > 5) {
+ /* Call us again on time, later */
+ this.setTimeout(pktLocDelay);
+ return;
+ }
+ }
+
+ /* Output the packet */
+ if (this.pkt.is_io) {
+ this.state.term.write(this.pkt.io);
+ } else {
+ this.state.term.resize(this.pkt.width, this.pkt.height);
+ this._transform(this.pkt.width, this.pkt.height);
+ }
+
+ /* We no longer have a packet */
+ this.pkt = null;
+ }
+ }
+
+ playPauseToggle() {
+ this.setState({paused: !this.state.paused});
+ }
+
+ speedUp() {
+ let speedExp = this.state.speedExp;
+ if (speedExp < 4) {
+ this.setState({speedExp: speedExp + 1});
+ }
+ }
+
+ speedDown() {
+ let speedExp = this.state.speedExp;
+ if (speedExp > -4) {
+ this.setState({speedExp: speedExp - 1});
+ }
+ }
+
+ speedReset() {
+ this.setState({speedExp: 0});
+ }
+
+ rewindToStart() {
+ this.reset();
+ this.sync();
+ }
+
+ fastForwardToEnd() {
+ this.fastForwardTo = Infinity;
+ this.sync();
+ }
+
+ skipFrame() {
+ this.skip = true;
+ this.sync();
+ }
+
+ handleKeyDown(event) {
+ let keyCodesFuncs = {
+ "p": this.playPauseToggle,
+ "}": this.speedUp,
+ "{": this.speedDown,
+ "Backspace": this.speedReset,
+ ".": this.skipFrame,
+ "G": this.fastForwardToEnd,
+ "R": this.rewindToStart,
+ };
+ if (keyCodesFuncs[event.key]) {
+ (keyCodesFuncs[event.key](event));
+ }
+ }
+
+ componentWillUpdate(nextProps, nextState) {
+ /* If we changed pause state or speed exponent */
+ if (nextState.paused != this.state.paused ||
+ nextState.speedExp != this.state.speedExp) {
+ this.sync();
+ }
+ }
+
+ componentDidUpdate(prevProps, prevState) {
+ /* If we changed pause state or speed exponent */
+ if (this.state.paused != prevState.paused ||
+ this.state.speedExp != prevState.speedExp) {
+ this.speed = Math.pow(2, this.state.speedExp);
+ this.sync();
+ }
+ }
+
+ render() {
+ let speedExp = this.state.speedExp;
+ let speedFactor = Math.pow(2, Math.abs(speedExp));
+ let speedStr;
+
+ if (speedExp > 0) {
+ speedStr = "x" + speedFactor;
+ } else if (speedExp < 0) {
+ speedStr = "/" + speedFactor;
+ } else {
+ speedStr = "";
+ }
+
+ const style = {
+ "transform": "scale(" + this.state.scale + ") translate(-50%, -50%)",
+ "transform-origin": "top left",
+ "display": "inline-block",
+ "margin": "0 auto",
+ "position": "absolute",
+ "top": "50%",
+ "left": "50%",
+ };
+
+ const scrollwrap = {
+ "min-width": "630px",
+ "height": this.containerHeight + "px",
+ "background-color": "#f5f5f5",
+ "overflow": "hidden",
+ "position": "relative",
+ };
+
+ // ensure react never reuses this div by keying it with the terminal widget
+ return (
+
+
+ {this.state.title}
+
+
+
+
+
+
+
+
+
+
+ {speedStr}
+
+
+ );
+ }
+
+ componentWillUnmount() {
+ this.buf.stop();
+ window.removeEventListener("keydown", this.handleKeyDown, false);
+ this.state.term.destroy();
+ }
+ };
+
+ Player.propTypes = {
+ matchList: React.PropTypes.array,
+ onTitleChanged: React.PropTypes.func
+ };
+
+ module.exports = { Player: Player };
+}());
diff --git a/pkg/session_recording/recordings.css b/pkg/session_recording/recordings.css
new file mode 100644
index 000000000000..e8f300f7bfa4
--- /dev/null
+++ b/pkg/session_recording/recordings.css
@@ -0,0 +1,359 @@
+@import "/page.css";
+
+@import "/console.css";
+@import "/journal.css";
+@import "/plot.css";
+@import "/table.css";
+
+@import "./timer.css";
+
+a.disabled {
+ text-decoration: none;
+ pointer-events: none;
+ cursor: default;
+ color: #000;
+}
+
+.popover {
+ max-width: none;
+ white-space: nowrap;
+}
+
+.systime-inline form .pficon-close,
+.systime-inline form .fa-plus {
+ height: 26px;
+ width: 26px;
+ padding: 4px;
+ float: right;
+ margin-left: 5px;
+}
+
+.systime-inline .form-inline {
+ background: #f4f4f4;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ border-color: #bababa;
+ padding: 4px;
+}
+
+.systime-inline .form-inline:first-of-type {
+ border-top: 1px solid #bababa;
+}
+
+.systime-inline .form-control {
+ margin: 0 4px;
+}
+
+.systime-inline .form-group:first-of-type .form-control {
+ margin: 0 4px 0 0;
+}
+
+.systime-inline .form-group .form-control {
+ width: 214px;
+}
+
+/* Make sure error message don't overflow the dialog */
+
+.realms-op-diagnostics {
+ max-width: 550px;
+ text-align: left;
+ max-height: 200px;
+}
+
+.realms-op-wait-message {
+ margin-left: 10px;
+ float: left;
+ margin-top: 3px;
+}
+
+.realms-op-address-spinner {
+ margin-left: -30px;
+ margin-top: 2px;
+}
+
+.realms-op-address-error {
+ margin-left: -30px;
+ margin-top: 2px;
+ color: red;
+}
+
+.realms-op-zero-width {
+ width: 0px;
+}
+
+.realms-op-error {
+ text-align: left;
+ font-weight: bold;
+ overflow: auto;
+ max-width: 550px;
+ max-height: 200px;
+}
+
+/* Other styles */
+
+.fa-red {
+ color: red;
+}
+
+.small-messages {
+ font-size: smaller;
+}
+
+#server-graph-toolbar .dropdown {
+ display: inline-block;
+}
+
+#server-graph-toolbar .dropdown-toggle span {
+ width: 6em;
+ text-align: left;
+ padding-left: 5px;
+ display: inline-block;
+}
+
+.server-graph {
+ height: 120px;
+}
+
+.server-graph-legend {
+ list-style-type: none;
+ padding: 30px 40px;
+ float: right;
+}
+
+.server-graph-legend i {
+ padding-right: 3px;
+ font-size: 14px;
+}
+
+.server-graph-legend .cpu-io-wait i {
+ color: #e41a1c;
+}
+
+.server-graph-legend .cpu-kernel i {
+ color: #ff7f00;
+}
+
+.server-graph-legend .cpu-user i {
+ color: #377eb8;
+}
+
+.server-graph-legend .cpu-nice i {
+ color: #4daf4a;
+}
+
+.server-graph-legend .memory-swap i {
+ color: #e41a1c;
+}
+
+.server-graph-legend .memory-cached i {
+ color: #ff7f00;
+}
+
+.server-graph-legend .memory-used i {
+ color: #377eb8;
+}
+
+.server-graph-legend .memory-free i {
+ color: #4daf4a;
+}
+
+#cpu_status_graph,
+#memory_status_graph {
+ height: 400px;
+ padding: 20px;
+}
+
+#sich-note-1,
+#sich-note-2 {
+ margin: 0;
+}
+#shutdown-dialog td {
+ padding-right: 20px;
+ vertical-align: top;
+}
+
+#shutdown-dialog .opt {
+ padding: 1px 10px;
+}
+
+#shutdown-dialog .dropdown {
+ min-width: 150px;
+}
+
+#shutdown-group {
+ overflow: visible;
+}
+
+#shutdown-dialog textarea {
+ resize: none;
+ margin-bottom: 10px;
+}
+
+#shutdown-dialog input {
+ display: inline;
+ width: 10em;
+}
+
+#shutdown-dialog .shutdown-hours,
+#shutdown-dialog .shutdown-minutes {
+ width: 3em;
+}
+
+#system_information_ssh_keys .list-group-item {
+ cursor: auto;
+}
+
+#system_information_hardware_text,
+#system_information_os_text {
+ overflow: visible;
+ white-space: normal;
+ word-wrap: break-word;
+}
+
+@media (min-width: 500px) {
+ .cockpit-modal-md {
+ width: 400px;
+ }
+}
+
+/* Make sure to not break log message lines in order to preserve information */
+#journal-entry .info-table-ct td {
+ white-space: normal;
+ word-break: break-all;
+}
+
+.service-unit-description {
+ font-weight: bold;
+}
+
+.service-unit-data {
+ text-align: right;
+ white-space: nowrap;
+}
+
+.service-unit-failed {
+ color: red;
+}
+
+.service-action-btn ul {
+ right: 0px;
+ left: auto;
+ min-width: 0;
+ text-align: left;
+}
+
+.service-panel td:first-child {
+ text-align: left;
+}
+
+.service-panel span {
+ font-weight: bold;
+}
+
+.service-panel td:last-child {
+ text-align: right;
+}
+
+.service-panel table {
+ width: 100%;
+}
+
+#services > .container-fluid {
+ margin-top: 5em;
+}
+
+.service-template input {
+ width: 50em;
+}
+
+#journal-current-day-menu dropdown-toggle {
+ padding-left: 10px;
+}
+
+#journal-box {
+ margin-top: 5em;
+}
+
+#journal-entry-message {
+ margin: 10px;
+}
+
+#journal-entry-fields {
+ margin-bottom: 10px;
+}
+
+/* Extra content header */
+
+.content-header-extra {
+ background: #f5f5f5;
+ border-bottom: 1px solid #ddd;
+ padding: 10px 20px;
+ width: 100%;
+ position: fixed;
+ z-index: 900;
+ top: 0;
+}
+
+.content-header-extra .btn-group:not(:first-child) {
+ padding-left: 20px;
+}
+
+#motd {
+ background-color: transparent;
+ border: none;
+ font-size: 14px;
+ padding: 0px;
+ margin: 0px;
+ white-space: pre-wrap;
+}
+
+.listing > tbody > tr {
+ cursor: pointer;
+}
+
+.margin-right-btn {
+ margin-right: 10px;
+}
+
+.play-btn {
+ min-width: 34px;
+}
+
+.sort {
+ cursor: pointer;
+}
+
+.sort span {
+ text-decoration: underline;
+}
+
+.sort-icon {
+ width:7px;
+ display:inline-block;
+}
+
+table.listing-ct > thead th:last-child, tr.listing-ct-item td:last-child {
+ text-align: left !important;
+}
+
+.date {
+ width: 185px;
+}
+
+.invalid {
+ background-color: #ffdddd;
+}
+
+.valid {
+ background-color: #ffffff;
+}
+
+.player-wrap {
+ min-width: 672px;
+ height: auto;
+ overflow: hidden;
+}
+
+.player-wrap .panel-body, .player-wrap .console-ct > .terminal {
+ padding: 0;
+}
diff --git a/pkg/session_recording/recordings.jsx b/pkg/session_recording/recordings.jsx
new file mode 100644
index 000000000000..0278699476ae
--- /dev/null
+++ b/pkg/session_recording/recordings.jsx
@@ -0,0 +1,851 @@
+/*
+ * This file is part of Cockpit.
+ *
+ * Copyright (C) 2017 Red Hat, Inc.
+ *
+ * Cockpit is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * Cockpit is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Cockpit; If not, see .
+ */
+
+(function() {
+ "use strict";
+
+ let $ = require("jquery");
+ let cockpit = require("cockpit");
+ let _ = cockpit.gettext;
+ let moment = require("moment");
+ let Journal = require("journal");
+ let React = require("react");
+ let Listing = require("cockpit-components-listing.jsx");
+ let Player = require("./player.jsx");
+
+ require("bootstrap-datetime-picker/js/bootstrap-datetimepicker.js");
+ require("bootstrap-datetime-picker/css/bootstrap-datetimepicker.css");
+
+ /*
+ * Convert a number to integer number string and pad with zeroes to
+ * specified width.
+ */
+ let padInt = function (n, w) {
+ let i = Math.floor(n);
+ let a = Math.abs(i);
+ let s = a.toString();
+ for (w -= s.length; w > 0; w--) {
+ s = '0' + s;
+ }
+ return ((i < 0) ? '-' : '') + s;
+ }
+
+ /*
+ * Format date and time for a number of milliseconds since Epoch.
+ */
+ let formatDateTime = function (ms) {
+ let d = new Date(ms);
+ return (
+ padInt(d.getFullYear(), 4) + '-' +
+ padInt(d.getMonth() + 1, 2) + '-' +
+ padInt(d.getDate(), 2) + ' ' +
+ padInt(d.getHours(), 2) + ':' +
+ padInt(d.getMinutes(), 2) + ':' +
+ padInt(d.getSeconds(), 2)
+ );
+ };
+
+ /*
+ * Format a time interval from a number of milliseconds.
+ */
+ let formatDuration = function (ms) {
+ let v = Math.floor(ms / 1000);
+ let s = Math.floor(v % 60);
+ v = Math.floor(v / 60);
+ let m = Math.floor(v % 60);
+ v = Math.floor(v / 60);
+ let h = Math.floor(v % 24);
+ let d = Math.floor(v / 24);
+ let str = '';
+
+ if (d > 0) {
+ str += d + ' ' + _("days") + ' ';
+ }
+
+ if (h > 0 || str.length > 0) {
+ str += padInt(h, 2) + ':';
+ }
+
+ str += padInt(m, 2) + ':' + padInt(s, 2);
+
+ return (ms < 0 ? '-' : '') + str;
+ };
+
+ let parseDate = function(date) {
+ let regex = new RegExp(/^\s*(\d\d\d\d-\d\d-\d\d)(\s+(\d\d:\d\d(:\d\d)?))?\s*$/);
+
+ let captures = regex.exec(date);
+
+ if (captures != null)
+ {
+ let date = captures[1];
+ if (captures[3]) {
+ date = date + " " + captures[3];
+ }
+ if (moment(date, ["YYYY-M-D H:m:s", "YYYY-M-D H:m", "YYYY-M-D"], true).isValid()) {
+ return date;
+ }
+ }
+
+ if (date === "" || date === null) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /*
+ * A component representing a date & time picker based on bootstrap-datetime-picker.
+ * Requires jQuery, bootstrap-datetime-picker, moment.js
+ * Properties:
+ * - onDateChange: function to call on date change event of datepicker.
+ * - date: variable to pass which will be used as initial value.
+ */
+ let Datetimepicker = class extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleDateChange = this.handleDateChange.bind(this);
+ this.clearField = this.clearField.bind(this);
+ this.markDateField = this.markDateField.bind(this);
+ this.state = {
+ invalid: false,
+ date: this.props.date,
+ dateLastValid: null,
+ };
+ }
+
+ componentDidMount() {
+ let funcDate = this.handleDateChange;
+ let datepicker = $(this.refs.datepicker).datetimepicker({
+ format: 'yyyy-mm-dd hh:ii:00',
+ autoclose: true,
+ todayBtn: true,
+ });
+ datepicker.on('changeDate', function(e) {
+ funcDate(e);
+ });
+ $(this.refs.datepicker_input).datetimepicker('remove');
+ this.markDateField();
+ }
+
+ componentWillUnmount() {
+ $(this.textInput).datetimepicker('remove');
+ }
+
+ handleDateChange(e) {
+ if (e.type === "changeDate") {
+ let event = new Event('input', { bubbles: true });
+ e.currentTarget.firstChild.dispatchEvent(event);
+ }
+
+ if (e.type === "input") {
+ this.setState({date: e.target.value});
+ if (parseDate(e.target.value)) {
+ this.setState({dateLastValid: e.target.value});
+ this.setState({invalid: false});
+ this.props.onDateChange(e.target.value, e.target.value.trim());
+ } else {
+ this.setState({invalid: true});
+ this.props.onDateChange(e.target.value, this.state.dateLastValid.trim());
+ }
+ }
+ }
+
+ clearField() {
+ $(this.refs.datepicker_input).val("");
+ let event = new Event('input', { bubbles: true });
+ this.refs.datepicker_input.dispatchEvent(event);
+ this.handleDateChange(event);
+ this.setState({invalid: false});
+ }
+
+ markDateField() {
+ let date = $(this.refs.datepicker_input).val().trim();
+ if (!parseDate(date)) {
+ this.setState({invalid: true});
+ } else {
+ this.setState({dateLastValid: date});
+ this.setState({invalid: false});
+ }
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+ );
+ }
+ }
+
+ /*
+ * A component representing a username input text field.
+ * TODO make as a select / drop-down with list of exisiting users.
+ */
+ let UserPicker = class extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleUsernameChange = this.handleUsernameChange.bind(this);
+ }
+
+ handleUsernameChange(e) {
+ this.props.onUsernameChange(e.target.value);
+ }
+
+ render() {
+ return (
+
+
+
+ );
+ }
+ }
+
+ let HostnamePicker = class extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleHostnameChange = this.handleHostnameChange.bind(this);
+ }
+
+ handleHostnameChange(e) {
+ this.props.onHostnameChange(e.target.value);
+ }
+
+ render() {
+ return (
+
+
+
+ );
+ }
+ }
+
+ /*
+ * A component representing a single recording view.
+ * Properties:
+ * - recording: either null for no recording data available yet, or a
+ * recording object, as created by the View below.
+ */
+ let Recording = class extends React.Component {
+ constructor(props) {
+ super(props);
+ this.goBackToList = this.goBackToList.bind(this);
+ this.getHostname = this.getHostname.bind(this);
+ this.Hostname = this.Hostname.bind(this);
+ this.hostname = null;
+ }
+
+ goBackToList() {
+ if (cockpit.location.path[0]) {
+ cockpit.location.go([], cockpit.location.options);
+ } else {
+ cockpit.location.go('/');
+ }
+ }
+
+ getHostname() {
+ cockpit.spawn(["hostname"], { err: "ignore" })
+ .done(function(output) {
+ this.hostname = $.trim(output);
+ })
+ .fail(function(ex) {
+ console.log(ex);
+ });
+ }
+
+ Hostname(props) {
+ let style = {
+ display: "none"
+ };
+ if (this.hostname != null && this.hostname != props.hostname) {
+ style = {};
+ }
+ return (
+
+ {_("Hostname")} |
+ {props.hostname} |
+
+ );
+ }
+
+ componentWillMount() {
+ this.getHostname();
+ }
+
+ render() {
+ let r = this.props.recording;
+ if (r == null) {
+ return Loading...;
+ } else {
+ let player =
+ ();
+
+ return (
+
+
+
+
+
+
+ {_("Recording")}
+
+
+
+
+ {_("ID")} |
+ {r.id} |
+
+
+
+ {_("Boot ID")} |
+ {r.boot_id} |
+
+
+ {_("Session ID")} |
+ {r.session_id} |
+
+
+ {_("PID")} |
+ {r.pid} |
+
+
+ {_("Start")} |
+ {formatDateTime(r.start)} |
+
+
+ {_("End")} |
+ {formatDateTime(r.end)} |
+
+
+ {_("Duration")} |
+ {formatDuration(r.end - r.start)} |
+
+
+ {_("User")} |
+ {r.user} |
+
+
+
+
+
+
+ {player}
+
+
+
+ );
+ }
+ }
+ };
+
+ /*
+ * A component representing a list of recordings.
+ * Properties:
+ * - list: an array with recording objects, as created by the View below
+ */
+ let RecordingList = class extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleColumnClick = this.handleColumnClick.bind(this);
+ this.getSortedList = this.getSortedList.bind(this);
+ this.drawSortDir = this.drawSortDir.bind(this);
+ this.getColumnTitles = this.getColumnTitles.bind(this);
+ this.getColumns = this.getColumns.bind(this);
+ this.state = {
+ sorting_field: "start",
+ sorting_asc: true,
+ };
+ }
+
+ drawSortDir() {
+ $('#sort_arrow').remove();
+ let type = this.state.sorting_asc ? "asc" : "desc";
+ let arrow = '';
+ $(this.refs[this.state.sorting_field]).append(arrow);
+ }
+
+ handleColumnClick(event) {
+ if(this.state.sorting_field === event.currentTarget.id) {
+ this.setState({sorting_asc: !this.state.sorting_asc});
+ }
+ else {
+ this.setState({
+ sorting_field: event.currentTarget.id,
+ sorting_asc: 'asc'
+ });
+ }
+ }
+
+ getSortedList() {
+ let field = this.state.sorting_field;
+ let asc = this.state.sorting_asc;
+ let list = this.props.list.slice();
+
+ if (this.state.sorting_field != null) {
+ if (asc) {
+ list.sort(function(a, b) {
+ return a[field] > b[field];
+ });
+ } else {
+ list.sort(function(a, b) {
+ return a[field] < b[field];
+ });
+ }
+ }
+
+ return list;
+ }
+
+ /*
+ * Set the cockpit location to point to the specified recording.
+ */
+ navigateToRecording(recording) {
+ cockpit.location.go([recording.id], cockpit.location.options);
+ }
+
+ componentDidUpdate() {
+ this.drawSortDir();
+ }
+
+ getColumnTitles() {
+ let columnTitles = [
+ (),
+ (),
+ (),
+ (),
+ ];
+ if (this.props.diff_hosts === true) {
+ columnTitles.push(());
+ }
+ return columnTitles;
+ }
+
+ getColumns(r) {
+ let columns = [r.user,
+ formatDateTime(r.start),
+ formatDateTime(r.end),
+ formatDuration(r.end - r.start)]
+ if (this.props.diff_hosts === true) {
+ columns.push(r.hostname);
+ }
+ return columns;
+ }
+
+ render() {
+ let columnTitles = this.getColumnTitles();
+
+ let list = this.getSortedList();
+ let rows = [];
+
+
+
+ for (let i = 0; i < list.length; i++) {
+ let r = list[i];
+ let columns = this.getColumns(r);
+
+ rows.push();
+ }
+ return (
+
+
+
+
+ |
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+ {rows}
+
+
+ );
+ }
+ };
+
+ /*
+ * A component representing the view upon a list of recordings, or a
+ * single recording. Extracts the ID of the recording to display from
+ * cockpit.location.path[0]. If it's zero, displays the list.
+ */
+ let View = class extends React.Component {
+ constructor(props) {
+ super(props);
+ this.onLocationChanged = this.onLocationChanged.bind(this);
+ this.journalctlIngest = this.journalctlIngest.bind(this);
+ this.handleDateSinceChange = this.handleDateSinceChange.bind(this);
+ this.handleDateUntilChange = this.handleDateUntilChange.bind(this);
+ this.handleUsernameChange = this.handleUsernameChange.bind(this);
+ this.handleHostnameChange = this.handleHostnameChange.bind(this);
+ /* Journalctl instance */
+ this.journalctl = null;
+ /* Recording ID journalctl instance is invoked with */
+ this.journalctlRecordingID = null;
+ /* Recording ID -> data map */
+ this.recordingMap = {};
+ /* tlog UID in system set in ComponentDidMount */
+ this.uid = null;
+ this.state = {
+ /* List of recordings in start order */
+ recordingList: [],
+ /* ID of the recording to display, or null for all */
+ recordingID: cockpit.location.path[0] || null,
+ dateSince: cockpit.location.options.dateSince || null,
+ dateSinceLastValid: null,
+ dateUntil: cockpit.location.options.dateUntil || null,
+ dateUntilLastValid: null,
+ /* value to filter recordings by username */
+ username: cockpit.location.options.username || null,
+ hostname: cockpit.location.options.hostname || null,
+ error_tlog_uid: false,
+ diff_hosts: false,
+ }
+ }
+
+ /*
+ * Display a journalctl error
+ */
+ journalctlError(error) {
+ console.warn(cockpit.message(error));
+ }
+
+ /*
+ * Respond to cockpit location change by extracting and setting the
+ * displayed recording ID.
+ */
+ onLocationChanged() {
+ this.setState({
+ recordingID: cockpit.location.path[0] || null,
+ dateSince: cockpit.location.options.dateSince || null,
+ dateUntil: cockpit.location.options.dateUntil || null,
+ username: cockpit.location.options.username || null,
+ hostname: cockpit.location.options.hostname || null,
+ });
+ }
+
+ /*
+ * Ingest journal entries sent by journalctl.
+ */
+ journalctlIngest(entryList) {
+ let recordingList = this.state.recordingList.slice();
+ let i;
+ let j;
+ let hostname;
+
+ if (entryList[0]) {
+ if (entryList[0]["_HOSTNAME"]) {
+ hostname = entryList[0]["_HOSTNAME"];
+ }
+ }
+
+ for (i = 0; i < entryList.length; i++) {
+ let e = entryList[i];
+ let id = e['TLOG_REC'];
+
+ /* Skip entries with missing recording ID */
+ if (id === undefined) {
+ continue;
+ }
+
+ let ts = Math.floor(
+ parseInt(e["__REALTIME_TIMESTAMP"], 10) /
+ 1000);
+
+ let r = this.recordingMap[id];
+ /* If no recording found */
+ if (r === undefined) {
+ /* Create new recording */
+ if (hostname != e["_HOSTNAME"]) {
+ this.setState({diff_hosts: true});
+ }
+
+ r = {id: id,
+ matchList: ["_UID=" + this.uid,
+ "TLOG_REC=" + id],
+ user: e["TLOG_USER"],
+ boot_id: e["_BOOT_ID"],
+ hostname: e["_HOSTNAME"],
+ session_id: parseInt(e["TLOG_SESSION"], 10),
+ pid: parseInt(e["_PID"], 10),
+ start: ts,
+ /* FIXME Should be start + message duration */
+ end: ts,
+ duration: 0};
+ /* Map the recording */
+ this.recordingMap[id] = r;
+ /* Insert the recording in order */
+ for (j = recordingList.length - 1;
+ j >= 0 && r.start < recordingList[j].start;
+ j--);
+ recordingList.splice(j + 1, 0, r);
+ } else {
+ /* Adjust existing recording */
+ if (ts > r.end) {
+ r.end = ts;
+ r.duration = r.end - r.start;
+ }
+ if (ts < r.start) {
+ r.start = ts;
+ r.duration = r.end - r.start;
+ /* Find the recording in the list */
+ for (j = recordingList.length - 1;
+ j >= 0 && recordingList[j] != r;
+ j--);
+ /* If found */
+ if (j >= 0) {
+ /* Remove */
+ recordingList.splice(j, 1);
+ }
+ /* Insert the recording in order */
+ for (j = recordingList.length - 1;
+ j >= 0 && r.start < recordingList[j].start;
+ j--);
+ recordingList.splice(j + 1, 0, r);
+ }
+ }
+ }
+
+ this.setState({recordingList: recordingList});
+ }
+
+ /*
+ * Start journalctl, retrieving entries for the current recording ID.
+ * Assumes journalctl is not running.
+ */
+ journalctlStart() {
+ let matches = ["_UID=" + this.uid];
+ if (this.state.username) {
+ matches.push("TLOG_USER=" + this.state.username);
+ }
+ if (this.state.hostname && this.state.hostname != null &&
+ this.state.hostname != "") {
+ matches.push("_HOSTNAME=" + this.state.hostname);
+ }
+
+ let options = {follow: true, count: "all"};
+
+ if (this.state.dateSinceLastValid) {
+ options['since'] = this.state.dateSinceLastValid;
+ }
+
+ if (this.state.dateUntil) {
+ options['until'] = this.state.dateUntilLastValid;
+ }
+
+ if (this.state.recordingID !== null) {
+ matches.push("TLOG_REC=" + this.state.recordingID);
+ }
+
+ this.journalctlRecordingID = this.state.recordingID;
+ this.journalctl = Journal.journalctl(matches, options).
+ fail(this.journalctlError).
+ stream(this.journalctlIngest);
+ }
+
+ /*
+ * Check if journalctl is running.
+ */
+ journalctlIsRunning() {
+ return this.journalctl != null;
+ }
+
+ /*
+ * Stop current journalctl.
+ * Assumes journalctl is running.
+ */
+ journalctlStop() {
+ this.journalctl.stop();
+ this.journalctl = null;
+ }
+
+ /*
+ * Restarts journalctl.
+ * Will stop journalctl if it's running.
+ */
+ journalctlRestart() {
+ if (this.journalctlIsRunning()) {
+ this.journalctl.stop();
+ }
+ this.journalctlStart();
+ }
+
+ /*
+ * Clears previous recordings list.
+ * Will clear service obj recordingMap and state.
+ */
+ clearRecordings() {
+ this.recordingMap = {};
+ this.setState({recordingList: []});
+ }
+
+ handleDateSinceChange(date, last_valid) {
+ this.setState({dateSinceLastValid: last_valid});
+ cockpit.location.go([], $.extend(cockpit.location.options, { dateSince: date }));
+ }
+
+ handleDateUntilChange(date, last_valid) {
+ this.setState({dateUntilLastValid: last_valid});
+ cockpit.location.go([], $.extend(cockpit.location.options, { dateUntil: date }));
+ }
+
+ handleUsernameChange(username) {
+ cockpit.location.go([], $.extend(cockpit.location.options, { username: username }));
+ }
+
+ handleHostnameChange(hostname) {
+ cockpit.location.go([], $.extend(cockpit.location.options, { hostname: hostname }));
+ }
+
+ componentDidMount() {
+ let proc = cockpit.spawn(["getent", "passwd", "tlog"]);
+
+ proc.stream((data) => {
+ this.uid = data.split(":",3)[2];
+ this.journalctlStart();
+ proc.close();
+ });
+
+ proc.fail(() => {
+ this.setState({error_tlog_uid: true});
+ });
+
+ let dateSince = parseDate(this.state.dateSince);
+
+ if (dateSince && dateSince != true) {
+ this.setState({dateSinceLastValid: dateSince});
+ }
+
+ let dateUntil = parseDate(this.state.dateUntil);
+
+ if (dateUntil && dateUntil != true) {
+ this.setState({dateUntilLastValid: dateUntil});
+ }
+
+ cockpit.addEventListener("locationchanged",
+ this.onLocationChanged);
+ }
+
+ componentWillUnmount() {
+ if (this.journalctlIsRunning()) {
+ this.journalctlStop();
+ }
+ }
+
+ componentDidUpdate(prevProps, prevState) {
+ /*
+ * If we're running a specific (non-wildcard) journalctl
+ * and recording ID has changed
+ */
+ if (this.journalctlRecordingID !== null &&
+ this.state.recordingID != prevState.recordingID) {
+ if (this.journalctlIsRunning()) {
+ this.journalctlStop();
+ }
+ this.journalctlStart();
+ }
+ if (this.state.dateSinceLastValid != prevState.dateSinceLastValid ||
+ this.state.dateUntilLastValid != prevState.dateUntilLastValid ||
+ this.state.username != prevState.username ||
+ this.state.hostname != prevState.hostname
+ ) {
+ this.clearRecordings();
+ this.journalctlRestart();
+ }
+ }
+
+ render() {
+ if (this.state.error_tlog_uid === true) {
+ return (
+
+ Error getting tlog UID from system.
+
+ );
+ }
+ if (this.state.recordingID === null) {
+ return (
+
+ );
+ } else {
+ return (
+
+ );
+ }
+ }
+ };
+
+ React.render(, document.getElementById('view'));
+}());
diff --git a/pkg/session_recording/terminal.jsx b/pkg/session_recording/terminal.jsx
new file mode 100644
index 000000000000..7984bc512658
--- /dev/null
+++ b/pkg/session_recording/terminal.jsx
@@ -0,0 +1,190 @@
+/*
+ * This file is part of Cockpit.
+ *
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * Cockpit is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * Cockpit is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Cockpit; If not, see .
+ */
+
+(function() {
+ "use strict";
+
+ var React = require("react");
+ var Term = require("term");
+ let $ = require("jquery");
+
+ require("console.css");
+ require("jquery-resizable");
+ require("jquery-resizable/resizable.css");
+
+ /*
+ * A terminal component that communicates over a cockpit channel.
+ *
+ * The only required property is 'channel', which must point to a cockpit
+ * stream channel.
+ *
+ * The size of the terminal can be set with the 'rows' and 'cols'
+ * properties. If those properties are not given, the terminal will fill
+ * its container.
+ *
+ * If the 'onTitleChanged' callback property is set, it will be called whenever
+ * the title of the terminal changes.
+ *
+ * Call focus() to set the input focus on the terminal.
+ */
+ var Terminal = React.createClass({
+ propTypes: {
+ cols: React.PropTypes.number,
+ rows: React.PropTypes.number,
+ channel: React.PropTypes.object.isRequired,
+ onTitleChanged: React.PropTypes.func
+ },
+
+ componentWillMount: function () {
+ var term = new Term({
+ cols: this.state.cols || 80,
+ rows: this.state.rows || 25,
+ screenKeys: true,
+ useStyle: true
+ });
+
+ term.on('data', function(data) {
+ if (this.props.channel.valid)
+ this.props.channel.send(data);
+ }.bind(this));
+
+ if (this.props.onTitleChanged)
+ term.on('title', this.props.onTitleChanged);
+
+ this.setState({ terminal: term });
+ },
+
+ componentDidMount: function () {
+ this.state.terminal.open(this.refs.terminal);
+ this.connectChannel();
+
+ let term = this.refs.terminal;
+ let onWindowResize = this.onWindowResize;
+
+ $( function() { $(term).resizable({
+ direction: ['right', 'bottom'],
+ stop: function() {
+ onWindowResize();
+ },
+ }); });
+
+ if (!this.props.rows) {
+ window.addEventListener('resize', this.onWindowResize);
+ this.onWindowResize();
+ }
+ },
+
+ componentWillUpdate: function (nextProps, nextState) {
+ if (nextState.cols !== this.state.cols || nextState.rows !== this.state.rows) {
+ this.state.terminal.resize(nextState.cols, nextState.rows);
+ this.props.channel.control({
+ window: {
+ rows: nextState.rows,
+ cols: nextState.cols
+ }
+ });
+ }
+
+ if (nextProps.channel !== this.props.channel) {
+ this.state.terminal.reset();
+ this.disconnectChannel();
+ }
+ },
+
+ componentDidUpdate: function (prevProps) {
+ if (prevProps.channel !== this.props.channel)
+ this.connectChannel();
+ },
+
+ render: function () {
+ let style = {
+ 'min-width': '300px',
+ 'min-height': '100px',
+ }
+ // ensure react never reuses this div by keying it with the terminal widget
+ return ;
+ },
+
+ componentWillUnmount: function () {
+ this.disconnectChannel();
+ this.state.terminal.destroy();
+ },
+
+ onChannelMessage: function (event, data) {
+ if (this.state.terminal) {
+ this.state.terminal.write(data);
+ }
+ },
+
+ onChannelClose: function (event, options) {
+ var term = this.state.terminal;
+ term.write('\x1b[31m' + (options.problem || 'disconnected') + '\x1b[m\r\n');
+ term.cursorHidden = true;
+ term.refresh(term.y, term.y);
+ },
+
+ connectChannel: function () {
+ var channel = this.props.channel;
+ if (channel && channel.valid) {
+ channel.addEventListener('message', this.onChannelMessage.bind(this));
+ channel.addEventListener('close', this.onChannelClose.bind(this));
+ }
+ },
+
+ disconnectChannel: function () {
+ if (this.props.channel) {
+ this.props.channel.removeEventListener('message', this.onChannelMessage);
+ this.props.channel.removeEventListener('close', this.onChannelClose);
+ }
+ },
+
+ focus: function () {
+ if (this.state.terminal)
+ this.state.terminal.focus();
+ },
+
+ onWindowResize: function () {
+ if (this.refs) {
+ var padding = 2 * 11;
+ var node = this.getDOMNode();
+ var terminal = this.refs.terminal.querySelector('.terminal');
+
+ var ch = document.createElement('div');
+ ch.textContent = 'M';
+ terminal.appendChild(ch);
+ var height = ch.offsetHeight; // offsetHeight is only correct for block elements
+ ch.style.display = 'inline';
+ var width = ch.offsetWidth;
+ terminal.removeChild(ch);
+
+ this.setState({
+ rows: Math.floor((node.parentElement.clientHeight - padding) / height),
+ cols: Math.floor((node.parentElement.clientWidth - padding) / width)
+ });
+ }
+ return;
+ },
+
+ send: function(value) {
+ this.state.terminal.send(value);
+ }
+ });
+
+ module.exports = { Terminal: Terminal };
+}());
diff --git a/pkg/session_recording/timer.css b/pkg/session_recording/timer.css
new file mode 100644
index 000000000000..d0deec439a93
--- /dev/null
+++ b/pkg/session_recording/timer.css
@@ -0,0 +1,163 @@
+/*
+ * This file is part of Cockpit.
+ *
+ * Copyright (C) 2015 Red Hat, Inc.
+ *
+ * Cockpit is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * Cockpit is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Cockpit; If not, see .
+ */
+#create-timer {
+ display: none;
+}
+.vertical-scroll {
+ max-height: 150px;
+ overflow-y: scroll;
+}
+
+.position-colon {
+ display: inline-block;
+}
+
+div#boot {
+ display: inline-block;
+ float: right;
+}
+
+div#boot-or-specific-time {
+ width: 170px;
+ display: inline-block;
+}
+
+div#drop-time {
+ width: 100px;
+ display: inline-block;
+}
+
+input#boot-time {
+ width: 50px;
+ display: inline-block;
+ position: relative;
+ top: 2px;
+}
+
+.hr, .min {
+ width:30px;
+ display: inline-block;
+}
+
+.form-inline {
+ background: #f4f4f4;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ border-color: #bababa;
+ padding: 4px;
+}
+
+#boot-label {
+ position: relative;
+ right: 8px;
+ white-space: nowrap;
+ color: #888888;
+}
+
+#repeat-time .form-inline:first-of-type {
+ border-top: 1px solid #bababa;
+}
+
+#repeat-time [data-content="month-days"] {
+ width: 75px;
+}
+
+#repeat-time [data-content="week-days"] {
+ width: 100px;
+}
+
+#repeat-time [data-content="close"] {
+ position: relative;
+ float: right;
+ right: 8px;
+ top: 2px;
+}
+
+#repeat-time [data-content="add"] {
+ position: relative;
+ float: right;
+ right: 4px;
+ top: 2px;
+}
+
+#repeat-time [data-provide="datepicker"] {
+ width: 120px;
+}
+
+[data-content='day-error'].repeat-error {
+ display: block;
+ font-size: 11px;
+ color: #4d5258;
+ line-height: 14px;
+}
+
+.has-error {
+ border-color: #cc0000;
+}
+
+.has-error:hover {
+ border-color: #990000;
+}
+
+.has-error:focus {
+ border-color: #990000;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff3333;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff3333;
+}
+
+.repeat-error {
+ display: block;
+ font-size: 11px;
+ color: #cc0000;
+ line-height: 14px;
+}
+
+#services-page .datepicker-dropdown .prev,
+#services-page .datepicker-dropdown .next {
+ display: none;
+ visibility: hidden;
+}
+
+.date {
+ width:120px;
+}
+
+#hr-error, #min-error {
+ font-size: 11px;
+ line-height: 13px;
+}
+
+.help-block {
+ position: relative;
+ bottom: 6px;
+}
+
+@media (min-width: 500px) {
+ .cockpit-timer-modal-md {
+ width: 500px;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: 30px;
+ vertical-align: middle;
+ }
+ .form-inline .date .bootstrap-datepicker {
+ width: 100px;
+ }
+}
diff --git a/webpack.config.js b/webpack.config.js
index 57fa24043243..0ab4e994b082 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -123,6 +123,11 @@ var info = {
"subscriptions/subscriptions.css",
],
+ "session_recording/recordings": [
+ "session_recording/recordings.jsx",
+ "session_recording/recordings.css",
+ ],
+
"systemd/services": [
"systemd/init.js",
],
@@ -259,6 +264,9 @@ var info = {
"subscriptions/index.html",
"subscriptions/manifest.json",
+ "session_recording/manifest.json",
+ "session_recording/index.html",
+
"systemd/index.html",
"systemd/logs.html",
"systemd/manifest.json",