diff --git a/package-lock.json b/package-lock.json index a426692b..9f589266 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3192,12 +3192,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3212,17 +3214,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -3339,7 +3344,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -3351,6 +3357,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3365,6 +3372,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3372,12 +3380,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -3396,6 +3406,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -3476,7 +3487,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -3488,6 +3500,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -3609,6 +3622,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3692,35 +3706,6 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "funlib": { - "version": "file:../funlib", - "requires": { - "rollup": "^1.1.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "bundled": true - }, - "@types/node": { - "version": "10.12.21", - "bundled": true - }, - "acorn": { - "version": "6.0.7", - "bundled": true - }, - "rollup": { - "version": "1.1.2", - "bundled": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*", - "acorn": "^6.0.5" - } - } - } - }, "get-stdin": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", @@ -7048,5116 +7033,6 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, - "y-protocols": { - "version": "file:../y-protocols", - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "bundled": true - }, - "@types/node": { - "version": "10.12.24", - "bundled": true - }, - "acorn": { - "version": "6.1.0", - "bundled": true - }, - "funlib": { - "version": "1.0.0", - "bundled": true, - "requires": { - "rollup": "^1.1.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "bundled": true - }, - "@types/node": { - "version": "10.12.21", - "bundled": true - }, - "acorn": { - "version": "6.0.7", - "bundled": true - }, - "rollup": { - "version": "1.1.2", - "bundled": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*", - "acorn": "^6.0.5" - } - } - } - }, - "rollup": { - "version": "1.1.2", - "bundled": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*", - "acorn": "^6.0.5" - } - }, - "rollup-cli": { - "version": "1.0.9", - "bundled": true - }, - "yjs": { - "version": "13.0.0-78", - "bundled": true, - "requires": { - "funlib": "file:../funlib" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "bundled": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "bundled": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "bundled": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "bundled": true - }, - "supports-color": { - "version": "5.5.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@types/estree": { - "version": "0.0.39", - "bundled": true - }, - "@types/node": { - "version": "6.0.110", - "bundled": true - }, - "abab": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "accepts": { - "version": "1.3.5", - "bundled": true, - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - }, - "dependencies": { - "mime-db": { - "version": "1.37.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.21", - "bundled": true, - "requires": { - "mime-db": "~1.37.0" - } - } - } - }, - "acorn-globals": { - "version": "1.0.9", - "bundled": true, - "optional": true, - "requires": { - "acorn": "^2.1.0" - }, - "dependencies": { - "acorn": { - "version": "2.7.0", - "bundled": true, - "optional": true - } - } - }, - "acorn-jsx": { - "version": "3.0.1", - "bundled": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "bundled": true - } - } - }, - "ajv": { - "version": "5.5.2", - "bundled": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "bundled": true - }, - "ansi-escapes": { - "version": "3.1.0", - "bundled": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "ansi-styles": { - "version": "2.2.1", - "bundled": true - }, - "anymatch": { - "version": "1.3.0", - "bundled": true, - "requires": { - "arrify": "^1.0.0", - "micromatch": "^2.1.5" - } - }, - "apache-crypt": { - "version": "1.2.1", - "bundled": true, - "requires": { - "unix-crypt-td-js": "^1.0.0" - } - }, - "apache-md5": { - "version": "1.1.2", - "bundled": true - }, - "argparse": { - "version": "1.0.10", - "bundled": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "2.0.0", - "bundled": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "arr-flatten": { - "version": "1.0.3", - "bundled": true - }, - "array-find-index": { - "version": "1.0.2", - "bundled": true - }, - "array-includes": { - "version": "3.0.3", - "bundled": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" - } - }, - "array-union": { - "version": "1.0.2", - "bundled": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "bundled": true - }, - "array-unique": { - "version": "0.2.1", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "asap": { - "version": "2.0.6", - "bundled": true - }, - "asn1": { - "version": "0.2.4", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "bundled": true - }, - "async-each": { - "version": "1.0.1", - "bundled": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "optional": true - }, - "aws-sign2": { - "version": "0.7.0", - "bundled": true, - "optional": true - }, - "aws4": { - "version": "1.8.0", - "bundled": true, - "optional": true - }, - "babel-cli": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - }, - "dependencies": { - "babel-code-frame": { - "version": "6.26.0", - "bundled": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "bundled": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "convert-source-map": { - "version": "1.6.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "bundled": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "bundled": true - } - } - }, - "babel-register": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "core-js": { - "version": "2.5.7", - "bundled": true - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "bundled": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "bundled": true - }, - "private": { - "version": "0.1.8", - "bundled": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-code-frame": { - "version": "6.22.0", - "bundled": true, - "requires": { - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-external-helpers": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "bundled": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "bundled": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "bundled": true - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "bundled": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "bundled": true, - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "core-js": { - "version": "2.5.7", - "bundled": true - } - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "babel-preset-es2016": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-plugin-transform-exponentiation-operator": "^6.24.1" - } - }, - "babel-preset-es2017": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.24.1" - } - }, - "babel-preset-latest": { - "version": "6.24.1", - "bundled": true, - "requires": { - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2016": "^6.24.1", - "babel-preset-es2017": "^6.24.1" - } - }, - "babel-runtime": { - "version": "6.23.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.10.0" - } - }, - "babel-template": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "bundled": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-traverse": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "babel-code-frame": { - "version": "6.26.0", - "bundled": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "bundled": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - } - } - }, - "babel-types": { - "version": "6.25.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.22.0", - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^1.0.1" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "basic-auth": { - "version": "2.0.1", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } - }, - "batch": { - "version": "0.6.1", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bcryptjs": { - "version": "2.4.3", - "bundled": true - }, - "binary-extensions": { - "version": "1.8.0", - "bundled": true - }, - "bluebird": { - "version": "3.5.3", - "bundled": true - }, - "boolbase": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.8", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "bundled": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "buffer-from": { - "version": "1.0.0", - "bundled": true - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "caller-path": { - "version": "0.1.0", - "bundled": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "bundled": true - }, - "camelcase-keys": { - "version": "2.1.0", - "bundled": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "bundled": true - } - } - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "optional": true - }, - "catharsis": { - "version": "0.8.9", - "bundled": true, - "requires": { - "underscore-contrib": "~0.3.0" - } - }, - "chalk": { - "version": "1.1.3", - "bundled": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chardet": { - "version": "0.4.2", - "bundled": true - }, - "cheerio": { - "version": "0.22.0", - "bundled": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - } - }, - "chokidar": { - "version": "1.7.0", - "bundled": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - } - }, - "circular-json": { - "version": "0.3.3", - "bundled": true - }, - "cli-cursor": { - "version": "2.1.0", - "bundled": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "bundled": true - }, - "clone": { - "version": "2.1.2", - "bundled": true - }, - "co": { - "version": "4.6.0", - "bundled": true - }, - "codemirror": { - "version": "5.42.0", - "bundled": true - }, - "color-convert": { - "version": "1.9.1", - "bundled": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-logger": { - "version": "0.0.3", - "bundled": true - }, - "color-name": { - "version": "1.1.3", - "bundled": true - }, - "combined-stream": { - "version": "1.0.7", - "bundled": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.19.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "concat-stream": { - "version": "1.6.2", - "bundled": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "concurrently": { - "version": "3.6.1", - "bundled": true, - "requires": { - "chalk": "^2.4.1", - "commander": "2.6.0", - "date-fns": "^1.23.0", - "lodash": "^4.5.1", - "read-pkg": "^3.0.0", - "rx": "2.3.24", - "spawn-command": "^0.0.2-1", - "supports-color": "^3.2.3", - "tree-kill": "^1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "commander": { - "version": "2.6.0", - "bundled": true - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "^1.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true - } - } - } - } - }, - "connect": { - "version": "3.5.1", - "bundled": true, - "requires": { - "debug": "~2.2.0", - "finalhandler": "0.5.1", - "parseurl": "~1.3.1", - "utils-merge": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "bundled": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "bundled": true - } - } - }, - "contains-path": { - "version": "0.1.0", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.0", - "bundled": true - }, - "core-js": { - "version": "2.4.1", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, - "crel": { - "version": "3.1.0", - "bundled": true - }, - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "css-select": { - "version": "1.2.0", - "bundled": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.0", - "bundled": true - }, - "cssom": { - "version": "0.3.2", - "bundled": true - }, - "cssstyle": { - "version": "0.2.37", - "bundled": true, - "optional": true, - "requires": { - "cssom": "0.3.x" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "bundled": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cutest": { - "version": "0.1.9", - "bundled": true, - "requires": { - "live-server": "^1.2.0", - "meow": "^3.7.0", - "stacktrace-js": "^2.0.0" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "1.29.0", - "bundled": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "deep-equal": { - "version": "1.0.1", - "bundled": true - }, - "deep-is": { - "version": "0.1.3", - "bundled": true - }, - "define-properties": { - "version": "1.1.2", - "bundled": true, - "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" - } - }, - "deglob": { - "version": "2.1.0", - "bundled": true, - "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - } - }, - "del": { - "version": "2.2.2", - "bundled": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, - "depd": { - "version": "1.1.2", - "bundled": true - }, - "destroy": { - "version": "1.0.4", - "bundled": true - }, - "detect-indent": { - "version": "4.0.0", - "bundled": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "bundled": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.0", - "bundled": true, - "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "bundled": true - } - } - }, - "domelementtype": { - "version": "1.3.0", - "bundled": true - }, - "domhandler": { - "version": "2.4.1", - "bundled": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "bundled": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "duplexer": { - "version": "0.1.1", - "bundled": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "bundled": true - }, - "encodeurl": { - "version": "1.0.1", - "bundled": true - }, - "encoding": { - "version": "0.1.12", - "bundled": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "entities": { - "version": "1.1.1", - "bundled": true - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.1", - "bundled": true, - "requires": { - "stackframe": "^1.0.3" - } - }, - "es-abstract": { - "version": "1.11.0", - "bundled": true, - "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "bundled": true, - "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" - } - }, - "escape-html": { - "version": "1.0.3", - "bundled": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true - }, - "escodegen": { - "version": "1.9.1", - "bundled": true, - "optional": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "optional": true - } - } - }, - "esdoc": { - "version": "1.1.0", - "bundled": true, - "requires": { - "babel-generator": "6.26.1", - "babel-traverse": "6.26.0", - "babylon": "6.18.0", - "cheerio": "1.0.0-rc.2", - "color-logger": "0.0.6", - "escape-html": "1.0.3", - "fs-extra": "5.0.0", - "ice-cap": "0.0.4", - "marked": "0.3.19", - "minimist": "1.2.0", - "taffydb": "2.7.3" - }, - "dependencies": { - "babel-code-frame": { - "version": "6.26.0", - "bundled": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-generator": { - "version": "6.26.1", - "bundled": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-traverse": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "bundled": true - }, - "cheerio": { - "version": "1.0.0-rc.2", - "bundled": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - } - }, - "color-logger": { - "version": "0.0.6", - "bundled": true - }, - "fs-extra": { - "version": "5.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "marked": { - "version": "0.3.19", - "bundled": true - }, - "minimist": { - "version": "1.2.0", - "bundled": true - }, - "parse5": { - "version": "3.0.3", - "bundled": true, - "requires": { - "@types/node": "*" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "taffydb": { - "version": "2.7.3", - "bundled": true - } - } - }, - "esdoc-accessor-plugin": { - "version": "1.0.0", - "bundled": true - }, - "esdoc-brand-plugin": { - "version": "1.0.0", - "bundled": true, - "requires": { - "cheerio": "0.22.0" - } - }, - "esdoc-coverage-plugin": { - "version": "1.1.0", - "bundled": true - }, - "esdoc-external-ecmascript-plugin": { - "version": "1.0.0", - "bundled": true, - "requires": { - "fs-extra": "1.0.0" - } - }, - "esdoc-integrate-manual-plugin": { - "version": "1.0.0", - "bundled": true - }, - "esdoc-integrate-test-plugin": { - "version": "1.0.0", - "bundled": true - }, - "esdoc-lint-plugin": { - "version": "1.0.1", - "bundled": true - }, - "esdoc-publish-html-plugin": { - "version": "1.1.2", - "bundled": true, - "requires": { - "babel-generator": "6.11.4", - "cheerio": "0.22.0", - "escape-html": "1.0.3", - "fs-extra": "1.0.0", - "ice-cap": "0.0.4", - "marked": "0.3.19", - "taffydb": "2.7.2" - }, - "dependencies": { - "babel-generator": { - "version": "6.11.4", - "bundled": true, - "requires": { - "babel-messages": "^6.8.0", - "babel-runtime": "^6.9.0", - "babel-types": "^6.10.2", - "detect-indent": "^3.0.1", - "lodash": "^4.2.0", - "source-map": "^0.5.0" - } - }, - "detect-indent": { - "version": "3.0.1", - "bundled": true, - "requires": { - "get-stdin": "^4.0.1", - "minimist": "^1.1.0", - "repeating": "^1.1.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "bundled": true - }, - "minimist": { - "version": "1.2.0", - "bundled": true - }, - "repeating": { - "version": "1.1.3", - "bundled": true, - "requires": { - "is-finite": "^1.0.0" - } - } - } - }, - "esdoc-standard-plugin": { - "version": "1.0.0", - "bundled": true, - "requires": { - "esdoc-accessor-plugin": "^1.0.0", - "esdoc-brand-plugin": "^1.0.0", - "esdoc-coverage-plugin": "^1.0.0", - "esdoc-external-ecmascript-plugin": "^1.0.0", - "esdoc-integrate-manual-plugin": "^1.0.0", - "esdoc-integrate-test-plugin": "^1.0.0", - "esdoc-lint-plugin": "^1.0.0", - "esdoc-publish-html-plugin": "^1.0.0", - "esdoc-type-inference-plugin": "^1.0.0", - "esdoc-undocumented-identifier-plugin": "^1.0.0", - "esdoc-unexported-identifier-plugin": "^1.0.0" - } - }, - "esdoc-type-inference-plugin": { - "version": "1.0.1", - "bundled": true - }, - "esdoc-undocumented-identifier-plugin": { - "version": "1.0.0", - "bundled": true - }, - "esdoc-unexported-identifier-plugin": { - "version": "1.0.0", - "bundled": true - }, - "eslint": { - "version": "4.18.2", - "bundled": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "11.5.0", - "bundled": true - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "eslint-config-standard": { - "version": "11.0.0", - "bundled": true - }, - "eslint-config-standard-jsx": { - "version": "5.0.0", - "bundled": true - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "bundled": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "resolve": { - "version": "1.7.1", - "bundled": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "eslint-module-utils": { - "version": "2.2.0", - "bundled": true, - "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.9.0", - "bundled": true, - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "bundled": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "bundled": true, - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "bundled": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "bundled": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "6.0.1", - "bundled": true, - "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.5.0", - "bundled": true - } - } - }, - "eslint-plugin-promise": { - "version": "3.7.0", - "bundled": true - }, - "eslint-plugin-react": { - "version": "7.7.0", - "bundled": true, - "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" - } - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "bundled": true - }, - "eslint-scope": { - "version": "3.7.1", - "bundled": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "bundled": true - }, - "esm": { - "version": "3.2.6", - "bundled": true - }, - "espree": { - "version": "3.5.4", - "bundled": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "bundled": true - } - } - }, - "esprima": { - "version": "3.1.3", - "bundled": true, - "optional": true - }, - "esquery": { - "version": "1.0.1", - "bundled": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "bundled": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "bundled": true - }, - "estree-walker": { - "version": "0.5.2", - "bundled": true - }, - "esutils": { - "version": "2.0.2", - "bundled": true - }, - "eventemitter3": { - "version": "2.0.3", - "bundled": true - }, - "expand-brackets": { - "version": "0.1.5", - "bundled": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "bundled": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "extend": { - "version": "3.0.2", - "bundled": true - }, - "external-editor": { - "version": "2.2.0", - "bundled": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "bundled": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "bundled": true - }, - "fast-diff": { - "version": "1.1.2", - "bundled": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "bundled": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "bundled": true - }, - "faye-websocket": { - "version": "0.11.1", - "bundled": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fbjs": { - "version": "0.8.16", - "bundled": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.9" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "bundled": true - } - } - }, - "figures": { - "version": "2.0.0", - "bundled": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "bundled": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "bundled": true - }, - "fill-range": { - "version": "2.2.4", - "bundled": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "finalhandler": { - "version": "0.5.1", - "bundled": true, - "requires": { - "debug": "~2.2.0", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "bundled": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "bundled": true - } - } - }, - "find-root": { - "version": "1.1.0", - "bundled": true - }, - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "bundled": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "for-own": { - "version": "0.1.5", - "bundled": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "optional": true - }, - "form-data": { - "version": "2.3.3", - "bundled": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "from": { - "version": "0.1.7", - "bundled": true - }, - "fs-extra": { - "version": "1.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "bundled": true - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "function-bind": { - "version": "1.1.1", - "bundled": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "bundled": true - }, - "funlib": { - "version": "file:../funlib", - "bundled": true, - "requires": { - "rollup": "^1.1.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "bundled": true - }, - "@types/node": { - "version": "10.12.21", - "bundled": true - }, - "acorn": { - "version": "6.0.7", - "bundled": true - }, - "rollup": { - "version": "1.1.2", - "bundled": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*", - "acorn": "^6.0.5" - } - } - } - }, - "get-stdin": { - "version": "6.0.0", - "bundled": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-base": { - "version": "0.3.0", - "bundled": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "bundled": true - }, - "globby": { - "version": "5.0.0", - "bundled": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "graceful-readlink": { - "version": "1.0.1", - "bundled": true - }, - "har-schema": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "har-validator": { - "version": "5.1.0", - "bundled": true, - "optional": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.1", - "bundled": true, - "requires": { - "function-bind": "^1.0.2" - } - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "home-or-tmp": { - "version": "2.0.0", - "bundled": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.5.0", - "bundled": true - }, - "htmlparser2": { - "version": "3.9.2", - "bundled": true, - "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "http-auth": { - "version": "3.1.3", - "bundled": true, - "requires": { - "apache-crypt": "^1.1.2", - "apache-md5": "^1.0.6", - "bcryptjs": "^2.3.0", - "uuid": "^3.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "bundled": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "dependencies": { - "setprototypeof": { - "version": "1.1.0", - "bundled": true - }, - "statuses": { - "version": "1.5.0", - "bundled": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "ice-cap": { - "version": "0.0.4", - "bundled": true, - "requires": { - "cheerio": "0.20.0", - "color-logger": "0.0.3" - }, - "dependencies": { - "cheerio": { - "version": "0.20.0", - "bundled": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "~3.8.1", - "jsdom": "^7.0.2", - "lodash": "^4.1.0" - } - }, - "domhandler": { - "version": "2.3.0", - "bundled": true, - "requires": { - "domelementtype": "1" - } - }, - "htmlparser2": { - "version": "3.8.3", - "bundled": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - }, - "dependencies": { - "entities": { - "version": "1.0.0", - "bundled": true - } - } - }, - "isarray": { - "version": "0.0.1", - "bundled": true - }, - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true - } - } - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "3.3.8", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "indent-string": { - "version": "2.1.0", - "bundled": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "inquirer": { - "version": "3.3.0", - "bundled": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "invariant": { - "version": "2.2.2", - "bundled": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-binary-path": { - "version": "1.0.1", - "bundled": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.5", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-callable": { - "version": "1.1.3", - "bundled": true - }, - "is-date-object": { - "version": "1.0.1", - "bundled": true - }, - "is-dotfile": { - "version": "1.0.3", - "bundled": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "bundled": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-extglob": { - "version": "1.0.0", - "bundled": true - }, - "is-finite": { - "version": "1.0.2", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-glob": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-module": { - "version": "1.0.0", - "bundled": true - }, - "is-number": { - "version": "2.1.0", - "bundled": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "bundled": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "bundled": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "bundled": true - }, - "is-primitive": { - "version": "2.0.0", - "bundled": true - }, - "is-promise": { - "version": "2.1.0", - "bundled": true - }, - "is-regex": { - "version": "1.0.4", - "bundled": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-symbol": { - "version": "1.0.1", - "bundled": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-wsl": { - "version": "1.1.0", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - }, - "isomorphic-fetch": { - "version": "2.2.1", - "bundled": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "optional": true - }, - "jest-worker": { - "version": "24.0.0", - "bundled": true, - "requires": { - "merge-stream": "^1.0.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "js-tokens": { - "version": "3.0.2", - "bundled": true - }, - "js-yaml": { - "version": "3.11.0", - "bundled": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.0", - "bundled": true - } - } - }, - "js2xmlparser": { - "version": "3.0.0", - "bundled": true, - "requires": { - "xmlcreate": "^1.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true - }, - "jsdoc": { - "version": "3.5.5", - "bundled": true, - "requires": { - "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.19", - "bundled": true - }, - "klaw": { - "version": "2.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "taffydb": { - "version": "2.6.2", - "bundled": true - } - } - }, - "jsdom": { - "version": "7.2.2", - "bundled": true, - "optional": true, - "requires": { - "abab": "^1.0.0", - "acorn": "^2.4.0", - "acorn-globals": "^1.0.4", - "cssom": ">= 0.3.0 < 0.4.0", - "cssstyle": ">= 0.2.29 < 0.3.0", - "escodegen": "^1.6.1", - "nwmatcher": ">= 1.3.7 < 2.0.0", - "parse5": "^1.5.1", - "request": "^2.55.0", - "sax": "^1.1.4", - "symbol-tree": ">= 3.1.0 < 4.0.0", - "tough-cookie": "^2.2.0", - "webidl-conversions": "^2.0.0", - "whatwg-url-compat": "~0.6.5", - "xml-name-validator": ">= 2.0.1 < 3.0.0" - }, - "dependencies": { - "acorn": { - "version": "2.7.0", - "bundled": true, - "optional": true - } - } - }, - "jsesc": { - "version": "1.3.0", - "bundled": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "bundled": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "bundled": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "optional": true - }, - "json5": { - "version": "0.5.1", - "bundled": true - }, - "jsonfile": { - "version": "2.4.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.0.1", - "bundled": true, - "requires": { - "array-includes": "^3.0.3" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "klaw": { - "version": "1.3.1", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "levn": { - "version": "0.3.0", - "bundled": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "live-server": { - "version": "1.2.0", - "bundled": true, - "requires": { - "chokidar": "^1.6.0", - "connect": "3.5.x", - "faye-websocket": "0.11.x", - "http-auth": "3.1.x", - "morgan": "^1.6.1", - "serve-index": "^1.7.2" - }, - "dependencies": { - "colors": { - "version": "1.1.2", - "bundled": true - }, - "cors": { - "version": "2.8.4", - "bundled": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.1", - "bundled": true - }, - "etag": { - "version": "1.8.1", - "bundled": true - }, - "event-stream": { - "version": "3.3.4", - "bundled": true, - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "fresh": { - "version": "0.5.2", - "bundled": true - }, - "http-errors": { - "version": "1.6.2", - "bundled": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - } - }, - "mime": { - "version": "1.4.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "opn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "proxy-middleware": { - "version": "0.15.0", - "bundled": true - }, - "send": { - "version": "0.16.1", - "bundled": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.1", - "destroy": "~1.0.4", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.3.1" - } - } - } - }, - "load-json-file": { - "version": "2.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "lodash": { - "version": "4.17.11", - "bundled": true - }, - "lodash.assignin": { - "version": "4.2.0", - "bundled": true - }, - "lodash.bind": { - "version": "4.2.1", - "bundled": true - }, - "lodash.defaults": { - "version": "4.2.0", - "bundled": true - }, - "lodash.filter": { - "version": "4.6.0", - "bundled": true - }, - "lodash.flatten": { - "version": "4.4.0", - "bundled": true - }, - "lodash.foreach": { - "version": "4.5.0", - "bundled": true - }, - "lodash.map": { - "version": "4.6.0", - "bundled": true - }, - "lodash.merge": { - "version": "4.6.1", - "bundled": true - }, - "lodash.pick": { - "version": "4.4.0", - "bundled": true - }, - "lodash.reduce": { - "version": "4.6.0", - "bundled": true - }, - "lodash.reject": { - "version": "4.6.0", - "bundled": true - }, - "lodash.some": { - "version": "4.6.0", - "bundled": true - }, - "loose-envify": { - "version": "1.3.1", - "bundled": true, - "requires": { - "js-tokens": "^3.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "bundled": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "magic-string": { - "version": "0.25.2", - "bundled": true, - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "map-obj": { - "version": "1.0.1", - "bundled": true - }, - "map-stream": { - "version": "0.1.0", - "bundled": true - }, - "marked": { - "version": "0.3.19", - "bundled": true - }, - "math-random": { - "version": "1.0.1", - "bundled": true - }, - "meow": { - "version": "3.7.0", - "bundled": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true - } - } - }, - "merge-stream": { - "version": "1.0.1", - "bundled": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "2.3.11", - "bundled": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "optional": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "optional": true, - "requires": { - "mime-db": "~1.27.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "morgan": { - "version": "1.9.1", - "bundled": true, - "requires": { - "basic-auth": "~2.0.0", - "debug": "2.6.9", - "depd": "~1.1.2", - "on-finished": "~2.3.0", - "on-headers": "~1.0.1" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "mute-stream": { - "version": "0.0.7", - "bundled": true - }, - "natural-compare": { - "version": "1.4.0", - "bundled": true - }, - "negotiator": { - "version": "0.6.1", - "bundled": true - }, - "node-fetch": { - "version": "1.7.3", - "bundled": true, - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "bundled": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "nth-check": { - "version": "1.0.1", - "bundled": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "nwmatcher": { - "version": "1.4.3", - "bundled": true, - "optional": true - }, - "oauth-sign": { - "version": "0.9.0", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-keys": { - "version": "1.0.11", - "bundled": true - }, - "object.omit": { - "version": "2.0.1", - "bundled": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "on-finished": { - "version": "2.3.0", - "bundled": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "bundled": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "bundled": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "bundled": true - } - } - }, - "orderedmap": { - "version": "1.0.0", - "bundled": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true - }, - "output-file-sync": { - "version": "1.1.2", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parchment": { - "version": "1.1.4", - "bundled": true - }, - "parse-glob": { - "version": "3.0.4", - "bundled": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse5": { - "version": "1.5.1", - "bundled": true, - "optional": true - }, - "parseurl": { - "version": "1.3.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-is-inside": { - "version": "1.0.2", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pause-stream": { - "version": "0.0.11", - "bundled": true, - "requires": { - "through": "~2.3" - } - }, - "performance-now": { - "version": "2.1.0", - "bundled": true, - "optional": true - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-conf": { - "version": "2.1.0", - "bundled": true, - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - } - } - }, - "pkg-config": { - "version": "1.1.1", - "bundled": true, - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "^1.0.0" - } - }, - "pluralize": { - "version": "7.0.0", - "bundled": true - }, - "prelude-ls": { - "version": "1.1.2", - "bundled": true - }, - "preserve": { - "version": "0.2.0", - "bundled": true - }, - "private": { - "version": "0.1.7", - "bundled": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true - }, - "progress": { - "version": "2.0.0", - "bundled": true - }, - "promise": { - "version": "7.3.1", - "bundled": true, - "requires": { - "asap": "~2.0.3" - } - }, - "prop-types": { - "version": "15.6.1", - "bundled": true, - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "prosemirror-commands": { - "version": "1.0.7", - "bundled": true, - "requires": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-dropcursor": { - "version": "1.1.1", - "bundled": true, - "requires": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0", - "prosemirror-view": "^1.1.0" - } - }, - "prosemirror-example-setup": { - "version": "1.0.1", - "bundled": true, - "requires": { - "prosemirror-commands": "^1.0.0", - "prosemirror-dropcursor": "^1.0.0", - "prosemirror-gapcursor": "^1.0.0", - "prosemirror-history": "^1.0.0", - "prosemirror-inputrules": "^1.0.0", - "prosemirror-keymap": "^1.0.0", - "prosemirror-menu": "^1.0.0", - "prosemirror-schema-list": "^1.0.0", - "prosemirror-state": "^1.0.0" - } - }, - "prosemirror-gapcursor": { - "version": "1.0.3", - "bundled": true, - "requires": { - "prosemirror-keymap": "^1.0.0", - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-view": "^1.0.0" - } - }, - "prosemirror-history": { - "version": "1.0.3", - "bundled": true, - "requires": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "rope-sequence": "^1.2.0" - } - }, - "prosemirror-inputrules": { - "version": "1.0.1", - "bundled": true, - "requires": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-keymap": { - "version": "1.0.1", - "bundled": true, - "requires": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^1.1.8" - } - }, - "prosemirror-menu": { - "version": "1.0.5", - "bundled": true, - "requires": { - "crel": "^3.0.0", - "prosemirror-commands": "^1.0.0", - "prosemirror-history": "^1.0.0", - "prosemirror-state": "^1.0.0" - } - }, - "prosemirror-model": { - "version": "1.6.3", - "bundled": true, - "requires": { - "orderedmap": "^1.0.0" - } - }, - "prosemirror-schema-basic": { - "version": "1.0.0", - "bundled": true, - "requires": { - "prosemirror-model": "^1.0.0" - } - }, - "prosemirror-schema-list": { - "version": "1.0.1", - "bundled": true, - "requires": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-state": { - "version": "1.2.2", - "bundled": true, - "requires": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-transform": { - "version": "1.1.3", - "bundled": true, - "requires": { - "prosemirror-model": "^1.0.0" - } - }, - "prosemirror-view": { - "version": "1.6.5", - "bundled": true, - "requires": { - "prosemirror-model": "^1.1.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "psl": { - "version": "1.1.29", - "bundled": true, - "optional": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "qs": { - "version": "6.5.2", - "bundled": true, - "optional": true - }, - "quill": { - "version": "1.3.6", - "bundled": true, - "requires": { - "clone": "^2.1.1", - "deep-equal": "^1.0.1", - "eventemitter3": "^2.0.3", - "extend": "^3.0.1", - "parchment": "^1.1.4", - "quill-delta": "^3.6.2" - } - }, - "quill-cursors": { - "version": "1.0.3", - "bundled": true, - "requires": { - "rangefix": "^0.2.5", - "tinycolor2": "^1.4.1" - } - }, - "quill-delta": { - "version": "3.6.3", - "bundled": true, - "requires": { - "deep-equal": "^1.0.1", - "extend": "^3.0.2", - "fast-diff": "1.1.2" - } - }, - "randomatic": { - "version": "3.1.0", - "bundled": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "range-parser": { - "version": "1.2.0", - "bundled": true - }, - "rangefix": { - "version": "0.2.5", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.3", - "bundled": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.1.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "bundled": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "regenerate": { - "version": "1.3.2", - "bundled": true - }, - "regenerator-runtime": { - "version": "0.10.5", - "bundled": true - }, - "regenerator-transform": { - "version": "0.10.1", - "bundled": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.3", - "bundled": true, - "requires": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" - } - }, - "regexpu-core": { - "version": "2.0.0", - "bundled": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "bundled": true - }, - "regjsparser": { - "version": "0.1.5", - "bundled": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "bundled": true - } - } - }, - "remove-trailing-separator": { - "version": "1.0.2", - "bundled": true - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "repeating": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "bundled": true, - "optional": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "extend": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "mime-db": { - "version": "1.37.0", - "bundled": true, - "optional": true - }, - "mime-types": { - "version": "2.1.21", - "bundled": true, - "optional": true, - "requires": { - "mime-db": "~1.37.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "tough-cookie": { - "version": "2.4.3", - "bundled": true, - "optional": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "uuid": { - "version": "3.3.2", - "bundled": true, - "optional": true - } - } - }, - "require-relative": { - "version": "0.8.7", - "bundled": true - }, - "require-uncached": { - "version": "1.0.3", - "bundled": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "requizzle": { - "version": "0.2.1", - "bundled": true, - "requires": { - "underscore": "~1.6.0" - }, - "dependencies": { - "underscore": { - "version": "1.6.0", - "bundled": true - } - } - }, - "resolve": { - "version": "1.3.3", - "bundled": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-from": { - "version": "1.0.1", - "bundled": true - }, - "restore-cursor": { - "version": "2.0.0", - "bundled": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "^7.0.5" - } - }, - "rollup": { - "version": "1.1.2", - "bundled": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*", - "acorn": "^6.0.5" - }, - "dependencies": { - "acorn": { - "version": "6.1.0", - "bundled": true - } - } - }, - "rollup-cli": { - "version": "1.0.9", - "bundled": true - }, - "rollup-plugin-commonjs": { - "version": "9.2.0", - "bundled": true, - "requires": { - "estree-walker": "^0.5.2", - "magic-string": "^0.25.1", - "resolve": "^1.8.1", - "rollup-pluginutils": "^2.3.3" - }, - "dependencies": { - "path-parse": { - "version": "1.0.6", - "bundled": true - }, - "resolve": { - "version": "1.10.0", - "bundled": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "rollup-plugin-node-resolve": { - "version": "4.0.0", - "bundled": true, - "requires": { - "builtin-modules": "^3.0.0", - "is-module": "^1.0.0", - "resolve": "^1.8.1" - }, - "dependencies": { - "builtin-modules": { - "version": "3.0.0", - "bundled": true - }, - "path-parse": { - "version": "1.0.6", - "bundled": true - }, - "resolve": { - "version": "1.10.0", - "bundled": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "rollup-plugin-terser": { - "version": "4.0.4", - "bundled": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "jest-worker": "^24.0.0", - "serialize-javascript": "^1.6.1", - "terser": "^3.14.1" - } - }, - "rollup-plugin-uglify-es": { - "version": "0.0.1", - "bundled": true, - "requires": { - "uglify-es": "3.0.3" - } - }, - "rollup-pluginutils": { - "version": "2.3.3", - "bundled": true, - "requires": { - "estree-walker": "^0.5.2", - "micromatch": "^2.3.11" - } - }, - "rollup-watch": { - "version": "4.3.1", - "bundled": true, - "requires": { - "chokidar": "^1.7.0", - "require-relative": "0.8.7", - "rollup-pluginutils": "^2.0.1" - } - }, - "rope-sequence": { - "version": "1.2.2", - "bundled": true - }, - "run-async": { - "version": "2.3.0", - "bundled": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "bundled": true - }, - "rx": { - "version": "2.3.24", - "bundled": true - }, - "rx-lite": { - "version": "4.0.8", - "bundled": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "bundled": true, - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.3.0", - "bundled": true - }, - "serialize-javascript": { - "version": "1.6.1", - "bundled": true - }, - "serve-index": { - "version": "1.9.1", - "bundled": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "mime-db": { - "version": "1.37.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.21", - "bundled": true, - "requires": { - "mime-db": "~1.37.0" - } - }, - "parseurl": { - "version": "1.3.2", - "bundled": true - } - } - }, - "set-immediate-shim": { - "version": "1.0.1", - "bundled": true - }, - "setimmediate": { - "version": "1.0.5", - "bundled": true - }, - "setprototypeof": { - "version": "1.0.3", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slash": { - "version": "1.0.0", - "bundled": true - }, - "slice-ansi": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.6", - "bundled": true - }, - "source-map-support": { - "version": "0.4.15", - "bundled": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "sourcemap-codec": { - "version": "1.4.4", - "bundled": true - }, - "spawn-command": { - "version": "0.0.2-1", - "bundled": true - }, - "spdx-correct": { - "version": "1.0.2", - "bundled": true, - "requires": { - "spdx-license-ids": "^1.0.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "bundled": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "bundled": true - }, - "split": { - "version": "0.3.3", - "bundled": true, - "requires": { - "through": "2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "bundled": true - }, - "sshpk": { - "version": "1.15.1", - "bundled": true, - "optional": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-generator": { - "version": "2.0.1", - "bundled": true, - "requires": { - "stackframe": "^1.0.3" - } - }, - "stackframe": { - "version": "1.0.3", - "bundled": true - }, - "stacktrace-gps": { - "version": "3.0.1", - "bundled": true, - "requires": { - "source-map": "0.5.6", - "stackframe": "^1.0.3" - } - }, - "stacktrace-js": { - "version": "2.0.0", - "bundled": true, - "requires": { - "error-stack-parser": "^2.0.1", - "stack-generator": "^2.0.1", - "stacktrace-gps": "^3.0.1" - } - }, - "standard": { - "version": "11.0.1", - "bundled": true, - "requires": { - "eslint": "~4.18.0", - "eslint-config-standard": "11.0.0", - "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" - } - }, - "standard-engine": { - "version": "8.0.1", - "bundled": true, - "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true - } - } - }, - "statuses": { - "version": "1.3.1", - "bundled": true - }, - "stream-combiner": { - "version": "0.0.4", - "bundled": true, - "requires": { - "duplexer": "~0.1.1" - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.0.3", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-indent": { - "version": "1.0.1", - "bundled": true, - "requires": { - "get-stdin": "^4.0.1" - }, - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "bundled": true - } - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true - }, - "supports-color": { - "version": "2.0.0", - "bundled": true - }, - "symbol-tree": { - "version": "3.2.2", - "bundled": true, - "optional": true - }, - "table": { - "version": "4.0.2", - "bundled": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "taffydb": { - "version": "2.7.2", - "bundled": true - }, - "terser": { - "version": "3.16.1", - "bundled": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.9" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "bundled": true - }, - "source-map": { - "version": "0.6.1", - "bundled": true - }, - "source-map-support": { - "version": "0.5.10", - "bundled": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "bundled": true - }, - "through": { - "version": "2.3.8", - "bundled": true - }, - "tinycolor2": { - "version": "1.4.1", - "bundled": true - }, - "tmp": { - "version": "0.0.33", - "bundled": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "bundled": true - }, - "tough-cookie": { - "version": "2.3.4", - "bundled": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "tr46": { - "version": "0.0.3", - "bundled": true, - "optional": true - }, - "tree-kill": { - "version": "1.2.0", - "bundled": true - }, - "trim-newlines": { - "version": "1.0.0", - "bundled": true - }, - "trim-right": { - "version": "1.0.1", - "bundled": true - }, - "tui-jsdoc-template": { - "version": "1.2.2", - "bundled": true, - "requires": { - "cheerio": "^0.22.0" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true - }, - "type-check": { - "version": "0.3.2", - "bundled": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "bundled": true - }, - "ua-parser-js": { - "version": "0.7.18", - "bundled": true - }, - "uglify-es": { - "version": "3.0.3", - "bundled": true, - "requires": { - "commander": "~2.9.0", - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0" - }, - "dependencies": { - "commander": { - "version": "2.9.0", - "bundled": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "underscore": { - "version": "1.8.3", - "bundled": true - }, - "underscore-contrib": { - "version": "0.3.0", - "bundled": true, - "requires": { - "underscore": "1.6.0" - }, - "dependencies": { - "underscore": { - "version": "1.6.0", - "bundled": true - } - } - }, - "uniq": { - "version": "1.0.1", - "bundled": true - }, - "universalify": { - "version": "0.1.2", - "bundled": true - }, - "unix-crypt-td-js": { - "version": "1.0.0", - "bundled": true - }, - "unpipe": { - "version": "1.0.0", - "bundled": true - }, - "user-home": { - "version": "1.1.1", - "bundled": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "utils-merge": { - "version": "1.0.0", - "bundled": true - }, - "uuid": { - "version": "3.1.0", - "bundled": true - }, - "v8flags": { - "version": "2.1.1", - "bundled": true, - "requires": { - "user-home": "^1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.1", - "bundled": true, - "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, - "vary": { - "version": "1.1.1", - "bundled": true - }, - "verror": { - "version": "1.10.0", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "w3c-keyname": { - "version": "1.1.8", - "bundled": true - }, - "webidl-conversions": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "websocket-driver": { - "version": "0.6.5", - "bundled": true, - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.1", - "bundled": true - }, - "whatwg-fetch": { - "version": "2.0.4", - "bundled": true - }, - "whatwg-url-compat": { - "version": "0.6.5", - "bundled": true, - "optional": true, - "requires": { - "tr46": "~0.0.1" - } - }, - "which": { - "version": "1.2.14", - "bundled": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write": { - "version": "0.2.1", - "bundled": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xml-name-validator": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "xmlcreate": { - "version": "1.0.2", - "bundled": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - } - } - } - } - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", diff --git a/package.json b/package.json index ef6705a9..61635ab5 100644 --- a/package.json +++ b/package.json @@ -79,11 +79,7 @@ "rollup-plugin-uglify-es": "0.0.1", "rollup-watch": "^4.3.1", "standard": "^11.0.1", - "tui-jsdoc-template": "^1.2.2", - "y-codemirror": "*" + "tui-jsdoc-template": "^1.2.2" }, - "dependencies": { - "funlib": "file:../funlib", - "y-protocols": "file:../y-protocols" - } + "dependencies": {} } diff --git a/rollup.config.js b/rollup.config.js index 3277b64b..803c4e7e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -13,7 +13,7 @@ const customModules = new Set([ ]) const customLibModules = new Set([ // 'funlib', - 'y-protocols' + // 'y-protocols' ]) const debugResolve = { resolveId (importee) { diff --git a/src/index.js b/src/index.js index 612a4423..dea27bf4 100644 --- a/src/index.js +++ b/src/index.js @@ -21,7 +21,7 @@ export { YXmlElement as XmlElement, YXmlFragment as XmlFragment } from './types/ export { getRelativePosition, fromRelativePosition, equal as equalRelativePosition } from './utils/relativePosition.js' -export { ID, createID, RootFakeUserID } from './utils/ID.js' +export { ID, createID, RootFakeUserID, RootID } from './utils/ID.js' export { DeleteStore, DSNode } from './utils/DeleteStore.js' export { deleteItemRange } from './utils/structManipulation.js' export { integrateRemoteStruct, integrateRemoteStructs } from './utils/integrateRemoteStructs.js' diff --git a/tests/DeleteStore.tests.js b/tests/DeleteStore.tests.js index f5da48ef..1e13d476 100644 --- a/tests/DeleteStore.tests.js +++ b/tests/DeleteStore.tests.js @@ -51,37 +51,36 @@ export const testDeleteStore = tc => { t.compareArrays(dsToArray(ds), [null, 1, 1, 1, 1, 1]) ds.mark(ID.createID(0, 0), 3, false) t.compareArrays(dsToArray(ds), [0, 0, 0, 1, 1, 1]) - - t.describe('Random tests') - const gen = tc.prng - for (let i = 0; i < tc.repititions; i++) { - const ds = new DeleteStore() - const dsArray = [] - for (let i = 0; i < 200; i++) { - const pos = prng.int32(gen, 0, 10) - const len = prng.int32(gen, 0, 4) - const gc = prng.bool(gen) - ds.mark(ID.createID(0, pos), len, gc) - for (let j = 0; j < len; j++) { - dsArray[pos + j] = gc ? 1 : 0 - } - } - // fill empty fields - for (let i = 0; i < dsArray.length; i++) { - if (dsArray[i] !== 0 && dsArray[i] !== 1) { - dsArray[i] = null - } - } - t.compareArrays(dsToArray(ds), dsArray, 'Expected DS result') - let size = 0 - let lastEl = null - for (let i = 0; i < dsArray.length; i++) { - let el = dsArray[i] - if (lastEl !== el && el !== null) { - size++ - } - lastEl = el - } - t.assert(size === ds.length, 'DS sizes match') - } +} + +export const testRepeatDeleteStoreTests = tc => { + const gen = tc.prng + const ds = new DeleteStore() + const dsArray = [] + for (let i = 0; i < 200; i++) { + const pos = prng.int32(gen, 0, 10) + const len = prng.int32(gen, 0, 4) + const gc = prng.bool(gen) + ds.mark(ID.createID(0, pos), len, gc) + for (let j = 0; j < len; j++) { + dsArray[pos + j] = gc ? 1 : 0 + } + } + // fill empty fields + for (let i = 0; i < dsArray.length; i++) { + if (dsArray[i] !== 0 && dsArray[i] !== 1) { + dsArray[i] = null + } + } + t.compareArrays(dsToArray(ds), dsArray, 'Expected DS result') + let size = 0 + let lastEl = null + for (let i = 0; i < dsArray.length; i++) { + let el = dsArray[i] + if (lastEl !== el && el !== null) { + size++ + } + lastEl = el + } + t.assert(size === ds.length, 'DS sizes match') } diff --git a/tests/index.js b/tests/index.js index 84ce95e0..d8959d76 100644 --- a/tests/index.js +++ b/tests/index.js @@ -1,10 +1,11 @@ import { runTests } from 'funlib/testing.js' -import * as deleteStore from './DeleteStore.tests.js' import { isBrowser } from 'funlib/environment.js' import * as log from 'funlib/logging.js' +import * as deleteStoreTest from './DeleteStore.tests.js' +import * as arrayTest from './y-array.tests.js' if (isBrowser) { log.createVConsole(document.body) } -runTests({ deleteStore }) +runTests({ deleteStoreTest, arrayTest }) diff --git a/tests/testHelper.js b/tests/testHelper.js new file mode 100644 index 00000000..6f6de2f5 --- /dev/null +++ b/tests/testHelper.js @@ -0,0 +1,351 @@ +import * as Y from '../src/index.js' +import * as t from 'funlib/testing.js' +import * as prng from 'funlib/prng.js' +import { createMutex } from 'funlib/mutex.js' +import * as encoding from 'funlib/encoding.js' +import * as decoding from 'funlib/decoding.js' +import * as syncProtocol from 'y-protocols/sync.js' +import { defragmentItemContent } from '../src/utils/defragmentItemContent.js' + + +/** + * @param {TestYInstance} y + * @param {Y.Transaction} transaction + */ +const afterTransaction = (y, transaction) => { + y.mMux(() => { + if (transaction.encodedStructsLen > 0) { + const encoder = encoding.createEncoder() + syncProtocol.writeUpdate(encoder, transaction.encodedStructsLen, transaction.encodedStructs) + broadcastMessage(y, encoding.toBuffer(encoder)) + } + }) +} + +/** + * @param {TestYInstance} y // publish message created by `y` to all other online clients + * @param {ArrayBuffer} m + */ +const broadcastMessage = (y, m) => { + if (y.tc.onlineConns.has(y)) { + y.tc.onlineConns.forEach(remoteYInstance => { + if (remoteYInstance !== y) { + remoteYInstance._receive(m, y) + } + }) + } +} + +export class TestYInstance extends Y.Y { + /** + * @param {TestConnector} testConnector + */ + constructor (testConnector, clientID) { + super() + this.userID = clientID // overwriting clientID + /** + * @type {TestConnector} + */ + this.tc = testConnector + /** + * @type {Map>} + */ + this.receiving = new Map() + /** + * Message mutex + * @type {Function} + */ + this.mMux = createMutex() + testConnector.allConns.add(this) + // set up observe on local model + this.on('afterTransaction', afterTransaction) + this.connect() + } + /** + * Disconnect from TestConnector. + */ + disconnect () { + this.receiving = new Map() + this.tc.onlineConns.delete(this) + } + /** + * Append yourself to the list of known Y instances in testconnector. + * Also initiate sync with all clients. + */ + connect () { + if (!this.tc.onlineConns.has(this)) { + this.tc.onlineConns.add(this) + const encoder = encoding.createEncoder() + syncProtocol.writeSyncStep1(encoder, this) + // publish SyncStep1 + broadcastMessage(this, encoding.toBuffer(encoder)) + this.tc.onlineConns.forEach(remoteYInstance => { + if (remoteYInstance !== this) { + // remote instance sends instance to this instance + const encoder = encoding.createEncoder() + syncProtocol.writeSyncStep1(encoder, remoteYInstance) + this._receive(encoding.toBuffer(encoder), remoteYInstance) + } + }) + } + } + /** + * Receive a message from another client. This message is only appended to the list of receiving messages. + * TestConnector decides when this client actually reads this message. + * + * @param {ArrayBuffer} message + * @param {TestYInstance} remoteClient + */ + _receive (message, remoteClient) { + let messages = this.receiving.get(remoteClient) + if (messages === undefined) { + messages = [] + this.receiving.set(remoteClient, messages) + } + messages.push(message) + } +} + +/** + * Keeps track of TestYInstances. + * + * The TestYInstances add/remove themselves from the list of connections maintained in this object. + * I think it makes sense. Deal with it. + */ +export class TestConnector { + constructor (gen) { + /** + * @type {Set} + */ + this.allConns = new Set() + /** + * @type {Set} + */ + this.onlineConns = new Set() + /** + * @type {prng.PRNG} + */ + this.prng = gen + } + /** + * Create a new Y instance and add it to the list of connections + * @param {number} clientID + */ + createY (clientID) { + return new TestYInstance(this, clientID) + } + /** + * Choose random connection and flush a random message from a random sender. + * + * If this function was unable to flush a message, because there are no more messages to flush, it returns false. true otherwise. + * @return {boolean} + */ + flushRandomMessage () { + const gen = this.prng + const conns = Array.from(this.onlineConns).filter(conn => conn.receiving.size > 0) + if (conns.length > 0) { + const receiver = prng.oneOf(gen, conns) + const [sender, messages] = prng.oneOf(gen, Array.from(receiver.receiving)) + const m = messages.shift() + if (messages.length === 0) { + receiver.receiving.delete(sender) + } + if (m === undefined) { + return this.flushRandomMessage() + } + const encoder = encoding.createEncoder() + receiver.mMux(() => { + console.log('receive (' + sender.userID + '->' + receiver.userID + '):\n', syncProtocol.stringifySyncMessage(decoding.createDecoder(m), receiver)) + // do not publish data created when this function is executed (could be ss2 or update message) + syncProtocol.readSyncMessage(decoding.createDecoder(m), encoder, receiver) + }) + if (encoding.length(encoder) > 0) { + // send reply message + sender._receive(encoding.toBuffer(encoder), receiver) + } + return true + } + return false + } + /** + * @return {boolean} True iff this function actually flushed something + */ + flushAllMessages () { + let didSomething = false + while (this.flushRandomMessage()) { + didSomething = true + } + return didSomething + } + reconnectAll () { + this.allConns.forEach(conn => conn.connect()) + } + disconnectAll () { + this.allConns.forEach(conn => conn.disconnect()) + } + syncAll () { + this.reconnectAll() + this.flushAllMessages() + } + /** + * @return {boolean} Whether it was possible to disconnect a randon connection. + */ + disconnectRandom () { + if (this.onlineConns.size === 0) { + return false + } + prng.oneOf(this.prng, Array.from(this.onlineConns)).disconnect() + return true + } + /** + * @return {boolean} Whether it was possible to reconnect a random connection. + */ + reconnectRandom () { + const reconnectable = [] + this.allConns.forEach(conn => { + if (!this.onlineConns.has(conn)) { + reconnectable.push(conn) + } + }) + if (reconnectable.length === 0) { + return false + } + prng.oneOf(this.prng, reconnectable).connect() + return true + } +} + +export const init = (tc, { users = 5 } = {}) => { + /** + * @type {Object} + */ + const result = { + users: [] + } + const gen = tc.prng + const testConnector = new TestConnector(gen) + result.testConnector = testConnector + for (let i = 0; i < users; i++) { + const y = testConnector.createY(i) + result.users.push(y) + result['array' + i] = y.define('array', Y.Array) + result['map' + i] = y.define('map', Y.Map) + result['xml' + i] = y.define('xml', Y.XmlElement) + result['text' + i] = y.define('text', Y.Text) + } + testConnector.syncAll() + return result +} + +/** + * Convert DS to a proper DeleteSet of Map. + * + * @param {Y.Y} y + * @return {Object>} + */ +const getDeleteSet = y => { + /** + * @type {Object} + */ + var ds = {} + y.ds.iterate(null, null, n => { + var user = n._id.user + var counter = n._id.clock + var len = n.len + var gc = n.gc + var dv = ds[user] + if (dv === void 0) { + dv = [] + ds[user] = dv + } + dv.push([counter, len, gc]) + }) + return ds +} + +const customOSCompare = (constructor, a, b, path, next) => { + switch (constructor) { + case Y.ID: + case Y.RootID: + if (a.equals(b)) { + return true + } else { + return false + } + } + return next(constructor, a, b, path, next) +} + +/** + * 1. reconnect and flush all + * 2. user 0 gc + * 3. get type content + * 4. disconnect & reconnect all (so gc is propagated) + * 5. compare os, ds, ss + * + * @param {Array} users + */ +export const compare = users => { + users.forEach(u => u.connect()) + while (users[0].tc.flushAllMessages()) {} + var userArrayValues = users.map(u => u.define('array', Y.Array).toJSON().map(val => JSON.stringify(val))) + var userMapValues = users.map(u => u.define('map', Y.Map).toJSON()) + var userXmlValues = users.map(u => u.define('xml', Y.XmlElement).toString()) + var userTextValues = users.map(u => u.define('text', Y.Text).toDelta()) + var data = users.map(u => { + defragmentItemContent(u) + var data = {} + let ops = [] + u.os.iterate(null, null, op => { + let json + if (op.constructor === Y.GC) { + json = { + type: 'GC', + id: op._id, + length: op._length, + content: null + } + } else { + json = { + id: op._id, + left: op._left === null ? null : op._left._lastId, + right: op._right === null ? null : op._right._id, + length: op._length, + deleted: op._deleted, + parent: op._parent._id, + content: null + } + } + if (op instanceof Y.ItemJSON || op instanceof Y.ItemString) { + json.content = op._content + } + ops.push(json) + }) + data.os = ops + data.ds = getDeleteSet(u) + const ss = {} + u.ss.state.forEach((clock, user) => { + ss[user] = clock + }) + data.ss = ss + return data + }) + for (var i = 0; i < data.length - 1; i++) { + t.describe(`Comparing user${i} with user${i + 1}`) + t.compare(userArrayValues[i].length, users[i].get('array').length, 'array length correctly computed') + t.compare(userArrayValues[i], userArrayValues[i + 1], 'array types') + t.compare(userMapValues[i], userMapValues[i + 1], 'map types') + t.compare(userXmlValues[i], userXmlValues[i + 1], 'xml types') + t.compare(userTextValues[i].map(a => a.insert).join('').length, users[i].get('text').length, 'text length correctly computed') + t.compare(userTextValues[i], userTextValues[i + 1], 'text types') + t.compare(data[i].os, data[i + 1].os, 'os', customOSCompare) + t.compare(data[i].ds, data[i + 1].ds, 'ds', customOSCompare) + t.compare(data[i].ss, data[i + 1].ss, 'ss', customOSCompare) + } + users.forEach(user => { + if (user._missingStructs.size !== 0) { + t.fail('missing structs should be empty!') + } + }) + users.map(u => u.destroy()) +} diff --git a/tests/y-array.tests.js b/tests/y-array.tests.js index 0dedbcaa..0f02f566 100644 --- a/tests/y-array.tests.js +++ b/tests/y-array.tests.js @@ -1,15 +1,11 @@ -import { initArrays, compareUsers, applyRandomTests } from './helper.js' +import { init, compare } from './testHelper.js' import * as Y from '../src/index.js' -import { test, proxyConsole } from 'cutest' -import * as random from 'funlib/prng/prng.js' - -proxyConsole() -test('basic spec', async function array0 (t) { - let { users, array0 } = await initArrays(t, { users: 2 }) +import * as t from 'funlib/testing.js' +export const testDeleteInsert = tc => { + let { users, array0 } = init(tc, { users: 2 }) array0.delete(0, 0) t.assert(true, 'Does not throw when deleting zero elements with position 0') - let throwInvalidPosition = false try { array0.delete(1, 1) @@ -17,13 +13,13 @@ test('basic spec', async function array0 (t) { throwInvalidPosition = true } t.assert(throwInvalidPosition, 'Throws when deleting with an invalid position') - array0.insert(0, ['A']) array0.delete(1, 0) t.assert(true, 'Does not throw when deleting zero elements with valid position 1') + compare(users) +} - await compareUsers(t, users) -}) +/* test('insert three elements, try re-get property', async function array1 (t) { var { testConnector, users, array0, array1 } = initArrays(t, { users: 2 }) @@ -333,3 +329,4 @@ test('y-array: Random tests (1000)', async function randomArray1000 (t) { test('y-array: Random tests (1800)', async function randomArray1800 (t) { await applyRandomTests(t, arrayTransactions, 2000) }) +*/