diff options
| author | ngharo <nick@ngha.ro> | 2018-01-03 19:47:41 -0600 | 
|---|---|---|
| committer | ngharo <nick@ngha.ro> | 2018-01-03 19:47:41 -0600 | 
| commit | 1f4160511f4853de614355f45b94152fbd19e29e (patch) | |
| tree | 77e144270ae0ecf8cebe8857246bb75ae6092013 /www | |
| parent | f920c7da0618fd9f4181c2c78ef054e324185355 (diff) | |
| download | imOk-www-master.tar.xz imOk-www-master.zip  | |
Diffstat (limited to 'www')
| -rw-r--r-- | www/.babelrc | 3 | ||||
| -rw-r--r-- | www/Makefile | 44 | ||||
| -rw-r--r-- | www/package-lock.json | 1445 | ||||
| -rw-r--r-- | www/package.json | 14 | ||||
| -rw-r--r-- | www/src/app.js (renamed from www/lib/app.js) | 40 | ||||
| -rw-r--r-- | www/src/buttonList.vue | 19 | ||||
| -rw-r--r-- | www/src/request.js | 49 | 
7 files changed, 1567 insertions, 47 deletions
diff --git a/www/.babelrc b/www/.babelrc deleted file mode 100644 index 002b4aa..0000000 --- a/www/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ -  "presets": ["env"] -} diff --git a/www/Makefile b/www/Makefile index a9f86e7..bc48017 100644 --- a/www/Makefile +++ b/www/Makefile @@ -1,28 +1,36 @@  DEPLOY_TARGET="/var/www/imok.ngha.ro/" -PATH  := node_modules/.bin:$(PATH) -SHELL := /bin/bash +PATH       := node_modules/.bin:$(PATH) +SHELL      := /bin/bash +DEPLOY_CMD := rsync --delete -a -css_out   := index.css -js_out    := index.js -libs      := lib/app.js -styles    := styles/app.scss +css_out    := index.css +js_out     := index.js +css_smap   := $(css_out:%.css=%.css.map) +js_smap    := $(js_out:%.js=%.js.map) -.PHONY: all clean deploy +.PHONY: all clean build deploy deploy-prod -all: $(app_bundle) +$(js_out): src/app.js +	browserify --debug $< | \ +	babel --source-maps inline --presets env -o $@ +#	uglifyjs -c -m "reserved=['require','exports']" \ +		--source-map "content='inline',url='index.js.map',filename='index.js.map'" \ +		--output $@ -%.js: -	babel $< --out-file $@ - -%.css: +$(css_out): styles/app.scss  	sass --style compressed $< $@ -index.css: $(styles) -index.js: $(libs) -build: index.css index.js +clean: +	rm index.{js,css}* + +$(css_smap) $(js_smap): $(css_out) $(js_out) + +build deploy deploy-prod: $(css_out) $(js_out) -deploy: index.* -	rsync -vr $^ $(DEPLOY_TARGET) +#deploy: $(css_smap) $(js_smap) +deploy: $(css_smap) +	$(DEPLOY_CMD) $^ $(DEPLOY_TARGET) -all: build deploy +deploy-prod:  +	$(DEPLOY_CMD) $^ $(DEPLOY_TARGET) diff --git a/www/package-lock.json b/www/package-lock.json index f39d6a0..859c794 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -4,6 +4,22 @@    "lockfileVersion": 1,    "requires": true,    "dependencies": { +    "JSONStream": { +      "version": "1.3.2", +      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", +      "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", +      "dev": true, +      "requires": { +        "jsonparse": "1.3.1", +        "through": "2.3.8" +      } +    }, +    "acorn": { +      "version": "4.0.13", +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", +      "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", +      "dev": true +    },      "ansi-regex": {        "version": "2.1.1",        "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -44,6 +60,24 @@        "dev": true,        "optional": true      }, +    "array-filter": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", +      "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", +      "dev": true +    }, +    "array-map": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", +      "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", +      "dev": true +    }, +    "array-reduce": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", +      "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", +      "dev": true +    },      "array-unique": {        "version": "0.2.1",        "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", @@ -51,6 +85,35 @@        "dev": true,        "optional": true      }, +    "asn1.js": { +      "version": "4.9.2", +      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", +      "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0" +      } +    }, +    "assert": { +      "version": "1.4.1", +      "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", +      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", +      "dev": true, +      "requires": { +        "util": "0.10.3" +      } +    }, +    "astw": { +      "version": "2.2.0", +      "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", +      "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", +      "dev": true, +      "requires": { +        "acorn": "4.0.13" +      } +    },      "async-each": {        "version": "1.0.1",        "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -743,6 +806,12 @@        "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",        "dev": true      }, +    "base64-js": { +      "version": "1.2.1", +      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", +      "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", +      "dev": true +    },      "binary-extensions": {        "version": "1.11.0",        "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -750,6 +819,12 @@        "dev": true,        "optional": true      }, +    "bn.js": { +      "version": "4.11.8", +      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", +      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", +      "dev": true +    },      "brace-expansion": {        "version": "1.1.8",        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", @@ -772,6 +847,167 @@          "repeat-element": "1.1.2"        }      }, +    "brorand": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", +      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", +      "dev": true +    }, +    "browser-pack": { +      "version": "6.0.2", +      "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", +      "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.2", +        "combine-source-map": "0.7.2", +        "defined": "1.0.0", +        "through2": "2.0.3", +        "umd": "3.0.1" +      } +    }, +    "browser-resolve": { +      "version": "1.11.2", +      "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", +      "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", +      "dev": true, +      "requires": { +        "resolve": "1.1.7" +      }, +      "dependencies": { +        "resolve": { +          "version": "1.1.7", +          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", +          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", +          "dev": true +        } +      } +    }, +    "browserify": { +      "version": "14.5.0", +      "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", +      "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.2", +        "assert": "1.4.1", +        "browser-pack": "6.0.2", +        "browser-resolve": "1.11.2", +        "browserify-zlib": "0.2.0", +        "buffer": "5.0.8", +        "cached-path-relative": "1.0.1", +        "concat-stream": "1.5.2", +        "console-browserify": "1.1.0", +        "constants-browserify": "1.0.0", +        "crypto-browserify": "3.12.0", +        "defined": "1.0.0", +        "deps-sort": "2.0.0", +        "domain-browser": "1.1.7", +        "duplexer2": "0.1.4", +        "events": "1.1.1", +        "glob": "7.1.2", +        "has": "1.0.1", +        "htmlescape": "1.1.1", +        "https-browserify": "1.0.0", +        "inherits": "2.0.3", +        "insert-module-globals": "7.0.1", +        "labeled-stream-splicer": "2.0.0", +        "module-deps": "4.1.1", +        "os-browserify": "0.3.0", +        "parents": "1.0.1", +        "path-browserify": "0.0.0", +        "process": "0.11.10", +        "punycode": "1.4.1", +        "querystring-es3": "0.2.1", +        "read-only-stream": "2.0.0", +        "readable-stream": "2.3.3", +        "resolve": "1.5.0", +        "shasum": "1.0.2", +        "shell-quote": "1.6.1", +        "stream-browserify": "2.0.1", +        "stream-http": "2.7.2", +        "string_decoder": "1.0.3", +        "subarg": "1.0.0", +        "syntax-error": "1.3.0", +        "through2": "2.0.3", +        "timers-browserify": "1.4.2", +        "tty-browserify": "0.0.0", +        "url": "0.11.0", +        "util": "0.10.3", +        "vm-browserify": "0.0.4", +        "xtend": "4.0.1" +      } +    }, +    "browserify-aes": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", +      "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", +      "dev": true, +      "requires": { +        "buffer-xor": "1.0.3", +        "cipher-base": "1.0.4", +        "create-hash": "1.1.3", +        "evp_bytestokey": "1.0.3", +        "inherits": "2.0.3", +        "safe-buffer": "5.1.1" +      } +    }, +    "browserify-cipher": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", +      "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", +      "dev": true, +      "requires": { +        "browserify-aes": "1.1.1", +        "browserify-des": "1.0.0", +        "evp_bytestokey": "1.0.3" +      } +    }, +    "browserify-des": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", +      "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", +      "dev": true, +      "requires": { +        "cipher-base": "1.0.4", +        "des.js": "1.0.0", +        "inherits": "2.0.3" +      } +    }, +    "browserify-rsa": { +      "version": "4.0.1", +      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", +      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "randombytes": "2.0.5" +      } +    }, +    "browserify-sign": { +      "version": "4.0.4", +      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", +      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "browserify-rsa": "4.0.1", +        "create-hash": "1.1.3", +        "create-hmac": "1.1.6", +        "elliptic": "6.4.0", +        "inherits": "2.0.3", +        "parse-asn1": "5.1.0" +      } +    }, +    "browserify-zlib": { +      "version": "0.2.0", +      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", +      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", +      "dev": true, +      "requires": { +        "pako": "1.0.6" +      } +    },      "browserslist": {        "version": "2.10.1",        "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.10.1.tgz", @@ -782,6 +1018,40 @@          "electron-to-chromium": "1.3.30"        }      }, +    "buffer": { +      "version": "5.0.8", +      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", +      "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", +      "dev": true, +      "requires": { +        "base64-js": "1.2.1", +        "ieee754": "1.1.8" +      } +    }, +    "buffer-xor": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", +      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", +      "dev": true +    }, +    "builtin-modules": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", +      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", +      "dev": true +    }, +    "builtin-status-codes": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", +      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", +      "dev": true +    }, +    "cached-path-relative": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", +      "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", +      "dev": true +    },      "caniuse-lite": {        "version": "1.0.30000784",        "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000784.tgz", @@ -818,6 +1088,36 @@          "readdirp": "2.1.0"        }      }, +    "cipher-base": { +      "version": "1.0.4", +      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", +      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "safe-buffer": "5.1.1" +      } +    }, +    "combine-source-map": { +      "version": "0.7.2", +      "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", +      "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", +      "dev": true, +      "requires": { +        "convert-source-map": "1.1.3", +        "inline-source-map": "0.6.2", +        "lodash.memoize": "3.0.4", +        "source-map": "0.5.7" +      }, +      "dependencies": { +        "convert-source-map": { +          "version": "1.1.3", +          "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", +          "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", +          "dev": true +        } +      } +    },      "commander": {        "version": "2.12.2",        "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", @@ -830,6 +1130,60 @@        "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",        "dev": true      }, +    "concat-stream": { +      "version": "1.5.2", +      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", +      "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "readable-stream": "2.0.6", +        "typedarray": "0.0.6" +      }, +      "dependencies": { +        "readable-stream": { +          "version": "2.0.6", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", +          "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "string_decoder": "0.10.31", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "0.10.31", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", +          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", +          "dev": true +        } +      } +    }, +    "console-browserify": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", +      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", +      "dev": true, +      "requires": { +        "date-now": "0.1.4" +      } +    }, +    "constants-browserify": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", +      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", +      "dev": true +    }, +    "contains-path": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", +      "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", +      "dev": true +    },      "convert-source-map": {        "version": "1.5.1",        "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", @@ -846,8 +1200,68 @@        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",        "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", +      "dev": true +    }, +    "create-ecdh": { +      "version": "4.0.0", +      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", +      "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",        "dev": true, -      "optional": true +      "requires": { +        "bn.js": "4.11.8", +        "elliptic": "6.4.0" +      } +    }, +    "create-hash": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", +      "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", +      "dev": true, +      "requires": { +        "cipher-base": "1.0.4", +        "inherits": "2.0.3", +        "ripemd160": "2.0.1", +        "sha.js": "2.4.9" +      } +    }, +    "create-hmac": { +      "version": "1.1.6", +      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", +      "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", +      "dev": true, +      "requires": { +        "cipher-base": "1.0.4", +        "create-hash": "1.1.3", +        "inherits": "2.0.3", +        "ripemd160": "2.0.1", +        "safe-buffer": "5.1.1", +        "sha.js": "2.4.9" +      } +    }, +    "crypto-browserify": { +      "version": "3.12.0", +      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", +      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", +      "dev": true, +      "requires": { +        "browserify-cipher": "1.0.0", +        "browserify-sign": "4.0.4", +        "create-ecdh": "4.0.0", +        "create-hash": "1.1.3", +        "create-hmac": "1.1.6", +        "diffie-hellman": "5.0.2", +        "inherits": "2.0.3", +        "pbkdf2": "3.0.14", +        "public-encrypt": "4.0.0", +        "randombytes": "2.0.5", +        "randomfill": "1.0.3" +      } +    }, +    "date-now": { +      "version": "0.1.4", +      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", +      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", +      "dev": true      },      "debug": {        "version": "2.6.9", @@ -858,6 +1272,34 @@          "ms": "2.0.0"        }      }, +    "defined": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", +      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", +      "dev": true +    }, +    "deps-sort": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", +      "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.2", +        "shasum": "1.0.2", +        "subarg": "1.0.0", +        "through2": "2.0.3" +      } +    }, +    "des.js": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", +      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0" +      } +    },      "detect-indent": {        "version": "4.0.0",        "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -867,6 +1309,60 @@          "repeating": "2.0.1"        }      }, +    "detective": { +      "version": "4.7.1", +      "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", +      "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", +      "dev": true, +      "requires": { +        "acorn": "5.3.0", +        "defined": "1.0.0" +      }, +      "dependencies": { +        "acorn": { +          "version": "5.3.0", +          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", +          "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", +          "dev": true +        } +      } +    }, +    "diffie-hellman": { +      "version": "5.0.2", +      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", +      "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "miller-rabin": "4.0.1", +        "randombytes": "2.0.5" +      } +    }, +    "doctrine": { +      "version": "1.5.0", +      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", +      "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", +      "dev": true, +      "requires": { +        "esutils": "2.0.2", +        "isarray": "1.0.0" +      } +    }, +    "domain-browser": { +      "version": "1.1.7", +      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", +      "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", +      "dev": true +    }, +    "duplexer2": { +      "version": "0.1.4", +      "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", +      "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", +      "dev": true, +      "requires": { +        "readable-stream": "2.3.3" +      } +    },      "electron-releases": {        "version": "2.1.0",        "resolved": "https://registry.npmjs.org/electron-releases/-/electron-releases-2.1.0.tgz", @@ -882,18 +1378,134 @@          "electron-releases": "2.1.0"        }      }, +    "elliptic": { +      "version": "6.4.0", +      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", +      "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "brorand": "1.1.0", +        "hash.js": "1.1.3", +        "hmac-drbg": "1.0.1", +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0", +        "minimalistic-crypto-utils": "1.0.1" +      } +    }, +    "error-ex": { +      "version": "1.3.1", +      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", +      "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", +      "dev": true, +      "requires": { +        "is-arrayish": "0.2.1" +      } +    },      "escape-string-regexp": {        "version": "1.0.5",        "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",        "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",        "dev": true      }, +    "eslint-config-standard": { +      "version": "11.0.0-beta.0", +      "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0-beta.0.tgz", +      "integrity": "sha512-f+vs5HAHQo7NRZ3hVe+UVdT5DbebMNaFTWFp95orJ0LUdYPoWdM8xw/bMeO/IZMvHOPmIteGKGc2QOhSXd5nRg==", +      "dev": true +    }, +    "eslint-import-resolver-node": { +      "version": "0.3.1", +      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", +      "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", +      "dev": true, +      "requires": { +        "debug": "2.6.9", +        "resolve": "1.5.0" +      } +    }, +    "eslint-module-utils": { +      "version": "2.1.1", +      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", +      "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", +      "dev": true, +      "requires": { +        "debug": "2.6.9", +        "pkg-dir": "1.0.0" +      } +    }, +    "eslint-plugin-import": { +      "version": "2.8.0", +      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", +      "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", +      "dev": true, +      "requires": { +        "builtin-modules": "1.1.1", +        "contains-path": "0.1.0", +        "debug": "2.6.9", +        "doctrine": "1.5.0", +        "eslint-import-resolver-node": "0.3.1", +        "eslint-module-utils": "2.1.1", +        "has": "1.0.1", +        "lodash.cond": "4.5.2", +        "minimatch": "3.0.4", +        "read-pkg-up": "2.0.0" +      } +    }, +    "eslint-plugin-node": { +      "version": "5.2.1", +      "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz", +      "integrity": "sha512-xhPXrh0Vl/b7870uEbaumb2Q+LxaEcOQ3kS1jtIXanBAwpMre1l5q/l2l/hESYJGEFKuI78bp6Uw50hlpr7B+g==", +      "dev": true, +      "requires": { +        "ignore": "3.3.7", +        "minimatch": "3.0.4", +        "resolve": "1.5.0", +        "semver": "5.3.0" +      }, +      "dependencies": { +        "semver": { +          "version": "5.3.0", +          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", +          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", +          "dev": true +        } +      } +    }, +    "eslint-plugin-promise": { +      "version": "3.6.0", +      "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", +      "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", +      "dev": true +    }, +    "eslint-plugin-standard": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", +      "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", +      "dev": true +    },      "esutils": {        "version": "2.0.2",        "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",        "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",        "dev": true      }, +    "events": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", +      "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", +      "dev": true +    }, +    "evp_bytestokey": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", +      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", +      "dev": true, +      "requires": { +        "md5.js": "1.3.4", +        "safe-buffer": "5.1.1" +      } +    },      "expand-brackets": {        "version": "0.1.5",        "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -945,6 +1557,16 @@          "repeat-string": "1.6.1"        }      }, +    "find-up": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", +      "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", +      "dev": true, +      "requires": { +        "path-exists": "2.1.0", +        "pinkie-promise": "2.0.1" +      } +    },      "for-in": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -974,6 +1596,12 @@        "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",        "dev": true      }, +    "function-bind": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", +      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", +      "dev": true +    },      "glob": {        "version": "7.1.2",        "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", @@ -1020,6 +1648,15 @@        "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",        "dev": true      }, +    "has": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", +      "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", +      "dev": true, +      "requires": { +        "function-bind": "1.1.1" +      } +    },      "has-ansi": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -1029,6 +1666,36 @@          "ansi-regex": "2.1.1"        }      }, +    "hash-base": { +      "version": "2.0.2", +      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", +      "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3" +      } +    }, +    "hash.js": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", +      "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0" +      } +    }, +    "hmac-drbg": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", +      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", +      "dev": true, +      "requires": { +        "hash.js": "1.1.3", +        "minimalistic-assert": "1.0.0", +        "minimalistic-crypto-utils": "1.0.1" +      } +    },      "home-or-tmp": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", @@ -1039,6 +1706,42 @@          "os-tmpdir": "1.0.2"        }      }, +    "hosted-git-info": { +      "version": "2.5.0", +      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", +      "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", +      "dev": true +    }, +    "htmlescape": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", +      "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", +      "dev": true +    }, +    "https-browserify": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", +      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", +      "dev": true +    }, +    "ieee754": { +      "version": "1.1.8", +      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", +      "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", +      "dev": true +    }, +    "ignore": { +      "version": "3.3.7", +      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", +      "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", +      "dev": true +    }, +    "indexof": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", +      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", +      "dev": true +    },      "inflight": {        "version": "1.0.6",        "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1055,6 +1758,31 @@        "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",        "dev": true      }, +    "inline-source-map": { +      "version": "0.6.2", +      "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", +      "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", +      "dev": true, +      "requires": { +        "source-map": "0.5.7" +      } +    }, +    "insert-module-globals": { +      "version": "7.0.1", +      "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", +      "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.2", +        "combine-source-map": "0.7.2", +        "concat-stream": "1.5.2", +        "is-buffer": "1.1.6", +        "lexical-scope": "1.2.0", +        "process": "0.11.10", +        "through2": "2.0.3", +        "xtend": "4.0.1" +      } +    },      "invariant": {        "version": "2.2.2",        "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", @@ -1064,6 +1792,12 @@          "loose-envify": "1.3.1"        }      }, +    "is-arrayish": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", +      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", +      "dev": true +    },      "is-binary-path": {        "version": "1.0.1",        "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -1080,6 +1814,15 @@        "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",        "dev": true      }, +    "is-builtin-module": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", +      "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", +      "dev": true, +      "requires": { +        "builtin-modules": "1.1.1" +      } +    },      "is-dotfile": {        "version": "1.0.3",        "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -1180,12 +1923,33 @@        "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",        "dev": true      }, +    "json-stable-stringify": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", +      "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", +      "dev": true, +      "requires": { +        "jsonify": "0.0.0" +      } +    },      "json5": {        "version": "0.5.1",        "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",        "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",        "dev": true      }, +    "jsonify": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", +      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", +      "dev": true +    }, +    "jsonparse": { +      "version": "1.3.1", +      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", +      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", +      "dev": true +    },      "kind-of": {        "version": "3.2.2",        "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -1195,12 +1959,82 @@          "is-buffer": "1.1.6"        }      }, +    "labeled-stream-splicer": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", +      "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "isarray": "0.0.1", +        "stream-splicer": "2.0.0" +      }, +      "dependencies": { +        "isarray": { +          "version": "0.0.1", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", +          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", +          "dev": true +        } +      } +    }, +    "lexical-scope": { +      "version": "1.2.0", +      "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", +      "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", +      "dev": true, +      "requires": { +        "astw": "2.2.0" +      } +    }, +    "load-json-file": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", +      "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", +      "dev": true, +      "requires": { +        "graceful-fs": "4.1.11", +        "parse-json": "2.2.0", +        "pify": "2.3.0", +        "strip-bom": "3.0.0" +      } +    }, +    "locate-path": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", +      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", +      "dev": true, +      "requires": { +        "p-locate": "2.0.0", +        "path-exists": "3.0.0" +      }, +      "dependencies": { +        "path-exists": { +          "version": "3.0.0", +          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", +          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", +          "dev": true +        } +      } +    },      "lodash": {        "version": "4.17.4",        "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",        "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",        "dev": true      }, +    "lodash.cond": { +      "version": "4.5.2", +      "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", +      "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", +      "dev": true +    }, +    "lodash.memoize": { +      "version": "3.0.4", +      "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", +      "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", +      "dev": true +    },      "loose-envify": {        "version": "1.3.1",        "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", @@ -1210,6 +2044,28 @@          "js-tokens": "3.0.2"        }      }, +    "md5.js": { +      "version": "1.3.4", +      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", +      "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", +      "dev": true, +      "requires": { +        "hash-base": "3.0.4", +        "inherits": "2.0.3" +      }, +      "dependencies": { +        "hash-base": { +          "version": "3.0.4", +          "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", +          "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", +          "dev": true, +          "requires": { +            "inherits": "2.0.3", +            "safe-buffer": "5.1.1" +          } +        } +      } +    },      "micromatch": {        "version": "2.3.11",        "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -1232,6 +2088,28 @@          "regex-cache": "0.4.4"        }      }, +    "miller-rabin": { +      "version": "4.0.1", +      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", +      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "brorand": "1.1.0" +      } +    }, +    "minimalistic-assert": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", +      "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", +      "dev": true +    }, +    "minimalistic-crypto-utils": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", +      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", +      "dev": true +    },      "minimatch": {        "version": "3.0.4",        "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1256,12 +2134,47 @@          "minimist": "0.0.8"        }      }, +    "module-deps": { +      "version": "4.1.1", +      "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", +      "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.2", +        "browser-resolve": "1.11.2", +        "cached-path-relative": "1.0.1", +        "concat-stream": "1.5.2", +        "defined": "1.0.0", +        "detective": "4.7.1", +        "duplexer2": "0.1.4", +        "inherits": "2.0.3", +        "parents": "1.0.1", +        "readable-stream": "2.3.3", +        "resolve": "1.5.0", +        "stream-combiner2": "1.1.1", +        "subarg": "1.0.0", +        "through2": "2.0.3", +        "xtend": "4.0.1" +      } +    },      "ms": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",        "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",        "dev": true      }, +    "normalize-package-data": { +      "version": "2.4.0", +      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", +      "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", +      "dev": true, +      "requires": { +        "hosted-git-info": "2.5.0", +        "is-builtin-module": "1.0.0", +        "semver": "5.4.1", +        "validate-npm-package-license": "3.0.1" +      } +    },      "normalize-path": {        "version": "2.1.1",        "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -1303,6 +2216,12 @@          "wrappy": "1.0.2"        }      }, +    "os-browserify": { +      "version": "0.3.0", +      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", +      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", +      "dev": true +    },      "os-homedir": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -1326,6 +2245,49 @@          "object-assign": "4.1.1"        }      }, +    "p-limit": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", +      "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", +      "dev": true +    }, +    "p-locate": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", +      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", +      "dev": true, +      "requires": { +        "p-limit": "1.1.0" +      } +    }, +    "pako": { +      "version": "1.0.6", +      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", +      "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", +      "dev": true +    }, +    "parents": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", +      "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", +      "dev": true, +      "requires": { +        "path-platform": "0.11.15" +      } +    }, +    "parse-asn1": { +      "version": "5.1.0", +      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", +      "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", +      "dev": true, +      "requires": { +        "asn1.js": "4.9.2", +        "browserify-aes": "1.1.1", +        "create-hash": "1.1.3", +        "evp_bytestokey": "1.0.3", +        "pbkdf2": "3.0.14" +      } +    },      "parse-glob": {        "version": "3.0.4",        "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -1339,12 +2301,100 @@          "is-glob": "2.0.1"        }      }, +    "parse-json": { +      "version": "2.2.0", +      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", +      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", +      "dev": true, +      "requires": { +        "error-ex": "1.3.1" +      } +    }, +    "path-browserify": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", +      "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", +      "dev": true +    }, +    "path-exists": { +      "version": "2.1.0", +      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", +      "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", +      "dev": true, +      "requires": { +        "pinkie-promise": "2.0.1" +      } +    },      "path-is-absolute": {        "version": "1.0.1",        "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",        "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",        "dev": true      }, +    "path-parse": { +      "version": "1.0.5", +      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", +      "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", +      "dev": true +    }, +    "path-platform": { +      "version": "0.11.15", +      "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", +      "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", +      "dev": true +    }, +    "path-type": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", +      "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", +      "dev": true, +      "requires": { +        "pify": "2.3.0" +      } +    }, +    "pbkdf2": { +      "version": "3.0.14", +      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", +      "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", +      "dev": true, +      "requires": { +        "create-hash": "1.1.3", +        "create-hmac": "1.1.6", +        "ripemd160": "2.0.1", +        "safe-buffer": "5.1.1", +        "sha.js": "2.4.9" +      } +    }, +    "pify": { +      "version": "2.3.0", +      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", +      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", +      "dev": true +    }, +    "pinkie": { +      "version": "2.0.4", +      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", +      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", +      "dev": true +    }, +    "pinkie-promise": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", +      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", +      "dev": true, +      "requires": { +        "pinkie": "2.0.4" +      } +    }, +    "pkg-dir": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", +      "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", +      "dev": true, +      "requires": { +        "find-up": "1.1.2" +      } +    },      "preserve": {        "version": "0.2.0",        "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -1358,12 +2408,48 @@        "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",        "dev": true      }, +    "process": { +      "version": "0.11.10", +      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", +      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", +      "dev": true +    },      "process-nextick-args": {        "version": "1.0.7",        "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",        "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", +      "dev": true +    }, +    "public-encrypt": { +      "version": "4.0.0", +      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", +      "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",        "dev": true, -      "optional": true +      "requires": { +        "bn.js": "4.11.8", +        "browserify-rsa": "4.0.1", +        "create-hash": "1.1.3", +        "parse-asn1": "5.1.0", +        "randombytes": "2.0.5" +      } +    }, +    "punycode": { +      "version": "1.4.1", +      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", +      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", +      "dev": true +    }, +    "querystring": { +      "version": "0.2.0", +      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", +      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", +      "dev": true +    }, +    "querystring-es3": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", +      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", +      "dev": true      },      "randomatic": {        "version": "1.1.7", @@ -1410,12 +2496,71 @@          }        }      }, +    "randombytes": { +      "version": "2.0.5", +      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", +      "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", +      "dev": true, +      "requires": { +        "safe-buffer": "5.1.1" +      } +    }, +    "randomfill": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", +      "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", +      "dev": true, +      "requires": { +        "randombytes": "2.0.5", +        "safe-buffer": "5.1.1" +      } +    }, +    "read-only-stream": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", +      "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", +      "dev": true, +      "requires": { +        "readable-stream": "2.3.3" +      } +    }, +    "read-pkg": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", +      "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", +      "dev": true, +      "requires": { +        "load-json-file": "2.0.0", +        "normalize-package-data": "2.4.0", +        "path-type": "2.0.0" +      } +    }, +    "read-pkg-up": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", +      "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", +      "dev": true, +      "requires": { +        "find-up": "2.1.0", +        "read-pkg": "2.0.0" +      }, +      "dependencies": { +        "find-up": { +          "version": "2.1.0", +          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", +          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", +          "dev": true, +          "requires": { +            "locate-path": "2.0.0" +          } +        } +      } +    },      "readable-stream": {        "version": "2.3.3",        "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",        "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",        "dev": true, -      "optional": true,        "requires": {          "core-util-is": "1.0.2",          "inherits": "2.0.3", @@ -1534,6 +2679,25 @@          "is-finite": "1.0.2"        }      }, +    "resolve": { +      "version": "1.5.0", +      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", +      "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", +      "dev": true, +      "requires": { +        "path-parse": "1.0.5" +      } +    }, +    "ripemd160": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", +      "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", +      "dev": true, +      "requires": { +        "hash-base": "2.0.2", +        "inherits": "2.0.3" +      } +    },      "safe-buffer": {        "version": "5.1.1",        "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -1553,12 +2717,50 @@        "dev": true,        "optional": true      }, +    "sha.js": { +      "version": "2.4.9", +      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", +      "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "safe-buffer": "5.1.1" +      } +    }, +    "shasum": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", +      "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", +      "dev": true, +      "requires": { +        "json-stable-stringify": "0.0.1", +        "sha.js": "2.4.9" +      } +    }, +    "shell-quote": { +      "version": "1.6.1", +      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", +      "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", +      "dev": true, +      "requires": { +        "array-filter": "0.0.1", +        "array-map": "0.0.0", +        "array-reduce": "0.0.0", +        "jsonify": "0.0.0" +      } +    },      "slash": {        "version": "1.0.0",        "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",        "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",        "dev": true      }, +    "source-map": { +      "version": "0.5.7", +      "resolved": "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", @@ -1576,12 +2778,75 @@          }        }      }, +    "spdx-correct": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", +      "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", +      "dev": true, +      "requires": { +        "spdx-license-ids": "1.2.2" +      } +    }, +    "spdx-expression-parse": { +      "version": "1.0.4", +      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", +      "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", +      "dev": true +    }, +    "spdx-license-ids": { +      "version": "1.2.2", +      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", +      "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", +      "dev": true +    }, +    "stream-browserify": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", +      "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "readable-stream": "2.3.3" +      } +    }, +    "stream-combiner2": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", +      "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", +      "dev": true, +      "requires": { +        "duplexer2": "0.1.4", +        "readable-stream": "2.3.3" +      } +    }, +    "stream-http": { +      "version": "2.7.2", +      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", +      "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", +      "dev": true, +      "requires": { +        "builtin-status-codes": "3.0.0", +        "inherits": "2.0.3", +        "readable-stream": "2.3.3", +        "to-arraybuffer": "1.0.1", +        "xtend": "4.0.1" +      } +    }, +    "stream-splicer": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", +      "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "readable-stream": "2.3.3" +      } +    },      "string_decoder": {        "version": "1.0.3",        "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",        "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",        "dev": true, -      "optional": true,        "requires": {          "safe-buffer": "5.1.1"        } @@ -1595,12 +2860,75 @@          "ansi-regex": "2.1.1"        }      }, +    "strip-bom": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", +      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", +      "dev": true +    }, +    "subarg": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", +      "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", +      "dev": true, +      "requires": { +        "minimist": "1.2.0" +      }, +      "dependencies": { +        "minimist": { +          "version": "1.2.0", +          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +          "dev": true +        } +      } +    },      "supports-color": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",        "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",        "dev": true      }, +    "syntax-error": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", +      "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", +      "dev": true, +      "requires": { +        "acorn": "4.0.13" +      } +    }, +    "through": { +      "version": "2.3.8", +      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", +      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", +      "dev": true +    }, +    "through2": { +      "version": "2.0.3", +      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", +      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", +      "dev": true, +      "requires": { +        "readable-stream": "2.3.3", +        "xtend": "4.0.1" +      } +    }, +    "timers-browserify": { +      "version": "1.4.2", +      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", +      "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", +      "dev": true, +      "requires": { +        "process": "0.11.10" +      } +    }, +    "to-arraybuffer": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", +      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", +      "dev": true +    },      "to-fast-properties": {        "version": "1.0.3",        "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -1613,18 +2941,93 @@        "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",        "dev": true      }, +    "tty-browserify": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", +      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", +      "dev": true +    }, +    "typedarray": { +      "version": "0.0.6", +      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", +      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", +      "dev": true +    }, +    "uglify-js": { +      "version": "3.3.4", +      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.4.tgz", +      "integrity": "sha512-hfIwuAQI5dlXP30UtdmWoYF9k+ypVqBXIdmd6ZKBiaNHHvA8ty7ZloMe3+7S5AEKVkxHbjByl4DfRHQ7QpZquw==", +      "dev": true, +      "requires": { +        "commander": "2.12.2", +        "source-map": "0.6.1" +      }, +      "dependencies": { +        "source-map": { +          "version": "0.6.1", +          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", +          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", +          "dev": true +        } +      } +    }, +    "umd": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", +      "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", +      "dev": true +    }, +    "url": { +      "version": "0.11.0", +      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", +      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", +      "dev": true, +      "requires": { +        "punycode": "1.3.2", +        "querystring": "0.2.0" +      }, +      "dependencies": { +        "punycode": { +          "version": "1.3.2", +          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", +          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", +          "dev": true +        } +      } +    },      "user-home": {        "version": "1.1.1",        "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",        "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",        "dev": true      }, +    "util": { +      "version": "0.10.3", +      "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", +      "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", +      "dev": true, +      "requires": { +        "inherits": "2.0.1" +      }, +      "dependencies": { +        "inherits": { +          "version": "2.0.1", +          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", +          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", +          "dev": true +        } +      } +    },      "util-deprecate": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",        "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", -      "dev": true, -      "optional": true +      "dev": true +    }, +    "uuid": { +      "version": "3.1.0", +      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", +      "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="      },      "v8flags": {        "version": "2.1.1", @@ -1635,11 +3038,41 @@          "user-home": "1.1.1"        }      }, +    "validate-npm-package-license": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", +      "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", +      "dev": true, +      "requires": { +        "spdx-correct": "1.0.2", +        "spdx-expression-parse": "1.0.4" +      } +    }, +    "vm-browserify": { +      "version": "0.0.4", +      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", +      "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", +      "dev": true, +      "requires": { +        "indexof": "0.0.1" +      } +    }, +    "vue": { +      "version": "2.5.13", +      "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz", +      "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw==" +    },      "wrappy": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",        "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",        "dev": true +    }, +    "xtend": { +      "version": "4.0.1", +      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", +      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", +      "dev": true      }    }  } diff --git a/www/package.json b/www/package.json index 14a60bd..83a9dd9 100644 --- a/www/package.json +++ b/www/package.json @@ -3,10 +3,20 @@    "version": "1.0.0",    "description": "",    "main": "index.js", -  "dependencies": {}, +  "dependencies": { +    "uuid": "^3.1.0", +    "vue": "^2.5.13" +  },    "devDependencies": {      "babel-cli": "^6.26.0", -    "babel-preset-env": "^1.6.1" +    "babel-preset-env": "^1.6.1", +    "browserify": "^14.5.0", +    "eslint-config-standard": "^11.0.0-beta.0", +    "eslint-plugin-import": "^2.8.0", +    "eslint-plugin-node": "^5.2.1", +    "eslint-plugin-promise": "^3.6.0", +    "eslint-plugin-standard": "^3.0.1", +    "uglify-js": "^3.3.4"    },    "scripts": {      "test": "echo \"Error: no test specified\" && exit 1" diff --git a/www/lib/app.js b/www/src/app.js index 2ec1af2..214572c 100644 --- a/www/lib/app.js +++ b/www/src/app.js @@ -1,6 +1,10 @@ +//const Vue = require('vue'); +//const buttonList = require('./buttonList.vue'); +const r = require('./request.js')('/v1'); +  function create() {      this.ready = false; -    fetch('/v1/button', {method: 'POST'}).then(response => { +    r.post('/button').then(response => {          if (response.ok) {              response.json().then(button => {                  this.buttons.push(button); @@ -14,25 +18,18 @@ function update(index) {      var button = this.buttons[index];      this.ready = false; -    var payload = new FormData(); -    payload.append('id', button.id); -    payload.append('status', button.status); - -    fetch('/v1/button/', { -        method: 'PUT', -        body: payload -    }).then(response => { +    r.put('/button', button).then(() => {          this.ready = true; -    }) -}; +    }); +}  function remove(index) {      var button = this.buttons[index];      this.ready = false; -    fetch('/v1/button/' + button.id, {method: 'DELETE'}).then(response => { +    r.delete('/button', button).then(response => {          if (response.ok) { -            response.json().then(ok => { +            response.json().then(() => {                  this.buttons.splice(index, 1);                  this.ready = true;              }); @@ -54,11 +51,18 @@ const $app = new Vue({  });  // GET /button -fetch('/v1/button').then(response => { +r.get('/button').then(response => {      if (response.ok) { -        response.json().then(buttons => { -            $app.buttons = buttons; -            $app.ready = true; -        }) +        return response.json();      } + +    throw new Error(response.status); + +}).then(data => { +    $app.buttons = data; +    $app.ready = true; + +}).catch(err => { +    console.log('Request failed with error:', err.message);  }); + diff --git a/www/src/buttonList.vue b/www/src/buttonList.vue new file mode 100644 index 0000000..80cfea9 --- /dev/null +++ b/www/src/buttonList.vue @@ -0,0 +1,19 @@ +<template> +      <tr v-if="!ready"> +        <td colspan="3"><i class="fa fa-spinner fa-spin"></i> +      </tr> + +      <tr v-for="(button, index) in buttons" v-show="ready"> +        <td>{{ button.id }} <button v-on:click="remove(index)">delete</button></td> +        <td> +          <select v-model="button.status" v-on:change="update(index)"> +            <option value="0">Inventory</option> +            <option value="1">Active</option> +            <option>2</option> +            <option>3</option> +            <option>4</option> +          </select> +        </td> +        <td>{{ button.last_pressed }}</td> +      </tr> +</template> diff --git a/www/src/request.js b/www/src/request.js new file mode 100644 index 0000000..68ec8c3 --- /dev/null +++ b/www/src/request.js @@ -0,0 +1,49 @@ +module.exports = (api) => { +    // Default request options +    var defaults = { +        headers: { +            accept: 'application/json' +        } +    }; + +    // Helper for constructing url +    var url = (thing) => { +        return api + thing; +    }; + +    var _fetch = (thing, data, options) => { +        // Merge defaults with options +        options = Object.assign({}, defaults, options); + +        // data is only allowed for POST and PUT +        if (data) { +            options.body = new FormData(); + +            for (var k in data) { +                options.body.set(k, data[k]); +            } +        } + +        return fetch(url(thing), options); +    }; + +    // GET/POST/DELETE/PUT helpers +    // These helpers extend the defaults that get passed to fetch() +    return { +        get: (thing) => { +            return _fetch(thing, null, {method: 'GET'}); +        }, + +        post: (thing, data) => { +            return _fetch(thing, data, {method: 'POST'}); +        }, + +        put: (thing, data) => { +            return _fetch(thing, data, {method: 'PUT'}); +        }, + +        delete: (thing, data) => { +            return _fetch(thing, data, {method: 'DELETE'}); +        } +    }; +};  | 
