From 26aed33e696a0bd9e66745f2df1eb1c5e537fd76 Mon Sep 17 00:00:00 2001 From: Jerome Wu Date: Wed, 23 Oct 2019 20:46:03 +0800 Subject: [PATCH] Add eslint & update README --- .eslintrc | 6 + .npmignore | 2 + README.md | 4 + docs/images/cover.png | Bin 0 -> 51073 bytes package-lock.json | 1495 ++++++++++++++++++++++++++++++++++ package.json | 8 +- src/constants/defaultArgs.js | 4 +- src/load.js | 4 +- src/transcode.js | 2 +- src/util/module.js | 2 +- src/util/str2ptr.js | 8 +- src/util/strList2ptr.js | 4 +- 12 files changed, 1526 insertions(+), 13 deletions(-) create mode 100644 .eslintrc create mode 100644 docs/images/cover.png diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..b117cc0 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "airbnb-base", + "rules": { + "no-underscore-dangle": 0 + } +} diff --git a/.npmignore b/.npmignore index 32adcf6..58413de 100644 --- a/.npmignore +++ b/.npmignore @@ -1,2 +1,4 @@ +.eslintrc +.github tests examples diff --git a/README.md b/README.md index ae027b2..2a74ef3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ FFmpeg.js ========= +

+Tesseract.js +

+ A FFmpeg WebAssembly version built from scratch, you can learn how to do it from this series of stories: [Build FFmpeg WebAssembly version (=ffmpeg.js)](https://medium.com/@jeromewus/build-ffmpeg-webassembly-version-ffmpeg-js-part-1-preparation-ed12bf4c8fac). --- diff --git a/docs/images/cover.png b/docs/images/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0d75ced8c0fd8bb3488848a22dfb2857805f6f GIT binary patch literal 51073 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 BW@!Kb literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 8557910..097c794 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,10 +4,1505 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, "@ffmpeg/core": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@ffmpeg/core/-/core-0.1.0.tgz", "integrity": "sha512-a4/HokRytKFJDW+RVvuf22rUzjNgXZKhlF6FIVBcLACIDcCEQZ0uCUC+5DZb+xprCvdMyXm0wy90uoYLRTq+LA==" + }, + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "dev": true + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", + "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^6.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.4.1", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-config-airbnb-base": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz", + "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.7", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", + "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", + "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "dev": true, + "requires": { + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": 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-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": 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" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } } } } diff --git a/package.json b/package.json index c67bb22..337e0c6 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "example": "examples" }, "scripts": { - "test": "mocha" + "test": "mocha", + "lint": "eslint src" }, "repository": { "type": "git", @@ -26,5 +27,10 @@ "homepage": "https://github.com/jeromewu/ffmpeg.js#readme", "dependencies": { "@ffmpeg/core": "^0.1.0" + }, + "devDependencies": { + "eslint": "^6.1.0", + "eslint-config-airbnb-base": "^14.0.0", + "eslint-plugin-import": "^2.18.2" } } diff --git a/src/constants/defaultArgs.js b/src/constants/defaultArgs.js index cf5c078..16aacaa 100755 --- a/src/constants/defaultArgs.js +++ b/src/constants/defaultArgs.js @@ -1,6 +1,6 @@ module.exports = [ - './ffmpeg', // args[0] is always binary path - '-nostdin', // Disable interaction mode + './ffmpeg', // args[0] is always binary path + '-nostdin', // Disable interaction mode '-loglevel', 'quiet', ]; diff --git a/src/load.js b/src/load.js index f7fc748..e1fe32c 100755 --- a/src/load.js +++ b/src/load.js @@ -1,8 +1,8 @@ -const { setModule } = require('./util/module'); const FFmpegCore = require('@ffmpeg/core'); +const { setModule } = require('./util/module'); module.exports = () => ( - new Promise((resolve, reject) => { + new Promise((resolve) => { FFmpegCore() .then((Module) => { setModule(Module); diff --git a/src/transcode.js b/src/transcode.js index ce76d43..5197b8e 100755 --- a/src/transcode.js +++ b/src/transcode.js @@ -4,7 +4,7 @@ const getFFmpeg = require('./util/getFFmpeg'); const strList2ptr = require('./util/strList2ptr'); const defaultArgs = require('./constants/defaultArgs'); -module.exports = (inputPath, outputExt, options='') => { +module.exports = (inputPath, outputExt, options = '') => { const Module = getModule(); const data = new Uint8Array(fs.readFileSync(inputPath)); const iPath = `file.${inputPath.split('.').pop()}`; diff --git a/src/util/module.js b/src/util/module.js index be1a631..3e7adf3 100755 --- a/src/util/module.js +++ b/src/util/module.js @@ -1,6 +1,6 @@ let Module = null; -exports.setModule = m => { +exports.setModule = (m) => { Module = m; }; diff --git a/src/util/str2ptr.js b/src/util/str2ptr.js index 9021854..c3c8e88 100755 --- a/src/util/str2ptr.js +++ b/src/util/str2ptr.js @@ -2,10 +2,10 @@ const { getModule } = require('./module'); module.exports = (s) => { const Module = getModule(); - const ptr = Module._malloc((s.length+1)*Uint8Array.BYTES_PER_ELEMENT); - for (let i = 0; i < s.length; i++) { - Module.setValue(ptr+i, s.charCodeAt(i), 'i8'); + const ptr = Module._malloc((s.length + 1) * Uint8Array.BYTES_PER_ELEMENT); + for (let i = 0; i < s.length; i += 1) { + Module.setValue(ptr + i, s.charCodeAt(i), 'i8'); } - Module.setValue(ptr+s.length, 0, 'i8'); + Module.setValue(ptr + s.length, 0, 'i8'); return ptr; }; diff --git a/src/util/strList2ptr.js b/src/util/strList2ptr.js index 1eeb5b9..d5bd680 100755 --- a/src/util/strList2ptr.js +++ b/src/util/strList2ptr.js @@ -3,11 +3,11 @@ const str2ptr = require('./str2ptr'); module.exports = (strList) => { const Module = getModule(); - const listPtr = Module._malloc(strList.length*Uint32Array.BYTES_PER_ELEMENT); + const listPtr = Module._malloc(strList.length * Uint32Array.BYTES_PER_ELEMENT); strList.forEach((s, idx) => { const strPtr = str2ptr(s); - Module.setValue(listPtr + (4*idx), strPtr, 'i32'); + Module.setValue(listPtr + (4 * idx), strPtr, 'i32'); }); return listPtr;