From a13ad5a89c126b3d50a09be0cd65d98817e1a2f9 Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Fri, 2 Dec 2022 04:32:40 +0200 Subject: [PATCH 1/6] Add logos for Metarhia conference --- Logos/metaconf.png | Bin 0 -> 76765 bytes Logos/metaconf.svg | 14 ++++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 Logos/metaconf.png create mode 100644 Logos/metaconf.svg diff --git a/Logos/metaconf.png b/Logos/metaconf.png new file mode 100644 index 0000000000000000000000000000000000000000..d119feca9073bd5361434b5d86780af9a3eec868 GIT binary patch literal 76765 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 + + + + + + + + + + + + + From c07a60a2a95fe49001d66cc7d4f7258d4cd5463b Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Fri, 2 Dec 2022 04:46:09 +0200 Subject: [PATCH 2/6] Add initial linter, prettier and other dotfiles --- .editorconfig | 12 + .eslintignore | 1 + .eslintrc.json | 11 + .gitattributes | 1 + .gitignore | 5 + .npmignore | 6 + .prettierrc | 2 +- LICENSE | 21 + package-lock.json | 1411 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 27 +- 10 files changed, 1486 insertions(+), 11 deletions(-) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .gitattributes create mode 100644 .npmignore create mode 100644 LICENSE diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..dde7877 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# http://editorconfig.org +root = true + +[*] +end_of_line = lf +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true + +[{*.js,*.mjs,*.ts,*.json,*.yml}] +indent_size = 2 +indent_style = space diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..d2c05d4 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,11 @@ +{ + "extends": ["metarhia", "plugin:prettier/recommended"], + "env": { + "browser": true, + "es6": true, + "node": true + }, + "parserOptions": { + "ecmaVersion": "latest" + } +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fa1385d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/.gitignore b/.gitignore index 3c3629e..4634cc5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ node_modules +/log/ +*.log +*.pem +*.done +.DS_Store diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..4634cc5 --- /dev/null +++ b/.npmignore @@ -0,0 +1,6 @@ +node_modules +/log/ +*.log +*.pem +*.done +.DS_Store diff --git a/.prettierrc b/.prettierrc index 74d3eb4..32f77d6 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,6 +1,6 @@ { "singleQuote": true, - "trailingComma": "es5", + "trailingComma": "all", "overrides": [ { "files": ".prettierrc", diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..65853c9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2022 Metarhia contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/package-lock.json b/package-lock.json index b6a3553..6ea12fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,1416 @@ { "name": "metarhia", - "version": "0.0.1", + "version": "3.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "18.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.10.tgz", + "integrity": "sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "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" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "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" + } + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-config-metarhia": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-metarhia/-/eslint-config-metarhia-8.1.0.tgz", + "integrity": "sha512-uU21zF1i6+o+pH+MD2Y1KKoJBuQ4IKIS7WcOUYK/NtPuM1YYgScrDLNtrCG/kkJOUoOgCd4xl0Wyf2OO2PE2xQ==", + "dev": true + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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 + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "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 + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "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-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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 + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "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 + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "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.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, "prettier": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.1.tgz", - "integrity": "sha512-XXUITwIkGb3CPJ2hforHah/zTINRyie5006Jd2HKy2qz7snEJXl0KLfsJZW/wst9g6R2rFvqba3VpNYdu1hDcA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", + "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "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 + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "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 + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } diff --git a/package.json b/package.json index c5f4aca..32730b2 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "metarhia", - "version": "0.0.1", + "version": "3.0.0", "author": "Timur Shemsedinov ", - "description": "Metarhia", + "description": "Enterprise technology stack for Node.js", "license": "MIT", "keywords": [ "metarhia", "cloud", - "jstp", + "metacom", "impress", "console", "globalstorage" @@ -21,15 +21,30 @@ "email": "timur.shemsedinov@gmail.com" }, "main": "./metarhia.js", + "homepage": "https://metarhia.com", + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/tshemsedinov" + }, "scripts": { - "fmt": "prettier --write \"**/*.js\" \"**/*.json\" \"**/*.md\" \".*rc\"" + "test": "npm run lint && npm run types && metatests test/", + "types": "tsc -p types/tsconfig.json", + "lint": "eslint . && prettier -c \"**/*.js\" \"**/*.json\" \"**/*.md\" \"**/*.ts\"", + "fmt": "prettier --write \"**/*.js\" \"**/*.json\" \"**/*.md\" \"**/*.ts\"" }, "dependencies": {}, "engines": { - "node": ">=0.4.0" + "node": "14 || 16 || 18 || 19" }, "readmeFilename": "README.md", "devDependencies": { - "prettier": "1.16.x" + "@types/node": "^18.7.8", + "eslint": "^8.22.0", + "eslint-config-metarhia": "^8.1.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", + "prettier": "^2.7.1", + "typescript": "^4.7.4" } } From 748d311ed5b2212e50abdaebe4c83f16f7f08c4a Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Fri, 2 Dec 2022 04:46:53 +0200 Subject: [PATCH 3/6] Add github templates and CI configs --- .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/bug-report.yml | 53 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature-request.yml | 22 +++++++++ .github/ISSUE_TEMPLATE/question.md | 17 +++++++ .github/PULL_REQUEST_TEMPLATE.md | 11 +++++ .github/workflows/test.yml | 33 ++++++++++++++ 6 files changed, 137 insertions(+) create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/ISSUE_TEMPLATE/question.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/test.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..e6f64b9 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +patreon: tshemsedinov diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 0000000..e7d08fd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,53 @@ +name: 🐞 Bug report +description: Create a report to help us improve +labels: [bug] +body: + - type: textarea + attributes: + label: Describe the problem + description: A clear and concise description of what the problem is. + validations: + required: true + - type: textarea + attributes: + label: Describe the solution + description: A clear and concise description of the solution you'd like to have. + - type: textarea + attributes: + label: Alternatives + description: A clear and concise description of any alternative solutions or features you've considered. + - type: textarea + attributes: + label: Additional context + description: Add any other context about the problem here. +body: + - type: input + attributes: + label: Impress and Node.js versions + description: see `package.json` and run `node -v` + - type: input + attributes: + label: Platform + description: output of `uname -a` + - type: textarea + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. + validations: + required: true + - type: textarea + attributes: + label: To Reproduce + description: Steps to reproduce the behavior. Usage example or test. + - type: textarea + attributes: + label: Expected behavior + description: A clear and concise description of what you expected. + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to help explain your problem. + - type: textarea + attributes: + label: Additional context + description: Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 0000000..a8105fa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,22 @@ +name: 💡 Feature request +description: Suggest an idea for this project +labels: [bug] +body: + - type: textarea + attributes: + label: Describe the problem + description: A clear and concise description of what the problem is. + validations: + required: true + - type: textarea + attributes: + label: Describe the solution + description: A clear and concise description of the solution you'd like to have. + - type: textarea + attributes: + label: Alternatives + description: A clear and concise description of any alternative solutions or features you've considered. + - type: textarea + attributes: + label: Additional context + description: Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..94f5b5d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,17 @@ +--- +name: ❓ Question +about: Please don't open an issue to ask questions +--- + +Issues on GitHub are intended to be related to problems and feature requests +so we recommend not using this medium to ask them here grin. Thanks for +understanding! + +If you have a question, please check out our support groups and channels for +developers community: + +Telegram: + +- Channel for Metarhia community: https://t.me/metarhia +- Group for Metarhia technology stack community: https://t.me/metaserverless +- Group for NodeUA community: https://t.me/nodeua diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4ca9209 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,11 @@ + + +- [ ] tests and linter show no problems (`npm t`) +- [ ] tests are added/updated for bug fixes and new features +- [ ] code is properly formatted (`npm run fmt`) +- [ ] description of changes is added in CHANGELOG.md +- [ ] update .d.ts typings diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..00cfdd1 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,33 @@ +name: Testing CI + +on: pull_request + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + node: + - 14 + - 16 + - 18 + os: + - ubuntu-latest + - windows-latest + - macos-latest + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + - uses: actions/cache@v2 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + - run: npm ci + - run: npm test From d31a15a8a6ad34ea1e36a613739aeef8fdd7eb5f Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Fri, 2 Dec 2022 04:58:00 +0200 Subject: [PATCH 4/6] Remove duplicated logo --- Logos/metarhia-community.svg | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 Logos/metarhia-community.svg diff --git a/Logos/metarhia-community.svg b/Logos/metarhia-community.svg deleted file mode 100644 index a615b24..0000000 --- a/Logos/metarhia-community.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file From ca3c63fd30c2ccc5b1413ba06f8c792c1245067c Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Fri, 2 Dec 2022 05:02:16 +0200 Subject: [PATCH 5/6] Fix eslint issues --- doc/maintainers.md | 2 +- labels/make-preview.js | 1 + metarhia.js | 4 +--- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/maintainers.md b/doc/maintainers.md index ca13667..b3516e3 100644 --- a/doc/maintainers.md +++ b/doc/maintainers.md @@ -27,7 +27,7 @@ | [`metarhia/sql`][] | [`@metarhia/sql`][] | [lundibundi][] | | [`metarhia/tickplate`][] | [`tickplate`][] | [tshemsedinov][] | | [`metarhia/tools`][] | [`@metarhia/tools`][] | [belochub][] | -| [`metarhia/config`][] | [`@metarhia/config`][] | [tshemsedinov][] | +| [`metarhia/config`][] | [`@metarhia/config`][] | [tshemsedinov][] | [`metarhia/metarhia`]: https://github.com/metarhia/Metarhia [`metarhia/common`]: https://github.com/metarhia/common diff --git a/labels/make-preview.js b/labels/make-preview.js index f708041..9eaa95f 100755 --- a/labels/make-preview.js +++ b/labels/make-preview.js @@ -1,4 +1,5 @@ #!/usr/bin/env node +'use strict'; const labels = require('./labels.json'); const fs = require('fs'); diff --git a/metarhia.js b/metarhia.js index 82df89a..6bbca9e 100644 --- a/metarhia.js +++ b/metarhia.js @@ -1,6 +1,4 @@ 'use strict'; -var metarhia = {}; +const metarhia = {}; module.exports = metarhia; - -// place code here From f014cf0104af2ece2120d6bd9c4f8829f33193e9 Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Fri, 2 Dec 2022 05:02:49 +0200 Subject: [PATCH 6/6] Add typescript and tests stubs --- package-lock.json | 278 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 5 +- test/system.js | 3 + tsconfig.json | 13 +++ types/global.d.ts | 11 ++ 5 files changed, 308 insertions(+), 2 deletions(-) create mode 100644 test/system.js create mode 100644 tsconfig.json create mode 100644 types/global.d.ts diff --git a/package-lock.json b/package-lock.json index 6ea12fa..207c06c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,6 +44,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@metarhia/common": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@metarhia/common/-/common-2.2.0.tgz", + "integrity": "sha512-yAq1FPk2ayLAlj3QGOCSjpN5yWYLD3zLtJWkBRjQUlastAlrLzEMzTmbjLCGzz+lwZSwvSNsGHBsO0C42IO8CQ==", + "dev": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -184,6 +190,12 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -194,6 +206,17 @@ "supports-color": "^7.1.0" } }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -209,6 +232,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -235,6 +264,12 @@ "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -251,6 +286,12 @@ "object-keys": "^1.1.1" } }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -260,6 +301,12 @@ "esutils": "^2.0.2" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "es-abstract": { "version": "1.20.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", @@ -548,6 +595,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -646,6 +699,12 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", @@ -848,6 +907,12 @@ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -991,6 +1056,19 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "metatests": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/metatests/-/metatests-0.8.2.tgz", + "integrity": "sha512-nGutK6VdLy2YD7N6TGsjof78tcemN9QURzAN2VaMp5qo3G8u/m+jpMxYl84SGrWpuyCTVy+CxmVBhVB+hBT3oQ==", + "dev": true, + "requires": { + "@metarhia/common": "^2.2.0", + "tap-mocha-reporter": "^5.0.3", + "tap-yaml": "^1.0.0", + "yaml": "^1.10.2", + "yargs": "^15.4.1" + } + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -1006,6 +1084,15 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1094,6 +1181,12 @@ "p-limit": "^3.0.2" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -1177,6 +1270,18 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -1229,6 +1334,12 @@ "is-regex": "^1.1.4" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -1255,6 +1366,17 @@ "object-inspect": "^1.9.0" } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -1313,6 +1435,50 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "tap-mocha-reporter": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.3.tgz", + "integrity": "sha512-6zlGkaV4J+XMRFkN0X+yuw6xHbE9jyCZ3WUKfw4KxMyRGOpYSRuuQTRJyWX88WWuLdVTuFbxzwXhXuS2XE6o0g==", + "dev": true, + "requires": { + "color-support": "^1.1.0", + "debug": "^4.1.1", + "diff": "^4.0.1", + "escape-string-regexp": "^2.0.0", + "glob": "^7.0.5", + "tap-parser": "^11.0.0", + "tap-yaml": "^1.0.0", + "unicode-length": "^2.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "tap-parser": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.2.tgz", + "integrity": "sha512-6qGlC956rcORw+fg7Fv1iCRAY8/bU9UabUAhs3mXRH6eRmVZcNPLheSXCYaVaYeSwx5xa/1HXZb1537YSvwDZg==", + "dev": true, + "requires": { + "events-to-array": "^1.0.1", + "minipass": "^3.1.6", + "tap-yaml": "^1.0.0" + } + }, + "tap-yaml": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.2.tgz", + "integrity": "sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==", + "dev": true, + "requires": { + "yaml": "^1.10.2" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -1364,6 +1530,15 @@ "which-boxed-primitive": "^1.0.2" } }, + "unicode-length": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.1.0.tgz", + "integrity": "sha512-4bV582zTV9Q02RXBxSUMiuN/KHo5w4aTojuKTNT96DIKps/SIawFp7cS5Mu25VuY1AioGXrmYyzKZUzh8OqoUw==", + "dev": true, + "requires": { + "punycode": "^2.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -1395,18 +1570,121 @@ "is-symbol": "^1.0.3" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 32730b2..32995f4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "scripts": { "test": "npm run lint && npm run types && metatests test/", - "types": "tsc -p types/tsconfig.json", + "types": "tsc", "lint": "eslint . && prettier -c \"**/*.js\" \"**/*.json\" \"**/*.md\" \"**/*.ts\"", "fmt": "prettier --write \"**/*.js\" \"**/*.json\" \"**/*.md\" \"**/*.ts\"" }, @@ -45,6 +45,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.2.1", "prettier": "^2.7.1", - "typescript": "^4.7.4" + "typescript": "^4.7.4", + "metatests": "^0.8.2" } } diff --git a/test/system.js b/test/system.js new file mode 100644 index 0000000..a6250a7 --- /dev/null +++ b/test/system.js @@ -0,0 +1,3 @@ +'use strict'; + +console.log('Test stub'); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1625593 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ESNext", + "moduleResolution": "node", + "strict": true, + "baseUrl": ".", + "preserveWatchOutput": true, + "allowJs": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["types/**/*.ts", "application/**/*"] +} diff --git a/types/global.d.ts b/types/global.d.ts new file mode 100644 index 0000000..2aa8eca --- /dev/null +++ b/types/global.d.ts @@ -0,0 +1,11 @@ +declare global { + namespace metarhia {} + + namespace api {} + + namespace lib {} + + namespace domain {} + + namespace db {} +}