From 8eb86091981278e718000860a6c691b8197d9154 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 16:49:07 -0600 Subject: [PATCH 01/26] Drop trigger.yml --- .github/workflows/trigger.yml | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 .github/workflows/trigger.yml diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml deleted file mode 100644 index a2467879..00000000 --- a/.github/workflows/trigger.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Trigger - -on: - push: - branches: [master] - pull_request: - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - uses: purescript-contrib/setup-purescript@main - - - uses: actions/setup-node@v1 - with: - node-version: "12" - - - name: Install dependencies - run: | - npm install -g bower - npm install - bower install --production - - name: Build source - run: npm run-script build - - - name: Run tests - run: | - bower install - npm run-script test --if-present From 3400ca120578a29484f0e2f33f6517194db1b695 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 17:19:32 -0600 Subject: [PATCH 02/26] Update deps to versions listed in latest package set --- bower.json | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/bower.json b/bower.json index 6d342912..46348718 100644 --- a/bower.json +++ b/bower.json @@ -10,25 +10,24 @@ "output" ], "dependencies": { - "purescript-ansi": "^5.0.0", - "purescript-avar": "^3.0.0", - "purescript-effect": "^2.0.1", - "purescript-foreign-generic": "^10.0.0", - "purescript-foreign-object": "^2.0.2", - "purescript-globals": "^4.0.0", - "purescript-node-child-process": "^6.0.0", - "purescript-node-fs-aff": "^6.0.0", - "purescript-node-http": "^5.0.1", - "purescript-node-process": "^7.0.0", - "purescript-now": "^4.0.0", - "purescript-ordered-collections": "^1.6.1", - "purescript-prelude": "^4.1.1", - "purescript-simple-json": "^7.0.0", - "purescript-versions": "^5.0.0", - "purescript-argonaut-codecs": "^6.0.2", - "purescript-argonaut": "^6.0.0" + "purescript-ansi": "^6.1.0", + "purescript-avar": "^4.0.0", + "purescript-effect": "^3.0.0", + "purescript-foreign-generic": "^11.0.0", + "purescript-foreign-object": "^3.0.0", + "purescript-node-child-process": "^7.0.0", + "purescript-node-fs-aff": "^7.0.0", + "purescript-node-http": "^6.0.0", + "purescript-node-process": "^8.1.0", + "purescript-now": "^5.0.0", + "purescript-ordered-collections": "^2.0.0", + "purescript-prelude": "^5.0.0", + "purescript-simple-json": "^8.0.0", + "purescript-versions": "^6.0.0", + "purescript-argonaut-codecs": "^8.1.0", + "purescript-argonaut": "^8.0.0" }, "devDependencies": { - "purescript-assert": "^4.0.0" + "purescript-assert": "^5.0.0" } -} +} \ No newline at end of file From 41bcde1cc66196d87831760a0e63af06dbc83c27 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 17:19:32 -0600 Subject: [PATCH 03/26] Update package-lock.json from v1 to v2 --- package-lock.json | 4512 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 4485 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61638e27..4eae6ee1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,4466 @@ { "name": "pulp", "version": "15.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "JSONStream": { + "packages": { + "": { + "name": "pulp", + "version": "15.0.0", + "license": "LGPL-3.0+", + "dependencies": { + "browserify": "^16.2.3", + "browserify-incremental": "^3.1.1", + "concat-stream": "^2.0.0", + "gaze": "^1.1.3", + "glob": "^7.1.3", + "mold-source-map": "^0.4.0", + "node-static": "^0.7.11", + "read": "^1.0.7", + "sorcery": "^0.10.0", + "temp": "^0.9.0", + "through": "^2.3.8", + "tree-kill": "^1.2.1", + "which": "^1.3.1", + "wordwrap": "1.0.0" + }, + "bin": { + "pulp": "index.js" + }, + "devDependencies": { + "babel": "^5.8.22", + "bower": "^1.8.4", + "chai": "^4.2.0", + "co": "^4.6.0", + "fs-promise": "^2.0.3", + "jshint": "^2.9.7", + "mkdirp": "^0.5.1", + "mocha": "^5.2.0", + "purescript-psa": "^0.7.3", + "semver": "^5.6.0", + "touch": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", + "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "peerDependencies": { + "acorn": "^6.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", + "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", + "dependencies": { + "acorn": "^6.0.2", + "acorn-dynamic-import": "^4.0.0", + "acorn-walk": "^6.1.0", + "xtend": "^4.0.1" + } + }, + "node_modules/acorn-walk": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/alter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "integrity": "sha1-x1iICGF1cgNKrmJICvJrHU0cs80=", + "dev": true, + "dependencies": { + "stable": "~0.1.3" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "node_modules/array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "node_modules/array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dependencies": { + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ast-traverse": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", + "integrity": "sha1-ac8rg4bxnc2hux4F1o/jWdiJfeY=", + "dev": true + }, + "node_modules/ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "node_modules/async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "node_modules/babel": { + "version": "5.8.38", + "resolved": "http://registry.npmjs.org/babel/-/babel-5.8.38.tgz", + "integrity": "sha1-37CHwiiUkXxXb7Z86c8yjUWGKfs=", + "dev": true, + "dependencies": { + "babel-core": "^5.6.21", + "chokidar": "^1.0.0", + "commander": "^2.6.0", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^0.1.0", + "glob": "^5.0.5", + "lodash": "^3.2.0", + "output-file-sync": "^1.1.0", + "path-exists": "^1.0.0", + "path-is-absolute": "^1.0.0", + "slash": "^1.0.0", + "source-map": "^0.5.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js", + "babel-node": "bin/babel-node.js", + "babel-plugin": "bin/babel-plugin.js" + } + }, + "node_modules/babel-core": { + "version": "5.8.38", + "resolved": "http://registry.npmjs.org/babel-core/-/babel-core-5.8.38.tgz", + "integrity": "sha1-H8ruedfmG3ULALjlT238nQr4ZVg=", + "dev": true, + "dependencies": { + "babel-plugin-constant-folding": "^1.0.1", + "babel-plugin-dead-code-elimination": "^1.0.2", + "babel-plugin-eval": "^1.0.1", + "babel-plugin-inline-environment-variables": "^1.0.1", + "babel-plugin-jscript": "^1.0.4", + "babel-plugin-member-expression-literals": "^1.0.1", + "babel-plugin-property-literals": "^1.0.1", + "babel-plugin-proto-to-assign": "^1.0.3", + "babel-plugin-react-constant-elements": "^1.0.3", + "babel-plugin-react-display-name": "^1.0.3", + "babel-plugin-remove-console": "^1.0.1", + "babel-plugin-remove-debugger": "^1.0.1", + "babel-plugin-runtime": "^1.0.7", + "babel-plugin-undeclared-variables-check": "^1.0.2", + "babel-plugin-undefined-to-void": "^1.1.6", + "babylon": "^5.8.38", + "bluebird": "^2.9.33", + "chalk": "^1.0.0", + "convert-source-map": "^1.1.0", + "core-js": "^1.0.0", + "debug": "^2.1.1", + "detect-indent": "^3.0.0", + "esutils": "^2.0.0", + "fs-readdir-recursive": "^0.1.0", + "globals": "^6.4.0", + "home-or-tmp": "^1.0.0", + "is-integer": "^1.0.4", + "js-tokens": "1.0.1", + "json5": "^0.4.0", + "lodash": "^3.10.0", + "minimatch": "^2.0.3", + "output-file-sync": "^1.1.0", + "path-exists": "^1.0.0", + "path-is-absolute": "^1.0.0", + "private": "^0.1.6", + "regenerator": "0.8.40", + "regexpu": "^1.3.0", + "repeating": "^1.1.2", + "resolve": "^1.1.6", + "shebang-regex": "^1.0.0", + "slash": "^1.0.0", + "source-map": "^0.5.0", + "source-map-support": "^0.2.10", + "to-fast-properties": "^1.0.0", + "trim-right": "^1.0.0", + "try-resolve": "^1.0.0" + } + }, + "node_modules/babel-core/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/node_modules/bluebird": { + "version": "2.11.0", + "resolved": "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", + "dev": true + }, + "node_modules/babel-core/node_modules/chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/node_modules/core-js": { + "version": "1.2.7", + "resolved": "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true + }, + "node_modules/babel-core/node_modules/globals": { + "version": "6.4.1", + "resolved": "http://registry.npmjs.org/globals/-/globals-6.4.1.tgz", + "integrity": "sha1-hJgDKzttHMge68X3lpDY/in6v08=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/node_modules/home-or-tmp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", + "integrity": "sha1-S58eQIAMPlDGwn94FnavzOcfOYU=", + "dev": true, + "dependencies": { + "os-tmpdir": "^1.0.1", + "user-home": "^1.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/node_modules/js-tokens": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", + "integrity": "sha1-zENaXIuUrRWst5gxQPyAGCyJrq4=", + "dev": true + }, + "node_modules/babel-core/node_modules/json5": { + "version": "0.4.0", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-core/node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "node_modules/babel-core/node_modules/minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dev": true, + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/babel-core/node_modules/path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/node_modules/repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "bin": { + "repeating": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/node_modules/source-map-support": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "integrity": "sha1-6lo5AKHByyUJagrozFwrSxDe09w=", + "dev": true, + "dependencies": { + "source-map": "0.1.32" + } + }, + "node_modules/babel-core/node_modules/source-map-support/node_modules/source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-core/node_modules/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-core/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-plugin-constant-folding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz", + "integrity": "sha1-g2HTZMmORJw2kr26Ue/whEKQqo4=", + "dev": true + }, + "node_modules/babel-plugin-dead-code-elimination": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz", + "integrity": "sha1-X3xFEnTc18zNv7s+C4XdKBIfD2U=", + "dev": true + }, + "node_modules/babel-plugin-eval": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz", + "integrity": "sha1-ovrtJc5r5preS/7CY/cBaRlZUNo=", + "dev": true + }, + "node_modules/babel-plugin-inline-environment-variables": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz", + "integrity": "sha1-H1jOkSB61qgmqL9kX6/mj/X+P/4=", + "dev": true + }, + "node_modules/babel-plugin-jscript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz", + "integrity": "sha1-jzQsOCduh6R9X6CovT1etsytj8w=", + "dev": true + }, + "node_modules/babel-plugin-member-expression-literals": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz", + "integrity": "sha1-zF7bD6qNyScXDnTW0cAkQAIWJNM=", + "dev": true + }, + "node_modules/babel-plugin-property-literals": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz", + "integrity": "sha1-AlIwGQAZKYCxwRjv6kjOk6q4MzY=", + "dev": true + }, + "node_modules/babel-plugin-proto-to-assign": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz", + "integrity": "sha1-xJ56/QL1d7xNoF6i3wAiUM980SM=", + "dev": true, + "dependencies": { + "lodash": "^3.9.3" + } + }, + "node_modules/babel-plugin-proto-to-assign/node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "node_modules/babel-plugin-react-constant-elements": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz", + "integrity": "sha1-lGc26DeEKcvDSdz/YvUcFDs041o=", + "dev": true + }, + "node_modules/babel-plugin-react-display-name": { + "version": "1.0.3", + "resolved": "http://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz", + "integrity": "sha1-dU/jiSboQkpOexWrbqYTne4FFPw=", + "dev": true + }, + "node_modules/babel-plugin-remove-console": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz", + "integrity": "sha1-2PJFVsOgUAXUKqqv0neH9T/wE6c=", + "dev": true + }, + "node_modules/babel-plugin-remove-debugger": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz", + "integrity": "sha1-/S6jzWGkKK0fO5yJiC/0KT6MFMc=", + "dev": true + }, + "node_modules/babel-plugin-runtime": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz", + "integrity": "sha1-v3x9lm3Vbs1cF/ocslPJrLflSq8=", + "dev": true + }, + "node_modules/babel-plugin-undeclared-variables-check": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", + "integrity": "sha1-XPGqU52BP/ZOmWQSkK9iCWX2Xe4=", + "dev": true, + "dependencies": { + "leven": "^1.0.2" + } + }, + "node_modules/babel-plugin-undefined-to-void": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz", + "integrity": "sha1-f1eO+LeN+uYAM4XYQXph7aBuL4E=", + "dev": true + }, + "node_modules/babel/node_modules/anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "dependencies": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "node_modules/babel/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + }, + "optionalDependencies": { + "fsevents": "^1.0.0" + } + }, + "node_modules/babel/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/babel/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/babel/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "node_modules/babel/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel/node_modules/path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babylon": { + "version": "5.8.38", + "resolved": "http://registry.npmjs.org/babylon/-/babylon-5.8.38.tgz", + "integrity": "sha1-7JsSCxG/bM1Bc6GL8hfmC3mFn/0=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "node_modules/binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "node_modules/bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "deprecated": "This Bower version has SECURITY BUG THAT ALLOWS TO WRITE TO ARBITRARY FILE ON YOUR COMPUTER when you install malicious package. Please upgrade Bower to at least version 1.8.8 if you don't want to get hacked. More info: https://snyk.io/blog/severe-security-vulnerability-in-bowers-zip-archive-extraction/", + "dev": true, + "bin": { + "bower": "bin/bower" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/breakable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz", + "integrity": "sha1-eEp5eRWjjq0nutRWtVcstLuqeME=", + "dev": true + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify": { + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", + "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "^5.0.2", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp": "^0.5.0", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "dependencies": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "dependencies": { + "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserifyinc": "bin/cmd.js" + }, + "peerDependencies": { + "browserify": "*" + } + }, + "node_modules/browserify-incremental/node_modules/jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/browserify-incremental/node_modules/JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "dependencies": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "index.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dependencies": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/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=" + }, + "node_modules/cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "dependencies": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "engines": { + "node": ">=0.2.5" + } + }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/cliui/node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "node_modules/commoner": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", + "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", + "dev": true, + "dependencies": { + "commander": "^2.5.0", + "detective": "^4.3.1", + "glob": "^5.0.15", + "graceful-fs": "^4.1.2", + "iconv-lite": "^0.4.5", + "mkdirp": "^0.5.0", + "private": "^0.1.6", + "q": "^1.1.2", + "recast": "^0.11.17" + }, + "bin": { + "commonize": "bin/commonize" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commoner/node_modules/acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/commoner/node_modules/detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "dev": true, + "dependencies": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + } + }, + "node_modules/commoner/node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commoner/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/commoner/node_modules/recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "dependencies": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", + "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dependencies": { + "date-now": "^0.1.4" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/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=" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/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==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "node_modules/defs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz", + "integrity": "sha1-siYJ8sehG6ej2xFoBcE5scr/qdI=", + "dev": true, + "dependencies": { + "alter": "~0.2.0", + "ast-traverse": "~0.1.1", + "breakable": "~1.0.0", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "simple-fmt": "~0.1.0", + "simple-is": "~0.2.0", + "stringmap": "~0.2.2", + "stringset": "~0.2.1", + "tryor": "~0.1.2", + "yargs": "~3.27.0" + }, + "bin": { + "defs": "build/es5/defs" + } + }, + "node_modules/deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "dependencies": { + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-indent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", + "integrity": "sha1-ncXl3bzu+DJXZLlFGwK8bVQIT3U=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + }, + "bin": { + "detect-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent/node_modules/repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "bin": { + "repeating": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detective": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", + "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", + "dependencies": { + "acorn-node": "^1.3.0", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "dependencies": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" + }, + "node_modules/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/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==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" + } + }, + "node_modules/fs-promise": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", + "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=", + "deprecated": "Use mz or fs-extra^3.0 with Promise Support", + "dev": true, + "dependencies": { + "any-promise": "^1.3.0", + "fs-extra": "^2.0.0", + "mz": "^2.6.0", + "thenify-all": "^1.6.0" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz", + "integrity": "sha1-MVtPuMHKW4xH3v7zGdBz2tNWgFk=", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "bundleDependencies": [ + "node-pre-gyp" + ], + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fsevents/node_modules/abbrev": { + "version": "1.1.1", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/ansi-regex": { + "version": "2.1.1", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/aproba": { + "version": "1.2.0", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/are-we-there-yet": { + "version": "1.1.4", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/fsevents/node_modules/balanced-match": { + "version": "1.0.0", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/brace-expansion": { + "version": "1.1.11", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fsevents/node_modules/chownr": { + "version": "1.0.1", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/code-point-at": { + "version": "1.1.0", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/concat-map": { + "version": "0.0.1", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/console-control-strings": { + "version": "1.1.0", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/core-util-is": { + "version": "1.0.2", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/debug": { + "version": "2.6.9", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/fsevents/node_modules/deep-extend": { + "version": "0.5.1", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/delegates": { + "version": "1.0.0", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/detect-libc": { + "version": "1.0.3", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "inBundle": true, + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/fsevents/node_modules/fs-minipass": { + "version": "1.2.5", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/fs.realpath": { + "version": "1.0.0", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/gauge": { + "version": "2.7.4", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/fsevents/node_modules/glob": { + "version": "7.1.2", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/has-unicode": { + "version": "2.0.1", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/iconv-lite": { + "version": "0.4.21", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "safer-buffer": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/ignore-walk": { + "version": "3.0.1", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fsevents/node_modules/inflight": { + "version": "1.0.6", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/inherits": { + "version": "2.0.3", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/ini": { + "version": "1.3.5", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/isarray": { + "version": "1.0.0", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/minimatch": { + "version": "3.0.4", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/minimist": { + "version": "0.0.8", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/minipass": { + "version": "2.2.4", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "node_modules/fsevents/node_modules/minizlib": { + "version": "1.1.0", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/mkdirp": { + "version": "0.5.1", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fsevents/node_modules/ms": { + "version": "2.0.0", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/needle": { + "version": "2.2.0", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/fsevents/node_modules/node-pre-gyp": { + "version": "0.10.0", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/fsevents/node_modules/nopt": { + "version": "4.0.1", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/fsevents/node_modules/npm-bundled": { + "version": "1.0.3", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/npm-packlist": { + "version": "1.1.10", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "node_modules/fsevents/node_modules/npmlog": { + "version": "4.1.2", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/fsevents/node_modules/number-is-nan": { + "version": "1.0.1", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/object-assign": { + "version": "4.1.1", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/once": { + "version": "1.4.0", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/os-homedir": { + "version": "1.0.2", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/os-tmpdir": { + "version": "1.0.2", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/osenv": { + "version": "0.1.5", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/fsevents/node_modules/path-is-absolute": { + "version": "1.0.1", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/process-nextick-args": { + "version": "2.0.0", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/rc": { + "version": "1.2.7", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/fsevents/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/readable-stream": { + "version": "2.3.6", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fsevents/node_modules/rimraf": { + "version": "2.6.2", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/fsevents/node_modules/safe-buffer": { + "version": "5.1.1", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/safer-buffer": { + "version": "2.1.2", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/sax": { + "version": "1.2.4", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/semver": { + "version": "5.5.0", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true, + "inBundle": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/fsevents/node_modules/set-blocking": { + "version": "2.0.0", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/signal-exit": { + "version": "3.0.2", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/string_decoder": { + "version": "1.1.1", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fsevents/node_modules/string-width": { + "version": "1.0.2", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-ansi": { + "version": "3.0.1", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-json-comments": { + "version": "2.0.1", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/tar": { + "version": "4.4.1", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/fsevents/node_modules/util-deprecate": { + "version": "1.0.2", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/wide-align": { + "version": "1.1.2", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "inBundle": true, + "optional": true, + "dependencies": { + "string-width": "^1.0.2" + } + }, + "node_modules/fsevents/node_modules/wrappy": { + "version": "1.0.2", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/fsevents/node_modules/yallist": { + "version": "3.0.2", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/glob-base/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/htmlparser2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/htmlparser2/node_modules/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 + }, + "node_modules/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=" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/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=", + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/insert-module-globals/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-integer": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz", + "integrity": "sha1-a96Bqs3feLZZtmKdYpytxRqIbVw=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + } + }, + "node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/jshint": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.7.tgz", + "integrity": "sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/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=", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "engines": { + "node": "*" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", + "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", + "dependencies": { + "inherits": "^2.0.1", + "isarray": "^2.0.4", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/labeled-stream-splicer/node_modules/isarray": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", + "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz", + "integrity": "sha1-kUS27ryl8dBoAWnxpncNzqYLdcM=", + "dev": true, + "bin": { + "leven": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "node_modules/md5.js": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/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=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "node_modules/mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "dependencies": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/module-deps": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", + "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", + "dependencies": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.0.2", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/module-deps/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/mold-source-map": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mold-source-map/-/mold-source-map-0.4.0.tgz", + "integrity": "sha1-z2fgsxxHq5uttcnCVlGGISe7gxc=", + "dependencies": { + "convert-source-map": "^1.1.0", + "through": "~2.2.7" + } + }, + "node_modules/mold-source-map/node_modules/through": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz", + "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nan": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", + "dev": true, + "optional": true + }, + "node_modules/node-static": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz", + "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==", + "dependencies": { + "colors": ">=0.6.0", + "mime": "^1.2.9", + "optimist": ">=0.3.4" + }, + "bin": { + "static": "bin/cli.js" + }, + "engines": { + "node": ">= 0.4.1" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/optimist/node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "node_modules/optimist/node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "node_modules/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==" + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dependencies": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-glob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-glob/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/purescript-psa": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/purescript-psa/-/purescript-psa-0.7.3.tgz", + "integrity": "sha512-qcnhruybTHVunhJqAuurOEWnz1BOOc/7mpcnyH5yxm5caYCejxq8GOE4ZNWbiPMeTlcG79qUPIOz7gx5OVmk2Q==", + "dev": true, + "bin": { + "psa": "index.js" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/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=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/recast": { + "version": "0.10.33", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz", + "integrity": "sha1-lCgI96oBbx+nFCxGHX5XBKqo1pc=", + "dev": true, + "dependencies": { + "ast-types": "0.8.12", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/recast/node_modules/ast-types": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz", + "integrity": "sha1-oNkOQ1G7iHcWyD/WN+v4GK9K38w=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "node_modules/regenerator": { + "version": "0.8.40", + "resolved": "http://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz", + "integrity": "sha1-oORXxY69uuV1yfjNdRJ+k3VkNdg=", + "dev": true, + "dependencies": { + "commoner": "~0.10.3", + "defs": "~1.1.0", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "private": "~0.1.5", + "recast": "0.10.33", + "through": "~2.3.8" + }, + "bin": { + "regenerator": "bin/regenerator" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "dependencies": { + "is-equal-shallow": "^0.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpu": { + "version": "1.3.0", + "resolved": "http://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz", + "integrity": "sha1-5TTcmRqeWEYFDJjebX3UpVyeoW0=", + "dev": true, + "dependencies": { + "esprima": "^2.6.0", + "recast": "^0.10.10", + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + }, + "bin": { + "regexpu": "bin/regexpu" + } + }, + "node_modules/regexpu/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpu/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/regexpu/node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "node_modules/regexpu/node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/resolve": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", + "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=", + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dependencies": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dependencies": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "node_modules/shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "node_modules/simple-fmt": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", + "integrity": "sha1-GRv1ZqWeZTBILLJatTtKjchcOms=", + "dev": true + }, + "node_modules/simple-is": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", + "integrity": "sha1-Krt1qt453rXMgVzhDmGRFkhQuvA=", + "dev": true + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sorcery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", + "integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=", + "dependencies": { + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0", + "sourcemap-codec": "^1.3.0" + }, + "bin": { + "sorcery": "bin/index.js" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz", + "integrity": "sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stringmap": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", + "integrity": "sha1-VWwTeyWPlCuHdvWy71gqoGnX0bE=", + "dev": true + }, + "node_modules/stringset": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz", + "integrity": "sha1-7yWcTjSTRDd/zRyRPdLoSMnAQrU=", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/temp": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz", + "integrity": "sha512-YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==", + "engines": [ + "node >=4.0.0" + ], + "dependencies": { + "rimraf": "~2.6.2" + } + }, + "node_modules/thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tree-kill": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/try-resolve": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz", + "integrity": "sha1-z95vq9ctY+V5fPqrhzq76OcA6RI=", + "dev": true + }, + "node_modules/tryor": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz", + "integrity": "sha1-gUXkynyv9ArN48z5Rui4u3W0Fys=", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", + "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", + "dependencies": { + "acorn-node": "^1.3.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true, + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true, + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "node_modules/yargs": { + "version": "3.27.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz", + "integrity": "sha1-ISBUaTFuk5Ex1Z8toMbX+YIh6kA=", + "dev": true, + "dependencies": { + "camelcase": "^1.2.1", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "os-locale": "^1.4.0", + "window-size": "^0.1.2", + "y18n": "^3.2.0" } }, + "node_modules/yargs/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + } + }, + "dependencies": { "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -27,7 +4475,8 @@ "acorn-dynamic-import": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "requires": {} }, "acorn-node": { "version": "1.6.2", @@ -688,9 +5137,9 @@ "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "requires": { - "JSONStream": "^1.0.3", "combine-source-map": "~0.8.0", "defined": "^1.0.0", + "JSONStream": "^1.0.3", "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" @@ -722,7 +5171,6 @@ "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", "requires": { - "JSONStream": "^1.0.3", "assert": "^1.4.0", "browser-pack": "^6.0.1", "browser-resolve": "^1.11.0", @@ -744,6 +5192,7 @@ "https-browserify": "^1.0.0", "inherits": "~2.0.1", "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp": "^0.5.0", "module-deps": "^6.0.0", @@ -834,12 +5283,17 @@ "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", "requires": { - "JSONStream": "^0.10.0", "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", "through2": "^2.0.0", "xtend": "^4.0.0" }, "dependencies": { + "jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=" + }, "JSONStream": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", @@ -848,11 +5302,6 @@ "jsonparse": "0.0.5", "through": ">=2.2.7 <3" } - }, - "jsonparse": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", - "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=" } } }, @@ -2005,24 +6454,24 @@ "dev": true, "optional": true }, - "string-width": { - "version": "1.0.2", + "string_decoder": { + "version": "1.1.1", "bundled": true, "dev": true, "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "safe-buffer": "~5.1.0" } }, - "string_decoder": { - "version": "1.1.1", + "string-width": { + "version": "1.0.2", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -2331,11 +6780,11 @@ "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", "requires": { - "JSONStream": "^1.0.3", "acorn-node": "^1.5.2", "combine-source-map": "^0.8.0", "concat-stream": "^1.6.1", "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", "path-is-absolute": "^1.0.1", "process": "~0.11.0", "through2": "^2.0.0", @@ -2480,6 +6929,15 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -2657,7 +7115,6 @@ "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", "requires": { - "JSONStream": "^1.0.3", "browser-resolve": "^1.7.0", "cached-path-relative": "^1.0.0", "concat-stream": "~1.6.0", @@ -2665,6 +7122,7 @@ "detective": "^5.0.2", "duplexer2": "^0.1.2", "inherits": "^2.0.1", + "JSONStream": "^1.0.3", "parents": "^1.0.0", "readable-stream": "^2.0.2", "resolve": "^1.4.0", From e071477f902a481d0d3e356cdcf4e6051391c852 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:23:23 -0600 Subject: [PATCH 04/26] Ignore additional files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 463586ae..a3fa9356 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ .browserify-cache.json /.psvm/ /unit-tests.js +.psc* +.purs-repl + From 469b2487e5ca196d769bce2b95f923f2a37b6289 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:24:11 -0600 Subject: [PATCH 05/26] Fix Version arg; apply suggestions; code compiles --- src/Pulp/Args/Help.purs | 7 ++++--- src/Pulp/Args/Parser.purs | 13 +++++++------ src/Pulp/Args/Types.purs | 8 ++++---- src/Pulp/Browserify.js | 4 ++-- src/Pulp/Browserify.purs | 31 ++++++++++++++++--------------- src/Pulp/Build.purs | 18 ++++++++++-------- src/Pulp/BumpVersion.purs | 3 ++- src/Pulp/Docs.purs | 5 +++-- src/Pulp/Exec.purs | 7 ++++--- src/Pulp/Files.js | 2 +- src/Pulp/Files.purs | 13 +++++++------ src/Pulp/Git.purs | 11 ++++++----- src/Pulp/Init.purs | 10 ++++++---- src/Pulp/Login.purs | 21 +++++++++++---------- src/Pulp/Outputter.purs | 5 +++-- src/Pulp/Publish.purs | 4 ++-- src/Pulp/Repl.purs | 9 +++++---- src/Pulp/Run.purs | 9 +++++---- src/Pulp/Server.purs | 11 ++++++----- src/Pulp/Shell.purs | 5 +++-- src/Pulp/System/FFI.js | 2 +- src/Pulp/System/FFI.purs | 4 ++-- src/Pulp/System/Files.js | 6 +++--- src/Pulp/System/Files.purs | 12 ++++++------ src/Pulp/System/Read.js | 2 +- src/Pulp/System/Read.purs | 4 ++-- src/Pulp/System/Stream.js | 2 +- src/Pulp/System/Stream.purs | 4 ++-- src/Pulp/System/Which.js | 2 +- src/Pulp/System/Which.purs | 4 ++-- src/Pulp/Test.purs | 9 +++++---- src/Pulp/Validate.purs | 15 ++++++++------- src/Pulp/VersionBump.purs | 5 +++-- src/Pulp/Watch.purs | 15 ++++++++------- 34 files changed, 152 insertions(+), 130 deletions(-) diff --git a/src/Pulp/Args/Help.purs b/src/Pulp/Args/Help.purs index 389262b8..3ef8cb9c 100644 --- a/src/Pulp/Args/Help.purs +++ b/src/Pulp/Args/Help.purs @@ -3,10 +3,11 @@ module Pulp.Args.Help , printCommandHelp ) where -import Partial.Unsafe import Prelude -import Pulp.Args -import Pulp.Outputter + +import Partial.Unsafe (unsafePartial) +import Pulp.Args (Argument, Command, Option, option) +import Pulp.Outputter (Outputter) import Control.Monad.Except (runExcept) import Data.Array (sort, (!!), null) diff --git a/src/Pulp/Args/Parser.purs b/src/Pulp/Args/Parser.purs index ac2127d7..3283dfdc 100644 --- a/src/Pulp/Args/Parser.purs +++ b/src/Pulp/Args/Parser.purs @@ -1,10 +1,11 @@ module Pulp.Args.Parser where -import Control.Alt -import Data.Either -import Prelude hiding (when) -import Pulp.Args -import Text.Parsing.Parser +import Prelude + +import Control.Alt ((<|>)) +import Data.Either (Either(..)) +import Pulp.Args (Args, Argument, Command, Help(..), OptParser, Option, Options) +import Text.Parsing.Parser (ParseError, ParseState(..), ParserT, fail, runParserT) import Control.Monad.State.Class (get) import Control.Monad.Trans.Class (lift) @@ -82,7 +83,7 @@ cmd :: Array Command -> OptParser Command cmd cmds = do o <- lookupCmd cmds "command" case o of - (Tuple key option) -> pure option + (Tuple _ option) -> pure option extractDefault :: Option -> Options extractDefault o = diff --git a/src/Pulp/Args/Types.purs b/src/Pulp/Args/Types.purs index 40d8e526..a850e4af 100644 --- a/src/Pulp/Args/Types.purs +++ b/src/Pulp/Args/Types.purs @@ -10,7 +10,7 @@ module Pulp.Args.Types import Prelude -import Control.Alt +import Control.Alt ((<|>)) import Control.Monad.Trans.Class (lift) import Data.Array (filter) import Data.String (null, split, Pattern(..)) @@ -24,9 +24,9 @@ import Node.FS.Stats (Stats(), isFile, isDirectory) import Node.FS.Aff (stat) import Node.Path as Path -import Pulp.Args -import Pulp.Args.Parser -import Pulp.VersionBump +import Pulp.Args (ArgumentParser, OptParser, OptionParser) +import Pulp.Args.Parser (halt, token) +import Pulp.VersionBump (parseBump) argErr :: forall a. String -> String -> OptParser a argErr arg msg = diff --git a/src/Pulp/Browserify.js b/src/Pulp/Browserify.js index b13a322a..4e005292 100644 --- a/src/Pulp/Browserify.js +++ b/src/Pulp/Browserify.js @@ -9,7 +9,7 @@ function write(input, output, callback) { pipe.on("end", callback); } -exports["browserifyBundle'"] = function browserifyBundle$prime(opts, callback) { +exports.browserifyBundleImpl = function browserifyBundle$prime(opts, callback) { var stream = new require("stream").Readable(); var browserify = require("browserify"); var mold = require("mold-source-map"); @@ -40,7 +40,7 @@ exports["browserifyBundle'"] = function browserifyBundle$prime(opts, callback) { write(bundle, opts.out, callback); }; -exports["browserifyIncBundle'"] = function browserifyIncBundle$prime(opts, callback) { +exports.browserifyIncBundleImpl = function browserifyIncBundle$prime(opts, callback) { var browserifyInc = require("browserify-incremental"); var mold = require("mold-source-map"); var path = require('path'); diff --git a/src/Pulp/Browserify.purs b/src/Pulp/Browserify.purs index ad62acaf..45150449 100644 --- a/src/Pulp/Browserify.purs +++ b/src/Pulp/Browserify.purs @@ -1,18 +1,19 @@ module Pulp.Browserify where -import Data.Foldable -import Data.Function.Uncurried -import Data.Maybe import Prelude -import Pulp.Args -import Pulp.Args.Get -import Pulp.Files -import Pulp.Outputter -import Pulp.Project -import Pulp.Sorcery -import Pulp.System.FFI -import Pulp.System.Files + +import Data.Foldable (fold) +import Data.Function.Uncurried (Fn2, runFn2) +import Data.Maybe (Maybe(..), isJust, maybe) +import Pulp.Args (Action(..), Args, Options, runAction) +import Pulp.Args.Get (getFlag, getOption, getOption') +import Pulp.Files (defaultGlobs, outputModules) +import Pulp.Outputter (getOutputter) +import Pulp.Project (Project(..)) +import Pulp.Sorcery (sorcery) +import Pulp.System.FFI (Callback, runNode) +import Pulp.System.Files (openTemp) import Data.Argonaut (Json, caseJsonArray, caseJsonObject, caseJsonString, fromArray, fromObject, fromString, jsonEmptyObject, jsonNull, jsonParser) import Data.Argonaut.Core (stringify) @@ -198,12 +199,12 @@ type BrowserifyOptions = , tmpFilePath:: String } -foreign import browserifyBundle' :: Fn2 BrowserifyOptions +foreign import browserifyBundleImpl :: Fn2 BrowserifyOptions (Callback Unit) Unit browserifyBundle :: BrowserifyOptions -> Aff Unit -browserifyBundle opts = runNode $ runFn2 browserifyBundle' opts +browserifyBundle opts = runNode $ runFn2 browserifyBundleImpl opts type BrowserifyIncOptions = { basedir :: String @@ -216,12 +217,12 @@ type BrowserifyIncOptions = , outDir :: String } -foreign import browserifyIncBundle' :: Fn2 BrowserifyIncOptions +foreign import browserifyIncBundleImpl :: Fn2 BrowserifyIncOptions (Callback Unit) Unit browserifyIncBundle :: BrowserifyIncOptions -> Aff Unit -browserifyIncBundle opts = runNode $ runFn2 browserifyIncBundle' opts +browserifyIncBundle opts = runNode $ runFn2 browserifyIncBundleImpl opts updateSourceMapPaths :: String -> String -> Effect String updateSourceMapPaths basePath text = diff --git a/src/Pulp/Build.purs b/src/Pulp/Build.purs index 7440def7..8ac1db71 100644 --- a/src/Pulp/Build.purs +++ b/src/Pulp/Build.purs @@ -6,18 +6,20 @@ module Pulp.Build , withOutputStream ) where -import Data.Maybe import Prelude -import Pulp.Args -import Pulp.Args.Get -import Pulp.Files -import Pulp.Outputter + +import Data.Maybe (Maybe(..), maybe) +import Pulp.Args (Action(..), Args, Options, runAction) +import Pulp.Args.Get (getFlag, getOption, getOption', hasOption) +import Pulp.Files (defaultGlobs, outputModules, sources, testGlobs) +import Pulp.Outputter (getOutputter) import Control.Monad.Error.Class (throwError) import Data.Array as Array import Data.Either (Either(..)) import Data.Foldable (fold) -import Data.List (fromFoldable, List(..)) +import Data.List (List(..)) +import Data.List.NonEmpty as NEL import Data.Map (union) import Data.Set as Set import Data.String (Pattern(..), joinWith, split) @@ -71,7 +73,7 @@ go buildType = Action \args -> do jobs :: Maybe Int <- getOption "jobs" args.commandOpts let jobsArgs = maybe [] (\j -> ["+RTS", "-N" <> show j, "-RTS"]) jobs sourceMapArg = case sourceMaps of - true | ver >= Version (fromFoldable [0, 12, 0]) Nil -> [ "--codegen", "sourcemaps" ] + true | ver >= Version (NEL.cons' 0 (Cons 12 (Cons 0 Nil))) Nil -> [ "--codegen", "sourcemaps" ] true -> ["--source-maps"] _ -> [] sourceGlobs = sources globs @@ -114,7 +116,7 @@ shouldUsePsa args = do where -- TODO this is actually semver - minimumPsaVersion = Version (fromFoldable [0,5,0]) Nil + minimumPsaVersion = Version (NEL.cons' 0 (Cons 5 (Cons 0 Nil))) Nil bundle :: Args -> Aff Unit bundle args = do diff --git a/src/Pulp/BumpVersion.purs b/src/Pulp/BumpVersion.purs index 2fb5e3f1..f31fa870 100644 --- a/src/Pulp/BumpVersion.purs +++ b/src/Pulp/BumpVersion.purs @@ -4,11 +4,12 @@ import Prelude import Control.Monad.Error.Class (throwError) import Data.Either (Either(..)) +import Data.Foldable (lookup) import Data.Foldable as Foldable import Data.List (List(..)) import Data.Maybe (Maybe(..), maybe) import Data.String as String -import Data.Tuple (Tuple(..), lookup, snd) +import Data.Tuple (Tuple(..), snd) import Data.Version (Version) import Data.Version as Version import Effect.Aff (Aff) diff --git a/src/Pulp/Docs.purs b/src/Pulp/Docs.purs index 00794a12..9b527ded 100644 --- a/src/Pulp/Docs.purs +++ b/src/Pulp/Docs.purs @@ -3,7 +3,8 @@ module Pulp.Docs where import Prelude -import Data.List (List(..), fromFoldable) +import Data.List (List(..)) +import Data.List.NonEmpty as NEL import Data.Map as Map import Data.Maybe (Maybe(..)) import Data.Set as Set @@ -34,7 +35,7 @@ action = Action \args -> do buildPath <- getOption' "buildPath" opts - when (pursVersion < Version (fromFoldable [0,13,0]) Nil) + when (pursVersion < Version (NEL.cons' 0 (Cons 13 (Cons 0 Nil))) Nil) (out.log "Warning: 'pulp docs' now only supports 'purs' v0.13.0 and above. Please either update 'purs' or downgrade 'pulp'.") exec "purs" (["docs", "--compile-output", buildPath] <> args.remainder <> sources globInputFiles) Nothing diff --git a/src/Pulp/Exec.purs b/src/Pulp/Exec.purs index 18f97e3f..aa800609 100644 --- a/src/Pulp/Exec.purs +++ b/src/Pulp/Exec.purs @@ -10,10 +10,11 @@ module Pulp.Exec , pursBundle ) where -import Effect.Aff import Prelude -import Pulp.System.Stream -import Unsafe.Coerce + +import Effect.Aff (Aff, forkAff, makeAff, throwError) +import Pulp.System.Stream (concatStream, stderr, write) +import Unsafe.Coerce (unsafeCoerce) import Data.Either (Either(..), either) import Data.Foldable (for_) diff --git a/src/Pulp/Files.js b/src/Pulp/Files.js index 9d4e5d36..98c24425 100644 --- a/src/Pulp/Files.js +++ b/src/Pulp/Files.js @@ -2,6 +2,6 @@ "use strict"; -exports["glob'"] = function glob$prime(pat, callback) { +exports.globImpl = function glob$prime(pat, callback) { require("glob")(pat, {}, callback); }; diff --git a/src/Pulp/Files.purs b/src/Pulp/Files.purs index 35acc97f..e38b2050 100644 --- a/src/Pulp/Files.purs +++ b/src/Pulp/Files.purs @@ -11,11 +11,12 @@ module Pulp.Files , glob ) where -import Data.Function.Uncurried import Prelude -import Pulp.Args -import Pulp.Args.Get -import Pulp.System.FFI + +import Data.Function.Uncurried (Fn2, runFn2) +import Pulp.Args (Options) +import Pulp.Args.Get (getOption, getOption') +import Pulp.System.FFI (Callback, runNode) import Data.Array (concat, mapMaybe) import Data.List as List @@ -95,7 +96,7 @@ outputModules buildPath = resolveGlobs :: Array String -> Aff (Array String) resolveGlobs patterns = concat <$> traverse glob patterns -foreign import glob' :: Fn2 String (Callback (Array String)) Unit +foreign import globImpl :: Fn2 String (Callback (Array String)) Unit glob :: String -> Aff (Array String) -glob pattern = runNode $ runFn2 glob' pattern +glob pattern = runNode $ runFn2 globImpl pattern diff --git a/src/Pulp/Git.purs b/src/Pulp/Git.purs index 75a6a189..439e1cb7 100644 --- a/src/Pulp/Git.purs +++ b/src/Pulp/Git.purs @@ -5,12 +5,13 @@ module Pulp.Git , dropPrefix ) where -import Data.Either -import Data.Function -import Data.Maybe -import Data.Tuple import Prelude -import Pulp.Exec + +import Data.Either (either) +import Data.Function (on) +import Data.Maybe (Maybe(..), fromMaybe) +import Data.Tuple (Tuple(..), snd) +import Pulp.Exec (execQuiet, execQuietWithStderr) import Data.Array as Array import Data.Foldable as Foldable diff --git a/src/Pulp/Init.purs b/src/Pulp/Init.purs index cb926abb..a714763a 100644 --- a/src/Pulp/Init.purs +++ b/src/Pulp/Init.purs @@ -3,13 +3,15 @@ module Pulp.Init ) where import Prelude -import Pulp.Args -import Pulp.Outputter + +import Pulp.Args (Action(..)) +import Pulp.Outputter (Outputter, getOutputter) import Control.Monad.Error.Class (throwError) import Data.Array (cons) import Data.Foldable (for_) -import Data.List (List(Nil), fromFoldable) +import Data.List (List(..)) +import Data.List.NonEmpty as NEL import Data.String (joinWith) import Data.Version.Haskell as HVer import Effect.Aff (Aff) @@ -175,7 +177,7 @@ action = Action \args -> do where - minEffectVersion = HVer.Version (fromFoldable [0, 12, 0]) Nil + minEffectVersion = HVer.Version (NEL.cons' 0 (Cons 12 (Cons 0 Nil))) Nil getEffOrEffect out withEff withEffect | withEff = pure UseEff diff --git a/src/Pulp/Login.purs b/src/Pulp/Login.purs index 4f6880f6..e950ec99 100644 --- a/src/Pulp/Login.purs +++ b/src/Pulp/Login.purs @@ -3,17 +3,18 @@ module Pulp.Login , tokenFilePath ) where -import Control.Monad.Error.Class -import Data.Either -import Data.Maybe -import Data.Tuple.Nested -import Effect.Class -import Effect.Exception -import Node.FS.Perms import Prelude -import Pulp.Args -import Pulp.Outputter -import Pulp.System.HTTP + +import Control.Monad.Error.Class (throwError) +import Data.Either (Either(..)) +import Data.Maybe (Maybe(..)) +import Data.Tuple.Nested ((/\)) +import Effect.Class (liftEffect) +import Effect.Exception (error) +import Node.FS.Perms (mkPerms, none, read, write) +import Pulp.Args (Action(..)) +import Pulp.Outputter (Outputter, getOutputter) +import Pulp.System.HTTP (httpRequest) import Control.Monad.Except (runExcept) import Data.Foldable (fold) diff --git a/src/Pulp/Outputter.purs b/src/Pulp/Outputter.purs index fc18e9dc..aa52fc96 100644 --- a/src/Pulp/Outputter.purs +++ b/src/Pulp/Outputter.purs @@ -5,8 +5,9 @@ module Pulp.Outputter ) where import Prelude -import Pulp.Args -import Pulp.Args.Get + +import Pulp.Args (Args) +import Pulp.Args.Get (getFlag) import Ansi.Codes (Color(..)) import Ansi.Output (withGraphics, foreground, bold) diff --git a/src/Pulp/Publish.purs b/src/Pulp/Publish.purs index 77cd9dd5..6ac7efc9 100644 --- a/src/Pulp/Publish.purs +++ b/src/Pulp/Publish.purs @@ -8,7 +8,7 @@ import Data.Array as Array import Data.Either (Either(..)) import Data.Foldable (fold, or) import Data.List (List(..)) -import Data.List as List +import Data.List.NonEmpty as NEL import Data.Maybe (Maybe(..), maybe) import Data.Options ((:=)) import Data.String as String @@ -195,7 +195,7 @@ resolutionsFile manifest args = do out <- getOutputter args ver <- getPursVersion out resolutionsData <- - if ver >= Haskell.Version (List.fromFoldable [0,12,4]) Nil + if ver >= Haskell.Version (NEL.cons' 0 (Cons 12 (Cons 4 Nil))) Nil then do let hasDependencies = maybe false (not <<< Object.isEmpty) manifest.dependencies diff --git a/src/Pulp/Repl.purs b/src/Pulp/Repl.purs index 8e6f01dd..d06a96ea 100644 --- a/src/Pulp/Repl.purs +++ b/src/Pulp/Repl.purs @@ -1,13 +1,14 @@ module Pulp.Repl where import Prelude -import Data.Maybe + +import Data.Maybe (Maybe(..)) import Data.Map as Map import Data.Set as Set -import Pulp.Args -import Pulp.Exec -import Pulp.Files +import Pulp.Args (Action(..)) +import Pulp.Exec (execInteractive) +import Pulp.Files (defaultGlobs, sources, testGlobs) action :: Action action = Action \args -> do diff --git a/src/Pulp/Run.purs b/src/Pulp/Run.purs index e39c9483..22c26704 100644 --- a/src/Pulp/Run.purs +++ b/src/Pulp/Run.purs @@ -1,10 +1,11 @@ module Pulp.Run where import Prelude -import Pulp.Args -import Pulp.Args.Get -import Pulp.Exec -import Pulp.Outputter + +import Pulp.Args (Action(..)) +import Pulp.Args.Get (getOption') +import Pulp.Exec (exec) +import Pulp.Outputter (getOutputter) import Data.Map as Map import Data.Maybe (Maybe(..)) diff --git a/src/Pulp/Server.purs b/src/Pulp/Server.purs index 228a52ac..122c605d 100644 --- a/src/Pulp/Server.purs +++ b/src/Pulp/Server.purs @@ -3,12 +3,13 @@ module Pulp.Server ( action ) where -import Data.Either -import Data.Maybe import Prelude -import Pulp.Args -import Pulp.Args.Get -import Pulp.Outputter + +import Data.Either (Either(..)) +import Data.Maybe (Maybe(..)) +import Pulp.Args (Action(..), Args, Options) +import Pulp.Args.Get (getFlag, getOption') +import Pulp.Outputter (getOutputter) import Data.Map as Map import Effect (Effect) diff --git a/src/Pulp/Shell.purs b/src/Pulp/Shell.purs index 8745c588..c341dc00 100644 --- a/src/Pulp/Shell.purs +++ b/src/Pulp/Shell.purs @@ -2,8 +2,9 @@ module Pulp.Shell (shell) where import Prelude -import Pulp.Exec -import Pulp.Outputter + +import Pulp.Exec (exec) +import Pulp.Outputter (Outputter) import Data.Maybe (Maybe(..)) import Effect.Aff (Aff) diff --git a/src/Pulp/System/FFI.js b/src/Pulp/System/FFI.js index 44cd3767..5e58ec2f 100644 --- a/src/Pulp/System/FFI.js +++ b/src/Pulp/System/FFI.js @@ -2,7 +2,7 @@ "use strict"; -exports["runNode'"] = function runNode$prime(error, success, fn) { +exports.runNodeImpl = function runNode$prime(error, success, fn) { return function() { fn(function(err, val) { if (err) { error(err)(); } else { success(val)(); } diff --git a/src/Pulp/System/FFI.purs b/src/Pulp/System/FFI.purs index 6c388a5f..ea6789d7 100644 --- a/src/Pulp/System/FFI.purs +++ b/src/Pulp/System/FFI.purs @@ -15,10 +15,10 @@ foreign import data NodeError :: Type -- | the same as the type parameter. foreign import data Callback :: Type -> Type -foreign import runNode' :: forall a. Fn3 (Error -> Effect Unit) (a -> Effect Unit) (Callback a -> Unit) (Effect Unit) +foreign import runNodeImpl :: forall a. Fn3 (Error -> Effect Unit) (a -> Effect Unit) (Callback a -> Unit) (Effect Unit) runNode :: forall a. (Callback a -> Unit) -> Aff a -runNode fn = makeAff (\cb -> mempty <* runFn3 runNode' (cb <<< Left) (cb <<< Right) fn) +runNode fn = makeAff (\cb -> mempty <* runFn3 runNodeImpl (cb <<< Left) (cb <<< Right) fn) -- | This is quite unsafe but often useful. foreign import unsafeInspect :: forall a. a -> String diff --git a/src/Pulp/System/Files.js b/src/Pulp/System/Files.js index 9fc9966c..75b25aae 100644 --- a/src/Pulp/System/Files.js +++ b/src/Pulp/System/Files.js @@ -7,12 +7,12 @@ exports.isEEXIST = function isEEXIST(err) { }; var temp = require('temp').track(); -exports["openTemp'"] = function openTemp$prime(opts, callback) { +exports.openTempImpl = function openTemp$prime(opts, callback) { temp.open(opts, callback); }; -exports["tempDir'"] = function tempDir$prime(opts, callback) { +exports.tempDirImpl = function tempDir$prime(opts, callback) { temp.mkdir(opts, callback); }; @@ -26,6 +26,6 @@ exports.isENOENT = function isENOENT(error) { return error.code === "ENOENT"; }; -exports["touch'"] = function touch$prime(path, callback) { +exports.touchImpl = function touch$prime(path, callback) { require("touch")(path, callback); }; diff --git a/src/Pulp/System/Files.purs b/src/Pulp/System/Files.purs index b4760bb7..87a51a79 100644 --- a/src/Pulp/System/Files.purs +++ b/src/Pulp/System/Files.purs @@ -32,21 +32,21 @@ mkdirIfNotExist dir = type TempOptions = { prefix :: String, suffix :: String } type TempFileInfo = { path :: String, fd :: FileDescriptor } -foreign import openTemp' :: Fn2 TempOptions (Callback TempFileInfo) Unit -foreign import tempDir' :: Fn2 TempOptions (Callback String) Unit +foreign import openTempImpl :: Fn2 TempOptions (Callback TempFileInfo) Unit +foreign import tempDirImpl :: Fn2 TempOptions (Callback String) Unit openTemp :: TempOptions -> Aff TempFileInfo -openTemp opts = runNode $ runFn2 openTemp' opts +openTemp opts = runNode $ runFn2 openTempImpl opts -- | Create a temporary directory and return its path. tempDir :: TempOptions -> Aff String -tempDir opts = runNode $ runFn2 tempDir' opts +tempDir opts = runNode $ runFn2 tempDirImpl opts foreign import createWriteStream :: String -> Effect WritableStream foreign import isENOENT :: Error -> Boolean -foreign import touch' :: Fn2 String (Callback Unit) Unit +foreign import touchImpl :: Fn2 String (Callback Unit) Unit touch :: String -> Aff Unit -touch path = runNode $ runFn2 touch' path +touch path = runNode $ runFn2 touchImpl path diff --git a/src/Pulp/System/Read.js b/src/Pulp/System/Read.js index 905251a7..270f1322 100644 --- a/src/Pulp/System/Read.js +++ b/src/Pulp/System/Read.js @@ -2,4 +2,4 @@ "use strict"; -exports["read'"] = require("read"); +exports.readImpl = require("read"); diff --git a/src/Pulp/System/Read.purs b/src/Pulp/System/Read.purs index 68bad225..3fcdff37 100644 --- a/src/Pulp/System/Read.purs +++ b/src/Pulp/System/Read.purs @@ -8,7 +8,7 @@ import Pulp.System.FFI (Callback, runNode) type ReadOptions = { prompt :: String, silent :: Boolean } -foreign import read' :: Fn2 ReadOptions (Callback String) Unit +foreign import readImpl :: Fn2 ReadOptions (Callback String) Unit read :: ReadOptions -> Aff String -read opts = runNode $ runFn2 read' opts +read opts = runNode $ runFn2 readImpl opts diff --git a/src/Pulp/System/Stream.js b/src/Pulp/System/Stream.js index 30e95d10..6d046db2 100644 --- a/src/Pulp/System/Stream.js +++ b/src/Pulp/System/Stream.js @@ -1,7 +1,7 @@ // module Pulp.System.Stream "use strict"; -exports["concatStreamToBuffer'"] = function concatStream$prime(stream, callback) { +exports.concatStreamToBufferImpl = function concatStream$prime(stream, callback) { var concat = require("concat-stream"); var onSuccess = function(buf) { diff --git a/src/Pulp/System/Stream.purs b/src/Pulp/System/Stream.purs index 3dbb56bc..cd0c18ae 100644 --- a/src/Pulp/System/Stream.purs +++ b/src/Pulp/System/Stream.purs @@ -49,9 +49,9 @@ concatStream stream = do liftEffect (Buffer.toString UTF8 buf) concatStreamToBuffer :: forall w. Node.Readable w -> Aff Buffer -concatStreamToBuffer stream = runNode $ runFn2 concatStreamToBuffer' stream +concatStreamToBuffer stream = runNode $ runFn2 concatStreamToBufferImpl stream -foreign import concatStreamToBuffer' :: forall w. Fn2 (Node.Readable w) (Callback Buffer) Unit +foreign import concatStreamToBufferImpl :: forall w. Fn2 (Node.Readable w) (Callback Buffer) Unit foreign import createGzip :: Effect (Node.Duplex) diff --git a/src/Pulp/System/Which.js b/src/Pulp/System/Which.js index 9924cca4..a90fb559 100644 --- a/src/Pulp/System/Which.js +++ b/src/Pulp/System/Which.js @@ -2,4 +2,4 @@ "use strict"; -exports["which'"] = require("which"); +exports.whichImpl = require("which"); diff --git a/src/Pulp/System/Which.purs b/src/Pulp/System/Which.purs index 5d81dd14..172d3e8d 100644 --- a/src/Pulp/System/Which.purs +++ b/src/Pulp/System/Which.purs @@ -6,7 +6,7 @@ import Data.Function.Uncurried (Fn2, runFn2) import Effect.Aff (Aff) import Pulp.System.FFI (Callback, runNode) -foreign import which' :: Fn2 String (Callback String) Unit +foreign import whichImpl :: Fn2 String (Callback String) Unit which :: String -> Aff String -which cmd = runNode $ runFn2 which' cmd +which cmd = runNode $ runFn2 whichImpl cmd diff --git a/src/Pulp/Test.purs b/src/Pulp/Test.purs index a06e1ef0..cf37bd88 100644 --- a/src/Pulp/Test.purs +++ b/src/Pulp/Test.purs @@ -4,17 +4,18 @@ module Pulp.Test ) where import Prelude + import Effect.Class (liftEffect) -import Data.Maybe +import Data.Maybe (Maybe(..)) import Data.Map as Map import Foreign (unsafeToForeign) import Node.Buffer as Buffer import Node.Encoding (Encoding(UTF8)) import Node.FS.Aff as FS -import Pulp.Outputter -import Pulp.Args -import Pulp.Args.Get +import Pulp.Outputter (getOutputter) +import Pulp.Args (Action(..), Options) +import Pulp.Args.Get (getOption') import Pulp.Exec (exec) import Pulp.Build as Build import Pulp.Run (setupEnv, makeEntry) diff --git a/src/Pulp/Validate.purs b/src/Pulp/Validate.purs index ad8fd3e3..377ff3a4 100644 --- a/src/Pulp/Validate.purs +++ b/src/Pulp/Validate.purs @@ -4,19 +4,20 @@ module Pulp.Validate , getPsaVersion ) where -import Data.Either -import Data.Maybe import Prelude +import Data.Either (Either(..)) +import Data.Maybe (Maybe(..)) + import Control.Monad.Error.Class (throwError) -import Data.List (fromFoldable, List(..)) +import Data.List (List(..)) +import Data.List.NonEmpty as NEL import Data.String (codePointFromChar, takeWhile, trim) import Data.Version.Haskell (Version(..), parseVersion, showVersion) import Effect.Aff (Aff) import Effect.Exception (error) import Pulp.Exec (execQuiet) import Pulp.Outputter (Outputter) -import Text.Parsing.Parser (parseErrorMessage) validate :: Outputter -> Aff Version validate out = do @@ -34,7 +35,7 @@ getPursVersion :: Outputter -> Aff Version getPursVersion = getVersionFrom "purs" minimumPursVersion :: Version -minimumPursVersion = Version (fromFoldable [0, 11, 0]) Nil +minimumPursVersion = Version (NEL.cons' 0 (Cons 11 (Cons 0 Nil))) Nil getPsaVersion :: Outputter -> Aff Version getPsaVersion = getVersionFrom "psa" @@ -45,8 +46,8 @@ getVersionFrom bin out = do case parseVersion verStr of Right v -> pure v - Left err -> do - let msg = parseErrorMessage err + Left _err -> do + -- let msg = parseErrorMessage err out.err $ "Unable to parse the version from " <> bin <> ". (It was: " <> verStr <> ")" out.err $ "Please check that the right executable is on your PATH." throwError $ error ("Couldn't parse version from " <> bin) diff --git a/src/Pulp/VersionBump.purs b/src/Pulp/VersionBump.purs index f5384f91..8613798c 100644 --- a/src/Pulp/VersionBump.purs +++ b/src/Pulp/VersionBump.purs @@ -2,8 +2,9 @@ module Pulp.VersionBump where import Prelude -import Data.Maybe -import Data.Either + +import Data.Maybe (Maybe(..)) +import Data.Either (either) import Data.String as String import Data.Version (Version) import Data.Version as Version diff --git a/src/Pulp/Watch.purs b/src/Pulp/Watch.purs index cbb97b83..5539da84 100644 --- a/src/Pulp/Watch.purs +++ b/src/Pulp/Watch.purs @@ -5,13 +5,14 @@ module Pulp.Watch , action ) where -import Data.Maybe import Prelude -import Pulp.Args -import Pulp.Args.Get -import Pulp.Files -import Pulp.Outputter -import Pulp.Utils + +import Data.Maybe (Maybe, fromMaybe) +import Pulp.Args (Action(..), Options) +import Pulp.Args.Get (getOption) +import Pulp.Files (defaultGlobs, ffis, sources, testGlobs) +import Pulp.Outputter (getOutputter) +import Pulp.Utils (orErr) import Data.Array as Array import Data.DateTime (DateTime) @@ -86,7 +87,7 @@ action = Action \args -> do globs <- Set.union <$> defaultGlobs opts <*> testGlobs opts let fileGlobs = sources globs <> ffis globs - watchAff fileGlobs $ \path -> do + watchAff fileGlobs $ \_path -> do child <- AVar.take childV liftEffect $ treeKill (pid child) "SIGTERM" out.write "---\n" From c2461b9767711fb07545d2aee03bfa2e524279ac Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 18:12:27 -0600 Subject: [PATCH 06/26] Remove unused values/fns --- src/Pulp/Build.purs | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/Pulp/Build.purs b/src/Pulp/Build.purs index 8ac1db71..dfca7fab 100644 --- a/src/Pulp/Build.purs +++ b/src/Pulp/Build.purs @@ -15,19 +15,16 @@ import Pulp.Files (defaultGlobs, outputModules, sources, testGlobs) import Pulp.Outputter (getOutputter) import Control.Monad.Error.Class (throwError) -import Data.Array as Array import Data.Either (Either(..)) import Data.Foldable (fold) import Data.List (List(..)) import Data.List.NonEmpty as NEL import Data.Map (union) import Data.Set as Set -import Data.String (Pattern(..), joinWith, split) +import Data.String (Pattern(..), split) import Data.Version.Haskell (Version(..)) import Effect.Aff (Aff, apathize, attempt) import Effect.Class (liftEffect) -import Effect.Exception as Exception -import Effect.Unsafe (unsafePerformEffect) import Node.FS.Aff as FS import Node.Path as Path import Node.Process as Process @@ -176,17 +173,3 @@ withOutputStream opts aff = do throwError err Nothing -> aff stdout - --- | Render a list of strings using commas. -commaList :: Array String -> String -commaList arr = - case Array.unsnoc arr of - Just { init: [init'], last } -> - init' <> " and " <> last - Just { init, last } -> - joinWith ", " init <> ", and " <> last - Nothing -> - "" - -internalError :: forall a. String -> a -internalError = unsafePerformEffect <<< Exception.throw <<< ("internal error: " <> _) From 831bad520f2e7e7f0d607af94ca11227e745589c Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 18:23:04 -0600 Subject: [PATCH 07/26] Drop unused noPsa (handled by shouldUsePsa) --- src/Pulp/Build.purs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Pulp/Build.purs b/src/Pulp/Build.purs index dfca7fab..1f2ac0aa 100644 --- a/src/Pulp/Build.purs +++ b/src/Pulp/Build.purs @@ -64,7 +64,6 @@ go buildType = Action \args -> do else pure Set.empty) buildPath <- getOption' "buildPath" args.commandOpts - noPsa <- getFlag "noPsa" args.commandOpts sourceMaps <- getFlag "sourceMaps" args.commandOpts ver <- getPursVersion out jobs :: Maybe Int <- getOption "jobs" args.commandOpts From bbfa686fd7cd89a28551bc779771033d24ca49c4 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 18:37:06 -0600 Subject: [PATCH 08/26] Install psc-package via npm --- package-lock.json | 359 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 354 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4eae6ee1..f5e0d4eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "jshint": "^2.9.7", "mkdirp": "^0.5.1", "mocha": "^5.2.0", + "psc-package": "^4.0.1", "purescript-psa": "^0.7.3", "semver": "^5.6.0", "touch": "^3.1.0" @@ -1126,6 +1127,12 @@ "node": "*" } }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -1772,6 +1779,26 @@ "node": ">=0.10.0" } }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -1803,6 +1830,15 @@ "jsonfile": "^2.1.0" } }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, "node_modules/fs-promise": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", @@ -2856,6 +2892,15 @@ "typedarray": "^0.0.6" } }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", @@ -3165,9 +3210,28 @@ } }, "node_modules/minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } }, "node_modules/mkdirp": { "version": "0.5.1", @@ -3606,6 +3670,38 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "node_modules/psc-package": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/psc-package/-/psc-package-4.0.1.tgz", + "integrity": "sha512-P74OumVjkyc2ChiZqX6EA5E+2H38DTT3OKA4Rfpp/GeCQ1wF+WWZsREtgQDNotnJrBe6bHE9VGAbLVVXVrsB0g==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "follow-redirects": "^1.5.9", + "shelljs": "^0.8.2", + "tar": "^4.4.8" + }, + "bin": { + "psc-package": "psc-package/psc-package.exe" + } + }, + "node_modules/psc-package/node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -3780,6 +3876,18 @@ "node": ">= 0.8" } }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -4201,6 +4309,56 @@ "acorn-node": "^1.2.0" } }, + "node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tar/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/temp": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz", @@ -4436,6 +4594,12 @@ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/yargs": { "version": "3.27.0", "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz", @@ -5400,6 +5564,12 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -5937,6 +6107,12 @@ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "dev": true + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -5962,6 +6138,15 @@ "jsonfile": "^2.1.0" } }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, "fs-promise": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", @@ -5998,24 +6183,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "bundled": true, "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "bundled": true, "dev": true, "optional": true }, "aproba": { "version": "1.2.0", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "bundled": true, "dev": true, "optional": true, @@ -6026,12 +6215,14 @@ }, "balanced-match": { "version": "1.0.0", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "bundled": true, "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "bundled": true, "dev": true, "optional": true, @@ -6042,36 +6233,42 @@ }, "chownr": { "version": "1.0.1", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "bundled": true, "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "bundled": true, "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "bundled": true, "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "bundled": true, "dev": true, "optional": true }, "debug": { "version": "2.6.9", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "bundled": true, "dev": true, "optional": true, @@ -6081,24 +6278,28 @@ }, "deep-extend": { "version": "0.5.1", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "bundled": true, "dev": true, "optional": true }, "delegates": { "version": "1.0.0", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "bundled": true, "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "bundled": true, "dev": true, "optional": true, @@ -6108,12 +6309,14 @@ }, "fs.realpath": { "version": "1.0.0", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "bundled": true, "dev": true, "optional": true }, "gauge": { "version": "2.7.4", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "bundled": true, "dev": true, "optional": true, @@ -6130,6 +6333,7 @@ }, "glob": { "version": "7.1.2", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "bundled": true, "dev": true, "optional": true, @@ -6144,12 +6348,14 @@ }, "has-unicode": { "version": "2.0.1", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "bundled": true, "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "bundled": true, "dev": true, "optional": true, @@ -6159,6 +6365,7 @@ }, "ignore-walk": { "version": "3.0.1", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "bundled": true, "dev": true, "optional": true, @@ -6168,6 +6375,7 @@ }, "inflight": { "version": "1.0.6", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "bundled": true, "dev": true, "optional": true, @@ -6178,18 +6386,21 @@ }, "inherits": { "version": "2.0.3", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "bundled": true, "dev": true, "optional": true }, "ini": { "version": "1.3.5", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "bundled": true, "dev": true, "optional": true, @@ -6199,12 +6410,14 @@ }, "isarray": { "version": "1.0.0", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "bundled": true, "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "bundled": true, "dev": true, "optional": true, @@ -6214,12 +6427,14 @@ }, "minimist": { "version": "0.0.8", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "bundled": true, "dev": true, "optional": true }, "minipass": { "version": "2.2.4", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "bundled": true, "dev": true, "optional": true, @@ -6230,6 +6445,7 @@ }, "minizlib": { "version": "1.1.0", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "bundled": true, "dev": true, "optional": true, @@ -6239,6 +6455,7 @@ }, "mkdirp": { "version": "0.5.1", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "bundled": true, "dev": true, "optional": true, @@ -6248,12 +6465,14 @@ }, "ms": { "version": "2.0.0", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "bundled": true, "dev": true, "optional": true }, "needle": { "version": "2.2.0", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "bundled": true, "dev": true, "optional": true, @@ -6265,6 +6484,7 @@ }, "node-pre-gyp": { "version": "0.10.0", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "bundled": true, "dev": true, "optional": true, @@ -6283,6 +6503,7 @@ }, "nopt": { "version": "4.0.1", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "bundled": true, "dev": true, "optional": true, @@ -6293,12 +6514,14 @@ }, "npm-bundled": { "version": "1.0.3", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "bundled": true, "dev": true, "optional": true, @@ -6309,6 +6532,7 @@ }, "npmlog": { "version": "4.1.2", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "bundled": true, "dev": true, "optional": true, @@ -6321,18 +6545,21 @@ }, "number-is-nan": { "version": "1.0.1", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "bundled": true, "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "bundled": true, "dev": true, "optional": true, @@ -6342,18 +6569,21 @@ }, "os-homedir": { "version": "1.0.2", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.5", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "bundled": true, "dev": true, "optional": true, @@ -6364,18 +6594,21 @@ }, "path-is-absolute": { "version": "1.0.1", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "bundled": true, "dev": true, "optional": true }, "rc": { "version": "1.2.7", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "bundled": true, "dev": true, "optional": true, @@ -6388,6 +6621,7 @@ "dependencies": { "minimist": { "version": "1.2.0", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "bundled": true, "dev": true, "optional": true @@ -6396,6 +6630,7 @@ }, "readable-stream": { "version": "2.3.6", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "bundled": true, "dev": true, "optional": true, @@ -6411,6 +6646,7 @@ }, "rimraf": { "version": "2.6.2", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "bundled": true, "dev": true, "optional": true, @@ -6420,42 +6656,49 @@ }, "safe-buffer": { "version": "5.1.1", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "bundled": true, "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "bundled": true, "dev": true, "optional": true }, "sax": { "version": "1.2.4", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "bundled": true, "dev": true, "optional": true }, "semver": { "version": "5.5.0", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "bundled": true, "dev": true, "optional": true }, "string_decoder": { "version": "1.1.1", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "bundled": true, "dev": true, "optional": true, @@ -6465,6 +6708,7 @@ }, "string-width": { "version": "1.0.2", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "bundled": true, "dev": true, "optional": true, @@ -6476,6 +6720,7 @@ }, "strip-ansi": { "version": "3.0.1", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "bundled": true, "dev": true, "optional": true, @@ -6485,12 +6730,14 @@ }, "strip-json-comments": { "version": "2.0.1", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "bundled": true, "dev": true, "optional": true }, "tar": { "version": "4.4.1", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "bundled": true, "dev": true, "optional": true, @@ -6506,12 +6753,14 @@ }, "util-deprecate": { "version": "1.0.2", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "bundled": true, "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "bundled": true, "dev": true, "optional": true, @@ -6521,12 +6770,14 @@ }, "wrappy": { "version": "1.0.2", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "bundled": true, "dev": true, "optional": true }, "yallist": { "version": "3.0.2", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "bundled": true, "dev": true, "optional": true @@ -6805,6 +7056,12 @@ } } }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", @@ -7047,9 +7304,28 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } }, "mkdirp": { "version": "0.5.1", @@ -7414,6 +7690,30 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "psc-package": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/psc-package/-/psc-package-4.0.1.tgz", + "integrity": "sha512-P74OumVjkyc2ChiZqX6EA5E+2H38DTT3OKA4Rfpp/GeCQ1wF+WWZsREtgQDNotnJrBe6bHE9VGAbLVVXVrsB0g==", + "dev": true, + "requires": { + "follow-redirects": "^1.5.9", + "shelljs": "^0.8.2", + "tar": "^4.4.8" + }, + "dependencies": { + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + } + } + }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -7562,6 +7862,15 @@ } } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -7909,6 +8218,38 @@ "acorn-node": "^1.2.0" } }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, "temp": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz", @@ -8101,6 +8442,12 @@ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "yargs": { "version": "3.27.0", "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz", diff --git a/package.json b/package.json index 4443da85..5c7214ac 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "jshint": "^2.9.7", "mkdirp": "^0.5.1", "mocha": "^5.2.0", + "psc-package": "^4.0.1", "purescript-psa": "^0.7.3", "semver": "^5.6.0", "touch": "^3.1.0" From 92b01d84331cb0fe8ffe5edecd97fa413e1563e8 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:28:54 -0600 Subject: [PATCH 09/26] Run CI on ubuntu and windows - purs was updated to v0.14.5 - only more recent versions are being tested - psc-package is installed via NPM --- .github/workflows/ci.yml | 117 +++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 36 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65abecb8..4b74ca2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,21 +5,17 @@ on: branches: [master] pull_request: -defaults: - run: - shell: bash +env: + PURS_BUILD_VERSION: v0.14.5 jobs: - build: + nonWindowsBuild: strategy: matrix: - os: [ubuntu-latest, windows-latest] - PURS_TEST_VERSION: [v0.12.3, v0.12.5] - runs-on: ${{ matrix.os }} + purs_test_version: [v0.14.4, v0.14.5] + runs-on: ubuntu-latest env: - PURS_BUILD_VERSION: v0.12.5 - PURS_TEST_VERSION: ${{ matrix.PURS_TEST_VERSION }} - PSC_PACKAGE_VERSION: v0.5.1 + PURS_TEST_VERSION: ${{ matrix.purs_test_version }} steps: - uses: actions/checkout@v2 @@ -27,37 +23,86 @@ jobs: with: node-version: "12" - - name: Setup $HOME/bin folder - run: mkdir -p $HOME/bin + - name: Download PureScript (Build version) + shell: bash + run: | + DIR=$HOME/bin/purescript-$PURS_BUILD_VERSION + mkdir -p $DIR + wget -O $DIR/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$PURS_BUILD_VERSION/linux64.tar.gz + tar -xvf $DIR/purescript.tar.gz -C $DIR --strip-components 1 purescript/purs + chmod a+x $DIR/purs - - name: Download PureScript + - name: Download PureScript (Test version) + if: env.PURS_BUILD_VERSION != env.PURS_TEST_VERSION + shell: bash run: | - function download_purescript() { - local DIR, VERSION - VERSION=$1 - DIR=$HOME/bin/purescript-$VERSION - mkdir $DIR - wget -O $DIR/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$VERSION/linux64.tar.gz - tar -xvf $DIR/purescript.tar.gz -C $DIR --strip-components 1 purescript/purs - chmod a+x $DIR/purs - } - download_purescript $PURS_BUILD_VERSION - if [ "$PURS_BUILD_VERSION" != "$PURS_TEST_VERSION" ] - then - download_purescript $PURS_TEST_VERSION - fi + DIR=$HOME/bin/purescript-$PURS_TEST_VERSION + mkdir -p $DIR + wget -O $DIR/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$PURS_TEST_VERSION/linux64.tar.gz + tar -xvf $DIR/purescript.tar.gz -C $DIR --strip-components 1 purescript/purs + chmod a+x $DIR/purs - - name: Download psc-package + - name: Run NPM install run: | - wget -O $HOME/bin/psc-package.tar.gz https://github.com/purescript/psc-package/releases/download/$PSC_PACKAGE_VERSION/linux64.tar.gz - tar -xvf $HOME/bin/psc-package.tar.gz -C $HOME/bin --strip-components 1 psc-package/psc-package - chmod a+x $HOME/bin/psc-package + echo "Using Purs with version:" + PATH="$HOME/bin/purescript-$PURS_BUILD_VERSION:$PATH" + purs --version + npm install - - name: Install NPM dependencies - run: npm install -g bower + - name: Run NPM test + run: | + echo "Using Purs with version:" + PATH="$HOME/bin/purescript-$PURS_TEST_VERSION:$PATH" + purs --version + npm test + + windowsBuild: + strategy: + matrix: + purs_test_version: [v0.14.4, v0.14.5] + runs-on: windows-latest + env: + PURS_TEST_VERSION: ${{ matrix.purs_test_version }} + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v1 + with: + node-version: "12" + + - name: Download PureScript (Build version) + shell: bash + run: | + pushd C:\\tools + DIR=purescript-$PURS_BUILD_VERSION + mkdir -p $DIR + curl -opurescript.tar.gz -L https://github.com/purescript/purescript/releases/download/$PURS_BUILD_VERSION/win64.tar.gz + tar -xvzf purescript.tar.gz -C $DIR --strip-components 1 purescript/purs.exe + ls . + ls purescript-$PURS_BUILD_VERSION + popd + + - name: Download PureScript (Test version) + if: env.PURS_BUILD_VERSION != env.PURS_TEST_VERSION + shell: bash + run: | + pushd C:\\tools + DIR=purescript-$PURS_TEST_VERSION + mkdir -p $DIR + curl -opurescript.tar.gz -L https://github.com/purescript/purescript/releases/download/$PURS_TEST_VERSION/win64.tar.gz + tar -xvzf purescript.tar.gz -C $DIR --strip-components 1 purescript/purs.exe + popd - name: Run NPM install - run: PATH=$HOME/bin/purescript-$PURS_BUILD_VERSION:$PATH npm install + run: | + echo "Using Purs with version:" + $env:Path="C:\tools\purescript-$env:PURS_BUILD_VERSION;$env:Path" + purs.exe --version + npm install - - name: Run NPM tests - run: PATH=$HOME/bin/purescript-$PURS_TEST_VERSION:$PATH npm test + - name: Run NPM test + run: | + echo "Using Purs with version:" + $env:Path="C:\tools\purescript-$env:PURS_TEST_VERSION;$env:Path" + purs.exe --version + npm test From 38624692a247eee8787674acad8b95a4c64f6ff7 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:29:58 -0600 Subject: [PATCH 10/26] Ignore unused arg --- src/Pulp/Watch.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pulp/Watch.purs b/src/Pulp/Watch.purs index 5539da84..18b468b2 100644 --- a/src/Pulp/Watch.purs +++ b/src/Pulp/Watch.purs @@ -87,7 +87,7 @@ action = Action \args -> do globs <- Set.union <$> defaultGlobs opts <*> testGlobs opts let fileGlobs = sources globs <> ffis globs - watchAff fileGlobs $ \_path -> do + watchAff fileGlobs $ \_ -> do child <- AVar.take childV liftEffect $ treeKill (pid child) "SIGTERM" out.write "---\n" From eef4720c410a721e9ea9a68f094cb3207caa5ca4 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:43:40 -0600 Subject: [PATCH 11/26] Sort imports --- src/Pulp/Args.purs | 9 ++++----- src/Pulp/Args/Get.purs | 13 ++++++------- src/Pulp/Args/Help.purs | 7 +++---- src/Pulp/Args/Parser.purs | 10 +++++----- src/Pulp/Args/Types.purs | 12 +++++------- src/Pulp/Browserify.purs | 23 +++++++++++------------ src/Pulp/Build.purs | 11 +++++------ src/Pulp/Exec.purs | 7 +++---- src/Pulp/Files.purs | 9 ++++----- src/Pulp/Git.purs | 9 ++++----- src/Pulp/Init.purs | 5 ++--- src/Pulp/Login.purs | 19 +++++++++---------- src/Pulp/Outputter.purs | 5 ++--- src/Pulp/Repl.purs | 3 +-- src/Pulp/Run.purs | 9 ++++----- src/Pulp/Server.purs | 9 ++++----- src/Pulp/Shell.purs | 5 ++--- src/Pulp/Test.purs | 9 ++++----- src/Pulp/Utils.purs | 2 +- src/Pulp/Validate.purs | 5 ++--- src/Pulp/VersionBump.purs | 2 +- src/Pulp/Watch.purs | 13 ++++++------- 22 files changed, 88 insertions(+), 108 deletions(-) diff --git a/src/Pulp/Args.purs b/src/Pulp/Args.purs index 59ee57ef..06b5bb09 100644 --- a/src/Pulp/Args.purs +++ b/src/Pulp/Args.purs @@ -2,13 +2,12 @@ module Pulp.Args where import Prelude -import Data.Map (Map()) +import Data.List (List) +import Data.Map (Map) import Data.Maybe (Maybe(..)) -import Data.List (List()) import Effect.Aff (Aff) -import Foreign (Foreign(), unsafeToForeign) - -import Text.Parsing.Parser (ParserT()) +import Foreign (Foreign, unsafeToForeign) +import Text.Parsing.Parser (ParserT) type Options = Map String (Maybe Foreign) diff --git a/src/Pulp/Args/Get.purs b/src/Pulp/Args/Get.purs index 3a97cab3..c0303a09 100644 --- a/src/Pulp/Args/Get.purs +++ b/src/Pulp/Args/Get.purs @@ -8,19 +8,18 @@ module Pulp.Args.Get import Prelude -import Data.Either (Either(..)) -import Data.Maybe (Maybe(..), isJust) -import Foreign (Foreign) -import Foreign.Class (class Decode, decode) -import Pulp.Args (Options) -import Pulp.System.FFI (unsafeInspect) - import Control.Monad.Error.Class (throwError) import Control.Monad.Except (runExcept) +import Data.Either (Either(..)) import Data.Map (lookup) +import Data.Maybe (Maybe(..), isJust) import Data.String (joinWith) import Effect.Aff (Aff) import Effect.Exception (error) +import Foreign (Foreign) +import Foreign.Class (class Decode, decode) +import Pulp.Args (Options) +import Pulp.System.FFI (unsafeInspect) -- | Get an option out of the `Options` value. If the option has no default and -- | was not specified at the command line, the result will be `Nothing`. For diff --git a/src/Pulp/Args/Help.purs b/src/Pulp/Args/Help.purs index 3ef8cb9c..6e7d178f 100644 --- a/src/Pulp/Args/Help.purs +++ b/src/Pulp/Args/Help.purs @@ -5,10 +5,6 @@ module Pulp.Args.Help import Prelude -import Partial.Unsafe (unsafePartial) -import Pulp.Args (Argument, Command, Option, option) -import Pulp.Outputter (Outputter) - import Control.Monad.Except (runExcept) import Data.Array (sort, (!!), null) import Data.Either (Either(..)) @@ -24,7 +20,10 @@ import Foreign.Class (decode) import Foreign.Object (Object, keys, lookup, insert, empty) import Node.Path as Path import Node.Process as Process +import Partial.Unsafe (unsafePartial) +import Pulp.Args (Argument, Command, Option, option) import Pulp.Args.Types as Type +import Pulp.Outputter (Outputter) foreign import pad :: Int -> String diff --git a/src/Pulp/Args/Parser.purs b/src/Pulp/Args/Parser.purs index 3283dfdc..92885203 100644 --- a/src/Pulp/Args/Parser.purs +++ b/src/Pulp/Args/Parser.purs @@ -3,13 +3,11 @@ module Pulp.Args.Parser where import Prelude import Control.Alt ((<|>)) -import Data.Either (Either(..)) -import Pulp.Args (Args, Argument, Command, Help(..), OptParser, Option, Options) -import Text.Parsing.Parser (ParseError, ParseState(..), ParserT, fail, runParserT) - import Control.Monad.State.Class (get) import Control.Monad.Trans.Class (lift) +import Data.Argonaut (fromString) import Data.Array (many) +import Data.Either (Either(..)) import Data.Foldable (find, elem) import Data.List (List) import Data.List as List @@ -20,7 +18,9 @@ import Data.Traversable (traverse) import Data.Tuple (Tuple(..)) import Effect.Aff (Aff) import Foreign (unsafeToForeign) +import Pulp.Args (Args, Argument, Command, Help(..), OptParser, Option, Options) import Pulp.Utils (throw) +import Text.Parsing.Parser (ParseError, ParseState(..), ParserT, fail, runParserT) import Text.Parsing.Parser.Combinators ((), try, optionMaybe) import Text.Parsing.Parser.Pos as Pos import Text.Parsing.Parser.Token as Token @@ -119,7 +119,7 @@ parseArgv globals commands = do commandArgs: Map.unions commandArgs, remainder } - + helpForCommand command = matchHelp *> pure (Left (Help command)) diff --git a/src/Pulp/Args/Types.purs b/src/Pulp/Args/Types.purs index a850e4af..a24d5520 100644 --- a/src/Pulp/Args/Types.purs +++ b/src/Pulp/Args/Types.purs @@ -13,20 +13,18 @@ import Prelude import Control.Alt ((<|>)) import Control.Monad.Trans.Class (lift) import Data.Array (filter) -import Data.String (null, split, Pattern(..)) -import Data.Maybe (Maybe(..)) -import Data.Int (fromString) import Data.Foldable (for_) +import Data.Int (fromString) +import Data.Maybe (Maybe(..)) +import Data.String (null, split, Pattern(..)) import Foreign (unsafeToForeign) -import Text.Parsing.Parser (fail) - -import Node.FS.Stats (Stats(), isFile, isDirectory) import Node.FS.Aff (stat) +import Node.FS.Stats (Stats, isFile, isDirectory) import Node.Path as Path - import Pulp.Args (ArgumentParser, OptParser, OptionParser) import Pulp.Args.Parser (halt, token) import Pulp.VersionBump (parseBump) +import Text.Parsing.Parser (fail) argErr :: forall a. String -> String -> OptParser a argErr arg msg = diff --git a/src/Pulp/Browserify.purs b/src/Pulp/Browserify.purs index 45150449..169fe8dd 100644 --- a/src/Pulp/Browserify.purs +++ b/src/Pulp/Browserify.purs @@ -3,22 +3,13 @@ module Pulp.Browserify where import Prelude -import Data.Foldable (fold) -import Data.Function.Uncurried (Fn2, runFn2) -import Data.Maybe (Maybe(..), isJust, maybe) -import Pulp.Args (Action(..), Args, Options, runAction) -import Pulp.Args.Get (getFlag, getOption, getOption') -import Pulp.Files (defaultGlobs, outputModules) -import Pulp.Outputter (getOutputter) -import Pulp.Project (Project(..)) -import Pulp.Sorcery (sorcery) -import Pulp.System.FFI (Callback, runNode) -import Pulp.System.Files (openTemp) - import Data.Argonaut (Json, caseJsonArray, caseJsonObject, caseJsonString, fromArray, fromObject, fromString, jsonEmptyObject, jsonNull, jsonParser) import Data.Argonaut.Core (stringify) import Data.Either (Either(..)) +import Data.Foldable (fold) +import Data.Function.Uncurried (Fn2, runFn2) import Data.Map as Map +import Data.Maybe (Maybe(..), isJust, maybe) import Data.Nullable (Nullable, toNullable) import Data.Traversable (traverse) import Effect (Effect) @@ -29,9 +20,17 @@ import Node.Encoding (Encoding(UTF8)) import Node.FS.Aff (unlink, writeTextFile, readTextFile) import Node.Path as Path import Node.Process as Process +import Pulp.Args (Action(..), Args, Options, runAction) +import Pulp.Args.Get (getFlag, getOption, getOption') import Pulp.Build as Build import Pulp.Exec (pursBundle) +import Pulp.Files (defaultGlobs, outputModules) +import Pulp.Outputter (getOutputter) +import Pulp.Project (Project(..)) import Pulp.Run (makeEntry, jsEscape) +import Pulp.Sorcery (sorcery) +import Pulp.System.FFI (Callback, runNode) +import Pulp.System.Files (openTemp) import Pulp.System.Stream (WritableStream) action :: Action diff --git a/src/Pulp/Build.purs b/src/Pulp/Build.purs index 1f2ac0aa..0d99237d 100644 --- a/src/Pulp/Build.purs +++ b/src/Pulp/Build.purs @@ -8,18 +8,13 @@ module Pulp.Build import Prelude -import Data.Maybe (Maybe(..), maybe) -import Pulp.Args (Action(..), Args, Options, runAction) -import Pulp.Args.Get (getFlag, getOption, getOption', hasOption) -import Pulp.Files (defaultGlobs, outputModules, sources, testGlobs) -import Pulp.Outputter (getOutputter) - import Control.Monad.Error.Class (throwError) import Data.Either (Either(..)) import Data.Foldable (fold) import Data.List (List(..)) import Data.List.NonEmpty as NEL import Data.Map (union) +import Data.Maybe (Maybe(..), maybe) import Data.Set as Set import Data.String (Pattern(..), split) import Data.Version.Haskell (Version(..)) @@ -28,7 +23,11 @@ import Effect.Class (liftEffect) import Node.FS.Aff as FS import Node.Path as Path import Node.Process as Process +import Pulp.Args (Action(..), Args, Options, runAction) +import Pulp.Args.Get (getFlag, getOption, getOption', hasOption) import Pulp.Exec (psa, pursBuild, pursBundle) +import Pulp.Files (defaultGlobs, outputModules, sources, testGlobs) +import Pulp.Outputter (getOutputter) import Pulp.Sorcery (sorcery) import Pulp.System.Files as Files import Pulp.System.Stream (write, end, WritableStream, stdout) diff --git a/src/Pulp/Exec.purs b/src/Pulp/Exec.purs index aa800609..bd173bcd 100644 --- a/src/Pulp/Exec.purs +++ b/src/Pulp/Exec.purs @@ -12,15 +12,12 @@ module Pulp.Exec import Prelude -import Effect.Aff (Aff, forkAff, makeAff, throwError) -import Pulp.System.Stream (concatStream, stderr, write) -import Unsafe.Coerce (unsafeCoerce) - import Data.Either (Either(..), either) import Data.Foldable (for_) import Data.Maybe (Maybe(..)) import Data.Posix.Signal (Signal(SIGTERM, SIGINT)) import Data.String (stripSuffix, Pattern(..)) +import Effect.Aff (Aff, forkAff, makeAff, throwError) import Effect.Aff.AVar as Avar import Effect.Class (liftEffect) import Effect.Exception (error) @@ -28,6 +25,8 @@ import Foreign.Object (Object) import Node.ChildProcess as CP import Node.Platform (Platform(Win32)) import Node.Process as Process +import Pulp.System.Stream (concatStream, stderr, write) +import Unsafe.Coerce (unsafeCoerce) psa :: Array String -> Array String -> Maybe (Object String) -> Aff Unit psa = compiler "psa" diff --git a/src/Pulp/Files.purs b/src/Pulp/Files.purs index e38b2050..4dd7300c 100644 --- a/src/Pulp/Files.purs +++ b/src/Pulp/Files.purs @@ -13,12 +13,8 @@ module Pulp.Files import Prelude -import Data.Function.Uncurried (Fn2, runFn2) -import Pulp.Args (Options) -import Pulp.Args.Get (getOption, getOption') -import Pulp.System.FFI (Callback, runNode) - import Data.Array (concat, mapMaybe) +import Data.Function.Uncurried (Fn2, runFn2) import Data.List as List import Data.Maybe (Maybe(..), fromMaybe) import Data.Set (Set) @@ -28,8 +24,11 @@ import Data.Traversable (sequence, traverse) import Effect.Aff (Aff) import Foreign.Class (class Decode) import Node.Path as Path +import Pulp.Args (Options) +import Pulp.Args.Get (getOption, getOption') import Pulp.Exec (execQuiet) import Pulp.Project (usingPscPackage) +import Pulp.System.FFI (Callback, runNode) recursiveGlobWithExtension :: String -> Set String -> Array String recursiveGlobWithExtension ext = diff --git a/src/Pulp/Git.purs b/src/Pulp/Git.purs index 439e1cb7..116b860c 100644 --- a/src/Pulp/Git.purs +++ b/src/Pulp/Git.purs @@ -7,19 +7,18 @@ module Pulp.Git import Prelude +import Data.Array as Array import Data.Either (either) +import Data.Foldable as Foldable import Data.Function (on) import Data.Maybe (Maybe(..), fromMaybe) -import Data.Tuple (Tuple(..), snd) -import Pulp.Exec (execQuiet, execQuietWithStderr) - -import Data.Array as Array -import Data.Foldable as Foldable import Data.String as String +import Data.Tuple (Tuple(..), snd) import Data.Version (Version) import Data.Version as Version import Effect.Aff (Aff, attempt) import Node.ChildProcess as CP +import Pulp.Exec (execQuiet, execQuietWithStderr) import Pulp.Utils (throw) -- | Throw an error if the git working tree is dirty. diff --git a/src/Pulp/Init.purs b/src/Pulp/Init.purs index a714763a..ca4266f7 100644 --- a/src/Pulp/Init.purs +++ b/src/Pulp/Init.purs @@ -4,9 +4,6 @@ module Pulp.Init import Prelude -import Pulp.Args (Action(..)) -import Pulp.Outputter (Outputter, getOutputter) - import Control.Monad.Error.Class (throwError) import Data.Array (cons) import Data.Foldable (for_) @@ -21,7 +18,9 @@ import Node.Encoding (Encoding(UTF8)) import Node.FS.Aff (writeTextFile, exists) import Node.Path as Path import Node.Process as Process +import Pulp.Args (Action(..)) import Pulp.Args.Get (getFlag) +import Pulp.Outputter (Outputter, getOutputter) import Pulp.PackageManager (launchBower, launchPscPackage) import Pulp.System.Files (mkdirIfNotExist) import Pulp.Utils (throw) diff --git a/src/Pulp/Login.purs b/src/Pulp/Login.purs index e950ec99..ffdb1746 100644 --- a/src/Pulp/Login.purs +++ b/src/Pulp/Login.purs @@ -6,32 +6,31 @@ module Pulp.Login import Prelude import Control.Monad.Error.Class (throwError) -import Data.Either (Either(..)) -import Data.Maybe (Maybe(..)) -import Data.Tuple.Nested ((/\)) -import Effect.Class (liftEffect) -import Effect.Exception (error) -import Node.FS.Perms (mkPerms, none, read, write) -import Pulp.Args (Action(..)) -import Pulp.Outputter (Outputter, getOutputter) -import Pulp.System.HTTP (httpRequest) - import Control.Monad.Except (runExcept) +import Data.Either (Either(..)) import Data.Foldable (fold) +import Data.Maybe (Maybe(..)) import Data.Options ((:=)) import Data.String as String +import Data.Tuple.Nested ((/\)) import Effect.Aff (Aff) +import Effect.Class (liftEffect) +import Effect.Exception (error) import Foreign (readString) import Foreign.Index (readProp) import Foreign.JSON (parseJSON) import Foreign.Object as Object import Node.Encoding (Encoding(..)) import Node.FS.Aff as FS +import Node.FS.Perms (mkPerms, none, read, write) import Node.HTTP.Client as HTTP import Node.Path as Path import Node.Platform (Platform(Win32)) import Node.Process as Process +import Pulp.Args (Action(..)) +import Pulp.Outputter (Outputter, getOutputter) import Pulp.System.Files (mkdirIfNotExist) +import Pulp.System.HTTP (httpRequest) import Pulp.System.Read as Read import Pulp.System.Stream (concatStream) import Pulp.Version as PulpVersion diff --git a/src/Pulp/Outputter.purs b/src/Pulp/Outputter.purs index aa52fc96..1a1dab6c 100644 --- a/src/Pulp/Outputter.purs +++ b/src/Pulp/Outputter.purs @@ -6,12 +6,11 @@ module Pulp.Outputter import Prelude -import Pulp.Args (Args) -import Pulp.Args.Get (getFlag) - import Ansi.Codes (Color(..)) import Ansi.Output (withGraphics, foreground, bold) import Effect.Aff (Aff) +import Pulp.Args (Args) +import Pulp.Args.Get (getFlag) import Pulp.System.Stream (write, WritableStream, stderr) import Pulp.System.SupportsColor as Color diff --git a/src/Pulp/Repl.purs b/src/Pulp/Repl.purs index d06a96ea..c994bfb1 100644 --- a/src/Pulp/Repl.purs +++ b/src/Pulp/Repl.purs @@ -2,10 +2,9 @@ module Pulp.Repl where import Prelude -import Data.Maybe (Maybe(..)) import Data.Map as Map +import Data.Maybe (Maybe(..)) import Data.Set as Set - import Pulp.Args (Action(..)) import Pulp.Exec (execInteractive) import Pulp.Files (defaultGlobs, sources, testGlobs) diff --git a/src/Pulp/Run.purs b/src/Pulp/Run.purs index 22c26704..556f4fa5 100644 --- a/src/Pulp/Run.purs +++ b/src/Pulp/Run.purs @@ -2,11 +2,6 @@ module Pulp.Run where import Prelude -import Pulp.Args (Action(..)) -import Pulp.Args.Get (getOption') -import Pulp.Exec (exec) -import Pulp.Outputter (getOutputter) - import Data.Map as Map import Data.Maybe (Maybe(..)) import Data.String (replace, Pattern(..), Replacement(..)) @@ -19,7 +14,11 @@ import Node.Encoding (Encoding(UTF8)) import Node.FS.Aff as FS import Node.Path as Path import Node.Process as Process +import Pulp.Args (Action(..)) +import Pulp.Args.Get (getOption') import Pulp.Build as Build +import Pulp.Exec (exec) +import Pulp.Outputter (getOutputter) import Pulp.System.Files (openTemp) action :: Action diff --git a/src/Pulp/Server.purs b/src/Pulp/Server.purs index 122c605d..c71acc8d 100644 --- a/src/Pulp/Server.purs +++ b/src/Pulp/Server.purs @@ -6,12 +6,8 @@ module Pulp.Server import Prelude import Data.Either (Either(..)) -import Data.Maybe (Maybe(..)) -import Pulp.Args (Action(..), Args, Options) -import Pulp.Args.Get (getFlag, getOption') -import Pulp.Outputter (getOutputter) - import Data.Map as Map +import Data.Maybe (Maybe(..)) import Effect (Effect) import Effect.Aff (Aff, attempt, launchAff, makeAff) import Effect.Aff.AVar as AVar @@ -21,7 +17,10 @@ import Node.Encoding (Encoding(..)) import Node.HTTP as HTTP import Node.Path as Path import Node.Stream as Stream +import Pulp.Args (Action(..), Args, Options) +import Pulp.Args.Get (getFlag, getOption') import Pulp.Build as Build +import Pulp.Outputter (getOutputter) import Pulp.System.StaticServer as StaticServer import Pulp.Utils (orErr) import Pulp.Watch (watchAff, watchDirectories) diff --git a/src/Pulp/Shell.purs b/src/Pulp/Shell.purs index c341dc00..0da0c886 100644 --- a/src/Pulp/Shell.purs +++ b/src/Pulp/Shell.purs @@ -3,9 +3,6 @@ module Pulp.Shell (shell) where import Prelude -import Pulp.Exec (exec) -import Pulp.Outputter (Outputter) - import Data.Maybe (Maybe(..)) import Effect.Aff (Aff) import Effect.Class (liftEffect) @@ -14,6 +11,8 @@ import Node.Encoding (Encoding(UTF8)) import Node.FS.Aff as FS import Node.Platform (Platform(Win32)) import Node.Process as Process +import Pulp.Exec (exec) +import Pulp.Outputter (Outputter) import Pulp.System.Files (openTemp) shell :: Outputter -> String -> Aff Unit diff --git a/src/Pulp/Test.purs b/src/Pulp/Test.purs index cf37bd88..9eb7504b 100644 --- a/src/Pulp/Test.purs +++ b/src/Pulp/Test.purs @@ -5,19 +5,18 @@ module Pulp.Test import Prelude -import Effect.Class (liftEffect) -import Data.Maybe (Maybe(..)) import Data.Map as Map +import Data.Maybe (Maybe(..)) +import Effect.Class (liftEffect) import Foreign (unsafeToForeign) import Node.Buffer as Buffer import Node.Encoding (Encoding(UTF8)) import Node.FS.Aff as FS - -import Pulp.Outputter (getOutputter) import Pulp.Args (Action(..), Options) import Pulp.Args.Get (getOption') -import Pulp.Exec (exec) import Pulp.Build as Build +import Pulp.Exec (exec) +import Pulp.Outputter (getOutputter) import Pulp.Run (setupEnv, makeEntry) import Pulp.System.Files (openTemp) diff --git a/src/Pulp/Utils.purs b/src/Pulp/Utils.purs index e28d7a53..f5105e2f 100644 --- a/src/Pulp/Utils.purs +++ b/src/Pulp/Utils.purs @@ -2,9 +2,9 @@ module Pulp.Utils where import Prelude +import Control.Monad.Error.Class (class MonadError, throwError) import Data.Maybe (Maybe, maybe) import Effect.Exception (Error, error) -import Control.Monad.Error.Class (class MonadError, throwError) orErr :: forall m a. MonadError Error m => String -> Maybe a -> m a orErr msg = maybe (throw msg) pure diff --git a/src/Pulp/Validate.purs b/src/Pulp/Validate.purs index 377ff3a4..a094f6cf 100644 --- a/src/Pulp/Validate.purs +++ b/src/Pulp/Validate.purs @@ -6,12 +6,11 @@ module Pulp.Validate import Prelude -import Data.Either (Either(..)) -import Data.Maybe (Maybe(..)) - import Control.Monad.Error.Class (throwError) +import Data.Either (Either(..)) import Data.List (List(..)) import Data.List.NonEmpty as NEL +import Data.Maybe (Maybe(..)) import Data.String (codePointFromChar, takeWhile, trim) import Data.Version.Haskell (Version(..), parseVersion, showVersion) import Effect.Aff (Aff) diff --git a/src/Pulp/VersionBump.purs b/src/Pulp/VersionBump.purs index 8613798c..5e1a0f7a 100644 --- a/src/Pulp/VersionBump.purs +++ b/src/Pulp/VersionBump.purs @@ -3,8 +3,8 @@ module Pulp.VersionBump where import Prelude -import Data.Maybe (Maybe(..)) import Data.Either (either) +import Data.Maybe (Maybe(..)) import Data.String as String import Data.Version (Version) import Data.Version as Version diff --git a/src/Pulp/Watch.purs b/src/Pulp/Watch.purs index 18b468b2..3a9418c9 100644 --- a/src/Pulp/Watch.purs +++ b/src/Pulp/Watch.purs @@ -7,18 +7,12 @@ module Pulp.Watch import Prelude -import Data.Maybe (Maybe, fromMaybe) -import Pulp.Args (Action(..), Options) -import Pulp.Args.Get (getOption) -import Pulp.Files (defaultGlobs, ffis, sources, testGlobs) -import Pulp.Outputter (getOutputter) -import Pulp.Utils (orErr) - import Data.Array as Array import Data.DateTime (DateTime) import Data.DateTime as DateTime import Data.Foldable (notElem) import Data.Map as Map +import Data.Maybe (Maybe, fromMaybe) import Data.Set as Set import Data.Time.Duration (Milliseconds(..)) import Data.Traversable (traverse, sequence) @@ -31,7 +25,12 @@ import Effect.Ref as Ref import Node.ChildProcess (fork, pid) import Node.Globals (__filename) import Node.Process as Process +import Pulp.Args (Action(..), Options) +import Pulp.Args.Get (getOption) +import Pulp.Files (defaultGlobs, ffis, sources, testGlobs) +import Pulp.Outputter (getOutputter) import Pulp.System.TreeKill (treeKill) +import Pulp.Utils (orErr) foreign import watch :: Array String From 2abfe7c4cfa44859b7260dd5fcb0c06c0d689c3c Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:44:43 -0600 Subject: [PATCH 12/26] Drop unused import --- src/Pulp/Args/Parser.purs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Pulp/Args/Parser.purs b/src/Pulp/Args/Parser.purs index 92885203..2ae4856e 100644 --- a/src/Pulp/Args/Parser.purs +++ b/src/Pulp/Args/Parser.purs @@ -5,7 +5,6 @@ import Prelude import Control.Alt ((<|>)) import Control.Monad.State.Class (get) import Control.Monad.Trans.Class (lift) -import Data.Argonaut (fromString) import Data.Array (many) import Data.Either (Either(..)) import Data.Foldable (find, elem) From c82b118562315fd6e9ce9d68bb1322b7ff08f9d3 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:45:32 -0600 Subject: [PATCH 13/26] Fix prelude import warning --- src/Pulp/Args/Parser.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pulp/Args/Parser.purs b/src/Pulp/Args/Parser.purs index 2ae4856e..30e25767 100644 --- a/src/Pulp/Args/Parser.purs +++ b/src/Pulp/Args/Parser.purs @@ -1,6 +1,6 @@ module Pulp.Args.Parser where -import Prelude +import Prelude hiding (when) import Control.Alt ((<|>)) import Control.Monad.State.Class (get) From 770a3a3134e953f72f3f38a98c58f9b412b166bd Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 15:47:45 -0600 Subject: [PATCH 14/26] Fix more compiler warnings --- src/Main.purs | 4 ++-- src/Pulp/Browserify.purs | 3 +-- src/Pulp/Run.purs | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Main.purs b/src/Main.purs index 3ab8093d..bea8eea6 100644 --- a/src/Main.purs +++ b/src/Main.purs @@ -252,7 +252,7 @@ main = void $ runAff (either failed succeeded) do Right (Right args') -> runWithArgs args' where - handleParseError (Just x) err + handleParseError (Just x) _ -- TODO: this is kind of gross, especially that --version and --help are -- repeated | x `elem` ["--version", "-v"] = printVersion @@ -281,7 +281,7 @@ runWithArgs args = do Left e -> do runShellForOption "else" args'.globalOpts out liftEffect $ throwException e - Right r -> + Right _ -> runShellForOption "then" args'.globalOpts out where noProject = ["init", "login"] diff --git a/src/Pulp/Browserify.purs b/src/Pulp/Browserify.purs index 169fe8dd..0f7f0882 100644 --- a/src/Pulp/Browserify.purs +++ b/src/Pulp/Browserify.purs @@ -24,7 +24,7 @@ import Pulp.Args (Action(..), Args, Options, runAction) import Pulp.Args.Get (getFlag, getOption, getOption') import Pulp.Build as Build import Pulp.Exec (pursBundle) -import Pulp.Files (defaultGlobs, outputModules) +import Pulp.Files (outputModules) import Pulp.Outputter (getOutputter) import Pulp.Project (Project(..)) import Pulp.Run (makeEntry, jsEscape) @@ -76,7 +76,6 @@ optimising = Action \args -> do let opts = Map.union args.globalOpts args.commandOpts - globs <- defaultGlobs opts buildPath <- getOption' "buildPath" opts main <- getOption' "main" opts transform <- getOption "transform" opts diff --git a/src/Pulp/Run.purs b/src/Pulp/Run.purs index 556f4fa5..7ee49524 100644 --- a/src/Pulp/Run.purs +++ b/src/Pulp/Run.purs @@ -18,13 +18,12 @@ import Pulp.Args (Action(..)) import Pulp.Args.Get (getOption') import Pulp.Build as Build import Pulp.Exec (exec) -import Pulp.Outputter (getOutputter) import Pulp.System.Files (openTemp) action :: Action action = Action \args -> do let opts = Map.union args.globalOpts args.commandOpts - out <- getOutputter args + -- out <- getOutputter args Build.runBuild args From f2651c53a9d41279848831608f4f6b948572a83e Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 7 Mar 2022 15:51:37 -0600 Subject: [PATCH 15/26] Test more PS versions --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b74ca2f..f87c524d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: nonWindowsBuild: strategy: matrix: - purs_test_version: [v0.14.4, v0.14.5] + purs_test_version: [v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] runs-on: ubuntu-latest env: PURS_TEST_VERSION: ${{ matrix.purs_test_version }} @@ -59,7 +59,7 @@ jobs: windowsBuild: strategy: matrix: - purs_test_version: [v0.14.4, v0.14.5] + purs_test_version: [v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] runs-on: windows-latest env: PURS_TEST_VERSION: ${{ matrix.purs_test_version }} From 534a023ff5bcd96c3e2c2348a336e8e753bc40dc Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 7 Mar 2022 15:55:36 -0600 Subject: [PATCH 16/26] Run all builds to completion --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f87c524d..ef1c26cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,7 @@ jobs: strategy: matrix: purs_test_version: [v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] + fail-fast: false runs-on: ubuntu-latest env: PURS_TEST_VERSION: ${{ matrix.purs_test_version }} @@ -60,6 +61,7 @@ jobs: strategy: matrix: purs_test_version: [v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] + fail-fast: false runs-on: windows-latest env: PURS_TEST_VERSION: ${{ matrix.purs_test_version }} From fdc6cb9c9a72891566200da2403de99f44075768 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 7 Mar 2022 15:55:50 -0600 Subject: [PATCH 17/26] Add v0.11.0 back --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef1c26cd..fd22a2f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: nonWindowsBuild: strategy: matrix: - purs_test_version: [v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] + purs_test_version: [v0.11.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] fail-fast: false runs-on: ubuntu-latest env: @@ -60,7 +60,7 @@ jobs: windowsBuild: strategy: matrix: - purs_test_version: [v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] + purs_test_version: [v0.11.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] fail-fast: false runs-on: windows-latest env: From 40794bd00042a17ea55c13d228ce26d8c6cb3697 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 7 Mar 2022 16:05:01 -0600 Subject: [PATCH 18/26] Fix indentation --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd22a2f3..10c43bff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,7 +61,7 @@ jobs: strategy: matrix: purs_test_version: [v0.11.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] - fail-fast: false + fail-fast: false runs-on: windows-latest env: PURS_TEST_VERSION: ${{ matrix.purs_test_version }} From eb1ee70ec0ed38a32a0c137e8fd8d5b73c0ba396 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 7 Mar 2022 19:49:02 -0600 Subject: [PATCH 19/26] Run unit and integration tests separately --- .github/workflows/ci.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10c43bff..c858ae6b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,12 +50,19 @@ jobs: purs --version npm install - - name: Run NPM test + - name: Run NPM test (unit) + run: | + echo "Using Purs with version:" + PATH="$HOME/bin/purescript-$PURS_BUILD_VERSION:$PATH" + purs --version + npm test:unit + + - name: Run NPM test (integration) run: | echo "Using Purs with version:" PATH="$HOME/bin/purescript-$PURS_TEST_VERSION:$PATH" purs --version - npm test + npm test:integration windowsBuild: strategy: @@ -102,9 +109,16 @@ jobs: purs.exe --version npm install - - name: Run NPM test + - name: Run NPM test (unit) + run: | + echo "Using Purs with version:" + $env:Path="C:\tools\purescript-$env:PURS_BUILD_VERSION;$env:Path" + purs.exe --version + npm test:unit + + - name: Run NPM test (integration) run: | echo "Using Purs with version:" $env:Path="C:\tools\purescript-$env:PURS_TEST_VERSION;$env:Path" purs.exe --version - npm test + npm test:integration From 5fe1d6bbdc8aa234e05a1f0fcbe3689496f11ad7 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 7 Mar 2022 19:56:29 -0600 Subject: [PATCH 20/26] Non-standard scripts require 'run' command --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c858ae6b..c43609cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,14 +55,14 @@ jobs: echo "Using Purs with version:" PATH="$HOME/bin/purescript-$PURS_BUILD_VERSION:$PATH" purs --version - npm test:unit + npm run test:unit - name: Run NPM test (integration) run: | echo "Using Purs with version:" PATH="$HOME/bin/purescript-$PURS_TEST_VERSION:$PATH" purs --version - npm test:integration + npm run test:integration windowsBuild: strategy: @@ -114,11 +114,11 @@ jobs: echo "Using Purs with version:" $env:Path="C:\tools\purescript-$env:PURS_BUILD_VERSION;$env:Path" purs.exe --version - npm test:unit + npm run test:unit - name: Run NPM test (integration) run: | echo "Using Purs with version:" $env:Path="C:\tools\purescript-$env:PURS_TEST_VERSION;$env:Path" purs.exe --version - npm test:integration + npm run test:integration From 5fb2e5b0693af6175c8ce1accee77a653fc80c2c Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 8 Mar 2022 07:52:19 -0600 Subject: [PATCH 21/26] Use compiler-version-specific deps on init --- src/Pulp/Init.purs | 49 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/src/Pulp/Init.purs b/src/Pulp/Init.purs index ca4266f7..e0b487e9 100644 --- a/src/Pulp/Init.purs +++ b/src/Pulp/Init.purs @@ -7,9 +7,10 @@ import Prelude import Control.Monad.Error.Class (throwError) import Data.Array (cons) import Data.Foldable (for_) -import Data.List (List(..)) +import Data.List (List(..), (:)) import Data.List.NonEmpty as NEL import Data.String (joinWith) +import Data.Version.Haskell (Version(..)) import Data.Version.Haskell as HVer import Effect.Aff (Aff) import Effect.Class (liftEffect) @@ -138,29 +139,57 @@ init initStyle effOrEffect force out = do when (dir /= cwd) (mkdirIfNotExist dir) writeTextFile UTF8 f.path f.content - install initStyle effOrEffect + psVer <- getPursVersion out + + install initStyle effOrEffect (getDepsVersions psVer) where - install Bower UseEff = do - launchBower ["install", "--save", "purescript-prelude@3.3.0", "purescript-console@3.0.0"] - launchBower ["install", "--save-dev", "purescript-psci-support@3.0.0"] + install Bower UseEff p = do + launchBower ["install", "--save", p.prelude, p.console] + launchBower ["install", "--save-dev", p.psciSupport] - install Bower UseEffect = do - launchBower ["install", "--save", "purescript-prelude", "purescript-console", "purescript-effect"] - launchBower ["install", "--save-dev", "purescript-psci-support"] + install Bower UseEffect p = do + launchBower ["install", "--save", p.prelude, p.console, p.effect ] + launchBower ["install", "--save-dev", p.psciSupport ] - install PscPackage UseEff = do + install PscPackage UseEff _ = do launchPscPackage ["init"] launchPscPackage ["install", "eff"] launchPscPackage ["install", "console"] launchPscPackage ["install", "psci-support"] - install PscPackage UseEffect = do + install PscPackage UseEffect _ = do launchPscPackage ["init"] launchPscPackage ["install", "effect"] launchPscPackage ["install", "console"] launchPscPackage ["install", "psci-support"] + getDepsVersions v + | v >= Version (NEL.cons' 0 (14 : 0 : Nil)) Nil = + { prelude: "purescript-prelude@v5.0.1" + , console: "purescript-console@v5.0.0" + , effect: "purescript-effect@v3.0.0" + , psciSupport: "purescript-psci-support@v5.0.0" + } + | v >= Version (NEL.cons' 0 (13 : 0 : Nil)) Nil = + { prelude: "purescript-prelude@v4.1.1" + , console: "purescript-console@v4.4.0" + , effect: "purescript-effect@v2.0.1" + , psciSupport: "purescript-psci-support@v4.0.0" + } + | v >= Version (NEL.cons' 0 (12 : 0 : Nil)) Nil = + { prelude: "purescript-prelude@v4.1.1" + , console: "purescript-console@v4.4.0" + , effect: "purescript-effect@v2.0.1" + , psciSupport: "purescript-psci-support@v4.0.0" + } + | otherwise = + { prelude: "purescript-prelude@v3.3.0" + , console: "purescript-console@v3.0.0" + , effect: "purescript-effect@v1.1.0" + , psciSupport: "purescript-psci-support@v3.0.0" + } + action :: Action action = Action \args -> do force <- getFlag "force" args.commandOpts From 6b79581ac0a5b6d473fd2dc767f1ac5ac71aec8a Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 8 Mar 2022 08:06:20 -0600 Subject: [PATCH 22/26] Drop support for PureScript v0.11.0 --- .github/workflows/ci.yml | 4 ++-- src/Pulp/Validate.purs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c43609cd..b05bf64d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: nonWindowsBuild: strategy: matrix: - purs_test_version: [v0.11.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] + purs_test_version: [v0.12.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] fail-fast: false runs-on: ubuntu-latest env: @@ -67,7 +67,7 @@ jobs: windowsBuild: strategy: matrix: - purs_test_version: [v0.11.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] + purs_test_version: [v0.12.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] fail-fast: false runs-on: windows-latest env: diff --git a/src/Pulp/Validate.purs b/src/Pulp/Validate.purs index a094f6cf..c1984333 100644 --- a/src/Pulp/Validate.purs +++ b/src/Pulp/Validate.purs @@ -26,7 +26,7 @@ validate out = do <> showVersion minimumPursVersion <> " of the PureScript compiler " <> "or higher." out.err $ "Your installed version is " <> showVersion ver <> "." - out.err $ "Please either upgrade PureScript or downgrade Pulp to version 10.x." + out.err $ "Please either upgrade PureScript or downgrade Pulp to version 12.4.2." throwError $ error "Minimum purs version not satisfied" pure ver @@ -34,7 +34,7 @@ getPursVersion :: Outputter -> Aff Version getPursVersion = getVersionFrom "purs" minimumPursVersion :: Version -minimumPursVersion = Version (NEL.cons' 0 (Cons 11 (Cons 0 Nil))) Nil +minimumPursVersion = Version (NEL.cons' 0 (Cons 12 (Cons 0 Nil))) Nil getPsaVersion :: Outputter -> Aff Version getPsaVersion = getVersionFrom "psa" From 90841e14a63469a62bec1910e0a9c17196156988 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 8 Mar 2022 08:15:25 -0600 Subject: [PATCH 23/26] Bump min psa version to v0.7.0 --- src/Pulp/Build.purs | 2 +- test-js/integration.js | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Pulp/Build.purs b/src/Pulp/Build.purs index 0d99237d..f3a6f619 100644 --- a/src/Pulp/Build.purs +++ b/src/Pulp/Build.purs @@ -111,7 +111,7 @@ shouldUsePsa args = do where -- TODO this is actually semver - minimumPsaVersion = Version (NEL.cons' 0 (Cons 5 (Cons 0 Nil))) Nil + minimumPsaVersion = Version (NEL.cons' 0 (Cons 7 (Cons 0 Nil))) Nil bundle :: Args -> Aff Unit bundle args = do diff --git a/test-js/integration.js b/test-js/integration.js index 7d411da6..ebe9608c 100644 --- a/test-js/integration.js +++ b/test-js/integration.js @@ -554,7 +554,7 @@ describe("integration tests", function() { it("pulp uses purs when psa is not available", run(function*(sh, pulp, assert, temp) { const h = yield psaHelper(temp); - yield h.writeProg("purs", "0.11.4"); + yield h.writeProg("purs", "0.12.0"); yield pulp("init"); const [out, err] = yield pulp("build", undefined, {path: h.binPath}); @@ -563,7 +563,7 @@ describe("integration tests", function() { it("pulp ignores psa when it is too old", run(function*(sh, pulp, assert, temp) { const h = yield psaHelper(temp); - yield h.writeProg("purs", "0.11.4"); + yield h.writeProg("purs", "0.12.0"); yield h.writeProg("psa", "0.4.0"); yield pulp("init"); @@ -573,8 +573,8 @@ describe("integration tests", function() { it("pulp uses psa when it is available", run(function*(sh, pulp, assert, temp) { const h = yield psaHelper(temp); - yield h.writeProg("purs", "0.11.4"); - yield h.writeProg("psa", "0.5.0"); + yield h.writeProg("purs", "0.12.0"); + yield h.writeProg("psa", "0.7.0"); yield pulp("init"); const [out, err] = yield pulp("build", undefined, {path: h.binPath}); @@ -583,8 +583,8 @@ describe("integration tests", function() { it("pulp ignores psa when --no-psa is passed", run(function*(sh, pulp, assert, temp) { const h = yield psaHelper(temp); - yield h.writeProg("purs", "0.11.4"); - yield h.writeProg("psa", "0.5.0"); + yield h.writeProg("purs", "0.12.0"); + yield h.writeProg("psa", "0.7.0"); yield pulp("init"); const [out, err] = yield pulp("build --no-psa", undefined, {path: h.binPath}); @@ -593,8 +593,8 @@ describe("integration tests", function() { it("pulp passes arguments through to psa", run(function*(sh, pulp, assert, temp) { const h = yield psaHelper(temp); - yield h.writeProg("purs", "0.11.4"); - yield h.writeProg("psa", "0.5.0"); + yield h.writeProg("purs", "0.12.0"); + yield h.writeProg("psa", "0.7.0"); yield pulp("init"); const [out, err] = yield pulp("build -- --monochrome", undefined, {path: h.binPath}); From dfccf2adff137740ecf6317d793f7946d5ac70ef Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 8 Mar 2022 08:57:47 -0600 Subject: [PATCH 24/26] Add changelog entry --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 036d44ed..d57daf18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Pulp Release History +## 16.0.0 + +Breaking: +* Increased minimum `purs` version to `v0.12.0` and dropped support for all + compiler versions earlier than that. (#399 by @JordanMartinez) +* Increased minimum `psa` version to `v0.7.0` and dropped support for all + versions earlier than that. (#399 by @JordanMartinez) + +Internal: +* Update project and its dependencies to use PureScript `v0.14.5` and + `v0.14.0`-compatible libraries. (#399 by @JordanMartinez) +* Migrated from Travis CI to GitHub Actions. (#399 by @JordanMartinez) +* Updated CI integration tests to verify `pulp` works when + the compiler version used is `v0.12.x`, `v0.13.x`, and `v0.14.x`. + (#399 by @JordanMartinez) + ## 15.0.0 * Remove the check for `main` being an appropriate entry point when generating From eaf0e58f6ebb79c3b813340dea74b74be2e68281 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 8 Mar 2022 08:58:37 -0600 Subject: [PATCH 25/26] Delete commented out old code --- src/Pulp/Run.purs | 1 - src/Pulp/Validate.purs | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Pulp/Run.purs b/src/Pulp/Run.purs index 7ee49524..c4f8d4dc 100644 --- a/src/Pulp/Run.purs +++ b/src/Pulp/Run.purs @@ -23,7 +23,6 @@ import Pulp.System.Files (openTemp) action :: Action action = Action \args -> do let opts = Map.union args.globalOpts args.commandOpts - -- out <- getOutputter args Build.runBuild args diff --git a/src/Pulp/Validate.purs b/src/Pulp/Validate.purs index c1984333..8283d6e3 100644 --- a/src/Pulp/Validate.purs +++ b/src/Pulp/Validate.purs @@ -45,8 +45,7 @@ getVersionFrom bin out = do case parseVersion verStr of Right v -> pure v - Left _err -> do - -- let msg = parseErrorMessage err + Left _ -> do out.err $ "Unable to parse the version from " <> bin <> ". (It was: " <> verStr <> ")" out.err $ "Please check that the right executable is on your PATH." throwError $ error ("Couldn't parse version from " <> bin) From cf1469e0ac864edc0a488f0c1aa07d873bb45345 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 8 Mar 2022 09:03:30 -0600 Subject: [PATCH 26/26] Merge windows build into ubuntu build --- .github/workflows/ci.yml | 51 ++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b05bf64d..049cf40c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,12 +9,13 @@ env: PURS_BUILD_VERSION: v0.14.5 jobs: - nonWindowsBuild: + build: strategy: matrix: + os: [ubuntu-latest, windows-latest] purs_test_version: [v0.12.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] fail-fast: false - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} env: PURS_TEST_VERSION: ${{ matrix.purs_test_version }} steps: @@ -24,8 +25,9 @@ jobs: with: node-version: "12" - - name: Download PureScript (Build version) + - name: "non-Windows - Download PureScript (Build version)" shell: bash + if: runner.os != 'Windows' run: | DIR=$HOME/bin/purescript-$PURS_BUILD_VERSION mkdir -p $DIR @@ -33,8 +35,8 @@ jobs: tar -xvf $DIR/purescript.tar.gz -C $DIR --strip-components 1 purescript/purs chmod a+x $DIR/purs - - name: Download PureScript (Test version) - if: env.PURS_BUILD_VERSION != env.PURS_TEST_VERSION + - name: "non-Windows - Download PureScript (Test version)" + if: runner.os != 'Windows' && env.PURS_BUILD_VERSION != env.PURS_TEST_VERSION shell: bash run: | DIR=$HOME/bin/purescript-$PURS_TEST_VERSION @@ -43,44 +45,34 @@ jobs: tar -xvf $DIR/purescript.tar.gz -C $DIR --strip-components 1 purescript/purs chmod a+x $DIR/purs - - name: Run NPM install + - name: "non-Windows - Run NPM install" + if: runner.os != 'Windows' run: | echo "Using Purs with version:" PATH="$HOME/bin/purescript-$PURS_BUILD_VERSION:$PATH" purs --version npm install - - name: Run NPM test (unit) + - name: "non-Windows - Run NPM test (unit)" + if: runner.os != 'Windows' run: | echo "Using Purs with version:" PATH="$HOME/bin/purescript-$PURS_BUILD_VERSION:$PATH" purs --version npm run test:unit - - name: Run NPM test (integration) + - name: "non-Windows - Run NPM test (integration)" + if: runner.os != 'Windows' run: | echo "Using Purs with version:" PATH="$HOME/bin/purescript-$PURS_TEST_VERSION:$PATH" purs --version npm run test:integration - windowsBuild: - strategy: - matrix: - purs_test_version: [v0.12.0, v0.12.4, v0.12.5, v0.13.0, v0.14.0, v0.14.5] - fail-fast: false - runs-on: windows-latest - env: - PURS_TEST_VERSION: ${{ matrix.purs_test_version }} - steps: - - uses: actions/checkout@v2 - - - uses: actions/setup-node@v1 - with: - node-version: "12" - - name: Download PureScript (Build version) + - name: "Windows - Download PureScript (Build version)" shell: bash + if: runner.os == 'Windows' run: | pushd C:\\tools DIR=purescript-$PURS_BUILD_VERSION @@ -91,8 +83,8 @@ jobs: ls purescript-$PURS_BUILD_VERSION popd - - name: Download PureScript (Test version) - if: env.PURS_BUILD_VERSION != env.PURS_TEST_VERSION + - name: "Windows - Download PureScript (Test version)" + if: runner.os == 'Windows' && env.PURS_BUILD_VERSION != env.PURS_TEST_VERSION shell: bash run: | pushd C:\\tools @@ -102,21 +94,24 @@ jobs: tar -xvzf purescript.tar.gz -C $DIR --strip-components 1 purescript/purs.exe popd - - name: Run NPM install + - name: "Windows - Run NPM install" + if: runner.os == 'Windows' run: | echo "Using Purs with version:" $env:Path="C:\tools\purescript-$env:PURS_BUILD_VERSION;$env:Path" purs.exe --version npm install - - name: Run NPM test (unit) + - name: "Windows - Run NPM test (unit)" + if: runner.os == 'Windows' run: | echo "Using Purs with version:" $env:Path="C:\tools\purescript-$env:PURS_BUILD_VERSION;$env:Path" purs.exe --version npm run test:unit - - name: Run NPM test (integration) + - name: "Windows - Run NPM test (integration)" + if: runner.os == 'Windows' run: | echo "Using Purs with version:" $env:Path="C:\tools\purescript-$env:PURS_TEST_VERSION;$env:Path"