diff --git a/.ci/bootstrap b/.ci/bootstrap new file mode 100755 index 0000000..7076e7e --- /dev/null +++ b/.ci/bootstrap @@ -0,0 +1,11 @@ +#!/bin/bash + +GIT_ROOT=$(git rev-parse --show-toplevel) + +if [ "$GIT_ROOT" == "" ]; then + echo "Git root cannot be empty" + exit 1 +fi + +rm -f $GIT_ROOT/.git/hooks/pre-commit &> /dev/null +ln -s $GIT_ROOT/.ci/pre-commit-hook $GIT_ROOT/.git/hooks/pre-commit diff --git a/.ci/pre-commit-hook b/.ci/pre-commit-hook new file mode 100755 index 0000000..aa7e446 --- /dev/null +++ b/.ci/pre-commit-hook @@ -0,0 +1,5 @@ +#!/bin/bash + +set -e + +npx lint-staged diff --git a/README.md b/README.md index 5380058..952f9a0 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ ## Features + :sparkles: Single file, easy installation :rocket: Built with speed in mind @@ -29,9 +30,9 @@ curl https://raw.githubusercontent.com/Schniz/fnm/master/.ci/install.sh | bash ### Manually -* Download the [latest release binary](https://github.com/Schniz/fnm/releases) for your system -* Make it available globally on `$PATH` -* Add the following line to your `.bashrc`/`.zshrc` file: +- Download the [latest release binary](https://github.com/Schniz/fnm/releases) for your system +- Make it available globally on `$PATH` +- Add the following line to your `.bashrc`/`.zshrc` file: ```bash eval `fnm env` @@ -63,11 +64,15 @@ Lists the installed Node versions. Lists the Node versions available to download remotely. -### `fnm env [--fish]` +### `fnm env [--multi] [--fish]` + +Prints the required shell commands in order to configure your shell, Bash compliant by default. -Prints the required shell commands in order to configure your shell, Bash compliant by default. Provide `--fish` to output the Fish-compliant version. +- Providing `--multi` will output the multishell support, allowing a different current Node version per shell +- Providing `--fish` will output the Fish-compliant version. ## Future Plans + - [ ] Feature: make versions complete the latest: `10` would infer the latest minor and patch versions of node 10. `10.1` would infer the latest patch version of node 10.1 - [ ] Feature: `fnm use --install`, `fnm use --quiet` - [ ] Feature: `fnm install lts`? @@ -88,6 +93,7 @@ PRs welcome :tada: npm install -g esy git clone https://github.com/Schniz/fnm.git esy install +esy bootstrap esy build ``` diff --git a/esy.lock/index.json b/esy.lock/index.json index 5333785..96ef534 100644 --- a/esy.lock/index.json +++ b/esy.lock/index.json @@ -1,7 +1,240 @@ { - "checksum": "6af635d6f5efe2f01ba9a6fba48c2952", + "checksum": "c8dd1f3cd8966f9759de001e88203994", "root": "fnm@link:./package.json", "node": { + "yup@0.26.10@d41d8cd9": { + "id": "yup@0.26.10@d41d8cd9", + "name": "yup", + "version": "0.26.10", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/yup/-/yup-0.26.10.tgz#sha1:3545839663289038faf25facfc07e11fd67c0cb1" + ] + }, + "overrides": [], + "dependencies": [ + "toposort@2.0.2@d41d8cd9", + "synchronous-promise@2.0.6@d41d8cd9", + "property-expr@1.5.1@d41d8cd9", + "lodash@4.17.11@d41d8cd9", + "fn-name@2.0.1@d41d8cd9", + "@babel/runtime@7.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "wrappy@1.0.2@d41d8cd9": { + "id": "wrappy@1.0.2@d41d8cd9", + "name": "wrappy", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#sha1:b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "wrap-ansi@3.0.1@d41d8cd9": { + "id": "wrap-ansi@3.0.1@d41d8cd9", + "name": "wrap-ansi", + "version": "3.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz#sha1:288a04d87eda5c286e060dfe8f135ce8d007f8ba" + ] + }, + "overrides": [], + "dependencies": [ + "strip-ansi@4.0.0@d41d8cd9", + "string-width@2.1.1@d41d8cd9" + ], + "devDependencies": [] + }, + "which@1.3.1@d41d8cd9": { + "id": "which@1.3.1@d41d8cd9", + "name": "which", + "version": "1.3.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/which/-/which-1.3.1.tgz#sha1:a45043d54f5805316da8d62f9f50918d3da70b0a" + ] + }, + "overrides": [], + "dependencies": ["isexe@2.0.0@d41d8cd9"], + "devDependencies": [] + }, + "use@3.1.1@d41d8cd9": { + "id": "use@3.1.1@d41d8cd9", + "name": "use", + "version": "3.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/use/-/use-3.1.1.tgz#sha1:d50c8cac79a19fbc20f2911f56eb973f4e10070f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "urix@0.1.0@d41d8cd9": { + "id": "urix@0.1.0@d41d8cd9", + "name": "urix", + "version": "0.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#sha1:da937f7a62e21fec1fd18d49b35c2935067a6c72" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "unset-value@1.0.0@d41d8cd9": { + "id": "unset-value@1.0.0@d41d8cd9", + "name": "unset-value", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#sha1:8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + ] + }, + "overrides": [], + "dependencies": ["isobject@3.0.1@d41d8cd9", "has-value@0.3.1@d41d8cd9"], + "devDependencies": [] + }, + "union-value@1.0.0@d41d8cd9": { + "id": "union-value@1.0.0@d41d8cd9", + "name": "union-value", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz#sha1:5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + ] + }, + "overrides": [], + "dependencies": [ + "set-value@0.4.3@d41d8cd9", + "is-extendable@0.1.1@d41d8cd9", + "get-value@2.0.6@d41d8cd9", + "arr-union@3.1.0@d41d8cd9" + ], + "devDependencies": [] + }, + "tslib@1.9.3@d41d8cd9": { + "id": "tslib@1.9.3@d41d8cd9", + "name": "tslib", + "version": "1.9.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz#sha1:d7e4dd79245d85428c4d7e4822a79917954ca286" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "toposort@2.0.2@d41d8cd9": { + "id": "toposort@2.0.2@d41d8cd9", + "name": "toposort", + "version": "2.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz#sha1:ae21768175d1559d48bef35420b2f4962f09c330" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "to-regex-range@2.1.1@d41d8cd9": { + "id": "to-regex-range@2.1.1@d41d8cd9", + "name": "to-regex-range", + "version": "2.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#sha1:7c80c17b9dfebe599e27367e0d4dd5590141db38" + ] + }, + "overrides": [], + "dependencies": [ + "repeat-string@1.6.1@d41d8cd9", + "is-number@3.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "to-regex@3.0.2@d41d8cd9": { + "id": "to-regex@3.0.2@d41d8cd9", + "name": "to-regex", + "version": "3.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#sha1:13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + ] + }, + "overrides": [], + "dependencies": [ + "safe-regex@1.1.0@d41d8cd9", + "regex-not@1.0.2@d41d8cd9", + "extend-shallow@3.0.2@d41d8cd9", + "define-property@2.0.2@d41d8cd9" + ], + "devDependencies": [] + }, + "to-object-path@0.3.0@d41d8cd9": { + "id": "to-object-path@0.3.0@d41d8cd9", + "name": "to-object-path", + "version": "0.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#sha1:297588b7b0e7e0ac08e04e672f85c1f4999e17af" + ] + }, + "overrides": [], + "dependencies": ["kind-of@3.2.2@d41d8cd9"], + "devDependencies": [] + }, + "synchronous-promise@2.0.6@d41d8cd9": { + "id": "synchronous-promise@2.0.6@d41d8cd9", + "name": "synchronous-promise", + "version": "2.0.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.6.tgz#sha1:de76e0ea2b3558c1e673942e47e714a930fa64aa" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "symbol-observable@1.2.0@d41d8cd9": { + "id": "symbol-observable@1.2.0@d41d8cd9", + "name": "symbol-observable", + "version": "1.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#sha1:c22688aed4eab3cdc2dfeacbb561660560a00804" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, "supports-color@5.5.0@d41d8cd9": { "id": "supports-color@5.5.0@d41d8cd9", "name": "supports-color", @@ -9,228 +242,3222 @@ "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#sha1:e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + "archive:https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#sha1:e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + ] + }, + "overrides": [], + "dependencies": ["has-flag@3.0.0@d41d8cd9"], + "devDependencies": [] + }, + "supports-color@2.0.0@d41d8cd9": { + "id": "supports-color@2.0.0@d41d8cd9", + "name": "supports-color", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#sha1:535d045ce6b6363fa40117084629995e9df324c7" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "strip-eof@1.0.0@d41d8cd9": { + "id": "strip-eof@1.0.0@d41d8cd9", + "name": "strip-eof", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#sha1:bb43ff5598a6eb05d89b59fcd129c983313606bf" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "strip-ansi@4.0.0@d41d8cd9": { + "id": "strip-ansi@4.0.0@d41d8cd9", + "name": "strip-ansi", + "version": "4.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#sha1:a8479022eb1ac368a871389b635262c505ee368f" + ] + }, + "overrides": [], + "dependencies": ["ansi-regex@3.0.0@d41d8cd9"], + "devDependencies": [] + }, + "strip-ansi@3.0.1@d41d8cd9": { + "id": "strip-ansi@3.0.1@d41d8cd9", + "name": "strip-ansi", + "version": "3.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#sha1:6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + ] + }, + "overrides": [], + "dependencies": ["ansi-regex@2.1.1@d41d8cd9"], + "devDependencies": [] + }, + "stringify-object@3.3.0@d41d8cd9": { + "id": "stringify-object@3.3.0@d41d8cd9", + "name": "stringify-object", + "version": "3.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz#sha1:703065aefca19300d3ce88af4f5b3956d7556629" + ] + }, + "overrides": [], + "dependencies": [ + "is-regexp@1.0.0@d41d8cd9", + "is-obj@1.0.1@d41d8cd9", + "get-own-enumerable-property-symbols@3.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "string-width@2.1.1@d41d8cd9": { + "id": "string-width@2.1.1@d41d8cd9", + "name": "string-width", + "version": "2.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#sha1:ab93f27a8dc13d28cac815c462143a6d9012ae9e" + ] + }, + "overrides": [], + "dependencies": [ + "strip-ansi@4.0.0@d41d8cd9", + "is-fullwidth-code-point@2.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "string-width@1.0.2@d41d8cd9": { + "id": "string-width@1.0.2@d41d8cd9", + "name": "string-width", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#sha1:118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + ] + }, + "overrides": [], + "dependencies": [ + "strip-ansi@3.0.1@d41d8cd9", + "is-fullwidth-code-point@1.0.0@d41d8cd9", + "code-point-at@1.1.0@d41d8cd9" + ], + "devDependencies": [] + }, + "string-argv@0.0.2@d41d8cd9": { + "id": "string-argv@0.0.2@d41d8cd9", + "name": "string-argv", + "version": "0.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz#sha1:dac30408690c21f3c3630a3ff3a05877bdcbd736" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "static-extend@0.1.2@d41d8cd9": { + "id": "static-extend@0.1.2@d41d8cd9", + "name": "static-extend", + "version": "0.1.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#sha1:60809c39cbff55337226fd5e0b520f341f1fb5c6" + ] + }, + "overrides": [], + "dependencies": [ + "object-copy@0.1.0@d41d8cd9", + "define-property@0.2.5@d41d8cd9" + ], + "devDependencies": [] + }, + "staged-git-files@1.1.2@d41d8cd9": { + "id": "staged-git-files@1.1.2@d41d8cd9", + "name": "staged-git-files", + "version": "1.1.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz#sha1:4326d33886dc9ecfa29a6193bf511ba90a46454b" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "sprintf-js@1.0.3@d41d8cd9": { + "id": "sprintf-js@1.0.3@d41d8cd9", + "name": "sprintf-js", + "version": "1.0.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#sha1:04e6926f662895354f3dd015203633b857297e2c" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "split-string@3.1.0@d41d8cd9": { + "id": "split-string@3.1.0@d41d8cd9", + "name": "split-string", + "version": "3.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#sha1:7cb09dda3a86585705c64b39a6466038682e8fe2" + ] + }, + "overrides": [], + "dependencies": ["extend-shallow@3.0.2@d41d8cd9"], + "devDependencies": [] + }, + "source-map-url@0.4.0@d41d8cd9": { + "id": "source-map-url@0.4.0@d41d8cd9", + "name": "source-map-url", + "version": "0.4.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#sha1:3e935d7ddd73631b97659956d55128e87b5084a3" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "source-map-resolve@0.5.2@d41d8cd9": { + "id": "source-map-resolve@0.5.2@d41d8cd9", + "name": "source-map-resolve", + "version": "0.5.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz#sha1:72e2cc34095543e43b2c62b2c4c10d4a9054f259" + ] + }, + "overrides": [], + "dependencies": [ + "urix@0.1.0@d41d8cd9", + "source-map-url@0.4.0@d41d8cd9", + "resolve-url@0.2.1@d41d8cd9", + "decode-uri-component@0.2.0@d41d8cd9", + "atob@2.1.2@d41d8cd9" + ], + "devDependencies": [] + }, + "source-map@0.5.7@d41d8cd9": { + "id": "source-map@0.5.7@d41d8cd9", + "name": "source-map", + "version": "0.5.7", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#sha1:8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "snapdragon-util@3.0.1@d41d8cd9": { + "id": "snapdragon-util@3.0.1@d41d8cd9", + "name": "snapdragon-util", + "version": "3.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#sha1:f956479486f2acd79700693f6f7b805e45ab56e2" + ] + }, + "overrides": [], + "dependencies": ["kind-of@3.2.2@d41d8cd9"], + "devDependencies": [] + }, + "snapdragon-node@2.1.1@d41d8cd9": { + "id": "snapdragon-node@2.1.1@d41d8cd9", + "name": "snapdragon-node", + "version": "2.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#sha1:6c175f86ff14bdb0724563e8f3c1b021a286853b" + ] + }, + "overrides": [], + "dependencies": [ + "snapdragon-util@3.0.1@d41d8cd9", + "isobject@3.0.1@d41d8cd9", + "define-property@1.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "snapdragon@0.8.2@d41d8cd9": { + "id": "snapdragon@0.8.2@d41d8cd9", + "name": "snapdragon", + "version": "0.8.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#sha1:64922e7c565b0e14204ba1aa7d6964278d25182d" + ] + }, + "overrides": [], + "dependencies": [ + "use@3.1.1@d41d8cd9", + "source-map-resolve@0.5.2@d41d8cd9", + "source-map@0.5.7@d41d8cd9", + "map-cache@0.2.2@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9", + "define-property@0.2.5@d41d8cd9", + "debug@2.6.9@d41d8cd9", + "base@0.11.2@d41d8cd9" + ], + "devDependencies": [] + }, + "slice-ansi@0.0.4@d41d8cd9": { + "id": "slice-ansi@0.0.4@d41d8cd9", + "name": "slice-ansi", + "version": "0.0.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#sha1:edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "simple-git@1.107.0@d41d8cd9": { + "id": "simple-git@1.107.0@d41d8cd9", + "name": "simple-git", + "version": "1.107.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/simple-git/-/simple-git-1.107.0.tgz#sha1:12cffaf261c14d6f450f7fdb86c21ccee968b383" + ] + }, + "overrides": [], + "dependencies": ["debug@4.1.1@d41d8cd9"], + "devDependencies": [] + }, + "signal-exit@3.0.2@d41d8cd9": { + "id": "signal-exit@3.0.2@d41d8cd9", + "name": "signal-exit", + "version": "3.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#sha1:b5fdc08f1287ea1178628e415e25132b73646c6d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "shebang-regex@1.0.0@d41d8cd9": { + "id": "shebang-regex@1.0.0@d41d8cd9", + "name": "shebang-regex", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#sha1:da42f49740c0b42db2ca9728571cb190c98efea3" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "shebang-command@1.2.0@d41d8cd9": { + "id": "shebang-command@1.2.0@d41d8cd9", + "name": "shebang-command", + "version": "1.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#sha1:44aac65b695b03398968c39f363fee5deafdf1ea" + ] + }, + "overrides": [], + "dependencies": ["shebang-regex@1.0.0@d41d8cd9"], + "devDependencies": [] + }, + "set-value@2.0.0@d41d8cd9": { + "id": "set-value@2.0.0@d41d8cd9", + "name": "set-value", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz#sha1:71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + ] + }, + "overrides": [], + "dependencies": [ + "split-string@3.1.0@d41d8cd9", + "is-plain-object@2.0.4@d41d8cd9", + "is-extendable@0.1.1@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9" + ], + "devDependencies": [] + }, + "set-value@0.4.3@d41d8cd9": { + "id": "set-value@0.4.3@d41d8cd9", + "name": "set-value", + "version": "0.4.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz#sha1:7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + ] + }, + "overrides": [], + "dependencies": [ + "to-object-path@0.3.0@d41d8cd9", + "is-plain-object@2.0.4@d41d8cd9", + "is-extendable@0.1.1@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9" + ], + "devDependencies": [] + }, + "semver-compare@1.0.0@d41d8cd9": { + "id": "semver-compare@1.0.0@d41d8cd9", + "name": "semver-compare", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#sha1:0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "semver@5.6.0@d41d8cd9": { + "id": "semver@5.6.0@d41d8cd9", + "name": "semver", + "version": "5.6.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/semver/-/semver-5.6.0.tgz#sha1:7e74256fbaa49c75aa7c7a205cc22799cac80004" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "safe-regex@1.1.0@d41d8cd9": { + "id": "safe-regex@1.1.0@d41d8cd9", + "name": "safe-regex", + "version": "1.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#sha1:40a3669f3b077d1e943d44629e157dd48023bf2e" + ] + }, + "overrides": [], + "dependencies": ["ret@0.1.15@d41d8cd9"], + "devDependencies": [] + }, + "rxjs@6.4.0@d41d8cd9": { + "id": "rxjs@6.4.0@d41d8cd9", + "name": "rxjs", + "version": "6.4.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz#sha1:f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" + ] + }, + "overrides": [], + "dependencies": ["tslib@1.9.3@d41d8cd9"], + "devDependencies": [] + }, + "rimraf@2.6.3@d41d8cd9": { + "id": "rimraf@2.6.3@d41d8cd9", + "name": "rimraf", + "version": "2.6.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#sha1:b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + ] + }, + "overrides": [], + "dependencies": ["glob@7.1.3@d41d8cd9"], + "devDependencies": [] + }, + "ret@0.1.15@d41d8cd9": { + "id": "ret@0.1.15@d41d8cd9", + "name": "ret", + "version": "0.1.15", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#sha1:b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "restore-cursor@2.0.0@d41d8cd9": { + "id": "restore-cursor@2.0.0@d41d8cd9", + "name": "restore-cursor", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#sha1:9f7ee287f82fd326d4fd162923d62129eee0dfaf" + ] + }, + "overrides": [], + "dependencies": ["signal-exit@3.0.2@d41d8cd9", "onetime@2.0.1@d41d8cd9"], + "devDependencies": [] + }, + "resolve-url@0.2.1@d41d8cd9": { + "id": "resolve-url@0.2.1@d41d8cd9", + "name": "resolve-url", + "version": "0.2.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#sha1:2c637fe77c893afd2a663fe21aa9080068e2052a" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "resolve-from@3.0.0@d41d8cd9": { + "id": "resolve-from@3.0.0@d41d8cd9", + "name": "resolve-from", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#sha1:b22c7af7d9d6881bc8b6e653335eebcb0a188748" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "repeat-string@1.6.1@d41d8cd9": { + "id": "repeat-string@1.6.1@d41d8cd9", + "name": "repeat-string", + "version": "1.6.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#sha1:8dcae470e1c88abc2d600fff4a776286da75e637" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "repeat-element@1.1.3@d41d8cd9": { + "id": "repeat-element@1.1.3@d41d8cd9", + "name": "repeat-element", + "version": "1.1.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#sha1:782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "regex-not@1.0.2@d41d8cd9": { + "id": "regex-not@1.0.2@d41d8cd9", + "name": "regex-not", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#sha1:1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + ] + }, + "overrides": [], + "dependencies": [ + "safe-regex@1.1.0@d41d8cd9", + "extend-shallow@3.0.2@d41d8cd9" + ], + "devDependencies": [] + }, + "regenerator-runtime@0.12.1@d41d8cd9": { + "id": "regenerator-runtime@0.12.1@d41d8cd9", + "name": "regenerator-runtime", + "version": "0.12.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#sha1:fa1a71544764c036f8c49b13a08b2594c9f8a0de" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "refmterr@3.1.10@d41d8cd9": { + "id": "refmterr@3.1.10@d41d8cd9", + "name": "refmterr", + "version": "3.1.10", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/refmterr/-/refmterr-3.1.10.tgz#sha1:7c3e238022acb5de4e2254ab506d70eee13c0a46" + ] + }, + "overrides": [], + "dependencies": [ + "ocaml@4.6.10@d41d8cd9", + "@opam/re@opam:1.7.3@83095efd", + "@opam/dune@opam:1.6.3@a7d7baed", + "@esy-ocaml/reason@3.4.0@d41d8cd9" + ], + "devDependencies": [] + }, + "pump@3.0.0@d41d8cd9": { + "id": "pump@3.0.0@d41d8cd9", + "name": "pump", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#sha1:b4a2116815bde2f4e1ea602354e8c75565107a64" + ] + }, + "overrides": [], + "dependencies": ["once@1.4.0@d41d8cd9", "end-of-stream@1.4.1@d41d8cd9"], + "devDependencies": [] + }, + "property-expr@1.5.1@d41d8cd9": { + "id": "property-expr@1.5.1@d41d8cd9", + "name": "property-expr", + "version": "1.5.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz#sha1:22e8706894a0c8e28d58735804f6ba3a3673314f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "pretty-format@24.0.0@d41d8cd9": { + "id": "pretty-format@24.0.0@d41d8cd9", + "name": "pretty-format", + "version": "24.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pretty-format/-/pretty-format-24.0.0.tgz#sha1:cb6599fd73ac088e37ed682f61291e4678f48591" + ] + }, + "overrides": [], + "dependencies": [ + "ansi-styles@3.2.1@d41d8cd9", + "ansi-regex@4.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "prettier@1.16.4@d41d8cd9": { + "id": "prettier@1.16.4@d41d8cd9", + "name": "prettier", + "version": "1.16.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz#sha1:73e37e73e018ad2db9c76742e2647e21790c9717" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "posix-character-classes@0.1.1@d41d8cd9": { + "id": "posix-character-classes@0.1.1@d41d8cd9", + "name": "posix-character-classes", + "version": "0.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#sha1:01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "please-upgrade-node@3.1.1@d41d8cd9": { + "id": "please-upgrade-node@3.1.1@d41d8cd9", + "name": "please-upgrade-node", + "version": "3.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#sha1:ed320051dfcc5024fae696712c8288993595e8ac" + ] + }, + "overrides": [], + "dependencies": ["semver-compare@1.0.0@d41d8cd9"], + "devDependencies": [] + }, + "pinkie-promise@2.0.1@d41d8cd9": { + "id": "pinkie-promise@2.0.1@d41d8cd9", + "name": "pinkie-promise", + "version": "2.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#sha1:2135d6dfa7a358c069ac9b178776288228450ffa" + ] + }, + "overrides": [], + "dependencies": ["pinkie@2.0.4@d41d8cd9"], + "devDependencies": [] + }, + "pinkie@2.0.4@d41d8cd9": { + "id": "pinkie@2.0.4@d41d8cd9", + "name": "pinkie", + "version": "2.0.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#sha1:72556b80cfa0d48a974e80e77248e80ed4f7f870" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "pify@3.0.0@d41d8cd9": { + "id": "pify@3.0.0@d41d8cd9", + "name": "pify", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#sha1:e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "pify@2.3.0@d41d8cd9": { + "id": "pify@2.3.0@d41d8cd9", + "name": "pify", + "version": "2.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#sha1:ed141a6ac043a849ea588498e7dca8b15330e90c" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "pesy@0.4.1@d41d8cd9": { + "id": "pesy@0.4.1@d41d8cd9", + "name": "pesy", + "version": "0.4.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pesy/-/pesy-0.4.1.tgz#sha1:37b3faccb3ecdb37f4bf3d95d04ffbd2633247af" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "path-key@2.0.1@d41d8cd9": { + "id": "path-key@2.0.1@d41d8cd9", + "name": "path-key", + "version": "2.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#sha1:411cadb574c5a140d3a4b1910d40d80cc9f40b40" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "path-is-inside@1.0.2@d41d8cd9": { + "id": "path-is-inside@1.0.2@d41d8cd9", + "name": "path-is-inside", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#sha1:365417dede44430d1c11af61027facf074bdfc53" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "path-is-absolute@1.0.1@d41d8cd9": { + "id": "path-is-absolute@1.0.1@d41d8cd9", + "name": "path-is-absolute", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#sha1:174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "pascalcase@0.1.1@d41d8cd9": { + "id": "pascalcase@0.1.1@d41d8cd9", + "name": "pascalcase", + "version": "0.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#sha1:b363e55e8006ca6fe21784d2db22bd15d7917f14" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "parse-json@4.0.0@d41d8cd9": { + "id": "parse-json@4.0.0@d41d8cd9", + "name": "parse-json", + "version": "4.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#sha1:be35f5425be1f7f6c747184f98a788cb99477ee0" + ] + }, + "overrides": [], + "dependencies": [ + "json-parse-better-errors@1.0.2@d41d8cd9", + "error-ex@1.3.2@d41d8cd9" + ], + "devDependencies": [] + }, + "p-map@2.0.0@d41d8cd9": { + "id": "p-map@2.0.0@d41d8cd9", + "name": "p-map", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/p-map/-/p-map-2.0.0.tgz#sha1:be18c5a5adeb8e156460651421aceca56c213a50" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "p-map@1.2.0@d41d8cd9": { + "id": "p-map@1.2.0@d41d8cd9", + "name": "p-map", + "version": "1.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz#sha1:e4e94f311eabbc8633a1e79908165fca26241b6b" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "p-finally@1.0.0@d41d8cd9": { + "id": "p-finally@1.0.0@d41d8cd9", + "name": "p-finally", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#sha1:3fbcfb15b899a44123b34b6dcc18b724336a2cae" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "onetime@2.0.1@d41d8cd9": { + "id": "onetime@2.0.1@d41d8cd9", + "name": "onetime", + "version": "2.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#sha1:067428230fd67443b2794b22bba528b6867962d4" + ] + }, + "overrides": [], + "dependencies": ["mimic-fn@1.2.0@d41d8cd9"], + "devDependencies": [] + }, + "once@1.4.0@d41d8cd9": { + "id": "once@1.4.0@d41d8cd9", + "name": "once", + "version": "1.4.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/once/-/once-1.4.0.tgz#sha1:583b1aa775961d4b113ac17d9c50baef9dd76bd1" + ] + }, + "overrides": [], + "dependencies": ["wrappy@1.0.2@d41d8cd9"], + "devDependencies": [] + }, + "ocaml@4.6.10@d41d8cd9": { + "id": "ocaml@4.6.10@d41d8cd9", + "name": "ocaml", + "version": "4.6.10", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.6.10.tgz#sha1:33c67d0275dc1aeba25b11557192aefcd3cf0a6a" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "object.pick@1.3.0@d41d8cd9": { + "id": "object.pick@1.3.0@d41d8cd9", + "name": "object.pick", + "version": "1.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#sha1:87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + ] + }, + "overrides": [], + "dependencies": ["isobject@3.0.1@d41d8cd9"], + "devDependencies": [] + }, + "object-visit@1.0.1@d41d8cd9": { + "id": "object-visit@1.0.1@d41d8cd9", + "name": "object-visit", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#sha1:f79c4493af0c5377b59fe39d395e41042dd045bb" + ] + }, + "overrides": [], + "dependencies": ["isobject@3.0.1@d41d8cd9"], + "devDependencies": [] + }, + "object-copy@0.1.0@d41d8cd9": { + "id": "object-copy@0.1.0@d41d8cd9", + "name": "object-copy", + "version": "0.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#sha1:7e7d858b781bd7c991a41ba975ed3812754e998c" + ] + }, + "overrides": [], + "dependencies": [ + "kind-of@3.2.2@d41d8cd9", + "define-property@0.2.5@d41d8cd9", + "copy-descriptor@0.1.1@d41d8cd9" + ], + "devDependencies": [] + }, + "object-assign@4.1.1@d41d8cd9": { + "id": "object-assign@4.1.1@d41d8cd9", + "name": "object-assign", + "version": "4.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#sha1:2109adc7965887cfc05cbbd442cac8bfbb360863" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "number-is-nan@1.0.1@d41d8cd9": { + "id": "number-is-nan@1.0.1@d41d8cd9", + "name": "number-is-nan", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#sha1:097b602b53422a522c1afb8790318336941a011d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "npm-which@3.0.1@d41d8cd9": { + "id": "npm-which@3.0.1@d41d8cd9", + "name": "npm-which", + "version": "3.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz#sha1:9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + ] + }, + "overrides": [], + "dependencies": [ + "which@1.3.1@d41d8cd9", + "npm-path@2.0.4@d41d8cd9", + "commander@2.19.0@d41d8cd9" + ], + "devDependencies": [] + }, + "npm-run-path@2.0.2@d41d8cd9": { + "id": "npm-run-path@2.0.2@d41d8cd9", + "name": "npm-run-path", + "version": "2.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#sha1:35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + ] + }, + "overrides": [], + "dependencies": ["path-key@2.0.1@d41d8cd9"], + "devDependencies": [] + }, + "npm-path@2.0.4@d41d8cd9": { + "id": "npm-path@2.0.4@d41d8cd9", + "name": "npm-path", + "version": "2.0.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz#sha1:c641347a5ff9d6a09e4d9bce5580c4f505278e64" + ] + }, + "overrides": [], + "dependencies": ["which@1.3.1@d41d8cd9"], + "devDependencies": [] + }, + "nice-try@1.0.5@d41d8cd9": { + "id": "nice-try@1.0.5@d41d8cd9", + "name": "nice-try", + "version": "1.0.5", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#sha1:a3378a7696ce7d223e88fc9b764bd7ef1089e366" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "nanomatch@1.2.13@d41d8cd9": { + "id": "nanomatch@1.2.13@d41d8cd9", + "name": "nanomatch", + "version": "1.2.13", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#sha1:b87a8aa4fc0de8fe6be88895b38983ff265bd119" + ] + }, + "overrides": [], + "dependencies": [ + "to-regex@3.0.2@d41d8cd9", + "snapdragon@0.8.2@d41d8cd9", + "regex-not@1.0.2@d41d8cd9", + "object.pick@1.3.0@d41d8cd9", + "kind-of@6.0.2@d41d8cd9", + "is-windows@1.0.2@d41d8cd9", + "fragment-cache@0.2.1@d41d8cd9", + "extend-shallow@3.0.2@d41d8cd9", + "define-property@2.0.2@d41d8cd9", + "array-unique@0.3.2@d41d8cd9", + "arr-diff@4.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "ms@2.1.1@d41d8cd9": { + "id": "ms@2.1.1@d41d8cd9", + "name": "ms", + "version": "2.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#sha1:30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "ms@2.0.0@d41d8cd9": { + "id": "ms@2.0.0@d41d8cd9", + "name": "ms", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#sha1:5608aeadfc00be6c2901df5f9861788de0d597c8" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "mixin-deep@1.3.1@d41d8cd9": { + "id": "mixin-deep@1.3.1@d41d8cd9", + "name": "mixin-deep", + "version": "1.3.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz#sha1:a49e7268dce1a0d9698e45326c5626df3543d0fe" + ] + }, + "overrides": [], + "dependencies": ["is-extendable@1.0.1@d41d8cd9", "for-in@1.0.2@d41d8cd9"], + "devDependencies": [] + }, + "minimatch@3.0.4@d41d8cd9": { + "id": "minimatch@3.0.4@d41d8cd9", + "name": "minimatch", + "version": "3.0.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#sha1:5166e286457f03306064be5497e8dbb0c3d32083" + ] + }, + "overrides": [], + "dependencies": ["brace-expansion@1.1.11@d41d8cd9"], + "devDependencies": [] + }, + "mimic-fn@1.2.0@d41d8cd9": { + "id": "mimic-fn@1.2.0@d41d8cd9", + "name": "mimic-fn", + "version": "1.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#sha1:820c86a39334640e99516928bd03fca88057d022" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "micromatch@3.1.10@d41d8cd9": { + "id": "micromatch@3.1.10@d41d8cd9", + "name": "micromatch", + "version": "3.1.10", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#sha1:70859bc95c9840952f359a068a3fc49f9ecfac23" + ] + }, + "overrides": [], + "dependencies": [ + "to-regex@3.0.2@d41d8cd9", + "snapdragon@0.8.2@d41d8cd9", + "regex-not@1.0.2@d41d8cd9", + "object.pick@1.3.0@d41d8cd9", + "nanomatch@1.2.13@d41d8cd9", + "kind-of@6.0.2@d41d8cd9", + "fragment-cache@0.2.1@d41d8cd9", + "extglob@2.0.4@d41d8cd9", + "extend-shallow@3.0.2@d41d8cd9", + "define-property@2.0.2@d41d8cd9", + "braces@2.3.2@d41d8cd9", + "array-unique@0.3.2@d41d8cd9", + "arr-diff@4.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "matcher@1.1.1@d41d8cd9": { + "id": "matcher@1.1.1@d41d8cd9", + "name": "matcher", + "version": "1.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz#sha1:51d8301e138f840982b338b116bb0c09af62c1c2" + ] + }, + "overrides": [], + "dependencies": ["escape-string-regexp@1.0.5@d41d8cd9"], + "devDependencies": [] + }, + "map-visit@1.0.0@d41d8cd9": { + "id": "map-visit@1.0.0@d41d8cd9", + "name": "map-visit", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#sha1:ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + ] + }, + "overrides": [], + "dependencies": ["object-visit@1.0.1@d41d8cd9"], + "devDependencies": [] + }, + "map-cache@0.2.2@d41d8cd9": { + "id": "map-cache@0.2.2@d41d8cd9", + "name": "map-cache", + "version": "0.2.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#sha1:c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "log-update@2.3.0@d41d8cd9": { + "id": "log-update@2.3.0@d41d8cd9", + "name": "log-update", + "version": "2.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz#sha1:88328fd7d1ce7938b29283746f0b1bc126b24708" + ] + }, + "overrides": [], + "dependencies": [ + "wrap-ansi@3.0.1@d41d8cd9", + "cli-cursor@2.1.0@d41d8cd9", + "ansi-escapes@3.2.0@d41d8cd9" + ], + "devDependencies": [] + }, + "log-symbols@2.2.0@d41d8cd9": { + "id": "log-symbols@2.2.0@d41d8cd9", + "name": "log-symbols", + "version": "2.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#sha1:5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + ] + }, + "overrides": [], + "dependencies": ["chalk@2.4.2@d41d8cd9"], + "devDependencies": [] + }, + "log-symbols@1.0.2@d41d8cd9": { + "id": "log-symbols@1.0.2@d41d8cd9", + "name": "log-symbols", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#sha1:376ff7b58ea3086a0f09facc74617eca501e1a18" + ] + }, + "overrides": [], + "dependencies": ["chalk@1.1.3@d41d8cd9"], + "devDependencies": [] + }, + "lodash@4.17.11@d41d8cd9": { + "id": "lodash@4.17.11@d41d8cd9", + "name": "lodash", + "version": "4.17.11", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#sha1:b39ea6229ef607ecd89e2c8df12536891cac9b8d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "listr-verbose-renderer@0.5.0@d41d8cd9": { + "id": "listr-verbose-renderer@0.5.0@d41d8cd9", + "name": "listr-verbose-renderer", + "version": "0.5.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#sha1:f1132167535ea4c1261102b9f28dac7cba1e03db" + ] + }, + "overrides": [], + "dependencies": [ + "figures@2.0.0@d41d8cd9", + "date-fns@1.30.1@d41d8cd9", + "cli-cursor@2.1.0@d41d8cd9", + "chalk@2.4.2@d41d8cd9" + ], + "devDependencies": [] + }, + "listr-update-renderer@0.5.0@d41d8cd9": { + "id": "listr-update-renderer@0.5.0@d41d8cd9", + "name": "listr-update-renderer", + "version": "0.5.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#sha1:4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + ] + }, + "overrides": [], + "dependencies": [ + "strip-ansi@3.0.1@d41d8cd9", + "log-update@2.3.0@d41d8cd9", + "log-symbols@1.0.2@d41d8cd9", + "listr@0.14.3@d41d8cd9", + "indent-string@3.2.0@d41d8cd9", + "figures@1.7.0@d41d8cd9", + "elegant-spinner@1.0.1@d41d8cd9", + "cli-truncate@0.2.1@d41d8cd9", + "chalk@1.1.3@d41d8cd9" + ], + "devDependencies": [] + }, + "listr-silent-renderer@1.1.1@d41d8cd9": { + "id": "listr-silent-renderer@1.1.1@d41d8cd9", + "name": "listr-silent-renderer", + "version": "1.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#sha1:924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "listr@0.14.3@d41d8cd9": { + "id": "listr@0.14.3@d41d8cd9", + "name": "listr", + "version": "0.14.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/listr/-/listr-0.14.3.tgz#sha1:2fea909604e434be464c50bddba0d496928fa586" + ] + }, + "overrides": [], + "dependencies": [ + "rxjs@6.4.0@d41d8cd9", + "p-map@2.0.0@d41d8cd9", + "listr-verbose-renderer@0.5.0@d41d8cd9", + "listr-update-renderer@0.5.0@d41d8cd9", + "listr-silent-renderer@1.1.1@d41d8cd9", + "is-stream@1.1.0@d41d8cd9", + "is-promise@2.1.0@d41d8cd9", + "is-observable@1.1.0@d41d8cd9", + "@samverschueren/stream-to-observable@0.3.0@d41d8cd9" + ], + "devDependencies": [] + }, + "lint-staged@8.1.3@d41d8cd9": { + "id": "lint-staged@8.1.3@d41d8cd9", + "name": "lint-staged", + "version": "8.1.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/lint-staged/-/lint-staged-8.1.3.tgz#sha1:bb069db5466c0fe16710216e633a84f2b362fa60" + ] + }, + "overrides": [], + "dependencies": [ + "yup@0.26.10@d41d8cd9", + "stringify-object@3.3.0@d41d8cd9", + "string-argv@0.0.2@d41d8cd9", + "staged-git-files@1.1.2@d41d8cd9", + "please-upgrade-node@3.1.1@d41d8cd9", + "pify@3.0.0@d41d8cd9", + "path-is-inside@1.0.2@d41d8cd9", + "p-map@1.2.0@d41d8cd9", + "npm-which@3.0.1@d41d8cd9", + "micromatch@3.1.10@d41d8cd9", + "log-symbols@2.2.0@d41d8cd9", + "lodash@4.17.11@d41d8cd9", + "listr@0.14.3@d41d8cd9", + "is-windows@1.0.2@d41d8cd9", + "is-glob@4.0.0@d41d8cd9", + "g-status@2.0.2@d41d8cd9", + "find-parent-dir@0.3.0@d41d8cd9", + "execa@1.0.0@d41d8cd9", + "del@3.0.0@d41d8cd9", + "dedent@0.7.0@d41d8cd9", + "debug@3.2.6@d41d8cd9", + "cosmiconfig@5.0.7@d41d8cd9", + "commander@2.19.0@d41d8cd9", + "chalk@2.4.2@d41d8cd9", + "@iamstarkov/listr-update-renderer@0.4.1@d41d8cd9" + ], + "devDependencies": [] + }, + "kind-of@6.0.2@d41d8cd9": { + "id": "kind-of@6.0.2@d41d8cd9", + "name": "kind-of", + "version": "6.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz#sha1:01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "kind-of@5.1.0@d41d8cd9": { + "id": "kind-of@5.1.0@d41d8cd9", + "name": "kind-of", + "version": "5.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#sha1:729c91e2d857b7a419a1f9aa65685c4c33f5845d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "kind-of@4.0.0@d41d8cd9": { + "id": "kind-of@4.0.0@d41d8cd9", + "name": "kind-of", + "version": "4.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#sha1:20813df3d712928b207378691a45066fae72dd57" + ] + }, + "overrides": [], + "dependencies": ["is-buffer@1.1.6@d41d8cd9"], + "devDependencies": [] + }, + "kind-of@3.2.2@d41d8cd9": { + "id": "kind-of@3.2.2@d41d8cd9", + "name": "kind-of", + "version": "3.2.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#sha1:31ea21a734bab9bbb0f32466d893aea51e4a3c64" + ] + }, + "overrides": [], + "dependencies": ["is-buffer@1.1.6@d41d8cd9"], + "devDependencies": [] + }, + "json-parse-better-errors@1.0.2@d41d8cd9": { + "id": "json-parse-better-errors@1.0.2@d41d8cd9", + "name": "json-parse-better-errors", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#sha1:bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "js-yaml@3.12.1@d41d8cd9": { + "id": "js-yaml@3.12.1@d41d8cd9", + "name": "js-yaml", + "version": "3.12.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz#sha1:295c8632a18a23e054cf5c9d3cecafe678167600" + ] + }, + "overrides": [], + "dependencies": ["esprima@4.0.1@d41d8cd9", "argparse@1.0.10@d41d8cd9"], + "devDependencies": [] + }, + "jest-get-type@24.0.0@d41d8cd9": { + "id": "jest-get-type@24.0.0@d41d8cd9", + "name": "jest-get-type", + "version": "24.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.0.0.tgz#sha1:36e72930b78e33da59a4f63d44d332188278940b" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "jest-diff@24.0.0@d41d8cd9": { + "id": "jest-diff@24.0.0@d41d8cd9", + "name": "jest-diff", + "version": "24.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/jest-diff/-/jest-diff-24.0.0.tgz#sha1:a3e5f573dbac482f7d9513ac9cfa21644d3d6b34" + ] + }, + "overrides": [], + "dependencies": [ + "pretty-format@24.0.0@d41d8cd9", + "jest-get-type@24.0.0@d41d8cd9", + "diff-sequences@24.0.0@d41d8cd9", + "chalk@2.4.2@d41d8cd9" + ], + "devDependencies": [] + }, + "isobject@3.0.1@d41d8cd9": { + "id": "isobject@3.0.1@d41d8cd9", + "name": "isobject", + "version": "3.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#sha1:4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "isobject@2.1.0@d41d8cd9": { + "id": "isobject@2.1.0@d41d8cd9", + "name": "isobject", + "version": "2.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#sha1:f065561096a3f1da2ef46272f815c840d87e0c89" + ] + }, + "overrides": [], + "dependencies": ["isarray@1.0.0@d41d8cd9"], + "devDependencies": [] + }, + "isexe@2.0.0@d41d8cd9": { + "id": "isexe@2.0.0@d41d8cd9", + "name": "isexe", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#sha1:e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "isarray@1.0.0@d41d8cd9": { + "id": "isarray@1.0.0@d41d8cd9", + "name": "isarray", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#sha1:bb935d48582cba168c06834957a54a3e07124f11" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-windows@1.0.2@d41d8cd9": { + "id": "is-windows@1.0.2@d41d8cd9", + "name": "is-windows", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#sha1:d1850eb9791ecd18e6182ce12a30f396634bb19d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-stream@1.1.0@d41d8cd9": { + "id": "is-stream@1.1.0@d41d8cd9", + "name": "is-stream", + "version": "1.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#sha1:12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-regexp@1.0.0@d41d8cd9": { + "id": "is-regexp@1.0.0@d41d8cd9", + "name": "is-regexp", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#sha1:fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-promise@2.1.0@d41d8cd9": { + "id": "is-promise@2.1.0@d41d8cd9", + "name": "is-promise", + "version": "2.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#sha1:79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-plain-object@2.0.4@d41d8cd9": { + "id": "is-plain-object@2.0.4@d41d8cd9", + "name": "is-plain-object", + "version": "2.0.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#sha1:2c163b3fafb1b606d9d17928f05c2a1c38e07677" + ] + }, + "overrides": [], + "dependencies": ["isobject@3.0.1@d41d8cd9"], + "devDependencies": [] + }, + "is-path-inside@1.0.1@d41d8cd9": { + "id": "is-path-inside@1.0.1@d41d8cd9", + "name": "is-path-inside", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz#sha1:8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + ] + }, + "overrides": [], + "dependencies": ["path-is-inside@1.0.2@d41d8cd9"], + "devDependencies": [] + }, + "is-path-in-cwd@1.0.1@d41d8cd9": { + "id": "is-path-in-cwd@1.0.1@d41d8cd9", + "name": "is-path-in-cwd", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#sha1:5ac48b345ef675339bd6c7a48a912110b241cf52" + ] + }, + "overrides": [], + "dependencies": ["is-path-inside@1.0.1@d41d8cd9"], + "devDependencies": [] + }, + "is-path-cwd@1.0.0@d41d8cd9": { + "id": "is-path-cwd@1.0.0@d41d8cd9", + "name": "is-path-cwd", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#sha1:d225ec23132e89edd38fda767472e62e65f1106d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-observable@1.1.0@d41d8cd9": { + "id": "is-observable@1.1.0@d41d8cd9", + "name": "is-observable", + "version": "1.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz#sha1:b3e986c8f44de950867cab5403f5a3465005975e" + ] + }, + "overrides": [], + "dependencies": ["symbol-observable@1.2.0@d41d8cd9"], + "devDependencies": [] + }, + "is-obj@1.0.1@d41d8cd9": { + "id": "is-obj@1.0.1@d41d8cd9", + "name": "is-obj", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#sha1:3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-number@3.0.0@d41d8cd9": { + "id": "is-number@3.0.0@d41d8cd9", + "name": "is-number", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#sha1:24fd6201a4782cf50561c810276afc7d12d71195" + ] + }, + "overrides": [], + "dependencies": ["kind-of@3.2.2@d41d8cd9"], + "devDependencies": [] + }, + "is-glob@4.0.0@d41d8cd9": { + "id": "is-glob@4.0.0@d41d8cd9", + "name": "is-glob", + "version": "4.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz#sha1:9521c76845cc2610a85203ddf080a958c2ffabc0" + ] + }, + "overrides": [], + "dependencies": ["is-extglob@2.1.1@d41d8cd9"], + "devDependencies": [] + }, + "is-fullwidth-code-point@2.0.0@d41d8cd9": { + "id": "is-fullwidth-code-point@2.0.0@d41d8cd9", + "name": "is-fullwidth-code-point", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#sha1:a3b30a5c4f199183167aaab93beefae3ddfb654f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-fullwidth-code-point@1.0.0@d41d8cd9": { + "id": "is-fullwidth-code-point@1.0.0@d41d8cd9", + "name": "is-fullwidth-code-point", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#sha1:ef9e31386f031a7f0d643af82fde50c457ef00cb" + ] + }, + "overrides": [], + "dependencies": ["number-is-nan@1.0.1@d41d8cd9"], + "devDependencies": [] + }, + "is-extglob@2.1.1@d41d8cd9": { + "id": "is-extglob@2.1.1@d41d8cd9", + "name": "is-extglob", + "version": "2.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#sha1:a88c02535791f02ed37c76a1b9ea9773c833f8c2" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-extendable@1.0.1@d41d8cd9": { + "id": "is-extendable@1.0.1@d41d8cd9", + "name": "is-extendable", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#sha1:a7470f9e426733d81bd81e1155264e3a3507cab4" + ] + }, + "overrides": [], + "dependencies": ["is-plain-object@2.0.4@d41d8cd9"], + "devDependencies": [] + }, + "is-extendable@0.1.1@d41d8cd9": { + "id": "is-extendable@0.1.1@d41d8cd9", + "name": "is-extendable", + "version": "0.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#sha1:62b110e289a471418e3ec36a617d472e301dfc89" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-directory@0.3.1@d41d8cd9": { + "id": "is-directory@0.3.1@d41d8cd9", + "name": "is-directory", + "version": "0.3.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#sha1:61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-descriptor@1.0.2@d41d8cd9": { + "id": "is-descriptor@1.0.2@d41d8cd9", + "name": "is-descriptor", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#sha1:3b159746a66604b04f8c81524ba365c5f14d86ec" + ] + }, + "overrides": [], + "dependencies": [ + "kind-of@6.0.2@d41d8cd9", + "is-data-descriptor@1.0.0@d41d8cd9", + "is-accessor-descriptor@1.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "is-descriptor@0.1.6@d41d8cd9": { + "id": "is-descriptor@0.1.6@d41d8cd9", + "name": "is-descriptor", + "version": "0.1.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#sha1:366d8240dde487ca51823b1ab9f07a10a78251ca" + ] + }, + "overrides": [], + "dependencies": [ + "kind-of@5.1.0@d41d8cd9", + "is-data-descriptor@0.1.4@d41d8cd9", + "is-accessor-descriptor@0.1.6@d41d8cd9" + ], + "devDependencies": [] + }, + "is-data-descriptor@1.0.0@d41d8cd9": { + "id": "is-data-descriptor@1.0.0@d41d8cd9", + "name": "is-data-descriptor", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#sha1:d84876321d0e7add03990406abbbbd36ba9268c7" + ] + }, + "overrides": [], + "dependencies": ["kind-of@6.0.2@d41d8cd9"], + "devDependencies": [] + }, + "is-data-descriptor@0.1.4@d41d8cd9": { + "id": "is-data-descriptor@0.1.4@d41d8cd9", + "name": "is-data-descriptor", + "version": "0.1.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#sha1:0b5ee648388e2c860282e793f1856fec3f301b56" + ] + }, + "overrides": [], + "dependencies": ["kind-of@3.2.2@d41d8cd9"], + "devDependencies": [] + }, + "is-buffer@1.1.6@d41d8cd9": { + "id": "is-buffer@1.1.6@d41d8cd9", + "name": "is-buffer", + "version": "1.1.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#sha1:efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-arrayish@0.2.1@d41d8cd9": { + "id": "is-arrayish@0.2.1@d41d8cd9", + "name": "is-arrayish", + "version": "0.2.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#sha1:77c99840527aa8ecb1a8ba697b80645a7a926a9d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "is-accessor-descriptor@1.0.0@d41d8cd9": { + "id": "is-accessor-descriptor@1.0.0@d41d8cd9", + "name": "is-accessor-descriptor", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#sha1:169c2f6d3df1f992618072365c9b0ea1f6878656" + ] + }, + "overrides": [], + "dependencies": ["kind-of@6.0.2@d41d8cd9"], + "devDependencies": [] + }, + "is-accessor-descriptor@0.1.6@d41d8cd9": { + "id": "is-accessor-descriptor@0.1.6@d41d8cd9", + "name": "is-accessor-descriptor", + "version": "0.1.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#sha1:a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + ] + }, + "overrides": [], + "dependencies": ["kind-of@3.2.2@d41d8cd9"], + "devDependencies": [] + }, + "inherits@2.0.3@d41d8cd9": { + "id": "inherits@2.0.3@d41d8cd9", + "name": "inherits", + "version": "2.0.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#sha1:633c2c83e3da42a502f52466022480f4208261de" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "inflight@1.0.6@d41d8cd9": { + "id": "inflight@1.0.6@d41d8cd9", + "name": "inflight", + "version": "1.0.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#sha1:49bd6331d7d02d0c09bc910a1075ba8165b56df9" + ] + }, + "overrides": [], + "dependencies": ["wrappy@1.0.2@d41d8cd9", "once@1.4.0@d41d8cd9"], + "devDependencies": [] + }, + "indent-string@3.2.0@d41d8cd9": { + "id": "indent-string@3.2.0@d41d8cd9", + "name": "indent-string", + "version": "3.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#sha1:4a5fd6d27cc332f37e5419a504dbb837105c9289" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "import-fresh@2.0.0@d41d8cd9": { + "id": "import-fresh@2.0.0@d41d8cd9", + "name": "import-fresh", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#sha1:d81355c15612d386c61f9ddd3922d4304822a546" + ] + }, + "overrides": [], + "dependencies": [ + "resolve-from@3.0.0@d41d8cd9", + "caller-path@2.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "has-values@1.0.0@d41d8cd9": { + "id": "has-values@1.0.0@d41d8cd9", + "name": "has-values", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#sha1:95b0b63fec2146619a6fe57fe75628d5a39efe4f" + ] + }, + "overrides": [], + "dependencies": ["kind-of@4.0.0@d41d8cd9", "is-number@3.0.0@d41d8cd9"], + "devDependencies": [] + }, + "has-values@0.1.4@d41d8cd9": { + "id": "has-values@0.1.4@d41d8cd9", + "name": "has-values", + "version": "0.1.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#sha1:6d61de95d91dfca9b9a02089ad384bff8f62b771" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "has-value@1.0.0@d41d8cd9": { + "id": "has-value@1.0.0@d41d8cd9", + "name": "has-value", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#sha1:18b281da585b1c5c51def24c930ed29a0be6b177" + ] + }, + "overrides": [], + "dependencies": [ + "isobject@3.0.1@d41d8cd9", + "has-values@1.0.0@d41d8cd9", + "get-value@2.0.6@d41d8cd9" + ], + "devDependencies": [] + }, + "has-value@0.3.1@d41d8cd9": { + "id": "has-value@0.3.1@d41d8cd9", + "name": "has-value", + "version": "0.3.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#sha1:7b1f58bada62ca827ec0a2078025654845995e1f" + ] + }, + "overrides": [], + "dependencies": [ + "isobject@2.1.0@d41d8cd9", + "has-values@0.1.4@d41d8cd9", + "get-value@2.0.6@d41d8cd9" + ], + "devDependencies": [] + }, + "has-flag@3.0.0@d41d8cd9": { + "id": "has-flag@3.0.0@d41d8cd9", + "name": "has-flag", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#sha1:b5d454dc2199ae225699f3467e5a07f3b955bafd" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "has-ansi@2.0.0@d41d8cd9": { + "id": "has-ansi@2.0.0@d41d8cd9", + "name": "has-ansi", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#sha1:34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + ] + }, + "overrides": [], + "dependencies": ["ansi-regex@2.1.1@d41d8cd9"], + "devDependencies": [] + }, + "globby@6.1.0@d41d8cd9": { + "id": "globby@6.1.0@d41d8cd9", + "name": "globby", + "version": "6.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#sha1:f5a6d70e8395e21c858fb0489d64df02424d506c" + ] + }, + "overrides": [], + "dependencies": [ + "pinkie-promise@2.0.1@d41d8cd9", + "pify@2.3.0@d41d8cd9", + "object-assign@4.1.1@d41d8cd9", + "glob@7.1.3@d41d8cd9", + "array-union@1.0.2@d41d8cd9" + ], + "devDependencies": [] + }, + "glob@7.1.3@d41d8cd9": { + "id": "glob@7.1.3@d41d8cd9", + "name": "glob", + "version": "7.1.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#sha1:3960832d3f1574108342dafd3a67b332c0969df1" + ] + }, + "overrides": [], + "dependencies": [ + "path-is-absolute@1.0.1@d41d8cd9", + "once@1.4.0@d41d8cd9", + "minimatch@3.0.4@d41d8cd9", + "inherits@2.0.3@d41d8cd9", + "inflight@1.0.6@d41d8cd9", + "fs.realpath@1.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "get-value@2.0.6@d41d8cd9": { + "id": "get-value@2.0.6@d41d8cd9", + "name": "get-value", + "version": "2.0.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#sha1:dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "get-stream@4.1.0@d41d8cd9": { + "id": "get-stream@4.1.0@d41d8cd9", + "name": "get-stream", + "version": "4.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#sha1:c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + ] + }, + "overrides": [], + "dependencies": ["pump@3.0.0@d41d8cd9"], + "devDependencies": [] + }, + "get-own-enumerable-property-symbols@3.0.0@d41d8cd9": { + "id": "get-own-enumerable-property-symbols@3.0.0@d41d8cd9", + "name": "get-own-enumerable-property-symbols", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#sha1:b877b49a5c16aefac3655f2ed2ea5b684df8d203" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "g-status@2.0.2@d41d8cd9": { + "id": "g-status@2.0.2@d41d8cd9", + "name": "g-status", + "version": "2.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz#sha1:270fd32119e8fc9496f066fe5fe88e0a6bc78b97" + ] + }, + "overrides": [], + "dependencies": [ + "simple-git@1.107.0@d41d8cd9", + "matcher@1.1.1@d41d8cd9", + "arrify@1.0.1@d41d8cd9" + ], + "devDependencies": [] + }, + "fs.realpath@1.0.0@d41d8cd9": { + "id": "fs.realpath@1.0.0@d41d8cd9", + "name": "fs.realpath", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#sha1:1504ad2523158caa40db4a2787cb01411994ea4f" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "fragment-cache@0.2.1@d41d8cd9": { + "id": "fragment-cache@0.2.1@d41d8cd9", + "name": "fragment-cache", + "version": "0.2.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#sha1:4290fad27f13e89be7f33799c6bc5a0abfff0d19" + ] + }, + "overrides": [], + "dependencies": ["map-cache@0.2.2@d41d8cd9"], + "devDependencies": [] + }, + "for-in@1.0.2@d41d8cd9": { + "id": "for-in@1.0.2@d41d8cd9", + "name": "for-in", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#sha1:81068d295a8142ec0ac726c6e2200c30fb6d5e80" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "fnm@link:./package.json": { + "id": "fnm@link:./package.json", + "name": "fnm", + "version": "link:./package.json", + "source": { "type": "link", "path": ".", "manifest": "package.json" }, + "overrides": [], + "dependencies": [ + "refmterr@3.1.10@d41d8cd9", + "pesy@0.4.1@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", + "@reason-native/rely@1.1.0@d41d8cd9", + "@reason-native/pastel@0.1.0@d41d8cd9", + "@reason-native/console@0.0.3@d41d8cd9", + "@opam/semver@opam:0.1.0@595ed2e0", + "@opam/ppx_let@opam:v0.11.0@15f51b1c", + "@opam/lwt_ppx@opam:1.2.1@db1172a7", + "@opam/lwt@opam:4.1.0@111fc2bf", + "@opam/lambdasoup@opam:0.6.3@b8ef0a81", + "@opam/dune@opam:1.6.3@a7d7baed", + "@opam/core@opam:v0.11.3@ac79d7b5", + "@opam/cmdliner@opam:1.0.3@96d31520", + "@esy-ocaml/reason@3.4.0@d41d8cd9" + ], + "devDependencies": [ + "prettier@1.16.4@d41d8cd9", + "lint-staged@8.1.3@d41d8cd9", + "jest-diff@24.0.0@d41d8cd9", + "@opam/merlin@opam:3.2.2@829ee6dd" + ] + }, + "fn-name@2.0.1@d41d8cd9": { + "id": "fn-name@2.0.1@d41d8cd9", + "name": "fn-name", + "version": "2.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz#sha1:5214d7537a4d06a4a301c0cc262feb84188002e7" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "find-parent-dir@0.3.0@d41d8cd9": { + "id": "find-parent-dir@0.3.0@d41d8cd9", + "name": "find-parent-dir", + "version": "0.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz#sha1:33c44b429ab2b2f0646299c5f9f718f376ff8d54" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "fill-range@4.0.0@d41d8cd9": { + "id": "fill-range@4.0.0@d41d8cd9", + "name": "fill-range", + "version": "4.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#sha1:d544811d428f98eb06a63dc402d2403c328c38f7" + ] + }, + "overrides": [], + "dependencies": [ + "to-regex-range@2.1.1@d41d8cd9", + "repeat-string@1.6.1@d41d8cd9", + "is-number@3.0.0@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9" + ], + "devDependencies": [] + }, + "figures@2.0.0@d41d8cd9": { + "id": "figures@2.0.0@d41d8cd9", + "name": "figures", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#sha1:3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + ] + }, + "overrides": [], + "dependencies": ["escape-string-regexp@1.0.5@d41d8cd9"], + "devDependencies": [] + }, + "figures@1.7.0@d41d8cd9": { + "id": "figures@1.7.0@d41d8cd9", + "name": "figures", + "version": "1.7.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#sha1:cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + ] + }, + "overrides": [], + "dependencies": [ + "object-assign@4.1.1@d41d8cd9", + "escape-string-regexp@1.0.5@d41d8cd9" + ], + "devDependencies": [] + }, + "extglob@2.0.4@d41d8cd9": { + "id": "extglob@2.0.4@d41d8cd9", + "name": "extglob", + "version": "2.0.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#sha1:ad00fe4dc612a9232e8718711dc5cb5ab0285543" + ] + }, + "overrides": [], + "dependencies": [ + "to-regex@3.0.2@d41d8cd9", + "snapdragon@0.8.2@d41d8cd9", + "regex-not@1.0.2@d41d8cd9", + "fragment-cache@0.2.1@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9", + "expand-brackets@2.1.4@d41d8cd9", + "define-property@1.0.0@d41d8cd9", + "array-unique@0.3.2@d41d8cd9" + ], + "devDependencies": [] + }, + "extend-shallow@3.0.2@d41d8cd9": { + "id": "extend-shallow@3.0.2@d41d8cd9", + "name": "extend-shallow", + "version": "3.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#sha1:26a71aaf073b39fb2127172746131c2704028db8" + ] + }, + "overrides": [], + "dependencies": [ + "is-extendable@1.0.1@d41d8cd9", + "assign-symbols@1.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "extend-shallow@2.0.1@d41d8cd9": { + "id": "extend-shallow@2.0.1@d41d8cd9", + "name": "extend-shallow", + "version": "2.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#sha1:51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + ] + }, + "overrides": [], + "dependencies": ["is-extendable@0.1.1@d41d8cd9"], + "devDependencies": [] + }, + "expand-brackets@2.1.4@d41d8cd9": { + "id": "expand-brackets@2.1.4@d41d8cd9", + "name": "expand-brackets", + "version": "2.1.4", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#sha1:b77735e315ce30f6b6eff0f83b04151a22449622" + ] + }, + "overrides": [], + "dependencies": [ + "to-regex@3.0.2@d41d8cd9", + "snapdragon@0.8.2@d41d8cd9", + "regex-not@1.0.2@d41d8cd9", + "posix-character-classes@0.1.1@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9", + "define-property@0.2.5@d41d8cd9", + "debug@2.6.9@d41d8cd9" + ], + "devDependencies": [] + }, + "execa@1.0.0@d41d8cd9": { + "id": "execa@1.0.0@d41d8cd9", + "name": "execa", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#sha1:c6236a5bb4df6d6f15e88e7f017798216749ddd8" + ] + }, + "overrides": [], + "dependencies": [ + "strip-eof@1.0.0@d41d8cd9", + "signal-exit@3.0.2@d41d8cd9", + "p-finally@1.0.0@d41d8cd9", + "npm-run-path@2.0.2@d41d8cd9", + "is-stream@1.1.0@d41d8cd9", + "get-stream@4.1.0@d41d8cd9", + "cross-spawn@6.0.5@d41d8cd9" + ], + "devDependencies": [] + }, + "esprima@4.0.1@d41d8cd9": { + "id": "esprima@4.0.1@d41d8cd9", + "name": "esprima", + "version": "4.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#sha1:13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "escape-string-regexp@1.0.5@d41d8cd9": { + "id": "escape-string-regexp@1.0.5@d41d8cd9", + "name": "escape-string-regexp", + "version": "1.0.5", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#sha1:1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "error-ex@1.3.2@d41d8cd9": { + "id": "error-ex@1.3.2@d41d8cd9", + "name": "error-ex", + "version": "1.3.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#sha1:b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + ] + }, + "overrides": [], + "dependencies": ["is-arrayish@0.2.1@d41d8cd9"], + "devDependencies": [] + }, + "end-of-stream@1.4.1@d41d8cd9": { + "id": "end-of-stream@1.4.1@d41d8cd9", + "name": "end-of-stream", + "version": "1.4.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz#sha1:ed29634d19baba463b6ce6b80a37213eab71ec43" + ] + }, + "overrides": [], + "dependencies": ["once@1.4.0@d41d8cd9"], + "devDependencies": [] + }, + "elegant-spinner@1.0.1@d41d8cd9": { + "id": "elegant-spinner@1.0.1@d41d8cd9", + "name": "elegant-spinner", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz#sha1:db043521c95d7e303fd8f345bedc3349cfb0729e" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "diff-sequences@24.0.0@d41d8cd9": { + "id": "diff-sequences@24.0.0@d41d8cd9", + "name": "diff-sequences", + "version": "24.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.0.0.tgz#sha1:cdf8e27ed20d8b8d3caccb4e0c0d8fe31a173013" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "del@3.0.0@d41d8cd9": { + "id": "del@3.0.0@d41d8cd9", + "name": "del", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/del/-/del-3.0.0.tgz#sha1:53ecf699ffcbcb39637691ab13baf160819766e5" + ] + }, + "overrides": [], + "dependencies": [ + "rimraf@2.6.3@d41d8cd9", + "pify@3.0.0@d41d8cd9", + "p-map@1.2.0@d41d8cd9", + "is-path-in-cwd@1.0.1@d41d8cd9", + "is-path-cwd@1.0.0@d41d8cd9", + "globby@6.1.0@d41d8cd9" + ], + "devDependencies": [] + }, + "define-property@2.0.2@d41d8cd9": { + "id": "define-property@2.0.2@d41d8cd9", + "name": "define-property", + "version": "2.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#sha1:d459689e8d654ba77e02a817f8710d702cb16e9d" + ] + }, + "overrides": [], + "dependencies": [ + "isobject@3.0.1@d41d8cd9", + "is-descriptor@1.0.2@d41d8cd9" + ], + "devDependencies": [] + }, + "define-property@1.0.0@d41d8cd9": { + "id": "define-property@1.0.0@d41d8cd9", + "name": "define-property", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#sha1:769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + ] + }, + "overrides": [], + "dependencies": ["is-descriptor@1.0.2@d41d8cd9"], + "devDependencies": [] + }, + "define-property@0.2.5@d41d8cd9": { + "id": "define-property@0.2.5@d41d8cd9", + "name": "define-property", + "version": "0.2.5", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#sha1:c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + ] + }, + "overrides": [], + "dependencies": ["is-descriptor@0.1.6@d41d8cd9"], + "devDependencies": [] + }, + "dedent@0.7.0@d41d8cd9": { + "id": "dedent@0.7.0@d41d8cd9", + "name": "dedent", + "version": "0.7.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#sha1:2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "decode-uri-component@0.2.0@d41d8cd9": { + "id": "decode-uri-component@0.2.0@d41d8cd9", + "name": "decode-uri-component", + "version": "0.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#sha1:eb3913333458775cb84cd1a1fae062106bb87545" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "debug@4.1.1@d41d8cd9": { + "id": "debug@4.1.1@d41d8cd9", + "name": "debug", + "version": "4.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#sha1:3b72260255109c6b589cee050f1d516139664791" + ] + }, + "overrides": [], + "dependencies": ["ms@2.1.1@d41d8cd9"], + "devDependencies": [] + }, + "debug@3.2.6@d41d8cd9": { + "id": "debug@3.2.6@d41d8cd9", + "name": "debug", + "version": "3.2.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#sha1:e83d17de16d8a7efb7717edbe5fb10135eee629b" + ] + }, + "overrides": [], + "dependencies": ["ms@2.1.1@d41d8cd9"], + "devDependencies": [] + }, + "debug@2.6.9@d41d8cd9": { + "id": "debug@2.6.9@d41d8cd9", + "name": "debug", + "version": "2.6.9", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#sha1:5d128515df134ff327e90a4c93f4e077a536341f" + ] + }, + "overrides": [], + "dependencies": ["ms@2.0.0@d41d8cd9"], + "devDependencies": [] + }, + "date-fns@1.30.1@d41d8cd9": { + "id": "date-fns@1.30.1@d41d8cd9", + "name": "date-fns", + "version": "1.30.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz#sha1:2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "cross-spawn@6.0.5@d41d8cd9": { + "id": "cross-spawn@6.0.5@d41d8cd9", + "name": "cross-spawn", + "version": "6.0.5", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#sha1:4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + ] + }, + "overrides": [], + "dependencies": [ + "which@1.3.1@d41d8cd9", + "shebang-command@1.2.0@d41d8cd9", + "semver@5.6.0@d41d8cd9", + "path-key@2.0.1@d41d8cd9", + "nice-try@1.0.5@d41d8cd9" + ], + "devDependencies": [] + }, + "cosmiconfig@5.0.7@d41d8cd9": { + "id": "cosmiconfig@5.0.7@d41d8cd9", + "name": "cosmiconfig", + "version": "5.0.7", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz#sha1:39826b292ee0d78eda137dfa3173bd1c21a43b04" + ] + }, + "overrides": [], + "dependencies": [ + "parse-json@4.0.0@d41d8cd9", + "js-yaml@3.12.1@d41d8cd9", + "is-directory@0.3.1@d41d8cd9", + "import-fresh@2.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "copy-descriptor@0.1.1@d41d8cd9": { + "id": "copy-descriptor@0.1.1@d41d8cd9", + "name": "copy-descriptor", + "version": "0.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#sha1:676f6eb3c39997c2ee1ac3a924fd6124748f578d" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "concat-map@0.0.1@d41d8cd9": { + "id": "concat-map@0.0.1@d41d8cd9", + "name": "concat-map", + "version": "0.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#sha1:d8a96bd77fd68df7793a73036a3ba0d5405d477b" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "component-emitter@1.2.1@d41d8cd9": { + "id": "component-emitter@1.2.1@d41d8cd9", + "name": "component-emitter", + "version": "1.2.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz#sha1:137918d6d78283f7df7a6b7c5a63e140e69425e6" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "commander@2.19.0@d41d8cd9": { + "id": "commander@2.19.0@d41d8cd9", + "name": "commander", + "version": "2.19.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#sha1:f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "color-name@1.1.3@d41d8cd9": { + "id": "color-name@1.1.3@d41d8cd9", + "name": "color-name", + "version": "1.1.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#sha1:a7d0558bd89c42f795dd42328f740831ca53bc25" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "color-convert@1.9.3@d41d8cd9": { + "id": "color-convert@1.9.3@d41d8cd9", + "name": "color-convert", + "version": "1.9.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#sha1:bb71850690e1f136567de629d2d5471deda4c1e8" + ] + }, + "overrides": [], + "dependencies": ["color-name@1.1.3@d41d8cd9"], + "devDependencies": [] + }, + "collection-visit@1.0.0@d41d8cd9": { + "id": "collection-visit@1.0.0@d41d8cd9", + "name": "collection-visit", + "version": "1.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#sha1:4bc0373c164bc3291b4d368c829cf1a80a59dca0" + ] + }, + "overrides": [], + "dependencies": [ + "object-visit@1.0.1@d41d8cd9", + "map-visit@1.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "code-point-at@1.1.0@d41d8cd9": { + "id": "code-point-at@1.1.0@d41d8cd9", + "name": "code-point-at", + "version": "1.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#sha1:0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "cli-truncate@0.2.1@d41d8cd9": { + "id": "cli-truncate@0.2.1@d41d8cd9", + "name": "cli-truncate", + "version": "0.2.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz#sha1:9f15cfbb0705005369216c626ac7d05ab90dd574" + ] + }, + "overrides": [], + "dependencies": [ + "string-width@1.0.2@d41d8cd9", + "slice-ansi@0.0.4@d41d8cd9" + ], + "devDependencies": [] + }, + "cli-cursor@2.1.0@d41d8cd9": { + "id": "cli-cursor@2.1.0@d41d8cd9", + "name": "cli-cursor", + "version": "2.1.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#sha1:b35dac376479facc3e94747d41d0d0f5238ffcb5" + ] + }, + "overrides": [], + "dependencies": ["restore-cursor@2.0.0@d41d8cd9"], + "devDependencies": [] + }, + "class-utils@0.3.6@d41d8cd9": { + "id": "class-utils@0.3.6@d41d8cd9", + "name": "class-utils", + "version": "0.3.6", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#sha1:f93369ae8b9a7ce02fd41faad0ca83033190c463" + ] + }, + "overrides": [], + "dependencies": [ + "static-extend@0.1.2@d41d8cd9", + "isobject@3.0.1@d41d8cd9", + "define-property@0.2.5@d41d8cd9", + "arr-union@3.1.0@d41d8cd9" + ], + "devDependencies": [] + }, + "chalk@2.4.2@d41d8cd9": { + "id": "chalk@2.4.2@d41d8cd9", + "name": "chalk", + "version": "2.4.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#sha1:cd42541677a54333cf541a49108c1432b44c9424" + ] + }, + "overrides": [], + "dependencies": [ + "supports-color@5.5.0@d41d8cd9", + "escape-string-regexp@1.0.5@d41d8cd9", + "ansi-styles@3.2.1@d41d8cd9" + ], + "devDependencies": [] + }, + "chalk@1.1.3@d41d8cd9": { + "id": "chalk@1.1.3@d41d8cd9", + "name": "chalk", + "version": "1.1.3", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#sha1:a8115c55e4a702fe4d150abd3872822a7e09fc98" ] }, "overrides": [], - "dependencies": [ "has-flag@3.0.0@d41d8cd9" ], + "dependencies": [ + "supports-color@2.0.0@d41d8cd9", + "strip-ansi@3.0.1@d41d8cd9", + "has-ansi@2.0.0@d41d8cd9", + "escape-string-regexp@1.0.5@d41d8cd9", + "ansi-styles@2.2.1@d41d8cd9" + ], "devDependencies": [] }, - "refmterr@3.1.10@d41d8cd9": { - "id": "refmterr@3.1.10@d41d8cd9", - "name": "refmterr", - "version": "3.1.10", + "callsites@2.0.0@d41d8cd9": { + "id": "callsites@2.0.0@d41d8cd9", + "name": "callsites", + "version": "2.0.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/refmterr/-/refmterr-3.1.10.tgz#sha1:7c3e238022acb5de4e2254ab506d70eee13c0a46" + "archive:https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#sha1:06eb84f00eea413da86affefacbffb36093b3c50" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "caller-path@2.0.0@d41d8cd9": { + "id": "caller-path@2.0.0@d41d8cd9", + "name": "caller-path", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#sha1:468f83044e369ab2010fac5f06ceee15bb2cb1f4" + ] + }, + "overrides": [], + "dependencies": ["caller-callsite@2.0.0@d41d8cd9"], + "devDependencies": [] + }, + "caller-callsite@2.0.0@d41d8cd9": { + "id": "caller-callsite@2.0.0@d41d8cd9", + "name": "caller-callsite", + "version": "2.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#sha1:847e0fce0a223750a9a027c54b33731ad3154134" + ] + }, + "overrides": [], + "dependencies": ["callsites@2.0.0@d41d8cd9"], + "devDependencies": [] + }, + "cache-base@1.0.1@d41d8cd9": { + "id": "cache-base@1.0.1@d41d8cd9", + "name": "cache-base", + "version": "1.0.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#sha1:0a7f46416831c8b662ee36fe4e7c59d76f666ab2" ] }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/re@opam:1.7.3@83095efd", - "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/reason@3.4.0@d41d8cd9" + "unset-value@1.0.0@d41d8cd9", + "union-value@1.0.0@d41d8cd9", + "to-object-path@0.3.0@d41d8cd9", + "set-value@2.0.0@d41d8cd9", + "isobject@3.0.1@d41d8cd9", + "has-value@1.0.0@d41d8cd9", + "get-value@2.0.6@d41d8cd9", + "component-emitter@1.2.1@d41d8cd9", + "collection-visit@1.0.0@d41d8cd9" ], "devDependencies": [] }, - "pretty-format@24.0.0@d41d8cd9": { - "id": "pretty-format@24.0.0@d41d8cd9", - "name": "pretty-format", - "version": "24.0.0", + "braces@2.3.2@d41d8cd9": { + "id": "braces@2.3.2@d41d8cd9", + "name": "braces", + "version": "2.3.2", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/pretty-format/-/pretty-format-24.0.0.tgz#sha1:cb6599fd73ac088e37ed682f61291e4678f48591" + "archive:https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#sha1:5979fd3f14cd531565e5fa2df1abfff1dfaee729" ] }, "overrides": [], "dependencies": [ - "ansi-styles@3.2.1@d41d8cd9", "ansi-regex@4.0.0@d41d8cd9" + "to-regex@3.0.2@d41d8cd9", + "split-string@3.1.0@d41d8cd9", + "snapdragon-node@2.1.1@d41d8cd9", + "snapdragon@0.8.2@d41d8cd9", + "repeat-element@1.1.3@d41d8cd9", + "isobject@3.0.1@d41d8cd9", + "fill-range@4.0.0@d41d8cd9", + "extend-shallow@2.0.1@d41d8cd9", + "array-unique@0.3.2@d41d8cd9", + "arr-flatten@1.1.0@d41d8cd9" ], "devDependencies": [] }, - "prettier@1.16.2@d41d8cd9": { - "id": "prettier@1.16.2@d41d8cd9", - "name": "prettier", - "version": "1.16.2", + "brace-expansion@1.1.11@d41d8cd9": { + "id": "brace-expansion@1.1.11@d41d8cd9", + "name": "brace-expansion", + "version": "1.1.11", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#sha1:3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + ] + }, + "overrides": [], + "dependencies": [ + "concat-map@0.0.1@d41d8cd9", + "balanced-match@1.0.0@d41d8cd9" + ], + "devDependencies": [] + }, + "base@0.11.2@d41d8cd9": { + "id": "base@0.11.2@d41d8cd9", + "name": "base", + "version": "0.11.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/base/-/base-0.11.2.tgz#sha1:7bde5ced145b6d551a90db87f83c558b4eb48a8f" + ] + }, + "overrides": [], + "dependencies": [ + "pascalcase@0.1.1@d41d8cd9", + "mixin-deep@1.3.1@d41d8cd9", + "isobject@3.0.1@d41d8cd9", + "define-property@1.0.0@d41d8cd9", + "component-emitter@1.2.1@d41d8cd9", + "class-utils@0.3.6@d41d8cd9", + "cache-base@1.0.1@d41d8cd9" + ], + "devDependencies": [] + }, + "balanced-match@1.0.0@d41d8cd9": { + "id": "balanced-match@1.0.0@d41d8cd9", + "name": "balanced-match", + "version": "1.0.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/prettier/-/prettier-1.16.2.tgz#sha1:f60bc5929a7f9a05260cc88d5430391100092414" + "archive:https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#sha1:89b4d199ab2bee49de164ea02b89ce462d71b767" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "pesy@0.4.1@d41d8cd9": { - "id": "pesy@0.4.1@d41d8cd9", - "name": "pesy", - "version": "0.4.1", + "atob@2.1.2@d41d8cd9": { + "id": "atob@2.1.2@d41d8cd9", + "name": "atob", + "version": "2.1.2", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/pesy/-/pesy-0.4.1.tgz#sha1:37b3faccb3ecdb37f4bf3d95d04ffbd2633247af" + "archive:https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#sha1:6d9517eb9e030d2436666651e86bd9f6f13533c9" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "ocaml@4.6.9@d41d8cd9": { - "id": "ocaml@4.6.9@d41d8cd9", - "name": "ocaml", - "version": "4.6.9", + "assign-symbols@1.0.0@d41d8cd9": { + "id": "assign-symbols@1.0.0@d41d8cd9", + "name": "assign-symbols", + "version": "1.0.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.6.9.tgz#sha1:4561135b32f59a5bafa8e91019a58515508d6e4c" + "archive:https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#sha1:59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "jest-get-type@24.0.0@d41d8cd9": { - "id": "jest-get-type@24.0.0@d41d8cd9", - "name": "jest-get-type", - "version": "24.0.0", + "arrify@1.0.1@d41d8cd9": { + "id": "arrify@1.0.1@d41d8cd9", + "name": "arrify", + "version": "1.0.1", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.0.0.tgz#sha1:36e72930b78e33da59a4f63d44d332188278940b" + "archive:https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#sha1:898508da2226f380df904728456849c1501a4b0d" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "jest-diff@24.0.0@d41d8cd9": { - "id": "jest-diff@24.0.0@d41d8cd9", - "name": "jest-diff", - "version": "24.0.0", + "array-unique@0.3.2@d41d8cd9": { + "id": "array-unique@0.3.2@d41d8cd9", + "name": "array-unique", + "version": "0.3.2", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/jest-diff/-/jest-diff-24.0.0.tgz#sha1:a3e5f573dbac482f7d9513ac9cfa21644d3d6b34" + "archive:https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#sha1:a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" ] }, "overrides": [], - "dependencies": [ - "pretty-format@24.0.0@d41d8cd9", "jest-get-type@24.0.0@d41d8cd9", - "diff-sequences@24.0.0@d41d8cd9", "chalk@2.4.2@d41d8cd9" - ], + "dependencies": [], "devDependencies": [] }, - "has-flag@3.0.0@d41d8cd9": { - "id": "has-flag@3.0.0@d41d8cd9", - "name": "has-flag", - "version": "3.0.0", + "array-uniq@1.0.3@d41d8cd9": { + "id": "array-uniq@1.0.3@d41d8cd9", + "name": "array-uniq", + "version": "1.0.3", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#sha1:b5d454dc2199ae225699f3467e5a07f3b955bafd" + "archive:https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#sha1:af6ac877a25cc7f74e058894753858dfdb24fdb6" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "fnm@link:./package.json": { - "id": "fnm@link:./package.json", - "name": "fnm", - "version": "link:./package.json", - "source": { "type": "link", "path": ".", "manifest": "package.json" }, + "array-union@1.0.2@d41d8cd9": { + "id": "array-union@1.0.2@d41d8cd9", + "name": "array-union", + "version": "1.0.2", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#sha1:9a34410e4f4e3da23dea375be5be70f24778ec39" + ] + }, "overrides": [], - "dependencies": [ - "refmterr@3.1.10@d41d8cd9", "pesy@0.4.1@d41d8cd9", - "ocaml@4.6.9@d41d8cd9", "@reason-native/rely@1.1.0@d41d8cd9", - "@reason-native/pastel@0.1.0@d41d8cd9", - "@reason-native/console@0.0.3@d41d8cd9", - "@opam/semver@opam:0.1.0@595ed2e0", - "@opam/ppx_let@opam:v0.11.0@15f51b1c", - "@opam/lwt_ppx@opam:1.2.1@db1172a7", "@opam/lwt@opam:4.1.0@111fc2bf", - "@opam/lambdasoup@opam:0.6.3@b8ef0a81", - "@opam/dune@opam:1.6.3@a7d7baed", "@opam/core@opam:v0.11.3@ac79d7b5", - "@opam/cmdliner@opam:1.0.3@96d31520", - "@esy-ocaml/reason@3.4.0@d41d8cd9" - ], - "devDependencies": [ - "prettier@1.16.2@d41d8cd9", "jest-diff@24.0.0@d41d8cd9", - "@opam/merlin@opam:3.2.2@829ee6dd" - ] + "dependencies": ["array-uniq@1.0.3@d41d8cd9"], + "devDependencies": [] }, - "escape-string-regexp@1.0.5@d41d8cd9": { - "id": "escape-string-regexp@1.0.5@d41d8cd9", - "name": "escape-string-regexp", - "version": "1.0.5", + "arr-union@3.1.0@d41d8cd9": { + "id": "arr-union@3.1.0@d41d8cd9", + "name": "arr-union", + "version": "3.1.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#sha1:1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + "archive:https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#sha1:e39b09aea9def866a8f206e288af63919bae39c4" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "diff-sequences@24.0.0@d41d8cd9": { - "id": "diff-sequences@24.0.0@d41d8cd9", - "name": "diff-sequences", - "version": "24.0.0", + "arr-flatten@1.1.0@d41d8cd9": { + "id": "arr-flatten@1.1.0@d41d8cd9", + "name": "arr-flatten", + "version": "1.1.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.0.0.tgz#sha1:cdf8e27ed20d8b8d3caccb4e0c0d8fe31a173013" + "archive:https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#sha1:36048bbff4e7b47e136644316c99669ea5ae91f1" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "color-name@1.1.3@d41d8cd9": { - "id": "color-name@1.1.3@d41d8cd9", - "name": "color-name", - "version": "1.1.3", + "arr-diff@4.0.0@d41d8cd9": { + "id": "arr-diff@4.0.0@d41d8cd9", + "name": "arr-diff", + "version": "4.0.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#sha1:a7d0558bd89c42f795dd42328f740831ca53bc25" + "archive:https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#sha1:d6461074febfec71e7e15235761a329a5dc7c520" ] }, "overrides": [], "dependencies": [], "devDependencies": [] }, - "color-convert@1.9.3@d41d8cd9": { - "id": "color-convert@1.9.3@d41d8cd9", - "name": "color-convert", - "version": "1.9.3", + "argparse@1.0.10@d41d8cd9": { + "id": "argparse@1.0.10@d41d8cd9", + "name": "argparse", + "version": "1.0.10", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#sha1:bb71850690e1f136567de629d2d5471deda4c1e8" + "archive:https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#sha1:bcd6791ea5ae09725e17e5ad988134cd40b3d911" ] }, "overrides": [], - "dependencies": [ "color-name@1.1.3@d41d8cd9" ], + "dependencies": ["sprintf-js@1.0.3@d41d8cd9"], "devDependencies": [] }, - "chalk@2.4.2@d41d8cd9": { - "id": "chalk@2.4.2@d41d8cd9", - "name": "chalk", - "version": "2.4.2", + "any-observable@0.3.0@d41d8cd9": { + "id": "any-observable@0.3.0@d41d8cd9", + "name": "any-observable", + "version": "0.3.0", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#sha1:cd42541677a54333cf541a49108c1432b44c9424" + "archive:https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz#sha1:af933475e5806a67d0d7df090dd5e8bef65d119b" ] }, "overrides": [], - "dependencies": [ - "supports-color@5.5.0@d41d8cd9", - "escape-string-regexp@1.0.5@d41d8cd9", "ansi-styles@3.2.1@d41d8cd9" - ], + "dependencies": [], "devDependencies": [] }, "ansi-styles@3.2.1@d41d8cd9": { @@ -244,7 +3471,21 @@ ] }, "overrides": [], - "dependencies": [ "color-convert@1.9.3@d41d8cd9" ], + "dependencies": ["color-convert@1.9.3@d41d8cd9"], + "devDependencies": [] + }, + "ansi-styles@2.2.1@d41d8cd9": { + "id": "ansi-styles@2.2.1@d41d8cd9", + "name": "ansi-styles", + "version": "2.2.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#sha1:b432dd3358b634cf75e1e4664368240533c1ddbe" + ] + }, + "overrides": [], + "dependencies": [], "devDependencies": [] }, "ansi-regex@4.0.0@d41d8cd9": { @@ -261,6 +3502,62 @@ "dependencies": [], "devDependencies": [] }, + "ansi-regex@3.0.0@d41d8cd9": { + "id": "ansi-regex@3.0.0@d41d8cd9", + "name": "ansi-regex", + "version": "3.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#sha1:ed0317c322064f79466c02966bddb605ab37d998" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "ansi-regex@2.1.1@d41d8cd9": { + "id": "ansi-regex@2.1.1@d41d8cd9", + "name": "ansi-regex", + "version": "2.1.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#sha1:c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "ansi-escapes@3.2.0@d41d8cd9": { + "id": "ansi-escapes@3.2.0@d41d8cd9", + "name": "ansi-escapes", + "version": "3.2.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#sha1:8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + ] + }, + "overrides": [], + "dependencies": [], + "devDependencies": [] + }, + "@samverschueren/stream-to-observable@0.3.0@d41d8cd9": { + "id": "@samverschueren/stream-to-observable@0.3.0@d41d8cd9", + "name": "@samverschueren/stream-to-observable", + "version": "0.3.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#sha1:ecdf48d532c58ea477acfcab80348424f8d0662f" + ] + }, + "overrides": [], + "dependencies": ["any-observable@0.3.0@d41d8cd9"], + "devDependencies": [] + }, "@reason-native/rely@1.1.0@d41d8cd9": { "id": "@reason-native/rely@1.1.0@d41d8cd9", "name": "@reason-native/rely", @@ -273,10 +3570,12 @@ }, "overrides": [], "dependencies": [ - "refmterr@3.1.10@d41d8cd9", "ocaml@4.6.9@d41d8cd9", + "refmterr@3.1.10@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@reason-native/pastel@0.1.0@d41d8cd9", "@reason-native/file-context-printer@0.0.2@d41d8cd9", - "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/reason@3.4.0@d41d8cd9" + "@opam/dune@opam:1.6.3@a7d7baed", + "@esy-ocaml/reason@3.4.0@d41d8cd9" ], "devDependencies": [] }, @@ -292,7 +3591,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/dune@opam:1.6.3@a7d7baed", + "ocaml@4.6.10@d41d8cd9", + "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/reason@3.4.0@d41d8cd9" ], "devDependencies": [] @@ -309,8 +3609,10 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@reason-native/pastel@0.1.0@d41d8cd9", - "@opam/re@opam:1.7.3@83095efd", "@opam/dune@opam:1.6.3@a7d7baed", + "ocaml@4.6.10@d41d8cd9", + "@reason-native/pastel@0.1.0@d41d8cd9", + "@opam/re@opam:1.7.3@83095efd", + "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/reason@3.4.0@d41d8cd9" ], "devDependencies": [] @@ -327,36 +3629,40 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/dune@opam:1.6.3@a7d7baed", + "ocaml@4.6.10@d41d8cd9", + "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/reason@3.4.0@d41d8cd9" ], "devDependencies": [] }, - "@opam/yojson@opam:1.5.0@890db858": { - "id": "@opam/yojson@opam:1.5.0@890db858", + "@opam/yojson@opam:1.6.0@f7ec7c12": { + "id": "@opam/yojson@opam:1.6.0@f7ec7c12", "name": "@opam/yojson", - "version": "opam:1.5.0", + "version": "opam:1.6.0", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/md5/d8/d80de1bacdde292af42f7c78b323da7b#md5:d80de1bacdde292af42f7c78b323da7b", - "archive:https://github.com/ocaml-community/yojson/releases/download/1.5.0/yojson-1.5.0.tbz#md5:d80de1bacdde292af42f7c78b323da7b" + "archive:https://opam.ocaml.org/cache/md5/8c/8ca16557d3068253cc375452af3bde96#md5:8ca16557d3068253cc375452af3bde96", + "archive:https://github.com/ocaml-community/yojson/releases/download/1.6.0/yojson-1.6.0.tbz#md5:8ca16557d3068253cc375452af3bde96" ], "opam": { "name": "yojson", - "version": "1.5.0", - "path": "esy.lock/opam/yojson.1.5.0" + "version": "1.6.0", + "path": "esy.lock/opam/yojson.1.6.0" } }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/easy-format@opam:1.3.1@9abfd4ed", - "@opam/dune@opam:1.6.3@a7d7baed", "@opam/cppo@opam:1.6.5@bec3dbd9", + "ocaml@4.6.10@d41d8cd9", + "@opam/easy-format@opam:1.3.1@9abfd4ed", + "@opam/dune@opam:1.6.3@a7d7baed", + "@opam/cppo@opam:1.6.5@bec3dbd9", "@opam/biniou@opam:1.2.0@c8516f18", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/easy-format@opam:1.3.1@9abfd4ed", + "ocaml@4.6.10@d41d8cd9", + "@opam/easy-format@opam:1.3.1@9abfd4ed", "@opam/biniou@opam:1.2.0@c8516f18" ] }, @@ -378,37 +3684,40 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] }, - "@opam/uutf@opam:1.0.1@c4650647": { - "id": "@opam/uutf@opam:1.0.1@c4650647", + "@opam/uutf@opam:1.0.2@4440868f": { + "id": "@opam/uutf@opam:1.0.2@4440868f", "name": "@opam/uutf", - "version": "opam:1.0.1", + "version": "opam:1.0.2", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/md5/b8/b8535f974027357094c5cdb4bf03a21b#md5:b8535f974027357094c5cdb4bf03a21b", - "archive:http://erratique.ch/software/uutf/releases/uutf-1.0.1.tbz#md5:b8535f974027357094c5cdb4bf03a21b" + "archive:https://opam.ocaml.org/cache/md5/a7/a7c542405a39630c689a82bd7ef2292c#md5:a7c542405a39630c689a82bd7ef2292c", + "archive:http://erratique.ch/software/uutf/releases/uutf-1.0.2.tbz#md5:a7c542405a39630c689a82bd7ef2292c" ], "opam": { "name": "uutf", - "version": "1.0.1", - "path": "esy.lock/opam/uutf.1.0.1" + "version": "1.0.2", + "path": "esy.lock/opam/uutf.1.0.2" } }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/uchar@opam:0.0.2@c8218eea", + "ocaml@4.6.10@d41d8cd9", + "@opam/uchar@opam:0.0.2@c8218eea", "@opam/topkg@opam:1.0.0@61f4ccf9", "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/ocamlbuild@opam:0.12.0@6c616094", @@ -416,7 +3725,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/uchar@opam:0.0.2@c8218eea" + "ocaml@4.6.10@d41d8cd9", + "@opam/uchar@opam:0.0.2@c8218eea" ] }, "@opam/uchar@opam:0.0.2@c8218eea": { @@ -437,10 +3747,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ocamlbuild@opam:0.12.0@6c616094", + "ocaml@4.6.10@d41d8cd9", + "@opam/ocamlbuild@opam:0.12.0@6c616094", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/typerep@opam:v0.11.0@625676b6": { "id": "@opam/typerep@opam:v0.11.0@625676b6", @@ -460,12 +3771,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/base@opam:v0.11.1@0e54024e" + "ocaml@4.6.10@d41d8cd9", + "@opam/base@opam:v0.11.1@0e54024e" ] }, "@opam/topkg@opam:1.0.0@61f4ccf9": { @@ -486,13 +3799,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e", + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e", "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/ocamlbuild@opam:0.12.0@6c616094", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e", + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e", "@opam/ocamlbuild@opam:0.12.0@6c616094" ] }, @@ -514,12 +3829,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/base@opam:v0.11.1@0e54024e" + "ocaml@4.6.10@d41d8cd9", + "@opam/base@opam:v0.11.1@0e54024e" ] }, "@opam/splittable_random@opam:v0.11.0@6178cb9b": { @@ -540,14 +3857,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppx_jane@opam:v0.11.0@687c4174", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppx_jane@opam:v0.11.0@687c4174", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppx_jane@opam:v0.11.0@687c4174", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppx_jane@opam:v0.11.0@687c4174", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -570,10 +3889,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/sexplib0@opam:v0.11.0@9df6bcd1": { "id": "@opam/sexplib0@opam:v0.11.0@9df6bcd1", @@ -593,10 +3913,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/sexplib@opam:v0.11.0@bf5282c9": { "id": "@opam/sexplib@opam:v0.11.0@bf5282c9", @@ -616,14 +3937,18 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/sexplib0@opam:v0.11.0@9df6bcd1", - "@opam/parsexp@opam:v0.11.0@7febd99d", "@opam/num@opam:1.1@dcdca088", + "ocaml@4.6.10@d41d8cd9", + "@opam/sexplib0@opam:v0.11.0@9df6bcd1", + "@opam/parsexp@opam:v0.11.0@7febd99d", + "@opam/num@opam:1.1@dcdca088", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/sexplib0@opam:v0.11.0@9df6bcd1", - "@opam/parsexp@opam:v0.11.0@7febd99d", "@opam/num@opam:1.1@dcdca088" + "ocaml@4.6.10@d41d8cd9", + "@opam/sexplib0@opam:v0.11.0@9df6bcd1", + "@opam/parsexp@opam:v0.11.0@7febd99d", + "@opam/num@opam:1.1@dcdca088" ] }, "@opam/semver@opam:0.1.0@595ed2e0": { @@ -644,11 +3969,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ocamlfind@opam:1.8.0@96572762", + "ocaml@4.6.10@d41d8cd9", + "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/ocamlbuild@opam:0.12.0@6c616094", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/result@opam:1.3@bee8bf2e": { "id": "@opam/result@opam:1.3@bee8bf2e", @@ -668,10 +3994,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/re@opam:1.7.3@83095efd": { "id": "@opam/re@opam:1.7.3@83095efd", @@ -691,13 +4018,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, - "@opam/ppxlib@opam:0.5.0@e35e68bb": { - "id": "@opam/ppxlib@opam:0.5.0@e35e68bb", + "@opam/ppxlib@opam:0.5.0@41d8dd4d": { + "id": "@opam/ppxlib@opam:0.5.0@41d8dd4d", "name": "@opam/ppxlib", "version": "opam:0.5.0", "source": { @@ -714,15 +4042,18 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/ppx_derivers@opam:1.0@78655ff8", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/ocaml-compiler-libs@opam:v0.11.0@7e9ced39", - "@opam/dune@opam:1.6.3@a7d7baed", "@opam/base@opam:v0.11.1@0e54024e", + "@opam/dune@opam:1.6.3@a7d7baed", + "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/ppx_derivers@opam:1.0@78655ff8", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/ocaml-compiler-libs@opam:v0.11.0@7e9ced39", @@ -747,16 +4078,18 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/variantslib@opam:v0.11.0@141b8c3e", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/variantslib@opam:v0.11.0@141b8c3e", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/variantslib@opam:v0.11.0@141b8c3e", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/variantslib@opam:v0.11.0@141b8c3e", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -779,16 +4112,18 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/typerep@opam:v0.11.0@625676b6", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/typerep@opam:v0.11.0@625676b6", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/typerep@opam:v0.11.0@625676b6", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/typerep@opam:v0.11.0@625676b6", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -811,13 +4146,13 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3" ] }, @@ -839,7 +4174,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -848,7 +4184,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -873,7 +4210,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -882,7 +4220,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -907,14 +4246,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -937,13 +4278,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3" ] }, @@ -965,14 +4308,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -995,15 +4340,17 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/base@opam:v0.11.1@0e54024e" ] }, @@ -1025,14 +4372,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -1055,7 +4404,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/octavius@opam:1.2.0@4840f5a0", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", @@ -1063,7 +4413,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/octavius@opam:1.2.0@4840f5a0", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" @@ -1087,7 +4438,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_variants_conv@opam:v0.11.1@32a56a8b", "@opam/ppx_typerep_conv@opam:v0.11.1@07b7be7b", "@opam/ppx_sexp_value@opam:v0.11.0@58f87aae", @@ -1111,7 +4463,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_variants_conv@opam:v0.11.1@32a56a8b", "@opam/ppx_typerep_conv@opam:v0.11.1@07b7be7b", "@opam/ppx_sexp_value@opam:v0.11.0@58f87aae", @@ -1151,14 +4504,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -1181,14 +4536,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -1211,7 +4568,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_compare@opam:v0.11.1@9ddf10ff", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -1220,7 +4578,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_compare@opam:v0.11.1@9ddf10ff", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -1245,7 +4604,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/fieldslib@opam:v0.11.0@c86ba0e6", @@ -1253,7 +4613,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/fieldslib@opam:v0.11.0@c86ba0e6", "@opam/base@opam:v0.11.1@0e54024e" @@ -1277,7 +4638,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", @@ -1285,7 +4647,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" @@ -1309,8 +4672,10 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", - "@opam/re@opam:1.7.3@83095efd", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", + "@opam/re@opam:1.7.3@83095efd", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_variants_conv@opam:v0.11.1@32a56a8b", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_inline_test@opam:v0.11.0@b987f92a", @@ -1325,8 +4690,10 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", - "@opam/re@opam:1.7.3@83095efd", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", + "@opam/re@opam:1.7.3@83095efd", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_variants_conv@opam:v0.11.1@32a56a8b", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_inline_test@opam:v0.11.0@b987f92a", @@ -1357,14 +4724,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -1387,10 +4756,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/ppx_custom_printf@opam:v0.11.0@5af4e646": { "id": "@opam/ppx_custom_printf@opam:v0.11.0@5af4e646", @@ -1410,7 +4780,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", @@ -1418,7 +4789,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" @@ -1442,14 +4814,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -1472,7 +4846,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", @@ -1481,7 +4856,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/bin_prot@opam:v0.11.0@7a071ede", @@ -1506,14 +4882,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_inline_test@opam:v0.11.0@b987f92a", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_inline_test@opam:v0.11.0@b987f92a", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3" ] @@ -1536,7 +4914,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_js_style@opam:v0.11.0@4112bf88", "@opam/ppx_hash@opam:v0.11.1@789e28d0", @@ -1547,7 +4926,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_js_style@opam:v0.11.0@4112bf88", "@opam/ppx_hash@opam:v0.11.1@789e28d0", @@ -1574,7 +4954,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ppx_compare@opam:v0.11.1@9ddf10ff", @@ -1584,7 +4965,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_here@opam:v0.11.0@c36c7116", "@opam/ppx_compare@opam:v0.11.1@9ddf10ff", @@ -1610,12 +4992,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/sexplib0@opam:v0.11.0@9df6bcd1", + "ocaml@4.6.10@d41d8cd9", + "@opam/sexplib0@opam:v0.11.0@9df6bcd1", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/sexplib0@opam:v0.11.0@9df6bcd1" + "ocaml@4.6.10@d41d8cd9", + "@opam/sexplib0@opam:v0.11.0@9df6bcd1" ] }, "@opam/octavius@opam:1.2.0@4840f5a0": { @@ -1636,11 +5020,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ocamlfind@opam:1.8.0@96572762", + "ocaml@4.6.10@d41d8cd9", + "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/ocamlfind@opam:1.8.0@96572762": { "id": "@opam/ocamlfind@opam:1.8.0@96572762", @@ -1661,15 +5046,15 @@ }, "overrides": [ { - "opamoverride": - "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.0_opam_override" + "opamoverride": "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.0_opam_override" } ], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/conf-m4@opam:1@3279850f", + "ocaml@4.6.10@d41d8cd9", + "@opam/conf-m4@opam:1@3279850f", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/ocamlbuild@opam:0.12.0@6c616094": { "id": "@opam/ocamlbuild@opam:0.12.0@6c616094", @@ -1689,14 +5074,14 @@ }, "overrides": [ { - "opamoverride": - "esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.12.0_opam_override" + "opamoverride": "esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.12.0_opam_override" } ], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.6.10@d41d8cd9", + "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3": { "id": "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -1716,12 +5101,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e", + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e", "@opam/ppx_derivers@opam:1.0@78655ff8", - "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:1.6.3@a7d7baed", + "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e", + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e", "@opam/ppx_derivers@opam:1.0@78655ff8" ] }, @@ -1743,10 +5131,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/num@opam:1.1@dcdca088": { "id": "@opam/num@opam:1.1@dcdca088", @@ -1766,15 +5155,15 @@ }, "overrides": [ { - "opamoverride": - "esy.lock/overrides/opam__s__num_opam__c__1.1_opam_override" + "opamoverride": "esy.lock/overrides/opam__s__num_opam__c__1.1_opam_override" } ], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ocamlfind@opam:1.8.0@96572762", + "ocaml@4.6.10@d41d8cd9", + "@opam/ocamlfind@opam:1.8.0@96572762", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/merlin-extend@opam:0.3@e1fc0d08": { "id": "@opam/merlin-extend@opam:0.3@e1fc0d08", @@ -1794,15 +5183,16 @@ }, "overrides": [ { - "opamoverride": - "esy.lock/overrides/opam__s__merlin_extend_opam__c__0.3_opam_override" + "opamoverride": "esy.lock/overrides/opam__s__merlin_extend_opam__c__0.3_opam_override" } ], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ocamlfind@opam:1.8.0@96572762", - "@opam/cppo@opam:1.6.5@bec3dbd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.6.10@d41d8cd9", + "@opam/ocamlfind@opam:1.8.0@96572762", + "@opam/cppo@opam:1.6.5@bec3dbd9", + "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/merlin@opam:3.2.2@829ee6dd": { "id": "@opam/merlin@opam:3.2.2@829ee6dd", @@ -1822,12 +5212,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/yojson@opam:1.5.0@890db858", + "ocaml@4.6.10@d41d8cd9", + "@opam/yojson@opam:1.6.0@f7ec7c12", "@opam/ocamlfind@opam:1.8.0@96572762", - "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:1.6.3@a7d7baed", + "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/yojson@opam:1.5.0@890db858", + "ocaml@4.6.10@d41d8cd9", + "@opam/yojson@opam:1.6.0@f7ec7c12", "@opam/ocamlfind@opam:1.8.0@96572762" ] }, @@ -1849,11 +5242,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ocamlfind@opam:1.8.0@96572762", + "ocaml@4.6.10@d41d8cd9", + "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/ocamlbuild@opam:0.12.0@6c616094", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/markup@opam:0.8.0@e4958f14": { "id": "@opam/markup@opam:0.8.0@e4958f14", @@ -1873,12 +5267,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/uutf@opam:1.0.1@c4650647", - "@opam/uchar@opam:0.0.2@c8218eea", "@opam/dune@opam:1.6.3@a7d7baed", + "ocaml@4.6.10@d41d8cd9", + "@opam/uutf@opam:1.0.2@4440868f", + "@opam/uchar@opam:0.0.2@c8218eea", + "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/uutf@opam:1.0.1@c4650647", + "ocaml@4.6.10@d41d8cd9", + "@opam/uutf@opam:1.0.2@4440868f", "@opam/uchar@opam:0.0.2@c8218eea" ] }, @@ -1900,7 +5297,7 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@opam/ppx_tools_versioned@opam:5.2.1@95275a75", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/lwt@opam:4.1.0@111fc2bf", @@ -1908,7 +5305,7 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@opam/ppx_tools_versioned@opam:5.2.1@95275a75", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/lwt@opam:4.1.0@111fc2bf" @@ -1932,7 +5329,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e", + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e", "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/cppo@opam:1.6.5@bec3dbd9", @@ -1941,7 +5339,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e" + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e" ] }, "@opam/lambdasoup@opam:0.6.3@b8ef0a81": { @@ -1962,12 +5361,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/markup@opam:0.8.0@e4958f14", + "ocaml@4.6.10@d41d8cd9", + "@opam/markup@opam:0.8.0@e4958f14", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/markup@opam:0.8.0@e4958f14" + "ocaml@4.6.10@d41d8cd9", + "@opam/markup@opam:0.8.0@e4958f14" ] }, "@opam/jbuilder@opam:transition@58bdfe0a": { @@ -1976,7 +5377,7 @@ "version": "opam:transition", "source": { "type": "install", - "source": [ "no-source:" ], + "source": ["no-source:"], "opam": { "name": "jbuilder", "version": "transition", @@ -1985,11 +5386,13 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/dune@opam:1.6.3@a7d7baed", + "ocaml@4.6.10@d41d8cd9", + "@opam/dune@opam:1.6.3@a7d7baed", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/dune@opam:1.6.3@a7d7baed" + "ocaml@4.6.10@d41d8cd9", + "@opam/dune@opam:1.6.3@a7d7baed" ] }, "@opam/jane-street-headers@opam:v0.11.0@f1cada02": { @@ -2010,10 +5413,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/fieldslib@opam:v0.11.0@c86ba0e6": { "id": "@opam/fieldslib@opam:v0.11.0@c86ba0e6", @@ -2033,14 +5437,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/ppxlib@opam:0.5.0@e35e68bb", + "ocaml@4.6.10@d41d8cd9", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/base@opam:v0.11.1@0e54024e" ] @@ -2063,10 +5469,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/dune@opam:1.6.3@a7d7baed": { "id": "@opam/dune@opam:1.6.3@a7d7baed", @@ -2086,17 +5493,18 @@ }, "overrides": [ { - "opamoverride": - "esy.lock/overrides/opam__s__dune_opam__c__1.6.3_opam_override" + "opamoverride": "esy.lock/overrides/opam__s__dune_opam__c__1.6.3_opam_override" } ], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", + "ocaml@4.6.10@d41d8cd9", + "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", + "ocaml@4.6.10@d41d8cd9", + "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084" ] }, @@ -2118,12 +5526,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base-unix@opam:base@87d0b2eb", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb" + "ocaml@4.6.10@d41d8cd9", + "@opam/base-unix@opam:base@87d0b2eb" ] }, "@opam/core_kernel@opam:v0.11.1@16289b97": { @@ -2144,7 +5554,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/variantslib@opam:v0.11.0@141b8c3e", + "ocaml@4.6.10@d41d8cd9", + "@opam/variantslib@opam:v0.11.0@141b8c3e", "@opam/typerep@opam:v0.11.0@625676b6", "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/splittable_random@opam:v0.11.0@6178cb9b", @@ -2166,7 +5577,8 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/variantslib@opam:v0.11.0@141b8c3e", + "ocaml@4.6.10@d41d8cd9", + "@opam/variantslib@opam:v0.11.0@141b8c3e", "@opam/typerep@opam:v0.11.0@625676b6", "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/splittable_random@opam:v0.11.0@6178cb9b", @@ -2204,10 +5616,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/spawn@opam:v0.12.0@f926b0f8", "@opam/sexplib@opam:v0.11.0@bf5282c9", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_jane@opam:v0.11.0@687c4174", "@opam/ppx_assert@opam:v0.11.0@7cb8e43d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -2219,10 +5632,11 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/spawn@opam:v0.12.0@f926b0f8", "@opam/sexplib@opam:v0.11.0@bf5282c9", - "@opam/ppxlib@opam:0.5.0@e35e68bb", + "@opam/ppxlib@opam:0.5.0@41d8dd4d", "@opam/ppx_jane@opam:v0.11.0@687c4174", "@opam/ppx_assert@opam:v0.11.0@7cb8e43d", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", @@ -2250,13 +5664,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/base@opam:v0.11.1@0e54024e", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/stdio@opam:v0.11.0@3b11cb88", + "ocaml@4.6.10@d41d8cd9", + "@opam/stdio@opam:v0.11.0@3b11cb88", "@opam/base@opam:v0.11.1@0e54024e" ] }, @@ -2266,7 +5682,7 @@ "version": "opam:1", "source": { "type": "install", - "source": [ "no-source:" ], + "source": ["no-source:"], "opam": { "name": "conf-which", "version": "1", @@ -2274,7 +5690,7 @@ } }, "overrides": [], - "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], + "dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"], "devDependencies": [] }, "@opam/conf-m4@opam:1@3279850f": { @@ -2283,7 +5699,7 @@ "version": "opam:1", "source": { "type": "install", - "source": [ "no-source:" ], + "source": ["no-source:"], "opam": { "name": "conf-m4", "version": "1", @@ -2291,7 +5707,7 @@ } }, "overrides": [], - "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], + "dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"], "devDependencies": [] }, "@opam/cmdliner@opam:1.0.3@96d31520": { @@ -2312,9 +5728,10 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.6.10@d41d8cd9", + "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.6.9@d41d8cd9" ] + "devDependencies": ["ocaml@4.6.10@d41d8cd9"] }, "@opam/biniou@opam:1.2.0@c8516f18": { "id": "@opam/biniou@opam:1.2.0@c8516f18", @@ -2334,13 +5751,15 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/jbuilder@opam:transition@58bdfe0a", + "ocaml@4.6.10@d41d8cd9", + "@opam/jbuilder@opam:transition@58bdfe0a", "@opam/easy-format@opam:1.3.1@9abfd4ed", "@opam/conf-which@opam:1@1da7b8cf", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/easy-format@opam:1.3.1@9abfd4ed" + "ocaml@4.6.10@d41d8cd9", + "@opam/easy-format@opam:1.3.1@9abfd4ed" ] }, "@opam/bin_prot@opam:v0.11.0@7a071ede": { @@ -2361,7 +5780,7 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@opam/ppx_variants_conv@opam:v0.11.1@32a56a8b", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_fields_conv@opam:v0.11.0@13fd6109", @@ -2373,7 +5792,7 @@ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", + "ocaml@4.6.10@d41d8cd9", "@opam/ppx_variants_conv@opam:v0.11.1@32a56a8b", "@opam/ppx_sexp_conv@opam:v0.11.2@6626e527", "@opam/ppx_fields_conv@opam:v0.11.0@13fd6109", @@ -2389,7 +5808,7 @@ "version": "opam:base", "source": { "type": "install", - "source": [ "no-source:" ], + "source": ["no-source:"], "opam": { "name": "base-unix", "version": "base", @@ -2397,7 +5816,7 @@ } }, "overrides": [], - "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], + "dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"], "devDependencies": [] }, "@opam/base-threads@opam:base@36803084": { @@ -2406,7 +5825,7 @@ "version": "opam:base", "source": { "type": "install", - "source": [ "no-source:" ], + "source": ["no-source:"], "opam": { "name": "base-threads", "version": "base", @@ -2414,7 +5833,7 @@ } }, "overrides": [], - "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], + "dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"], "devDependencies": [] }, "@opam/base@opam:v0.11.1@0e54024e": { @@ -2435,19 +5854,44 @@ }, "overrides": [ { - "opamoverride": - "esy.lock/overrides/opam__s__base_opam__c__v0.11.1_opam_override" + "opamoverride": "esy.lock/overrides/opam__s__base_opam__c__v0.11.1_opam_override" } ], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/sexplib0@opam:v0.11.0@9df6bcd1", + "ocaml@4.6.10@d41d8cd9", + "@opam/sexplib0@opam:v0.11.0@9df6bcd1", "@opam/jbuilder@opam:transition@58bdfe0a", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/sexplib0@opam:v0.11.0@9df6bcd1" + "ocaml@4.6.10@d41d8cd9", + "@opam/sexplib0@opam:v0.11.0@9df6bcd1" ] }, + "@iamstarkov/listr-update-renderer@0.4.1@d41d8cd9": { + "id": "@iamstarkov/listr-update-renderer@0.4.1@d41d8cd9", + "name": "@iamstarkov/listr-update-renderer", + "version": "0.4.1", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#sha1:d7c48092a2dcf90fd672b6c8b458649cb350c77e" + ] + }, + "overrides": [], + "dependencies": [ + "strip-ansi@3.0.1@d41d8cd9", + "log-update@2.3.0@d41d8cd9", + "log-symbols@1.0.2@d41d8cd9", + "listr@0.14.3@d41d8cd9", + "indent-string@3.2.0@d41d8cd9", + "figures@1.7.0@d41d8cd9", + "elegant-spinner@1.0.1@d41d8cd9", + "cli-truncate@0.2.1@d41d8cd9", + "chalk@1.1.3@d41d8cd9" + ], + "devDependencies": [] + }, "@esy-ocaml/substs@0.0.1@d41d8cd9": { "id": "@esy-ocaml/substs@0.0.1@d41d8cd9", "name": "@esy-ocaml/substs", @@ -2474,7 +5918,8 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.6.9@d41d8cd9", "@opam/result@opam:1.3@bee8bf2e", + "ocaml@4.6.10@d41d8cd9", + "@opam/result@opam:1.3@bee8bf2e", "@opam/ocamlfind@opam:1.8.0@96572762", "@opam/ocaml-migrate-parsetree@opam:1.2.0@5b3aa0d3", "@opam/merlin-extend@opam:0.3@e1fc0d08", @@ -2482,6 +5927,20 @@ "@opam/dune@opam:1.6.3@a7d7baed" ], "devDependencies": [] + }, + "@babel/runtime@7.0.0@d41d8cd9": { + "id": "@babel/runtime@7.0.0@d41d8cd9", + "name": "@babel/runtime", + "version": "7.0.0", + "source": { + "type": "install", + "source": [ + "archive:https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz#sha1:adeb78fedfc855aa05bc041640f3f6f98e85424c" + ] + }, + "overrides": [], + "dependencies": ["regenerator-runtime@0.12.1@d41d8cd9"], + "devDependencies": [] } } -} \ No newline at end of file +} diff --git a/esy.lock/opam/ppxlib.0.5.0/opam b/esy.lock/opam/ppxlib.0.5.0/opam index 1c7df02..a03f8a8 100644 --- a/esy.lock/opam/ppxlib.0.5.0/opam +++ b/esy.lock/opam/ppxlib.0.5.0/opam @@ -15,12 +15,12 @@ run-test: [ ] depends: [ "ocaml" {>= "4.04.1"} - "base" {>= "v0.11.0"} + "base" {>= "v0.11.0" & < "v0.12"} "dune" {build} "ocaml-compiler-libs" {>= "v0.11.0"} "ocaml-migrate-parsetree" {>= "1.0.9"} "ppx_derivers" {>= "1.0"} - "stdio" {>= "v0.11.0"} + "stdio" {>= "v0.11.0" & < "v0.12"} "ocamlfind" {with-test} ] synopsis: "Base library and tools for ppx rewriters" diff --git a/esy.lock/opam/uutf.1.0.1/opam b/esy.lock/opam/uutf.1.0.2/opam similarity index 86% rename from esy.lock/opam/uutf.1.0.1/opam rename to esy.lock/opam/uutf.1.0.2/opam index e0d3ea8..3a9f567 100644 --- a/esy.lock/opam/uutf.1.0.1/opam +++ b/esy.lock/opam/uutf.1.0.2/opam @@ -20,8 +20,9 @@ build: [[ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--with-cmdliner" "%{cmdliner:installed}%" ]] -synopsis: "Non-blocking streaming Unicode codec for OCaml" -description: """ +synopsis: """Non-blocking streaming Unicode codec for OCaml""" +description: """\ + Uutf is a non-blocking streaming codec to decode and encode the UTF-8, UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficiently work character by character without blocking on IO. Decoders perform @@ -31,8 +32,9 @@ Functions are also provided to fold over the characters of UTF encoded OCaml string values and to directly encode characters in OCaml Buffer.t values. -Uutf has no dependency and is distributed under the ISC license.""" +Uutf has no dependency and is distributed under the ISC license. +""" url { - src: "http://erratique.ch/software/uutf/releases/uutf-1.0.1.tbz" - checksum: "md5=b8535f974027357094c5cdb4bf03a21b" +archive: "http://erratique.ch/software/uutf/releases/uutf-1.0.2.tbz" +checksum: "a7c542405a39630c689a82bd7ef2292c" } diff --git a/esy.lock/opam/yojson.1.5.0/opam b/esy.lock/opam/yojson.1.6.0/opam similarity index 86% rename from esy.lock/opam/yojson.1.5.0/opam rename to esy.lock/opam/yojson.1.6.0/opam index fe695a1..08c9ab1 100644 --- a/esy.lock/opam/yojson.1.5.0/opam +++ b/esy.lock/opam/yojson.1.6.0/opam @@ -9,12 +9,14 @@ build: [ ["dune" "subst"] {pinned} ["dune" "build" "-p" name "-j" jobs] ] +run-test: [["dune" "runtest" "-p" name "-j" jobs]] depends: [ "ocaml" {>= "4.02.3"} "dune" {build} "cppo" {build} "easy-format" "biniou" {>= "1.2.0"} + "alcotest" {with-test & >= "0.8.5"} ] synopsis: "Yojson is an optimized parsing and printing library for the JSON format" @@ -31,6 +33,6 @@ The program atdgen can be used to derive OCaml-JSON serializers and deserializers from type definitions.""" url { src: - "https://github.com/ocaml-community/yojson/releases/download/1.5.0/yojson-1.5.0.tbz" - checksum: "md5=d80de1bacdde292af42f7c78b323da7b" + "https://github.com/ocaml-community/yojson/releases/download/1.6.0/yojson-1.6.0.tbz" + checksum: "md5=8ca16557d3068253cc375452af3bde96" } diff --git a/executable/Alias.re b/executable/Alias.re new file mode 100644 index 0000000..2c26e18 --- /dev/null +++ b/executable/Alias.re @@ -0,0 +1,30 @@ +open Fnm; + +let run = (~name, ~version) => { + let version = Versions.format(version); + let versionPath = Filename.concat(Directories.nodeVersions, version); + let%lwt versionInstalled = Lwt_unix.file_exists(versionPath); + + if (!versionInstalled) { + Console.error( + + "Can't find a version installed in " + versionPath + , + ); + exit(1); + }; + + Console.log( + + "Aliasing " + name + " to " + version + , + ); + + let%lwt () = Versions.Aliases.set(~alias=name, ~versionPath); + + Lwt.return(); +}; diff --git a/executable/Env.re b/executable/Env.re index aed5728..91b17e1 100644 --- a/executable/Env.re +++ b/executable/Env.re @@ -1,14 +1,50 @@ open Fnm; -let run = isFishShell => { - if (isFishShell) { - Console.log( - Printf.sprintf("set PATH %s/bin $PATH", Directories.currentVersion), +let symlinkExists = path => { + try%lwt (Lwt_unix.lstat(path) |> Lwt.map(_ => true)) { + | _ => Lwt.return(false) + }; +}; + +let rec makeTemporarySymlink = () => { + let suggestedName = + Filename.concat( + Filename.get_temp_dir_name(), + "fnm-shell-" + ++ (Random.int32(9999999 |> Int32.of_int) |> Int32.to_string), ); + + let%lwt exists = symlinkExists(suggestedName); + + if (exists) { + let%lwt suggestedName = makeTemporarySymlink(); + Lwt.return(suggestedName); } else { - Console.log( - Printf.sprintf("export PATH=%s/bin:$PATH", Directories.currentVersion), - ); + let%lwt _ = + Lwt_unix.symlink( + Filename.concat(Directories.defaultVersion, "installation"), + suggestedName, + ); + Lwt.return(suggestedName); + }; +}; + +let run = (~shell, ~multishell) => { + open Lwt; + + Random.self_init(); + + let%lwt path = + multishell + ? makeTemporarySymlink() : Lwt.return(Directories.globalCurrentVersion); + + switch (shell) { + | System.Shell.Bash => + Printf.sprintf("export PATH=%s/bin:$PATH", path) |> Console.log; + Printf.sprintf("export FNM_MULTISHELL_PATH=%s", path) |> Console.log; + | System.Shell.Fish => + Printf.sprintf("set PATH %s/bin $PATH;", path) |> Console.log; + Printf.sprintf("set FNM_MULTISHELL_PATH %s;", path) |> Console.log; }; Lwt.return(); diff --git a/executable/FnmApp.re b/executable/FnmApp.re index 359c3a0..1c36514 100644 --- a/executable/FnmApp.re +++ b/executable/FnmApp.re @@ -1,11 +1,18 @@ let version = Fnm.Fnm__Package.version; module Commands = { - let use = version => Lwt_main.run(Use.run(version)); + let use = (version, quiet) => Lwt_main.run(Use.run(~version, ~quiet)); + let alias = (version, name) => Lwt_main.run(Alias.run(~name, ~version)); let listRemote = () => Lwt_main.run(ListRemote.run()); let listLocal = () => Lwt_main.run(ListLocal.run()); let install = version => Lwt_main.run(Install.run(~version)); - let env = isFishShell => Lwt_main.run(Env.run(isFishShell)); + let env = (isFishShell, isMultishell) => + Lwt_main.run( + Env.run( + ~shell=Fnm.System.Shell.(isFishShell ? Fish : Bash), + ~multishell=isMultishell, + ), + ); }; open Cmdliner; @@ -71,6 +78,11 @@ let use = { let doc = "Switch to another installed node version"; let man = []; + let quiet = { + let doc = "Don't print stuff"; + Arg.(value & flag & info(["quiet"], ~doc)); + }; + let selectedVersion = { let doc = "Switch to version $(docv).\nLeave empty to look for value from `.nvmrc`"; Arg.( @@ -79,11 +91,45 @@ let use = { }; ( - Term.(const(Commands.use) $ selectedVersion), + Term.(const(Commands.use) $ selectedVersion $ quiet), Term.info("use", ~version, ~doc, ~exits=Term.default_exits, ~man), ); }; +let alias = { + let doc = "Alias a version"; + let sdocs = Manpage.s_common_options; + let man = help_secs; + + let selectedVersion = { + let doc = "The version to be aliased"; + Arg.( + required + & pos(0, some(string), None) + & info([], ~docv="VERSION", ~doc) + ); + }; + + let aliasName = { + let doc = "The alias name"; + Arg.( + required & pos(1, some(string), None) & info([], ~docv="NAME", ~doc) + ); + }; + + ( + Term.(const(Commands.alias) $ selectedVersion $ aliasName), + Term.info( + "alias", + ~version, + ~doc, + ~exits=Term.default_exits, + ~man, + ~sdocs, + ), + ); +}; + let env = { let doc = "Show env configurations"; let sdocs = Manpage.s_common_options; @@ -94,8 +140,13 @@ let env = { Arg.(value & flag & info(["fish"], ~doc)); }; + let isMultishell = { + let doc = "Allow different Node versions for each shell"; + Arg.(value & flag & info(["multi"], ~doc)); + }; + ( - Term.(const(Commands.env) $ isFishShell), + Term.(const(Commands.env) $ isFishShell $ isMultishell), Term.info("env", ~version, ~doc, ~exits=Term.default_exits, ~man, ~sdocs), ); }; @@ -119,5 +170,8 @@ let defaultCmd = { }; let _ = - Term.eval_choice(defaultCmd, [install, use, listLocal, listRemote, env]) + Term.eval_choice( + defaultCmd, + [install, use, alias, listLocal, listRemote, env], + ) |> Term.exit; diff --git a/executable/ListLocal.re b/executable/ListLocal.re index 2e77770..ed875d4 100644 --- a/executable/ListLocal.re +++ b/executable/ListLocal.re @@ -6,22 +6,29 @@ let main = () => Versions.Local.( { let%lwt versions = - Versions.getInstalledVersions() - |> Result.mapError(_ => Cant_read_local_versions) - |> Result.toLwtErr; + try%lwt (Versions.getInstalledVersions()) { + | _ => Lwt.fail(Cant_read_local_versions) + }; let currentVersion = Versions.getCurrentVersion(); Console.log("The following versions are installed:"); versions - |> Array.iter(version => { + |> List.iter(version => { let color = switch (currentVersion) { | None => None | Some(x) when x.name == version.name => Some(Pastel.Cyan) | Some(_) => None }; - Console.log( "* " {version.name} ); + let aliases = + List.length(version.aliases) === 0 + ? "" + : Printf.sprintf( + " (%s)", + version.aliases |> String.concat(", "), + ); + Console.log( "* " {version.name} aliases ); }); Lwt.return(); diff --git a/executable/Use.re b/executable/Use.re index 3b34647..603c038 100644 --- a/executable/Use.re +++ b/executable/Use.re @@ -4,18 +4,27 @@ let lwtIgnore = lwt => Lwt.catch(() => lwt, _ => Lwt.return()); exception Version_Not_Installed(string); -let switchVersion = version => { - let versionDir = Filename.concat(Directories.nodeVersions, version); +let log = (~quiet, arg) => + if (!quiet) { + Console.log(arg); + }; - let%lwt _ = - if%lwt (Lwt_unix.file_exists(versionDir) |> Lwt.map(x => !x)) { - Lwt.fail(Version_Not_Installed(version)); +let switchVersion = (~version, ~quiet) => { + open Lwt; + let log = log(~quiet); + let%lwt parsedVersion = + Versions.parse(version) >>= Opt.toLwt(Version_Not_Installed(version)); + + let%lwt versionPath = + switch (parsedVersion) { + | Local(version) => Versions.Local.toDirectory(version) |> Lwt.return + | Alias(alias) => Versions.Aliases.toDirectory(alias) |> Lwt.return }; - let destination = Filename.concat(versionDir, "installation"); + let destination = Filename.concat(versionPath, "installation"); let source = Directories.currentVersion; - Console.log( + log( "Linking " source @@ -25,28 +34,37 @@ let switchVersion = version => { ); let%lwt _ = Lwt_unix.unlink(Directories.currentVersion) |> lwtIgnore; - let%lwt _ = Lwt_unix.symlink(destination, Directories.currentVersion); + let%lwt _ = Lwt_unix.symlink(destination, Directories.currentVersion) + and defaultAliasExists = Lwt_unix.file_exists(Directories.defaultVersion); + + let%lwt _ = + if (!defaultAliasExists) { + Versions.Aliases.set(~alias="default", ~versionPath=destination); + } else { + Lwt.return(); + }; - Console.log( + log( "Using " version , ); Lwt.return(); }; -let main = (~version as providedVersion) => { +let main = (~version as providedVersion, ~quiet) => { let%lwt version = switch (providedVersion) { | Some(version) => Lwt.return(version) | None => Nvmrc.getVersion() }; - switchVersion(Versions.format(version)); + switchVersion(~version, ~quiet); }; -let run = version => - try%lwt (main(~version)) { +let run = (~version, ~quiet) => + try%lwt (main(~version, ~quiet)) { | Version_Not_Installed(version) => - Console.log( + log( + ~quiet, "The following version is not installed: " version @@ -54,7 +72,8 @@ let run = version => ) |> Lwt.return | Nvmrc.Version_Not_Provided => - Console.log( + log( + ~quiet, "No .nvmrc was found in the current directory. Please provide a version number." , diff --git a/feature_tests/fish/run.fish b/feature_tests/fish/run.fish index 2dad2e8..4765c91 100644 --- a/feature_tests/fish/run.fish +++ b/feature_tests/fish/run.fish @@ -1,6 +1,7 @@ #!/usr/bin/env fish eval (fnm env --fish) + fnm install v8.11.3 fnm use v8.11.3 diff --git a/feature_tests/multishell/run.sh b/feature_tests/multishell/run.sh new file mode 100644 index 0000000..b7efcf6 --- /dev/null +++ b/feature_tests/multishell/run.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -e + +eval $(fnm env) + +fnm install v8.11.3 +fnm install v11.9.0 + +fnm use v8.11.3 + +bash -c ' + set -e + eval $(fnm env --multi) + fnm use v11.9.0 + echo "> verifying version v11.9.0 for child bash" + if [ "$(node -v)" == "v11.9.0" ]; then + echo "Okay!" + else + echo "Node version should be v11.9.0 in the bash fork" + exit 1 + fi +' + +echo "> verifying version v8.11.3 for parent bash" +if [ "$(node -v)" == "v8.11.3" ]; then + echo "Okay!" +else + echo "Node version should be v8.11.3 in the base bash" + exit 1 +fi diff --git a/library/Compression.re b/library/Compression.re index e983e63..b999670 100644 --- a/library/Compression.re +++ b/library/Compression.re @@ -6,8 +6,8 @@ let extractFile = (~into as destination, filepath) => { ~args=[|"-xvf", filepath, "--directory", destination|], ~stderr=`Dev_null, ); - let%lwt files = Fs.readdir(destination) |> Result.toLwt; - let filename = files[0]; + let%lwt files = Fs.readdir(destination); + let filename = List.hd(files); Lwt_unix.rename( Filename.concat(destination, filename), Filename.concat(destination, "installation"), diff --git a/library/Directories.re b/library/Directories.re index f0d4803..718d25a 100644 --- a/library/Directories.re +++ b/library/Directories.re @@ -9,5 +9,9 @@ let sfwRoot = } ); let nodeVersions = Filename.concat(sfwRoot, "node-versions"); -let currentVersion = Filename.concat(sfwRoot, "current"); +let globalCurrentVersion = Filename.concat(sfwRoot, "current"); +let currentVersion = + Opt.(Sys.getenv_opt("FNM_MULTISHELL_PATH") or globalCurrentVersion); let downloads = Filename.concat(sfwRoot, "downloads"); +let aliases = Filename.concat(sfwRoot, "aliases"); +let defaultVersion = Filename.concat(aliases, "default"); diff --git a/library/Fs.re b/library/Fs.re index 6be72ae..a51b4b7 100644 --- a/library/Fs.re +++ b/library/Fs.re @@ -1,11 +1,30 @@ open Core; -let readdir = dir => - switch (Sys.readdir(dir)) { - | x => Ok(x) - | exception (Sys_error(error)) => Error(error) +let readdir = dir => { + let items = ref([]); + let%lwt dir = Lwt_unix.opendir(dir); + let iterate = () => { + let%lwt _ = + while%lwt (true) { + let%lwt value = Lwt_unix.readdir(dir); + if (value.[0] != '.') { + items := [value, ...items^]; + }; + Lwt.return(); + }; + + Lwt.return([]); }; + let%lwt items = + try%lwt (iterate()) { + | End_of_file => Lwt.return(items^) + }; + + let%lwt _ = Lwt_unix.closedir(dir); + Lwt.return(items); +}; + let writeFile = (path, contents) => { let%lwt x = Lwt_unix.openfile(path, [Unix.O_RDWR, Unix.O_CREAT], 777); let%lwt _ = diff --git a/library/Http.re b/library/Http.re index 8fb47ee..ac89684 100644 --- a/library/Http.re +++ b/library/Http.re @@ -14,7 +14,7 @@ let rec getBody = listOfStrings => { }; }; -let rec getStatus = string => { +let getStatus = string => { List.nth(String.split_on_char(' ', string), 1); }; @@ -27,7 +27,7 @@ let verifyStatus = response => { | 200 => Lwt.return(response) | x when x / 100 == 4 => Lwt.fail(Not_found(response)) | x when x / 100 == 5 => Lwt.fail(Internal_server_error(response)) - | x => Lwt.fail(Unknown_status_code(response)) + | _ => Lwt.fail(Unknown_status_code(response)) }; }; diff --git a/library/Opt.re b/library/Opt.re index d2e5ebf..6d68d52 100644 --- a/library/Opt.re +++ b/library/Opt.re @@ -28,6 +28,12 @@ let toResult = (error, opt) => | Some(x) => Ok(x) }; +let toLwt = (error, opt) => + switch (opt) { + | Some(x) => Lwt.return(x) + | None => Lwt.fail(error) + }; + let some = x => Some(x); let (or) = (opt, b) => fold(() => b, x => x, opt); diff --git a/library/System.re b/library/System.re index 925c553..dca7249 100644 --- a/library/System.re +++ b/library/System.re @@ -8,6 +8,12 @@ let unix_exec = let mkdirp = destination => unix_exec("mkdir", ~stderr=`Dev_null, ~args=[|"-p", destination|]); +module Shell = { + type t = + | Bash + | Fish; +}; + module NodeArch = { type t = | X32 diff --git a/library/Versions.re b/library/Versions.re index 8f19926..2c2396f 100644 --- a/library/Versions.re +++ b/library/Versions.re @@ -1,15 +1,74 @@ module VersionSet = Set.Make(String); +let lwtIgnore = lwt => Lwt.catch(() => lwt, _ => Lwt.return()); + module Local = { type t = { name: string, fullPath: string, + aliases: list(string), }; + + let toDirectory = name => Filename.concat(Directories.nodeVersions, name); }; exception Version_not_found(string); exception Already_installed(string); +module Aliases = { + module VersionAliasMap = Map.Make(String); + + type t = { + name: string, + versionName: string, + fullPath: string, + }; + + let toDirectory = name => Filename.concat(Directories.aliases, name); + + let getAll = () => { + let%lwt aliases = Fs.readdir(Directories.aliases); + aliases + |> List.map(alias => { + let fullPath = Filename.concat(Directories.aliases, alias); + { + name: alias, + fullPath, + versionName: + Filename.concat(Directories.aliases, alias) + |> Fs.realpath + |> Filename.basename, + }; + }) + |> Lwt.return; + }; + + let byVersion = () => { + let%lwt aliases = getAll(); + aliases + |> List.fold_left( + (map, curr) => { + let value = + switch (VersionAliasMap.find_opt(curr.versionName, map)) { + | None => [curr.name] + | Some(arr) => [curr.name, ...arr] + }; + VersionAliasMap.add(curr.versionName, value, map); + }, + VersionAliasMap.empty, + ) + |> Lwt.return; + }; + + let set = (~alias, ~versionPath) => { + let aliasPath = alias |> toDirectory; + let%lwt _ = System.mkdirp(Directories.aliases); + let%lwt _ = Lwt_unix.unlink(aliasPath) |> lwtIgnore; + let%lwt _ = Lwt_unix.symlink(versionPath, aliasPath); + Lwt.return(); + }; +}; + module Remote = { type t = { name: string, @@ -30,12 +89,13 @@ module Remote = { }; let getInstalledVersionSet = () => - Fs.readdir(Directories.nodeVersions) - |> Result.fold(_ => [||], x => x) - |> Array.fold_left( - (acc, curr) => VersionSet.add(curr, acc), - VersionSet.empty, - ); + Lwt.( + catch(() => Fs.readdir(Directories.nodeVersions), _ => return([])) + >|= List.fold_left( + (acc, curr) => VersionSet.add(curr, acc), + VersionSet.empty, + ) + ); let getRelativeLinksFromHTML = html => Soup.parse(html) @@ -105,31 +165,38 @@ let getCurrentVersion = () => switch (Fs.realpath(Directories.currentVersion)) { | installationPath => let fullPath = Filename.dirname(installationPath); - Some(Local.{fullPath, name: Core.Filename.basename(fullPath)}); + Some( + Local.{fullPath, name: Core.Filename.basename(fullPath), aliases: []}, + ); | exception (Unix.Unix_error(_, _, _)) => None }; let getInstalledVersions = () => - Fs.readdir(Directories.nodeVersions) - |> Result.map(x => { - Array.sort(Remote.compare, x); - x; - }) - |> Result.map( - Array.map(name => - Local.{ - name, - fullPath: Filename.concat(Directories.nodeVersions, name), - } - ), - ); + Lwt.( + { + let%lwt versions = + Fs.readdir(Directories.nodeVersions) >|= List.sort(Remote.compare) + and aliases = Aliases.byVersion(); + + versions + |> List.map(name => + Local.{ + name, + fullPath: Filename.concat(Directories.nodeVersions, name), + aliases: + Opt.(Aliases.VersionAliasMap.find_opt(name, aliases) or []), + } + ) + |> Lwt.return; + } + ); let getRemoteVersions = () => { let%lwt bodyString = Http.makeRequest("https://nodejs.org/dist/") |> Lwt.map(Http.body); let versions = bodyString |> Remote.getRelativeLinksFromHTML; - let installedVersions = Remote.getInstalledVersionSet(); + let%lwt installedVersions = Remote.getInstalledVersionSet(); versions |> Core.List.filter(~f=x => @@ -147,14 +214,35 @@ let getRemoteVersions = () => { |> Lwt.return; }; +type t = + | Alias(string) + | Local(string); + +let parse = version => { + let formattedVersion = format(version); + let aliasPath = Aliases.toDirectory(version); + let versionPath = Local.toDirectory(formattedVersion); + + let%lwt aliasExists = Lwt_unix.file_exists(aliasPath) + and versionExists = Lwt_unix.file_exists(versionPath); + + switch (versionExists, aliasExists) { + | (true, _) => Some(Local(formattedVersion)) |> Lwt.return + | (_, true) => Some(Alias(version)) |> Lwt.return + | (false, false) => Lwt.return_none + }; +}; + let throwIfInstalled = versionName => { - getInstalledVersions() - |> Result.fold( - _ => Lwt.return(), - xs => - Array.exists(x => Local.(x.name == versionName), xs) - |> ( - x => x ? Lwt.fail(Already_installed(versionName)) : Lwt.return() - ), - ); + let%lwt installedVersions = + try%lwt (getInstalledVersions()) { + | _ => Lwt.return([]) + }; + let isAlreadyInstalled = + installedVersions |> List.exists(x => Local.(x.name == versionName)); + if (isAlreadyInstalled) { + Lwt.fail(Already_installed(versionName)); + } else { + Lwt.return(); + }; }; diff --git a/package.json b/package.json index 9c0622b..212e24d 100644 --- a/package.json +++ b/package.json @@ -13,20 +13,50 @@ }, "buildDirs": { "test": { - "require": ["fnm.lib", "rely.lib"], + "require": [ + "fnm.lib", + "rely.lib" + ], "main": "TestFnm", "name": "TestFnm.exe", - "ocamloptFlags": ["-linkall", "-g"] + "ocamloptFlags": [ + "-linkall", + "-g" + ] }, "library": { - "preprocess": ["pps", "lwt_ppx", "ppx_let"], - "require": ["str", "core", "lwt", "lwt.unix", "lambdasoup", "semver"], + "preprocess": [ + "pps", + "lwt_ppx", + "ppx_let" + ], + "require": [ + "str", + "core", + "lwt", + "lwt.unix", + "lambdasoup", + "semver" + ], "name": "fnm.lib", "namespace": "Fnm" }, "executable": { - "preprocess": ["pps", "lwt_ppx", "ppx_let"], - "require": ["core", "cmdliner", "lwt", "lwt.unix", "lambdasoup", "console.lib", "pastel.lib", "fnm.lib"], + "preprocess": [ + "pps", + "lwt_ppx", + "ppx_let" + ], + "require": [ + "core", + "cmdliner", + "lwt", + "lwt.unix", + "lambdasoup", + "console.lib", + "pastel.lib", + "fnm.lib" + ], "main": "FnmApp", "name": "fnm.exe" } @@ -35,6 +65,7 @@ "pesy": "bash -c 'env PESY_MODE=update pesy'", "update-fnm-package": "node ./.ci/prepare-fnm-package.js", "verify-fnm-package": "node ./.ci/prepare-fnm-package.js --fail-on-difference", + "bootstrap": ".ci/bootstrap", "test": "esy x TestFnm.exe", "fmt": "bash -c 'refmt --in-place {library,executable,test}/*.re'" }, @@ -59,6 +90,20 @@ "devDependencies": { "@opam/merlin": "*", "prettier": "*", - "jest-diff": "24.0.0" + "jest-diff": "24.0.0", + "lint-staged": "*" + }, + "lint-staged": { + "*.re": [ + "esy refmt --in-place", + "git add" + ], + "*.{js,md,json}": [ + "esy prettier --write", + "git add" + ], + "package.json": [ + "esy verify-fnm-package" + ] } } diff --git a/test/__snapshots__/Smoke_test.4d362c3c.0.snapshot b/test/__snapshots__/Smoke_test.4d362c3c.0.snapshot index 4156fab..aa99571 100644 --- a/test/__snapshots__/Smoke_test.4d362c3c.0.snapshot +++ b/test/__snapshots__/Smoke_test.4d362c3c.0.snapshot @@ -1,3 +1,4 @@ Smoke test › env export PATH=/current/bin:$PATH +export FNM_MULTISHELL_PATH=/current