diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..54348f9e --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,73 @@ +module.exports = { + env: { + es6: true, + node: true, + }, + parser: '@typescript-eslint/parser', + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig-eslint.json', + }, + plugins: [ + '@typescript-eslint', + ], + ignorePatterns: [ + '**/node_modules', + '**/dist', + ], + rules: { + '@typescript-eslint/consistent-type-imports': [ + 'warn', + { + prefer: 'type-imports', + }, + ], + '@typescript-eslint/prefer-readonly': 'warn', + '@typescript-eslint/quotes': [ + 'warn', + 'single', + { + avoidEscape: true, + }, + ], + '@typescript-eslint/semi': [ + 'warn', + 'never', + ], + '@typescript-eslint/indent': [ + 'warn', + 'tab', + ], + '@typescript-eslint/member-delimiter-style': [ + 'warn', + { + multiline: { + delimiter: 'comma', + requireLast: true, + }, + singleline: { + delimiter: 'comma', + requireLast: false, + }, + overrides: { + interface: { + multiline: { + delimiter: undefined, + }, + }, + }, + }, + ], + 'comma-dangle': 'off', + '@typescript-eslint/comma-dangle': ['warn', 'always-multiline'], + indent: 'off', + 'eol-last': 'warn', + 'no-fallthrough': 'warn', + 'prefer-const': 'warn', + 'prefer-object-spread': 'warn', + 'quote-props': [ + 'warn', + 'as-needed', + ], + }, +} diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 800a6a60..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,74 +0,0 @@ -module.exports = { - "env": { - "es6": true, - "node": true - }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "tsconfigRootDir": __dirname, - "project": "./tsconfig-eslint.json" - }, - "plugins": [ - "@typescript-eslint" - ], - "ignorePatterns": [ - "**/node_modules", - "**/dist", - ".eslintrc.js" - ], - "rules": { - "@typescript-eslint/consistent-type-imports": [ - "warn", - { - "prefer": "type-imports" - } - ], - "@typescript-eslint/prefer-readonly": "warn", - "@typescript-eslint/quotes": [ - "warn", - "single", - { - "avoidEscape": true - } - ], - "@typescript-eslint/semi": [ - "warn", - "never" - ], - "@typescript-eslint/indent": [ - "warn", - "tab" - ], - "@typescript-eslint/member-delimiter-style": [ - "warn", - { - "multiline": { - "delimiter": "comma", - "requireLast": true - }, - "singleline": { - "delimiter": "comma", - "requireLast": false - }, - "overrides": { - "interface": { - "multiline": { - "delimiter": undefined - } - } - } - } - ], - "comma-dangle": "off", - "@typescript-eslint/comma-dangle": ["warn", "always-multiline"], - "indent": "off", - "eol-last": "warn", - "no-fallthrough": "warn", - "prefer-const": "warn", - "prefer-object-spread": "warn", - "quote-props": [ - "warn", - "as-needed" - ] - } -} diff --git a/.vscode/settings.json b/.vscode/settings.json index 8a2d2190..a13ca050 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,6 +11,12 @@ "source.fixAll.eslint": true } }, + "[javascript]": { + "editor.codeActionsOnSave": { + "source.organizeImports": true, + "source.fixAll.eslint": true + } + }, "[markdown]": { "editor.insertSpaces": true, "editor.tabSize": 2 @@ -18,5 +24,6 @@ "typescript.format.semicolons": "remove", "editor.insertSpaces": false, "files.insertFinalNewline": true, - "files.trimFinalNewlines": true + "files.trimFinalNewlines": true, + "typescript.tsdk": "node_modules\\typescript\\lib" } diff --git a/package-lock.json b/package-lock.json index 02ebfa41..689427b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "brace": "^0.11.1", "buffer": "^6.0.3", "comment-json": "^4.1.1", - "deepslate": "^0.11.0-beta.1", + "deepslate": "^0.11.0", "deepslate-1.18": "npm:deepslate@^0.9.0-beta.9", "deepslate-1.18.2": "npm:deepslate@^0.9.0-beta.13", "deepslate-rs": "^0.1.6", @@ -35,7 +35,7 @@ "sourcemapped-stacktrace": "^1.1.11" }, "devDependencies": { - "@preact/preset-vite": "^2.1.0", + "@preact/preset-vite": "^2.2.0", "@rollup/plugin-alias": "^3.1.9", "@rollup/plugin-html": "^0.2.3", "@types/google.analytics": "0.0.40", @@ -45,15 +45,15 @@ "@types/lz-string": "^1.3.34", "@types/marked": "^4.0.1", "@types/seedrandom": "^2.4.28", - "@typescript-eslint/eslint-plugin": "^4.25.0", - "@typescript-eslint/parser": "^4.25.0", + "@typescript-eslint/eslint-plugin": "^5.28.0", + "@typescript-eslint/parser": "^5.28.0", "cypress": "^9.2.0", - "eslint": "^7.27.0", + "eslint": "^8.17.0", "fast-glob": "^3.2.11", - "preact": "^10.5.13", + "preact": "^10.8.0", "preact-router": "^3.2.1", "rollup-plugin-visualizer": "^5.6.0", - "typescript": "^4.6.4", + "typescript": "^4.7.3", "vite": "^2.3.7", "vite-plugin-static-copy": "^0.5.0" } @@ -117,6 +117,18 @@ "source-map": "^0.5.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.14.4", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", @@ -162,12 +174,15 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "dependencies": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { @@ -195,6 +210,15 @@ "@babel/types": "^7.12.13" } }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-replace-supers": { "version": "7.14.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", @@ -226,10 +250,13 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-validator-option": { "version": "7.12.17", @@ -271,6 +298,55 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/template": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", @@ -299,13 +375,16 @@ } }, "node_modules/@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@cypress/request": { @@ -357,29 +436,35 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", - "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@eslint/eslintrc/node_modules/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 + }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -391,6 +476,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@giscus/react": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@giscus/react/-/react-1.1.2.tgz", @@ -400,6 +497,26 @@ "react-dom": "^16 || ^17 || ^18" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@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 + }, "node_modules/@mcschema/core": { "version": "0.12.35", "resolved": "https://registry.npmjs.org/@mcschema/core/-/core-0.12.35.tgz", @@ -494,15 +611,19 @@ } }, "node_modules/@preact/preset-vite": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.1.0.tgz", - "integrity": "sha512-4kJgbitw/ESjO21QwJNN8/DQ40cq4t8hsADKqAEUIXXVsvGecz0JRaMwrA+yy4S0AcUQz7rJvquEFTmsvotSGg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.2.0.tgz", + "integrity": "sha512-xOtPzyVSPphUF/tRnzjxkCR/ovbCS6O25ekdCw5MGKcaAkb6PDRo50tS1x2n0+O9qL7Z/qrHJKpyCVn29A4iMg==", "dev": true, "dependencies": { - "@prefresh/vite": "^2.1.0", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@prefresh/vite": "^2.2.6", + "@rollup/pluginutils": "^4.1.1", "babel-plugin-transform-hook-names": "^1.0.2", "debug": "^4.3.1", - "kolorist": "^1.2.10" + "kolorist": "^1.2.10", + "resolve": "^1.20.0" }, "peerDependencies": { "@babel/core": "7.x", @@ -510,36 +631,36 @@ } }, "node_modules/@prefresh/babel-plugin": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.4.1.tgz", - "integrity": "sha512-gj3ekiYtHlZNz0zFI1z6a9mcYX80Qacw84+2++7V1skvO7kQoV2ux56r8bJkTBbKMVxwAgaYrxxIdUCYlclE7Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.4.3.tgz", + "integrity": "sha512-fYAWbU1WDSLn108kKY4eDaaeUcnszFqXjgaGKYXNZ5NLulpRTpsrY+Sbfo9q8LDpWrBpqIgzjrwNnvglWI1xNQ==", "dev": true }, "node_modules/@prefresh/core": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.3.2.tgz", - "integrity": "sha512-Iv+uI698KDgWsrKpLvOgN3hmAMyvhVgn09mcnhZ98BUNdg/qrxE7tcUf5yFCImkgqED5/Dcn8G5hFy4IikEDvg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.3.4.tgz", + "integrity": "sha512-s7iNsnyJ3lZEUrYIgmVIB/hKtp4U6mdD91a31Zg7Q8M49O0x2KThrbrMQYraoDDrs4STdFB8Zv6bceUguOoX1A==", "dev": true, "peerDependencies": { "preact": "^10.0.0" } }, "node_modules/@prefresh/utils": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.1.1.tgz", - "integrity": "sha512-MUhT5m2XNN5NsZl4GnpuvlzLo6VSTa/+wBfBd3fiWUvHGhv0GF9hnA1pd//v0uJaKwUnVRQ1hYElxCV7DtYsCQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.1.3.tgz", + "integrity": "sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A==", "dev": true }, "node_modules/@prefresh/vite": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.2.2.tgz", - "integrity": "sha512-cPQZAuorYCIMxBkH7zGJ75mHfPltWoW6ADdnphQ6J0PzndsJ2w6eiu30ydMW6RGMg2vIGxgAAl/vBkwS7WFqBw==", + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.2.8.tgz", + "integrity": "sha512-yGGa+PKPYPTzMlxgQ8aBgxw9K69I8X4iQ0E6KOcIvls96WKqKLLOYZW9SUgCve446jpUXvc9udviPBZjCeZIIQ==", "dev": true, "dependencies": { "@babel/core": "^7.9.6", - "@prefresh/babel-plugin": "0.4.1", - "@prefresh/core": "^1.3.1", - "@prefresh/utils": "^1.0.0", + "@prefresh/babel-plugin": "0.4.3", + "@prefresh/core": "^1.3.3", + "@prefresh/utils": "^1.1.2", "@rollup/pluginutils": "^4.1.0" }, "peerDependencies": { @@ -575,9 +696,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", - "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, "dependencies": { "estree-walker": "^2.0.1", @@ -585,9 +706,6 @@ }, "engines": { "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" } }, "node_modules/@types/google.analytics": { @@ -615,9 +733,9 @@ "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "node_modules/@types/lz-string": { @@ -668,30 +786,32 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz", - "integrity": "sha512-aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz", + "integrity": "sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "4.26.1", - "@typescript-eslint/scope-manager": "4.26.1", - "debug": "^4.3.1", + "@typescript-eslint/scope-manager": "5.28.0", + "@typescript-eslint/type-utils": "5.28.0", + "@typescript-eslint/utils": "5.28.0", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.21", - "regexpp": "^3.1.0", - "semver": "^7.3.5", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -700,9 +820,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -714,50 +834,26 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.1.tgz", - "integrity": "sha512-sQHBugRhrXzRCs9PaGg6rowie4i8s/iD/DpTB+EXte8OMDfdCG5TvO73XlO9Wc/zi0uyN4qOmX9hIjQEyhnbmQ==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.26.1", - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/typescript-estree": "4.26.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.1.tgz", - "integrity": "sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz", + "integrity": "sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "4.26.1", - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/typescript-estree": "4.26.1", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.28.0", + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/typescript-estree": "5.28.0", + "debug": "^4.3.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -766,29 +862,55 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.26.1.tgz", - "integrity": "sha512-TW1X2p62FQ8Rlne+WEShyd7ac2LA6o27S9i131W4NwDSfyeVlQWhw8ylldNNS8JG6oJB9Ha9Xyc+IUcqipvheQ==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz", + "integrity": "sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/visitor-keys": "4.26.1" + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/visitor-keys": "5.28.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz", + "integrity": "sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.28.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/types": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.26.1.tgz", - "integrity": "sha512-STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz", + "integrity": "sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==", "dev": true, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -796,21 +918,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz", - "integrity": "sha512-l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz", + "integrity": "sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/visitor-keys": "4.26.1", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/visitor-keys": "5.28.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -823,9 +945,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -837,17 +959,41 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz", - "integrity": "sha512-IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw==", + "node_modules/@typescript-eslint/utils": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz", + "integrity": "sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.26.1", - "eslint-visitor-keys": "^2.0.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.28.0", + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/typescript-estree": "5.28.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz", + "integrity": "sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.28.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -860,9 +1006,9 @@ "integrity": "sha512-woLBVy50a9evpFFxyZiW6Jj4BXROJlQF2dF9Wzk0ZFqhjQBJ9uS21+KQkrz54674r7Ppiy61gXnzpVie+EMkfw==" }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -872,9 +1018,9 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -1765,9 +1911,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1782,15 +1928,16 @@ } }, "node_modules/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=", + "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 }, "node_modules/deepslate": { - "version": "0.11.0-beta.1", - "resolved": "https://registry.npmjs.org/deepslate/-/deepslate-0.11.0-beta.1.tgz", - "integrity": "sha512-Nem5kB4p0Usa1kkPw7PdhQRpq9xqezAnMPDv14SWCmfExmhkv4sNCYuBzrz+09QagK5TOUSQgaOuLoqIXlfbNA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/deepslate/-/deepslate-0.11.0.tgz", + "integrity": "sha512-EPKWS+cEuBZqb8eNH8mCCV+eoYoDTnWQZY+LprQtmcIpQlmCaKAzj3C64qahHBTru8XwAS61UN1Dag02AJdjTw==", + "license": "MIT", "dependencies": { "gl-matrix": "^3.3.0", "md5": "^2.3.0", @@ -2284,48 +2431,44 @@ } }, "node_modules/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.2", + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2333,7 +2476,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2370,7 +2513,7 @@ "eslint": ">=5" } }, - "node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/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==", @@ -2379,13 +2522,13 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/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, - "dependencies": { - "@babel/highlight": "^7.10.4" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -2403,10 +2546,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/eslint/node_modules/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 + }, "node_modules/eslint/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2449,34 +2598,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint/node_modules/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, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/eslint/node_modules/globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2497,19 +2656,16 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/eslint/node_modules/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, "dependencies": { - "lru-cache": "^6.0.0" + "argparse": "^2.0.1" }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "js-yaml": "bin/js-yaml.js" } }, "node_modules/eslint/node_modules/supports-color": { @@ -2525,26 +2681,17 @@ } }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/esprima": { @@ -2572,9 +2719,9 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -2593,9 +2740,9 @@ } }, "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -2732,7 +2879,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { @@ -2806,9 +2953,9 @@ } }, "node_modules/flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/forever-agent": { @@ -2863,7 +3010,7 @@ "node_modules/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=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, "node_modules/gensync": { @@ -2979,16 +3126,16 @@ } }, "node_modules/globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -2998,15 +3145,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -3098,9 +3236,9 @@ ] }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, "engines": { "node": ">= 4" @@ -3125,7 +3263,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -3240,9 +3378,9 @@ } }, "node_modules/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==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -3389,7 +3527,7 @@ "node_modules/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=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-safe": { @@ -3495,12 +3633,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3513,12 +3645,6 @@ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -3782,9 +3908,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -3820,7 +3946,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/node-releases": { @@ -4051,9 +4177,9 @@ } }, "node_modules/preact": { - "version": "10.5.13", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.13.tgz", - "integrity": "sha512-q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.8.0.tgz", + "integrity": "sha512-2yXIS/h/UP5go0rBKesZqx0LuScqjECtH5pq8SQu3t6X2XNUWjCY4pcViUttDu3qX6NMxGiA/RuxOZd00QLCzg==", "dev": true, "funding": { "type": "opencollective", @@ -4090,15 +4216,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/proxy-from-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", @@ -4209,9 +4326,9 @@ } }, "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { "node": ">=8" @@ -4246,15 +4363,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -4659,49 +4767,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/throttleit": { @@ -4826,9 +4895,9 @@ } }, "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -5180,6 +5249,15 @@ "source-map": "^0.5.0" } }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, "@babel/helper-compilation-targets": { "version": "7.14.4", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", @@ -5222,12 +5300,12 @@ } }, "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { @@ -5255,6 +5333,12 @@ "@babel/types": "^7.12.13" } }, + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true + }, "@babel/helper-replace-supers": { "version": "7.14.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", @@ -5286,9 +5370,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/helper-validator-option": { @@ -5325,6 +5409,37 @@ "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", "dev": true }, + "@babel/plugin-syntax-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + } + }, "@babel/template": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", @@ -5353,12 +5468,12 @@ } }, "@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, @@ -5410,30 +5525,45 @@ } }, "@eslint/eslintrc": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", - "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { + "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 + }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" } + }, + "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" + } } } }, @@ -5443,6 +5573,23 @@ "integrity": "sha512-htSAAiTtoHTRE8GqSSkWmT+Iq7LJhtqSmr+HjEC1cXlNd1WeLVZXjnuiIj7+L8DOUnAdfh+1FClN304FVxIcsQ==", "requires": {} }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@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 + }, "@mcschema/core": { "version": "0.12.35", "resolved": "https://registry.npmjs.org/@mcschema/core/-/core-0.12.35.tgz", @@ -5528,46 +5675,50 @@ } }, "@preact/preset-vite": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.1.0.tgz", - "integrity": "sha512-4kJgbitw/ESjO21QwJNN8/DQ40cq4t8hsADKqAEUIXXVsvGecz0JRaMwrA+yy4S0AcUQz7rJvquEFTmsvotSGg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.2.0.tgz", + "integrity": "sha512-xOtPzyVSPphUF/tRnzjxkCR/ovbCS6O25ekdCw5MGKcaAkb6PDRo50tS1x2n0+O9qL7Z/qrHJKpyCVn29A4iMg==", "dev": true, "requires": { - "@prefresh/vite": "^2.1.0", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@prefresh/vite": "^2.2.6", + "@rollup/pluginutils": "^4.1.1", "babel-plugin-transform-hook-names": "^1.0.2", "debug": "^4.3.1", - "kolorist": "^1.2.10" + "kolorist": "^1.2.10", + "resolve": "^1.20.0" } }, "@prefresh/babel-plugin": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.4.1.tgz", - "integrity": "sha512-gj3ekiYtHlZNz0zFI1z6a9mcYX80Qacw84+2++7V1skvO7kQoV2ux56r8bJkTBbKMVxwAgaYrxxIdUCYlclE7Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.4.3.tgz", + "integrity": "sha512-fYAWbU1WDSLn108kKY4eDaaeUcnszFqXjgaGKYXNZ5NLulpRTpsrY+Sbfo9q8LDpWrBpqIgzjrwNnvglWI1xNQ==", "dev": true }, "@prefresh/core": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.3.2.tgz", - "integrity": "sha512-Iv+uI698KDgWsrKpLvOgN3hmAMyvhVgn09mcnhZ98BUNdg/qrxE7tcUf5yFCImkgqED5/Dcn8G5hFy4IikEDvg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.3.4.tgz", + "integrity": "sha512-s7iNsnyJ3lZEUrYIgmVIB/hKtp4U6mdD91a31Zg7Q8M49O0x2KThrbrMQYraoDDrs4STdFB8Zv6bceUguOoX1A==", "dev": true, "requires": {} }, "@prefresh/utils": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.1.1.tgz", - "integrity": "sha512-MUhT5m2XNN5NsZl4GnpuvlzLo6VSTa/+wBfBd3fiWUvHGhv0GF9hnA1pd//v0uJaKwUnVRQ1hYElxCV7DtYsCQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.1.3.tgz", + "integrity": "sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A==", "dev": true }, "@prefresh/vite": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.2.2.tgz", - "integrity": "sha512-cPQZAuorYCIMxBkH7zGJ75mHfPltWoW6ADdnphQ6J0PzndsJ2w6eiu30ydMW6RGMg2vIGxgAAl/vBkwS7WFqBw==", + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.2.8.tgz", + "integrity": "sha512-yGGa+PKPYPTzMlxgQ8aBgxw9K69I8X4iQ0E6KOcIvls96WKqKLLOYZW9SUgCve446jpUXvc9udviPBZjCeZIIQ==", "dev": true, "requires": { "@babel/core": "^7.9.6", - "@prefresh/babel-plugin": "0.4.1", - "@prefresh/core": "^1.3.1", - "@prefresh/utils": "^1.0.0", + "@prefresh/babel-plugin": "0.4.3", + "@prefresh/core": "^1.3.3", + "@prefresh/utils": "^1.1.2", "@rollup/pluginutils": "^4.1.0" } }, @@ -5588,9 +5739,9 @@ "requires": {} }, "@rollup/pluginutils": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", - "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, "requires": { "estree-walker": "^2.0.1", @@ -5622,9 +5773,9 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "@types/lz-string": { @@ -5675,25 +5826,26 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz", - "integrity": "sha512-aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz", + "integrity": "sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.26.1", - "@typescript-eslint/scope-manager": "4.26.1", - "debug": "^4.3.1", + "@typescript-eslint/scope-manager": "5.28.0", + "@typescript-eslint/type-utils": "5.28.0", + "@typescript-eslint/utils": "5.28.0", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.21", - "regexpp": "^3.1.0", - "semver": "^7.3.5", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -5701,82 +5853,93 @@ } } }, - "@typescript-eslint/experimental-utils": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.1.tgz", - "integrity": "sha512-sQHBugRhrXzRCs9PaGg6rowie4i8s/iD/DpTB+EXte8OMDfdCG5TvO73XlO9Wc/zi0uyN4qOmX9hIjQEyhnbmQ==", + "@typescript-eslint/parser": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz", + "integrity": "sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==", "dev": true, "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.26.1", - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/typescript-estree": "4.26.1", + "@typescript-eslint/scope-manager": "5.28.0", + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/typescript-estree": "5.28.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz", + "integrity": "sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/visitor-keys": "5.28.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz", + "integrity": "sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.28.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz", + "integrity": "sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz", + "integrity": "sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/visitor-keys": "5.28.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz", + "integrity": "sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.28.0", + "@typescript-eslint/types": "5.28.0", + "@typescript-eslint/typescript-estree": "5.28.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, - "@typescript-eslint/parser": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.1.tgz", - "integrity": "sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.26.1", - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/typescript-estree": "4.26.1", - "debug": "^4.3.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.26.1.tgz", - "integrity": "sha512-TW1X2p62FQ8Rlne+WEShyd7ac2LA6o27S9i131W4NwDSfyeVlQWhw8ylldNNS8JG6oJB9Ha9Xyc+IUcqipvheQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/visitor-keys": "4.26.1" - } - }, - "@typescript-eslint/types": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.26.1.tgz", - "integrity": "sha512-STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz", - "integrity": "sha512-l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.26.1", - "@typescript-eslint/visitor-keys": "4.26.1", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "@typescript-eslint/visitor-keys": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz", - "integrity": "sha512-IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz", + "integrity": "sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.26.1", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.28.0", + "eslint-visitor-keys": "^3.3.0" } }, "@zip.js/zip.js": { @@ -5785,15 +5948,15 @@ "integrity": "sha512-woLBVy50a9evpFFxyZiW6Jj4BXROJlQF2dF9Wzk0ZFqhjQBJ9uS21+KQkrz54674r7Ppiy61gXnzpVie+EMkfw==" }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, @@ -6450,24 +6613,24 @@ "dev": true }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "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.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "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 }, "deepslate": { - "version": "0.11.0-beta.1", - "resolved": "https://registry.npmjs.org/deepslate/-/deepslate-0.11.0-beta.1.tgz", - "integrity": "sha512-Nem5kB4p0Usa1kkPw7PdhQRpq9xqezAnMPDv14SWCmfExmhkv4sNCYuBzrz+09QagK5TOUSQgaOuLoqIXlfbNA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/deepslate/-/deepslate-0.11.0.tgz", + "integrity": "sha512-EPKWS+cEuBZqb8eNH8mCCV+eoYoDTnWQZY+LprQtmcIpQlmCaKAzj3C64qahHBTru8XwAS61UN1Dag02AJdjTw==", "requires": { "gl-matrix": "^3.3.0", "md5": "^2.3.0", @@ -6750,61 +6913,48 @@ "dev": true }, "eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.2", + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -6814,10 +6964,16 @@ "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 + }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -6845,27 +7001,35 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "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": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "esrecurse": "^4.3.0", + "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 + }, + "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.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -6877,13 +7041,13 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "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": { - "lru-cache": "^6.0.0" + "argparse": "^2.0.1" } }, "supports-color": { @@ -6914,33 +7078,33 @@ "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" - } - }, - "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 - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "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.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -6956,9 +7120,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -6973,9 +7137,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -7082,7 +7246,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -7141,9 +7305,9 @@ } }, "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "forever-agent": { @@ -7185,7 +7349,7 @@ "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=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, "gensync": { @@ -7271,25 +7435,17 @@ "dev": true }, "globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } } }, "graceful-fs": { @@ -7351,9 +7507,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { @@ -7369,7 +7525,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { @@ -7451,9 +7607,9 @@ "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==", + "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" @@ -7561,7 +7717,7 @@ "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=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { @@ -7643,12 +7799,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7661,12 +7811,6 @@ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -7859,9 +8003,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "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" @@ -7888,7 +8032,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node-releases": { @@ -8055,9 +8199,9 @@ } }, "preact": { - "version": "10.5.13", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.13.tgz", - "integrity": "sha512-q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.8.0.tgz", + "integrity": "sha512-2yXIS/h/UP5go0rBKesZqx0LuScqjECtH5pq8SQu3t6X2XNUWjCY4pcViUttDu3qX6NMxGiA/RuxOZd00QLCzg==", "dev": true }, "preact-router": { @@ -8079,12 +8223,6 @@ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "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 - }, "proxy-from-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", @@ -8162,9 +8300,9 @@ } }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "repeat-string": { @@ -8187,12 +8325,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -8483,44 +8615,10 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "throttleit": { @@ -8615,9 +8713,9 @@ "dev": true }, "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", "dev": true }, "untildify": { diff --git a/package.json b/package.json index 5cc99a3b..cd49d4dd 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "private": true, "description": "", + "type": "module", "main": "index.js", "scripts": { "dev": "vite", @@ -28,7 +29,7 @@ "brace": "^0.11.1", "buffer": "^6.0.3", "comment-json": "^4.1.1", - "deepslate": "^0.11.0-beta.1", + "deepslate": "^0.11.0", "deepslate-1.18": "npm:deepslate@^0.9.0-beta.9", "deepslate-1.18.2": "npm:deepslate@^0.9.0-beta.13", "deepslate-rs": "^0.1.6", @@ -41,7 +42,7 @@ "sourcemapped-stacktrace": "^1.1.11" }, "devDependencies": { - "@preact/preset-vite": "^2.1.0", + "@preact/preset-vite": "^2.2.0", "@rollup/plugin-alias": "^3.1.9", "@rollup/plugin-html": "^0.2.3", "@types/google.analytics": "0.0.40", @@ -51,15 +52,15 @@ "@types/lz-string": "^1.3.34", "@types/marked": "^4.0.1", "@types/seedrandom": "^2.4.28", - "@typescript-eslint/eslint-plugin": "^4.25.0", - "@typescript-eslint/parser": "^4.25.0", + "@typescript-eslint/eslint-plugin": "^5.28.0", + "@typescript-eslint/parser": "^5.28.0", "cypress": "^9.2.0", - "eslint": "^7.27.0", + "eslint": "^8.17.0", "fast-glob": "^3.2.11", - "preact": "^10.5.13", + "preact": "^10.8.0", "preact-router": "^3.2.1", "rollup-plugin-visualizer": "^5.6.0", - "typescript": "^4.6.4", + "typescript": "^4.7.3", "vite": "^2.3.7", "vite-plugin-static-copy": "^0.5.0" } diff --git a/src/app/Analytics.ts b/src/app/Analytics.ts index b2d9e9d0..d3bc3817 100644 --- a/src/app/Analytics.ts +++ b/src/app/Analytics.ts @@ -1,4 +1,4 @@ -import type { VersionId } from './services' +import type { VersionId } from './services/index.js' type Method = 'menu' | 'hotkey' diff --git a/src/app/App.tsx b/src/app/App.tsx index 0d7dc060..72093387 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -2,10 +2,10 @@ import type { RouterOnChangeArgs } from 'preact-router' import { Router } from 'preact-router' import '../styles/global.css' import '../styles/nodes.css' -import { Analytics } from './Analytics' -import { Header } from './components' -import { Category, Changelog, Generator, Guide, Guides, Home, Partners, Sounds, Versions } from './pages' -import { cleanUrl } from './Utils' +import { Analytics } from './Analytics.js' +import { Header } from './components/index.js' +import { Category, Changelog, Generator, Guide, Guides, Home, Partners, Sounds, Versions } from './pages/index.js' +import { cleanUrl } from './Utils.js' export function App() { const changeRoute = (e: RouterOnChangeArgs) => { diff --git a/src/app/Config.ts b/src/app/Config.ts new file mode 100644 index 00000000..7816ba4c --- /dev/null +++ b/src/app/Config.ts @@ -0,0 +1,27 @@ +import config from '../config.json' + +interface Config { + languages: Array<{ + code: string, + name: string, + schemas?: boolean, + }>, + versions: Array<{ + id: string, + pack_format: number, + ref?: string, + dynamic?: boolean, + }>, + generators: Array<{ + id: string, + url: string, + schema: string, + path?: string, + category?: string, + partner?: string, + minVersion?: string, + maxVersion?: string, + }>, +} + +export default config as Config diff --git a/src/app/Main.tsx b/src/app/Main.tsx index e2286d73..a805cb16 100644 --- a/src/app/Main.tsx +++ b/src/app/Main.tsx @@ -1,8 +1,8 @@ import { render } from 'preact' import '../styles/global.css' import '../styles/nodes.css' -import { App } from './App' -import { LocaleProvider, ProjectProvider, StoreProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts' +import { App } from './App.js' +import { LocaleProvider, ProjectProvider, StoreProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts/index.js' function Main() { return ( diff --git a/src/app/Store.ts b/src/app/Store.ts index 862d938b..aa69b1e7 100644 --- a/src/app/Store.ts +++ b/src/app/Store.ts @@ -1,7 +1,7 @@ -import type { Project } from './contexts' -import { DRAFT_PROJECT } from './contexts' -import type { VersionId } from './services' -import { VersionIds } from './services' +import type { Project } from './contexts/index.js' +import { DRAFT_PROJECT } from './contexts/index.js' +import type { VersionId } from './services/index.js' +import { VersionIds } from './services/index.js' export namespace Store { export const ID_LANGUAGE = 'language' diff --git a/src/app/Utils.ts b/src/app/Utils.ts index 72884252..c075b210 100644 --- a/src/app/Utils.ts +++ b/src/app/Utils.ts @@ -4,7 +4,7 @@ import * as zip from '@zip.js/zip.js' import yaml from 'js-yaml' import { route } from 'preact-router' import rfdc from 'rfdc' -import config from '../config.json' +import config from './Config.js' export function isPromise(obj: any): obj is Promise { return typeof (obj as any)?.then === 'function' diff --git a/src/app/components/Btn.tsx b/src/app/components/Btn.tsx index 34117a72..d8166209 100644 --- a/src/app/components/Btn.tsx +++ b/src/app/components/Btn.tsx @@ -1,4 +1,4 @@ -import { Octicon } from '.' +import { Octicon } from './index.js' type BtnProps = { icon?: keyof typeof Octicon, diff --git a/src/app/components/BtnInput.tsx b/src/app/components/BtnInput.tsx index 3eab5abb..a1263f74 100644 --- a/src/app/components/BtnInput.tsx +++ b/src/app/components/BtnInput.tsx @@ -1,6 +1,6 @@ import { useEffect, useRef } from 'preact/hooks' -import { Octicon } from '.' -import { hexId } from '../Utils' +import { hexId } from '../Utils.js' +import { Octicon } from './index.js' type BtnInputProps = { icon?: keyof typeof Octicon, diff --git a/src/app/components/BtnLink.tsx b/src/app/components/BtnLink.tsx index 1232827e..8d2772cd 100644 --- a/src/app/components/BtnLink.tsx +++ b/src/app/components/BtnLink.tsx @@ -1,4 +1,4 @@ -import { Octicon } from '.' +import { Octicon } from './index.js' interface Props { link?: string, diff --git a/src/app/components/BtnMenu.tsx b/src/app/components/BtnMenu.tsx index 00940da9..0cc1eee3 100644 --- a/src/app/components/BtnMenu.tsx +++ b/src/app/components/BtnMenu.tsx @@ -1,7 +1,7 @@ import type { ComponentChildren } from 'preact' -import type { Octicon } from '.' -import { Btn } from '.' -import { useFocus } from '../hooks' +import { useFocus } from '../hooks/index.js' +import type { Octicon } from './index.js' +import { Btn } from './index.js' interface BtnMenuProps extends JSX.HTMLAttributes { icon?: keyof typeof Octicon, diff --git a/src/app/components/ErrorPanel.tsx b/src/app/components/ErrorPanel.tsx index 29bd6aa4..75e0172a 100644 --- a/src/app/components/ErrorPanel.tsx +++ b/src/app/components/ErrorPanel.tsx @@ -1,5 +1,5 @@ import { useEffect, useMemo, useState } from 'preact/hooks' -import { Octicon } from './Octicon' +import { Octicon } from './index.js' type ErrorPanelProps = { error: string | Error, diff --git a/src/app/components/FileUpload.tsx b/src/app/components/FileUpload.tsx index dfb6fcee..bdd017ef 100644 --- a/src/app/components/FileUpload.tsx +++ b/src/app/components/FileUpload.tsx @@ -1,6 +1,6 @@ import { useCallback, useRef } from 'preact/hooks' -import { Btn } from '.' -import { useLocale } from '../contexts' +import { useLocale } from '../contexts/index.js' +import { Btn } from './index.js' interface Props { value: File | undefined, diff --git a/src/app/components/Footer.tsx b/src/app/components/Footer.tsx index 47aaf959..ca2a13b0 100644 --- a/src/app/components/Footer.tsx +++ b/src/app/components/Footer.tsx @@ -1,5 +1,5 @@ -import { Octicon } from '.' -import { useLocale } from '../contexts' +import { useLocale } from '../contexts/index.js' +import { Octicon } from './index.js' interface Props { donate?: boolean, diff --git a/src/app/components/Giscus.tsx b/src/app/components/Giscus.tsx index 74bcf01e..f786b2a9 100644 --- a/src/app/components/Giscus.tsx +++ b/src/app/components/Giscus.tsx @@ -1,5 +1,5 @@ import { Giscus as GiscusReact } from '@giscus/react' -import { useTheme } from '../contexts' +import { useTheme } from '../contexts/index.js' interface Props { term?: string, diff --git a/src/app/components/GuideCard.tsx b/src/app/components/GuideCard.tsx index 378bde4c..ac9e13f8 100644 --- a/src/app/components/GuideCard.tsx +++ b/src/app/components/GuideCard.tsx @@ -1,4 +1,4 @@ -import { ChangelogTag } from './versions' +import { ChangelogTag } from './index.js' interface Props { title: string, diff --git a/src/app/components/Header.tsx b/src/app/components/Header.tsx index 3a84b24a..a325f6f7 100644 --- a/src/app/components/Header.tsx +++ b/src/app/components/Header.tsx @@ -1,9 +1,9 @@ import { getCurrentUrl, Link, route } from 'preact-router' -import { Btn, BtnMenu, Icons, Octicon } from '.' -import config from '../../config.json' -import { useLocale, useProject, useTheme, useTitle, useVersion } from '../contexts' -import { checkVersion } from '../services' -import { cleanUrl, getGenerator } from '../Utils' +import config from '../Config.js' +import { useLocale, useProject, useTheme, useTitle, useVersion } from '../contexts/index.js' +import { checkVersion } from '../services/index.js' +import { cleanUrl, getGenerator } from '../Utils.js' +import { Btn, BtnMenu, Icons, Octicon } from './index.js' const Themes: Record = { system: 'device_desktop', diff --git a/src/app/components/Modal.tsx b/src/app/components/Modal.tsx index e376fedd..a5741e72 100644 --- a/src/app/components/Modal.tsx +++ b/src/app/components/Modal.tsx @@ -1,10 +1,10 @@ +import type { JSX } from 'preact' import { useCallback, useEffect } from 'preact/hooks' -import type { JSXInternal } from 'preact/src/jsx' -import { LOSE_FOCUS } from '../hooks' +import { LOSE_FOCUS } from '../hooks/index.js' const MODALS_KEY = 'data-modals' -interface Props extends JSXInternal.HTMLAttributes { +interface Props extends JSX.HTMLAttributes { onDismiss: () => void, } export function Modal(props: Props) { diff --git a/src/app/components/ToolCard.tsx b/src/app/components/ToolCard.tsx index 7c338ef3..7e16869c 100644 --- a/src/app/components/ToolCard.tsx +++ b/src/app/components/ToolCard.tsx @@ -1,5 +1,5 @@ import type { ComponentChildren } from 'preact' -import { Icons } from './Icons' +import { Icons } from './Icons.js' type ToolCardProps = { title: string, diff --git a/src/app/components/TreeView.tsx b/src/app/components/TreeView.tsx index 1bf3b523..498942a5 100644 --- a/src/app/components/TreeView.tsx +++ b/src/app/components/TreeView.tsx @@ -1,6 +1,6 @@ import { useMemo, useState } from 'preact/hooks' -import { Octicon } from '.' -import { useFocus } from '../hooks' +import { useFocus } from '../hooks/index.js' +import { Octicon } from './index.js' const SEPARATOR = '/' diff --git a/src/app/components/VersionSwitcher.tsx b/src/app/components/VersionSwitcher.tsx index 29099843..7765a0c7 100644 --- a/src/app/components/VersionSwitcher.tsx +++ b/src/app/components/VersionSwitcher.tsx @@ -1,10 +1,10 @@ import { useMemo } from 'preact/hooks' -import config from '../../config.json' -import { useLocale } from '../contexts' -import type { VersionId } from '../services' -import { Store } from '../Store' -import { Btn } from './Btn' -import { BtnMenu } from './BtnMenu' +import config from '../Config.js' +import { useLocale } from '../contexts/index.js' +import type { VersionId } from '../services/index.js' +import { Store } from '../Store.js' +import { Btn } from './Btn.js' +import { BtnMenu } from './BtnMenu.js' interface Props { value?: VersionId, diff --git a/src/app/components/forms/Checkbox.tsx b/src/app/components/forms/Checkbox.tsx index a3d81180..33381f3d 100644 --- a/src/app/components/forms/Checkbox.tsx +++ b/src/app/components/forms/Checkbox.tsx @@ -1,4 +1,4 @@ -import { hexId } from '../../Utils' +import { hexId } from '../../Utils.js' interface Props { label: string, diff --git a/src/app/components/forms/Input.tsx b/src/app/components/forms/Input.tsx index 5405ed88..3826143d 100644 --- a/src/app/components/forms/Input.tsx +++ b/src/app/components/forms/Input.tsx @@ -1,7 +1,7 @@ +import type { JSX } from 'preact' import { useEffect, useRef } from 'preact/hooks' -import type { JSXInternal } from 'preact/src/jsx' -type InputProps = JSXInternal.HTMLAttributes +type InputProps = JSX.HTMLAttributes type BaseInputProps = Omit & { onChange?: (value: T) => unknown, diff --git a/src/app/components/forms/SearchList.tsx b/src/app/components/forms/SearchList.tsx index b4f3ebda..db1c2cfe 100644 --- a/src/app/components/forms/SearchList.tsx +++ b/src/app/components/forms/SearchList.tsx @@ -1,5 +1,5 @@ import { useMemo, useState } from 'preact/hooks' -import { Btn, BtnInput } from '..' +import { Btn, BtnInput } from '../index.js' interface Props { values?: string[], diff --git a/src/app/components/forms/index.ts b/src/app/components/forms/index.ts index 7706c73c..9a6aaf06 100644 --- a/src/app/components/forms/index.ts +++ b/src/app/components/forms/index.ts @@ -1,3 +1,3 @@ -export * from './Checkbox' -export * from './Input' -export * from './SearchList' +export * from './Checkbox.js' +export * from './Input.js' +export * from './SearchList.js' diff --git a/src/app/components/generator/FileCreation.tsx b/src/app/components/generator/FileCreation.tsx index 91273b54..d7e57caf 100644 --- a/src/app/components/generator/FileCreation.tsx +++ b/src/app/components/generator/FileCreation.tsx @@ -1,10 +1,10 @@ import { DataModel } from '@mcschema/core' import { useState } from 'preact/hooks' -import { Analytics } from '../../Analytics' -import { useLocale, useProject } from '../../contexts' -import { Btn } from '../Btn' -import { TextInput } from '../forms' -import { Modal } from '../Modal' +import { Analytics } from '../../Analytics.js' +import { useLocale, useProject } from '../../contexts/index.js' +import { Btn } from '../Btn.js' +import { TextInput } from '../forms/index.js' +import { Modal } from '../Modal.js' interface Props { model: DataModel, diff --git a/src/app/components/generator/FileRenaming.tsx b/src/app/components/generator/FileRenaming.tsx index 9ef16057..2292333f 100644 --- a/src/app/components/generator/FileRenaming.tsx +++ b/src/app/components/generator/FileRenaming.tsx @@ -1,9 +1,9 @@ import { useState } from 'preact/hooks' -import { Analytics } from '../../Analytics' -import { useLocale, useProject } from '../../contexts' -import { Btn } from '../Btn' -import { TextInput } from '../forms' -import { Modal } from '../Modal' +import { Analytics } from '../../Analytics.js' +import { useLocale, useProject } from '../../contexts/index.js' +import { Btn } from '../Btn.js' +import { TextInput } from '../forms/index.js' +import { Modal } from '../Modal.js' interface Props { id: string, diff --git a/src/app/components/generator/PreviewPanel.tsx b/src/app/components/generator/PreviewPanel.tsx index cd165319..46049809 100644 --- a/src/app/components/generator/PreviewPanel.tsx +++ b/src/app/components/generator/PreviewPanel.tsx @@ -1,10 +1,10 @@ import type { DataModel } from '@mcschema/core' import { Path } from '@mcschema/core' import { useState } from 'preact/hooks' -import { useModel } from '../../hooks' -import type { VersionId } from '../../services' -import { checkVersion } from '../../services' -import { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews' +import { useModel } from '../../hooks/index.js' +import type { VersionId } from '../../services/index.js' +import { checkVersion } from '../../services/index.js' +import { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews/index.js' export const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature'] diff --git a/src/app/components/generator/ProjectCreation.tsx b/src/app/components/generator/ProjectCreation.tsx index 7b26afdf..5434e5bf 100644 --- a/src/app/components/generator/ProjectCreation.tsx +++ b/src/app/components/generator/ProjectCreation.tsx @@ -1,12 +1,12 @@ import { useEffect, useMemo, useRef, useState } from 'preact/hooks' -import { Btn, BtnMenu, FileUpload, Octicon, TextInput } from '..' -import config from '../../../config.json' -import type { Project } from '../../contexts' -import { disectFilePath, useLocale, useProject } from '../../contexts' -import type { VersionId } from '../../services' -import { DEFAULT_VERSION, parseSource } from '../../services' -import { message, readZip } from '../../Utils' -import { Modal } from '../Modal' +import config from '../../Config.js' +import type { Project } from '../../contexts/index.js' +import { disectFilePath, useLocale, useProject } from '../../contexts/index.js' +import type { VersionId } from '../../services/index.js' +import { DEFAULT_VERSION, parseSource } from '../../services/index.js' +import { message, readZip } from '../../Utils.js' +import { Btn, BtnMenu, FileUpload, Octicon, TextInput } from '../index.js' +import { Modal } from '../Modal.js' interface Props { onClose: () => unknown, diff --git a/src/app/components/generator/ProjectDeletion.tsx b/src/app/components/generator/ProjectDeletion.tsx index c9443ab1..c3e09114 100644 --- a/src/app/components/generator/ProjectDeletion.tsx +++ b/src/app/components/generator/ProjectDeletion.tsx @@ -1,7 +1,7 @@ -import { Analytics } from '../../Analytics' -import { useLocale, useProject } from '../../contexts' -import { Btn } from '../Btn' -import { Modal } from '../Modal' +import { Analytics } from '../../Analytics.js' +import { useLocale, useProject } from '../../contexts/index.js' +import { Btn } from '../Btn.js' +import { Modal } from '../Modal.js' interface Props { onClose: () => void, diff --git a/src/app/components/generator/ProjectPanel.tsx b/src/app/components/generator/ProjectPanel.tsx index 37b93741..63ceeb29 100644 --- a/src/app/components/generator/ProjectPanel.tsx +++ b/src/app/components/generator/ProjectPanel.tsx @@ -1,15 +1,15 @@ import type { DataModel } from '@mcschema/core' import { useCallback, useMemo, useRef, useState } from 'preact/hooks' -import { Analytics } from '../../Analytics' -import { disectFilePath, DRAFT_PROJECT, getFilePath, useLocale, useProject } from '../../contexts' -import type { VersionId } from '../../services' -import { stringifySource } from '../../services' -import { Store } from '../../Store' -import { writeZip } from '../../Utils' -import { Btn } from '../Btn' -import { BtnMenu } from '../BtnMenu' -import type { EntryAction } from '../TreeView' -import { TreeView } from '../TreeView' +import { Analytics } from '../../Analytics.js' +import { disectFilePath, DRAFT_PROJECT, getFilePath, useLocale, useProject } from '../../contexts/index.js' +import type { VersionId } from '../../services/index.js' +import { stringifySource } from '../../services/index.js' +import { Store } from '../../Store.js' +import { writeZip } from '../../Utils.js' +import { Btn } from '../Btn.js' +import { BtnMenu } from '../BtnMenu.js' +import type { EntryAction } from '../TreeView.js' +import { TreeView } from '../TreeView.js' interface Props { model: DataModel | undefined, diff --git a/src/app/components/generator/SourcePanel.tsx b/src/app/components/generator/SourcePanel.tsx index bd2b6c38..21a580ce 100644 --- a/src/app/components/generator/SourcePanel.tsx +++ b/src/app/components/generator/SourcePanel.tsx @@ -1,13 +1,13 @@ import { DataModel } from '@mcschema/core' import { useCallback, useEffect, useRef, useState } from 'preact/hooks' -import { Btn, BtnMenu } from '..' -import { useLocale } from '../../contexts' -import { useModel } from '../../hooks' -import { getOutput } from '../../schema/transformOutput' -import type { BlockStateRegistry } from '../../services' -import { getSourceFormats, getSourceIndent, getSourceIndents, parseSource, stringifySource } from '../../services' -import { Store } from '../../Store' -import { message } from '../../Utils' +import { useLocale } from '../../contexts/index.js' +import { useModel } from '../../hooks/index.js' +import { getOutput } from '../../schema/transformOutput.js' +import type { BlockStateRegistry } from '../../services/index.js' +import { getSourceFormats, getSourceIndent, getSourceIndents, parseSource, stringifySource } from '../../services/index.js' +import { Store } from '../../Store.js' +import { message } from '../../Utils.js' +import { Btn, BtnMenu } from '../index.js' interface Editor { getValue(): string diff --git a/src/app/components/generator/Tree.tsx b/src/app/components/generator/Tree.tsx index 34c35416..3f955c98 100644 --- a/src/app/components/generator/Tree.tsx +++ b/src/app/components/generator/Tree.tsx @@ -1,9 +1,9 @@ import type { DataModel } from '@mcschema/core' import { useErrorBoundary, useState } from 'preact/hooks' -import { useLocale } from '../../contexts' -import { useModel } from '../../hooks' -import { FullNode } from '../../schema/renderHtml' -import type { BlockStateRegistry, VersionId } from '../../services' +import { useLocale } from '../../contexts/index.js' +import { useModel } from '../../hooks/index.js' +import { FullNode } from '../../schema/renderHtml.js' +import type { BlockStateRegistry, VersionId } from '../../services/index.js' type TreePanelProps = { version: VersionId, diff --git a/src/app/components/generator/index.ts b/src/app/components/generator/index.ts index 839c2bb5..bba18e8a 100644 --- a/src/app/components/generator/index.ts +++ b/src/app/components/generator/index.ts @@ -1,8 +1,8 @@ -export * from './FileCreation' -export * from './FileRenaming' -export * from './PreviewPanel' -export * from './ProjectCreation' -export * from './ProjectDeletion' -export * from './ProjectPanel' -export * from './SourcePanel' -export * from './Tree' +export * from './FileCreation.js' +export * from './FileRenaming.js' +export * from './PreviewPanel.js' +export * from './ProjectCreation.js' +export * from './ProjectDeletion.js' +export * from './ProjectPanel.js' +export * from './SourcePanel.js' +export * from './Tree.js' diff --git a/src/app/components/index.ts b/src/app/components/index.ts index 089a8a56..b4e499ab 100644 --- a/src/app/components/index.ts +++ b/src/app/components/index.ts @@ -1,22 +1,22 @@ -export * from './Ad' -export * from './Btn' -export * from './BtnInput' -export * from './BtnLink' -export * from './BtnMenu' -export * from './ErrorPanel' -export * from './FileUpload' -export * from './Footer' -export * from './forms' -export * from './generator' -export * from './Giscus' -export * from './GuideCard' -export * from './Header' -export * from './Icons' -export * from './Modal' -export * from './Octicon' -export * from './previews' -export * from './sounds' -export * from './ToolCard' -export * from './TreeView' -export * from './versions' -export * from './VersionSwitcher' +export * from './Ad.js' +export * from './Btn.js' +export * from './BtnInput.js' +export * from './BtnLink.js' +export * from './BtnMenu.js' +export * from './ErrorPanel.js' +export * from './FileUpload.js' +export * from './Footer.js' +export * from './forms/index.js' +export * from './generator/index.js' +export * from './Giscus.js' +export * from './GuideCard.js' +export * from './Header.js' +export * from './Icons.js' +export * from './Modal.js' +export * from './Octicon.js' +export * from './previews/index.js' +export * from './sounds/index.js' +export * from './ToolCard.js' +export * from './TreeView.js' +export * from './versions/index.js' +export * from './VersionSwitcher.js' diff --git a/src/app/components/previews/BiomeSourcePreview.tsx b/src/app/components/previews/BiomeSourcePreview.tsx index e7a54fd9..6535b959 100644 --- a/src/app/components/previews/BiomeSourcePreview.tsx +++ b/src/app/components/previews/BiomeSourcePreview.tsx @@ -1,12 +1,12 @@ import { Path } from '@mcschema/core' import type { NoiseParameters } from 'deepslate/worldgen' import { useEffect, useMemo, useRef, useState } from 'preact/hooks' -import type { PreviewProps } from '.' -import { Btn, BtnMenu } from '..' -import { useLocale, useStore } from '../../contexts' -import { useCanvas } from '../../hooks' -import { biomeMap, getBiome } from '../../previews' -import { newSeed, randomSeed } from '../../Utils' +import { useLocale, useStore } from '../../contexts/index.js' +import { useCanvas } from '../../hooks/index.js' +import { biomeMap, getBiome } from '../../previews/index.js' +import { newSeed, randomSeed } from '../../Utils.js' +import { Btn, BtnMenu } from '../index.js' +import type { PreviewProps } from './index.js' const LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const diff --git a/src/app/components/previews/DecoratorPreview.tsx b/src/app/components/previews/DecoratorPreview.tsx index 1da8ae35..df6ab2d1 100644 --- a/src/app/components/previews/DecoratorPreview.tsx +++ b/src/app/components/previews/DecoratorPreview.tsx @@ -1,10 +1,10 @@ import { useEffect, useState } from 'preact/hooks' -import type { PreviewProps } from '.' -import { Btn } from '..' -import { useLocale } from '../../contexts' -import { useCanvas } from '../../hooks' -import { decorator } from '../../previews' -import { randomSeed } from '../../Utils' +import { useLocale } from '../../contexts/index.js' +import { useCanvas } from '../../hooks/index.js' +import { decorator } from '../../previews/index.js' +import { randomSeed } from '../../Utils.js' +import { Btn } from '../index.js' +import type { PreviewProps } from './index.js' export const DecoratorPreview = ({ data, version, shown }: PreviewProps) => { const { locale } = useLocale() diff --git a/src/app/components/previews/DensityFunctionPreview.tsx b/src/app/components/previews/DensityFunctionPreview.tsx index 3661d896..b02f1a3a 100644 --- a/src/app/components/previews/DensityFunctionPreview.tsx +++ b/src/app/components/previews/DensityFunctionPreview.tsx @@ -1,10 +1,10 @@ import { useEffect, useRef, useState } from 'preact/hooks' -import type { PreviewProps } from '.' -import { Btn, BtnMenu } from '..' -import { useLocale } from '../../contexts' -import { useCanvas } from '../../hooks' -import { densityFunction } from '../../previews' -import { randomSeed } from '../../Utils' +import { useLocale } from '../../contexts/index.js' +import { useCanvas } from '../../hooks/index.js' +import { densityFunction } from '../../previews/index.js' +import { randomSeed } from '../../Utils.js' +import { Btn, BtnMenu } from '../index.js' +import type { PreviewProps } from './index.js' export const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => { const { locale } = useLocale() diff --git a/src/app/components/previews/NoisePreview.tsx b/src/app/components/previews/NoisePreview.tsx index fcc3a9dc..b811795d 100644 --- a/src/app/components/previews/NoisePreview.tsx +++ b/src/app/components/previews/NoisePreview.tsx @@ -1,10 +1,10 @@ import { useEffect, useRef, useState } from 'preact/hooks' -import type { PreviewProps } from '.' -import { Btn } from '..' -import { useLocale } from '../../contexts' -import { useCanvas } from '../../hooks' -import { normalNoise } from '../../previews' -import { randomSeed } from '../../Utils' +import { useLocale } from '../../contexts/index.js' +import { useCanvas } from '../../hooks/index.js' +import { normalNoise } from '../../previews/index.js' +import { randomSeed } from '../../Utils.js' +import { Btn } from '../index.js' +import type { PreviewProps } from './index.js' export const NoisePreview = ({ data, shown, version }: PreviewProps) => { const { locale } = useLocale() diff --git a/src/app/components/previews/NoiseSettingsPreview.tsx b/src/app/components/previews/NoiseSettingsPreview.tsx index b61a6fb5..c22269eb 100644 --- a/src/app/components/previews/NoiseSettingsPreview.tsx +++ b/src/app/components/previews/NoiseSettingsPreview.tsx @@ -1,11 +1,11 @@ import { useEffect, useMemo, useRef, useState } from 'preact/hooks' -import type { PreviewProps } from '.' -import { Btn, BtnInput, BtnMenu } from '..' -import { useLocale } from '../../contexts' -import { useCanvas } from '../../hooks' -import { getNoiseBlock, noiseSettings } from '../../previews' -import { CachedCollections, checkVersion } from '../../services' -import { randomSeed } from '../../Utils' +import { useLocale } from '../../contexts/index.js' +import { useCanvas } from '../../hooks/index.js' +import { getNoiseBlock, noiseSettings } from '../../previews/index.js' +import { CachedCollections, checkVersion } from '../../services/index.js' +import { randomSeed } from '../../Utils.js' +import { Btn, BtnInput, BtnMenu } from '../index.js' +import type { PreviewProps } from './index.js' export const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => { const { locale } = useLocale() diff --git a/src/app/components/previews/index.ts b/src/app/components/previews/index.ts index b9b59657..c7b075dd 100644 --- a/src/app/components/previews/index.ts +++ b/src/app/components/previews/index.ts @@ -1,11 +1,11 @@ import type { DataModel } from '@mcschema/core' -import type { VersionId } from '../../services' +import type { VersionId } from '../../services/index.js' -export * from './BiomeSourcePreview' -export * from './DecoratorPreview' -export * from './DensityFunctionPreview' -export * from './NoisePreview' -export * from './NoiseSettingsPreview' +export * from './BiomeSourcePreview.js' +export * from './DecoratorPreview.js' +export * from './DensityFunctionPreview.js' +export * from './NoisePreview.js' +export * from './NoiseSettingsPreview.js' export type PreviewProps = { model: DataModel, diff --git a/src/app/components/sounds/SoundConfig.tsx b/src/app/components/sounds/SoundConfig.tsx index f13623f7..401ce211 100644 --- a/src/app/components/sounds/SoundConfig.tsx +++ b/src/app/components/sounds/SoundConfig.tsx @@ -1,9 +1,9 @@ import type { Howl, HowlOptions } from 'howler' import { useEffect, useRef, useState } from 'preact/hooks' -import { Btn, NumberInput, RangeInput, TextInput } from '..' -import { useLocale, useVersion } from '../../contexts' -import type { SoundEvents } from '../../services' -import { getSoundUrl } from '../../services' +import { useLocale, useVersion } from '../../contexts/index.js' +import type { SoundEvents } from '../../services/index.js' +import { getSoundUrl } from '../../services/index.js' +import { Btn, NumberInput, RangeInput, TextInput } from '../index.js' export interface SoundConfig { id: string, diff --git a/src/app/components/sounds/index.ts b/src/app/components/sounds/index.ts index 4c8f9dbf..183b7daf 100644 --- a/src/app/components/sounds/index.ts +++ b/src/app/components/sounds/index.ts @@ -1 +1 @@ -export * from './SoundConfig' +export * from './SoundConfig.js' diff --git a/src/app/components/versions/ChangelogEntry.tsx b/src/app/components/versions/ChangelogEntry.tsx index 3ea09a5a..c02d4808 100644 --- a/src/app/components/versions/ChangelogEntry.tsx +++ b/src/app/components/versions/ChangelogEntry.tsx @@ -1,6 +1,6 @@ import { marked } from 'marked' -import { ChangelogTag } from '.' -import type { Change } from '../../services' +import type { Change } from '../../services/index.js' +import { ChangelogTag } from './index.js' type Props = { change: Change, diff --git a/src/app/components/versions/ChangelogList.tsx b/src/app/components/versions/ChangelogList.tsx index 48246ffb..43d43599 100644 --- a/src/app/components/versions/ChangelogList.tsx +++ b/src/app/components/versions/ChangelogList.tsx @@ -1,11 +1,10 @@ import { useMemo, useState } from 'preact/hooks' -import { Btn, TextInput } from '..' -import { useLocale } from '../../contexts' -import { useSearchParam } from '../../hooks' -import { useTags } from '../../hooks/useTags' -import type { Change } from '../../services' -import { ChangelogEntry } from './ChangelogEntry' -import { ChangelogTag } from './ChangelogTag' +import { useLocale } from '../../contexts/index.js' +import { useSearchParam, useTags } from '../../hooks/index.js' +import type { Change } from '../../services/index.js' +import { Btn, TextInput } from '../index.js' +import { ChangelogEntry } from './ChangelogEntry.js' +import { ChangelogTag } from './ChangelogTag.js' const SEARCH_KEY = 'search' diff --git a/src/app/components/versions/ChangelogTag.tsx b/src/app/components/versions/ChangelogTag.tsx index 88e39a33..cd2abfec 100644 --- a/src/app/components/versions/ChangelogTag.tsx +++ b/src/app/components/versions/ChangelogTag.tsx @@ -1,5 +1,5 @@ -import { Octicon } from '..' -import { hashString } from '../../Utils' +import { hashString } from '../../Utils.js' +import { Octicon } from '../index.js' type TagProps = { label: string, diff --git a/src/app/components/versions/VersionDetail.tsx b/src/app/components/versions/VersionDetail.tsx index 94d91ce8..d5c8496b 100644 --- a/src/app/components/versions/VersionDetail.tsx +++ b/src/app/components/versions/VersionDetail.tsx @@ -1,11 +1,11 @@ import { useEffect, useMemo, useState } from 'preact/hooks' -import { VersionMetaData } from '.' -import { useLocale } from '../../contexts' -import type { Change, VersionMeta } from '../../services' -import { getArticleLink, getChangelogs } from '../../services' -import { Giscus } from '../Giscus' -import { Octicon } from '../Octicon' -import { ChangelogList } from './ChangelogList' +import { useLocale } from '../../contexts/index.js' +import type { Change, VersionMeta } from '../../services/index.js' +import { getArticleLink, getChangelogs } from '../../services/index.js' +import { Giscus } from '../Giscus.js' +import { Octicon } from '../Octicon.js' +import { ChangelogList } from './ChangelogList.js' +import { VersionMetaData } from './index.js' type Tab = 'changelog' | 'discussion' diff --git a/src/app/components/versions/VersionEntry.tsx b/src/app/components/versions/VersionEntry.tsx index 5c965db8..0d15e7c1 100644 --- a/src/app/components/versions/VersionEntry.tsx +++ b/src/app/components/versions/VersionEntry.tsx @@ -1,6 +1,6 @@ -import { releaseDate, VersionMetaData } from '.' -import { useLocale } from '../../contexts' -import type { VersionMeta } from '../../services' +import { useLocale } from '../../contexts/index.js' +import type { VersionMeta } from '../../services/index.js' +import { releaseDate, VersionMetaData } from './index.js' interface Props { version: VersionMeta, diff --git a/src/app/components/versions/VersionList.tsx b/src/app/components/versions/VersionList.tsx index 90a479c7..fd81425f 100644 --- a/src/app/components/versions/VersionList.tsx +++ b/src/app/components/versions/VersionList.tsx @@ -1,9 +1,9 @@ import { useMemo, useState } from 'preact/hooks' -import { Checkbox, TextInput } from '..' -import { useLocale } from '../../contexts' -import { useSearchParam } from '../../hooks' -import type { VersionMeta } from '../../services' -import { VersionEntry } from './VersionEntry' +import { useLocale } from '../../contexts/index.js' +import { useSearchParam } from '../../hooks/index.js' +import type { VersionMeta } from '../../services/index.js' +import { Checkbox, TextInput } from '../index.js' +import { VersionEntry } from './VersionEntry.js' const SEARCH_KEY = 'search' diff --git a/src/app/components/versions/VersionMetaData.tsx b/src/app/components/versions/VersionMetaData.tsx index dbd38427..0cc0b602 100644 --- a/src/app/components/versions/VersionMetaData.tsx +++ b/src/app/components/versions/VersionMetaData.tsx @@ -1,4 +1,4 @@ -import { Octicon } from '..' +import { Octicon } from '../index.js' interface Props { label: string, diff --git a/src/app/components/versions/index.ts b/src/app/components/versions/index.ts index 601d9fa4..6735f6b3 100644 --- a/src/app/components/versions/index.ts +++ b/src/app/components/versions/index.ts @@ -1,7 +1,7 @@ -export * from './ChangelogEntry' -export * from './ChangelogList' -export * from './ChangelogTag' -export * from './VersionDetail' -export * from './VersionEntry' -export * from './VersionList' -export * from './VersionMetaData' +export * from './ChangelogEntry.js' +export * from './ChangelogList.js' +export * from './ChangelogTag.js' +export * from './VersionDetail.js' +export * from './VersionEntry.js' +export * from './VersionList.js' +export * from './VersionMetaData.js' diff --git a/src/app/contexts/Locale.tsx b/src/app/contexts/Locale.tsx index ef757286..1b40eb5f 100644 --- a/src/app/contexts/Locale.tsx +++ b/src/app/contexts/Locale.tsx @@ -1,10 +1,13 @@ +// import { createRequire } from 'module' import type { ComponentChildren } from 'preact' import { createContext } from 'preact' import { useCallback, useContext, useEffect, useState } from 'preact/hooks' -import config from '../../config.json' +import { Analytics } from '../Analytics.js' +import config from '../Config.js' +import { Store } from '../Store.js' +// const require = createRequire(import.meta.url) +// const English = require('../../locales/en.json') import English from '../../locales/en.json' -import { Analytics } from '../Analytics' -import { Store } from '../Store' interface Locale { lang: string, diff --git a/src/app/contexts/Project.tsx b/src/app/contexts/Project.tsx index a73ce37a..4a6575f1 100644 --- a/src/app/contexts/Project.tsx +++ b/src/app/contexts/Project.tsx @@ -2,10 +2,10 @@ import type { ComponentChildren } from 'preact' import { createContext } from 'preact' import { route } from 'preact-router' import { useCallback, useContext, useMemo, useState } from 'preact/hooks' -import config from '../../config.json' -import type { VersionId } from '../services' -import { Store } from '../Store' -import { cleanUrl } from '../Utils' +import config from '../Config.js' +import type { VersionId } from '../services/index.js' +import { Store } from '../Store.js' +import { cleanUrl } from '../Utils.js' export type Project = { name: string, diff --git a/src/app/contexts/Store.tsx b/src/app/contexts/Store.tsx index a737f1f5..0731ef43 100644 --- a/src/app/contexts/Store.tsx +++ b/src/app/contexts/Store.tsx @@ -1,8 +1,8 @@ import type { ComponentChildren } from 'preact' import { createContext } from 'preact' import { useCallback, useContext } from 'preact/hooks' -import { useLocalStorage } from '../hooks' -import type { Color } from '../Utils' +import { useLocalStorage } from '../hooks/index.js' +import type { Color } from '../Utils.js' interface Store { biomeColors: Record diff --git a/src/app/contexts/Theme.tsx b/src/app/contexts/Theme.tsx index fc3c3ca8..bcbe5ca3 100644 --- a/src/app/contexts/Theme.tsx +++ b/src/app/contexts/Theme.tsx @@ -1,9 +1,9 @@ import type { ComponentChildren } from 'preact' import { createContext } from 'preact' import { useCallback, useContext, useEffect, useState } from 'preact/hooks' -import { Analytics } from '../Analytics' -import { useMediaQuery } from '../hooks' -import { Store } from '../Store' +import { Analytics } from '../Analytics.js' +import { useMediaQuery } from '../hooks/index.js' +import { Store } from '../Store.js' interface Theme { theme: string, diff --git a/src/app/contexts/Title.tsx b/src/app/contexts/Title.tsx index 33982e9c..c8307673 100644 --- a/src/app/contexts/Title.tsx +++ b/src/app/contexts/Title.tsx @@ -1,9 +1,9 @@ import type { ComponentChildren } from 'preact' import { createContext } from 'preact' import { useCallback, useContext, useEffect, useState } from 'preact/hooks' -import { useLocale } from '.' -import config from '../../config.json' -import type { VersionId } from '../services' +import config from '../Config.js' +import type { VersionId } from '../services/index.js' +import { useLocale } from './index.js' const VERSIONS_IN_TITLE = 3 diff --git a/src/app/contexts/Version.tsx b/src/app/contexts/Version.tsx index 32e9846b..bcf1accc 100644 --- a/src/app/contexts/Version.tsx +++ b/src/app/contexts/Version.tsx @@ -1,11 +1,11 @@ import type { ComponentChildren } from 'preact' import { createContext } from 'preact' import { useCallback, useContext, useEffect, useState } from 'preact/hooks' -import { Analytics } from '../Analytics' -import { useSearchParam } from '../hooks' -import type { VersionId } from '../services' -import { VersionIds } from '../services' -import { Store } from '../Store' +import { Analytics } from '../Analytics.js' +import { useSearchParam } from '../hooks/index.js' +import type { VersionId } from '../services/index.js' +import { VersionIds } from '../services/index.js' +import { Store } from '../Store.js' const VERSION_PARAM = 'version' diff --git a/src/app/contexts/index.ts b/src/app/contexts/index.ts index baba5b78..00d3e627 100644 --- a/src/app/contexts/index.ts +++ b/src/app/contexts/index.ts @@ -1,6 +1,6 @@ -export * from './Locale' -export * from './Project' -export * from './Store' -export * from './Theme' -export * from './Title' -export * from './Version' +export * from './Locale.js' +export * from './Project.js' +export * from './Store.js' +export * from './Theme.js' +export * from './Title.js' +export * from './Version.js' diff --git a/src/app/hooks/index.ts b/src/app/hooks/index.ts index 70c8467c..4fef10d8 100644 --- a/src/app/hooks/index.ts +++ b/src/app/hooks/index.ts @@ -1,10 +1,11 @@ -export * from './useActiveTimout' -export * from './useAsync' -export * from './useAsyncFn' -export * from './useCanvas' -export * from './useFocus' -export * from './useHash' -export * from './useLocalStorage' -export * from './useMediaQuery' -export * from './useModel' -export * from './useSearchParam' +export * from './useActiveTimout.js' +export * from './useAsync.js' +export * from './useAsyncFn.js' +export * from './useCanvas.js' +export * from './useFocus.js' +export * from './useHash.js' +export * from './useLocalStorage.js' +export * from './useMediaQuery.js' +export * from './useModel.js' +export * from './useSearchParam.js' +export * from './useTags.js' diff --git a/src/app/hooks/useAsync.ts b/src/app/hooks/useAsync.ts index faf34c49..d46320e5 100644 --- a/src/app/hooks/useAsync.ts +++ b/src/app/hooks/useAsync.ts @@ -1,7 +1,7 @@ import type { Inputs } from 'preact/hooks' import { useEffect } from 'preact/hooks' -import type { AsyncCancel, AsyncState } from './useAsyncFn' -import { useAsyncFn } from './useAsyncFn' +import type { AsyncCancel, AsyncState } from './index.js' +import { useAsyncFn } from './index.js' export function useAsync( fn: () => Promise, diff --git a/src/app/hooks/useHash.ts b/src/app/hooks/useHash.ts index 85d38fec..e2e7b66d 100644 --- a/src/app/hooks/useHash.ts +++ b/src/app/hooks/useHash.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useState } from 'preact/hooks' -import { changeUrl } from '../Utils' +import { changeUrl } from '../Utils.js' export function useHash(): [string, (hash: string) => unknown] { const [hash, setHash] = useState(window.location.hash) diff --git a/src/app/hooks/useSearchParam.ts b/src/app/hooks/useSearchParam.ts index 5bfedbd5..c84fb1fb 100644 --- a/src/app/hooks/useSearchParam.ts +++ b/src/app/hooks/useSearchParam.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useState } from 'preact/hooks' -import { changeUrl } from '../Utils' +import { changeUrl } from '../Utils.js' const getValue = (search: string, param: string) => new URLSearchParams(search).get(param) ?? undefined diff --git a/src/app/hooks/useTags.ts b/src/app/hooks/useTags.ts index 004b089c..fdc28133 100644 --- a/src/app/hooks/useTags.ts +++ b/src/app/hooks/useTags.ts @@ -1,5 +1,5 @@ import { useMemo } from 'preact/hooks' -import { useSearchParam } from './useSearchParam' +import { useSearchParam } from './index.js' const TAG_KEY = 'tags' const TAG_SEP = '|' diff --git a/src/app/pages/Category.tsx b/src/app/pages/Category.tsx index 555502e6..ee32a432 100644 --- a/src/app/pages/Category.tsx +++ b/src/app/pages/Category.tsx @@ -1,7 +1,7 @@ -import config from '../../config.json' -import { Footer, ToolCard } from '../components' -import { useLocale, useTitle } from '../contexts' -import { cleanUrl } from '../Utils' +import { Footer, ToolCard } from '../components/index.js' +import config from '../Config.js' +import { useLocale, useTitle } from '../contexts/index.js' +import { cleanUrl } from '../Utils.js' interface Props { category: string, diff --git a/src/app/pages/Changelog.tsx b/src/app/pages/Changelog.tsx index a7638e41..80688316 100644 --- a/src/app/pages/Changelog.tsx +++ b/src/app/pages/Changelog.tsx @@ -1,7 +1,7 @@ -import { Ad, ChangelogList, ErrorPanel, Footer } from '../components' -import { useLocale, useTitle } from '../contexts' -import { useAsync } from '../hooks' -import { getChangelogs } from '../services' +import { Ad, ChangelogList, ErrorPanel, Footer } from '../components/index.js' +import { useLocale, useTitle } from '../contexts/index.js' +import { useAsync } from '../hooks/index.js' +import { getChangelogs } from '../services/index.js' interface Props { path?: string, diff --git a/src/app/pages/Generator.tsx b/src/app/pages/Generator.tsx index 0abe627d..eaec9c98 100644 --- a/src/app/pages/Generator.tsx +++ b/src/app/pages/Generator.tsx @@ -1,16 +1,16 @@ import { DataModel, Path } from '@mcschema/core' import { getCurrentUrl, route } from 'preact-router' import { useCallback, useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks' -import config from '../../config.json' -import { Analytics } from '../Analytics' -import { Ad, Btn, BtnMenu, ErrorPanel, FileCreation, FileRenaming, Footer, HasPreview, Octicon, PreviewPanel, ProjectCreation, ProjectDeletion, ProjectPanel, SearchList, SourcePanel, TextInput, Tree, VersionSwitcher } from '../components' -import { DRAFT_PROJECT, useLocale, useProject, useTitle, useVersion } from '../contexts' -import { AsyncCancel, useActiveTimeout, useAsync, useModel, useSearchParam } from '../hooks' -import { getOutput } from '../schema/transformOutput' -import type { VersionId } from '../services' -import { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet } from '../services' -import { Store } from '../Store' -import { cleanUrl, deepEqual, getGenerator } from '../Utils' +import { Analytics } from '../Analytics.js' +import { Ad, Btn, BtnMenu, ErrorPanel, FileCreation, FileRenaming, Footer, HasPreview, Octicon, PreviewPanel, ProjectCreation, ProjectDeletion, ProjectPanel, SearchList, SourcePanel, TextInput, Tree, VersionSwitcher } from '../components/index.js' +import config from '../Config.js' +import { DRAFT_PROJECT, useLocale, useProject, useTitle, useVersion } from '../contexts/index.js' +import { AsyncCancel, useActiveTimeout, useAsync, useModel, useSearchParam } from '../hooks/index.js' +import { getOutput } from '../schema/transformOutput.js' +import type { VersionId } from '../services/index.js' +import { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet } from '../services/index.js' +import { Store } from '../Store.js' +import { cleanUrl, deepEqual, getGenerator } from '../Utils.js' export const SHARE_KEY = 'share' diff --git a/src/app/pages/Guide.tsx b/src/app/pages/Guide.tsx index 9815808b..ac16244e 100644 --- a/src/app/pages/Guide.tsx +++ b/src/app/pages/Guide.tsx @@ -3,12 +3,12 @@ import json from 'highlight.js/lib/languages/json' import { marked } from 'marked' import { route } from 'preact-router' import { useCallback, useEffect, useMemo, useState } from 'preact/hooks' -import config from '../../config.json' -import { Ad, Btn, ChangelogTag, Footer, Giscus, Octicon, VersionSwitcher } from '../components' -import { useLocale, useTitle, useVersion } from '../contexts' -import { useActiveTimeout, useAsync, useHash } from '../hooks' -import type { VersionId } from '../services' -import { parseFrontMatter, versionContent } from '../Utils' +import { Ad, Btn, ChangelogTag, Footer, Giscus, Octicon, VersionSwitcher } from '../components/index.js' +import config from '../Config.js' +import { useLocale, useTitle, useVersion } from '../contexts/index.js' +import { useActiveTimeout, useAsync, useHash } from '../hooks/index.js' +import type { VersionId } from '../services/index.js' +import { parseFrontMatter, versionContent } from '../Utils.js' const HASH = '' diff --git a/src/app/pages/Guides.tsx b/src/app/pages/Guides.tsx index 0343c24d..1ff7c512 100644 --- a/src/app/pages/Guides.tsx +++ b/src/app/pages/Guides.tsx @@ -1,7 +1,7 @@ import { useMemo, useState } from 'preact/hooks' -import { ChangelogTag, Footer, GuideCard, TextInput, VersionSwitcher } from '../components' -import { useLocale, useTitle, useVersion } from '../contexts' -import { useTags } from '../hooks/useTags' +import { ChangelogTag, Footer, GuideCard, TextInput, VersionSwitcher } from '../components/index.js' +import { useLocale, useTitle, useVersion } from '../contexts/index.js' +import { useTags } from '../hooks/index.js' interface Guide { id: string, diff --git a/src/app/pages/Home.tsx b/src/app/pages/Home.tsx index 6d0a3062..245bb53e 100644 --- a/src/app/pages/Home.tsx +++ b/src/app/pages/Home.tsx @@ -1,7 +1,7 @@ -import config from '../../config.json' -import { Footer, Giscus, ToolCard } from '../components' -import { useLocale, useTitle } from '../contexts' -import { cleanUrl } from '../Utils' +import { Footer, Giscus, ToolCard } from '../components/index.js' +import config from '../Config.js' +import { useLocale, useTitle } from '../contexts/index.js' +import { cleanUrl } from '../Utils.js' interface Props { path?: string, diff --git a/src/app/pages/Partners.tsx b/src/app/pages/Partners.tsx index cb18e2e6..f84ee8a6 100644 --- a/src/app/pages/Partners.tsx +++ b/src/app/pages/Partners.tsx @@ -1,7 +1,7 @@ -import config from '../../config.json' -import { Footer, ToolCard } from '../components' -import { useLocale, useTitle } from '../contexts' -import { cleanUrl } from '../Utils' +import { Footer, ToolCard } from '../components/index.js' +import config from '../Config.js' +import { useLocale, useTitle } from '../contexts/index.js' +import { cleanUrl } from '../Utils.js' const partners = [...new Set(config.generators .filter(g => g.partner !== undefined) diff --git a/src/app/pages/Sounds.tsx b/src/app/pages/Sounds.tsx index 5a7ffc92..af806e7e 100644 --- a/src/app/pages/Sounds.tsx +++ b/src/app/pages/Sounds.tsx @@ -1,10 +1,10 @@ import type { Howl, HowlOptions } from 'howler' import { useEffect, useMemo, useRef, useState } from 'preact/hooks' -import { Btn, ErrorPanel, Footer, SoundConfig, TextInput, VersionSwitcher } from '../components' -import { useLocale, useTitle, useVersion } from '../contexts' -import { useAsync } from '../hooks' -import { fetchSounds } from '../services' -import { hexId } from '../Utils' +import { Btn, ErrorPanel, Footer, SoundConfig, TextInput, VersionSwitcher } from '../components/index.js' +import { useLocale, useTitle, useVersion } from '../contexts/index.js' +import { useAsync } from '../hooks/index.js' +import { fetchSounds } from '../services/index.js' +import { hexId } from '../Utils.js' interface Props { path?: string, diff --git a/src/app/pages/Versions.tsx b/src/app/pages/Versions.tsx index f64db48e..8cbdb667 100644 --- a/src/app/pages/Versions.tsx +++ b/src/app/pages/Versions.tsx @@ -1,8 +1,8 @@ -import { Ad, BtnLink, ErrorPanel, Footer, VersionDetail, VersionList } from '../components' -import { useLocale, useTitle } from '../contexts' -import { useAsync, useSearchParam } from '../hooks' -import type { VersionMeta } from '../services' -import { fetchVersions } from '../services' +import { Ad, BtnLink, ErrorPanel, Footer, VersionDetail, VersionList } from '../components/index.js' +import { useLocale, useTitle } from '../contexts/index.js' +import { useAsync, useSearchParam } from '../hooks/index.js' +import type { VersionMeta } from '../services/index.js' +import { fetchVersions } from '../services/index.js' interface Props { path?: string, diff --git a/src/app/pages/index.ts b/src/app/pages/index.ts index 28468ec8..ed9bea8f 100644 --- a/src/app/pages/index.ts +++ b/src/app/pages/index.ts @@ -1,9 +1,9 @@ -export * from './Category' -export * from './Changelog' -export * from './Generator' -export * from './Guide' -export * from './Guides' -export * from './Home' -export * from './Partners' -export * from './Sounds' -export * from './Versions' +export * from './Category.js' +export * from './Changelog.js' +export * from './Generator.js' +export * from './Guide.js' +export * from './Guides.js' +export * from './Home.js' +export * from './Partners.js' +export * from './Sounds.js' +export * from './Versions.js' diff --git a/src/app/partners/index.ts b/src/app/partners/index.ts index 9db8bad4..8526f086 100644 --- a/src/app/partners/index.ts +++ b/src/app/partners/index.ts @@ -1,7 +1,7 @@ import type { CollectionRegistry, SchemaRegistry } from '@mcschema/core' -import { initImmersiveWeathering } from './ImmersiveWeathering' +import { initImmersiveWeathering } from './ImmersiveWeathering.js' -export * from './ImmersiveWeathering' +export * from './ImmersiveWeathering.js' export function initPartners(schemas: SchemaRegistry, collections: CollectionRegistry) { initImmersiveWeathering(schemas, collections) diff --git a/src/app/previews/BiomeSource.ts b/src/app/previews/BiomeSource.ts index 0da574af..6d4016f2 100644 --- a/src/app/previews/BiomeSource.ts +++ b/src/app/previews/BiomeSource.ts @@ -1,12 +1,12 @@ import { DataModel } from '@mcschema/core' -import init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs' +import { biome_parameters, climate_noise, climate_sampler, default as init, multi_noise } from 'deepslate-rs' // @ts-expect-error import wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url' import type { NoiseParameters } from 'deepslate/worldgen' import { FixedBiome, Identifier, LegacyRandom, NormalNoise } from 'deepslate/worldgen' -import type { VersionId } from '../services' -import { checkVersion, fetchPreset } from '../services' -import { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils' +import type { VersionId } from '../services/index.js' +import { checkVersion, fetchPreset } from '../services/index.js' +import { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils.js' let ready = false async function loadWasm() { diff --git a/src/app/previews/Decorator.ts b/src/app/previews/Decorator.ts index 877992ff..68f1043c 100644 --- a/src/app/previews/Decorator.ts +++ b/src/app/previews/Decorator.ts @@ -1,9 +1,9 @@ import { DataModel } from '@mcschema/core' import type { Random } from 'deepslate/worldgen' import { LegacyRandom, PerlinNoise } from 'deepslate/worldgen' -import type { VersionId } from '../services' -import { checkVersion } from '../services' -import { clamp, isObject, stringToColor } from '../Utils' +import type { VersionId } from '../services/index.js' +import { checkVersion } from '../services/index.js' +import { clamp, isObject, stringToColor } from '../Utils.js' type BlockPos = [number, number, number] type Placement = [BlockPos, number] diff --git a/src/app/previews/Deepslate.ts b/src/app/previews/Deepslate.ts index e3c91430..05212a84 100644 --- a/src/app/previews/Deepslate.ts +++ b/src/app/previews/Deepslate.ts @@ -1,8 +1,8 @@ import { DataModel } from '@mcschema/core' import * as deepslate19 from 'deepslate/worldgen' -import type { VersionId } from '../services' -import { checkVersion, fetchAllPresets } from '../services' -import { deepClone, deepEqual } from '../Utils' +import type { VersionId } from '../services/index.js' +import { checkVersion, fetchAllPresets } from '../services/index.js' +import { deepClone, deepEqual } from '../Utils.js' export class Deepslate { private d = deepslate19 diff --git a/src/app/previews/NoiseSettings.ts b/src/app/previews/NoiseSettings.ts index 4b0045e6..02016082 100644 --- a/src/app/previews/NoiseSettings.ts +++ b/src/app/previews/NoiseSettings.ts @@ -1,8 +1,8 @@ import { BlockState, clampedMap, DensityFunction } from 'deepslate/worldgen' -import type { VersionId } from '../services' -import { checkVersion } from '../services' -import { Deepslate } from './Deepslate' -import { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator' +import type { VersionId } from '../services/index.js' +import { checkVersion } from '../services/index.js' +import { Deepslate } from './Deepslate.js' +import { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator.js' export type NoiseSettingsOptions = { biome?: string, diff --git a/src/app/previews/NormalNoise.ts b/src/app/previews/NormalNoise.ts index af7e24b0..e50955bb 100644 --- a/src/app/previews/NormalNoise.ts +++ b/src/app/previews/NormalNoise.ts @@ -1,6 +1,6 @@ import { DataModel } from '@mcschema/core' import { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate/worldgen' -import type { VersionId } from '../services' +import type { VersionId } from '../services/index.js' export type NoiseOptions = { offset: [number, number], diff --git a/src/app/previews/index.ts b/src/app/previews/index.ts index b1102f26..aee2a479 100644 --- a/src/app/previews/index.ts +++ b/src/app/previews/index.ts @@ -1,4 +1,4 @@ -export * from './BiomeSource' -export * from './Decorator' -export * from './NoiseSettings' -export * from './NormalNoise' +export * from './BiomeSource.js' +export * from './Decorator.js' +export * from './NoiseSettings.js' +export * from './NormalNoise.js' diff --git a/src/app/previews/noise/NoiseChunkGenerator.ts b/src/app/previews/noise/NoiseChunkGenerator.ts index 1e12d25b..5ab20572 100644 --- a/src/app/previews/noise/NoiseChunkGenerator.ts +++ b/src/app/previews/noise/NoiseChunkGenerator.ts @@ -1,5 +1,5 @@ import { LegacyRandom, PerlinNoise } from 'deepslate/worldgen' -import { clampedLerp, lerp2 } from '../../Utils' +import { clampedLerp, lerp2 } from '../../Utils.js' export class NoiseChunkGenerator { private readonly minLimitPerlinNoise: PerlinNoise diff --git a/src/app/schema/renderHtml.tsx b/src/app/schema/renderHtml.tsx index deda74a2..6370bf71 100644 --- a/src/app/schema/renderHtml.tsx +++ b/src/app/schema/renderHtml.tsx @@ -3,15 +3,15 @@ import { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath import type { ComponentChildren, JSX } from 'preact' import { memo } from 'preact/compat' import { useState } from 'preact/hooks' -import config from '../../config.json' -import { Btn, Octicon } from '../components' -import { localize, useStore } from '../contexts' -import { useFocus } from '../hooks' -import { VanillaColors } from '../previews' -import type { BlockStateRegistry, VersionId } from '../services' -import { CachedCollections, CachedDecorator, CachedFeature, getTextureUrl } from '../services' -import { deepClone, deepEqual, generateUUID, hexId, hexToRgb, isObject, newSeed, rgbToHex, stringToColor } from '../Utils' -import { ModelWrapper } from './ModelWrapper' +import { Btn, Octicon } from '../components/index.js' +import config from '../Config.js' +import { localize, useStore } from '../contexts/index.js' +import { useFocus } from '../hooks/index.js' +import { VanillaColors } from '../previews/index.js' +import type { BlockStateRegistry, VersionId } from '../services/index.js' +import { CachedCollections, CachedDecorator, CachedFeature, getTextureUrl } from '../services/index.js' +import { deepClone, deepEqual, generateUUID, hexId, hexToRgb, isObject, newSeed, rgbToHex, stringToColor } from '../Utils.js' +import { ModelWrapper } from './ModelWrapper.js' const selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant'] const hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type'] diff --git a/src/app/schema/transformOutput.ts b/src/app/schema/transformOutput.ts index e51df280..b88aca7f 100644 --- a/src/app/schema/transformOutput.ts +++ b/src/app/schema/transformOutput.ts @@ -1,6 +1,6 @@ import type { DataModel, Hook } from '@mcschema/core' import { ModelPath, relativePath } from '@mcschema/core' -import type { BlockStateRegistry } from '../services' +import type { BlockStateRegistry } from '../services/index.js' export function getOutput(model: DataModel, blockStates: BlockStateRegistry): any { return model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates }) diff --git a/src/app/services/Changelogs.ts b/src/app/services/Changelogs.ts index 773ecfe7..2607d7d9 100644 --- a/src/app/services/Changelogs.ts +++ b/src/app/services/Changelogs.ts @@ -1,4 +1,4 @@ -import { isObject } from '../Utils' +import { isObject } from '../Utils.js' const repo = 'https://raw.githubusercontent.com/misode/technical-changes/main' diff --git a/src/app/services/DataFetcher.ts b/src/app/services/DataFetcher.ts index 0ab5c869..d55274d2 100644 --- a/src/app/services/DataFetcher.ts +++ b/src/app/services/DataFetcher.ts @@ -1,7 +1,7 @@ import type { CollectionRegistry } from '@mcschema/core' -import config from '../../config.json' -import { message } from '../Utils' -import type { BlockStateRegistry, VersionId } from './Schemas' +import config from '../Config.js' +import { message } from '../Utils.js' +import type { BlockStateRegistry, VersionId } from './Schemas.js' const CACHE_NAME = 'misode-v2' const CACHE_LATEST_VERSION = 'cached_latest_version' diff --git a/src/app/services/Schemas.ts b/src/app/services/Schemas.ts index 77d5762c..8a4b6f9c 100644 --- a/src/app/services/Schemas.ts +++ b/src/app/services/Schemas.ts @@ -1,9 +1,9 @@ import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core' import { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core' -import config from '../../config.json' -import { initPartners } from '../partners' -import { message } from '../Utils' -import { fetchData } from './DataFetcher' +import config from '../Config.js' +import { initPartners } from '../partners/index.js' +import { message } from '../Utils.js' +import { fetchData } from './DataFetcher.js' export const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const export type VersionId = typeof VersionIds[number] diff --git a/src/app/services/Sharing.ts b/src/app/services/Sharing.ts index e96e5a77..7787e697 100644 --- a/src/app/services/Sharing.ts +++ b/src/app/services/Sharing.ts @@ -1,5 +1,5 @@ import lz from 'lz-string' -import type { VersionId } from './Schemas' +import type { VersionId } from './Schemas.js' const API_PREFIX = 'https://z15g7can.directus.app/items' diff --git a/src/app/services/Source.ts b/src/app/services/Source.ts index bfb551df..aca6ee79 100644 --- a/src/app/services/Source.ts +++ b/src/app/services/Source.ts @@ -1,5 +1,5 @@ import yaml from 'js-yaml' -import { Store } from '../Store' +import { Store } from '../Store.js' const INDENTS: Record = { '2_spaces': 2, diff --git a/src/app/services/index.ts b/src/app/services/index.ts index ed66a127..22ec077f 100644 --- a/src/app/services/index.ts +++ b/src/app/services/index.ts @@ -1,5 +1,5 @@ -export * from './Changelogs' -export * from './DataFetcher' -export * from './Schemas' -export * from './Sharing' -export * from './Source' +export * from './Changelogs.js' +export * from './DataFetcher.js' +export * from './Schemas.js' +export * from './Sharing.js' +export * from './Source.js' diff --git a/src/giscus.d.ts b/src/giscus.d.ts new file mode 100644 index 00000000..95fe4b8c --- /dev/null +++ b/src/giscus.d.ts @@ -0,0 +1 @@ +declare module '@giscus/react' diff --git a/src/hljs.d.ts b/src/hljs.d.ts new file mode 100644 index 00000000..9e26ea4e --- /dev/null +++ b/src/hljs.d.ts @@ -0,0 +1 @@ +declare module 'highlight.js/lib/languages/json' diff --git a/tsconfig-eslint.json b/tsconfig-eslint.json index 37f5590e..2bd5b4c3 100644 --- a/tsconfig-eslint.json +++ b/tsconfig-eslint.json @@ -1,9 +1,9 @@ { "extends": "./tsconfig.json", "include": [ - "./src", - "**/*.d.ts", - "./cypress", - "vite.config.js" + "./**/*.js", + "./**/*.ts", + "./**/*.tsx", + ".eslintrc.cjs" ] } diff --git a/tsconfig.json b/tsconfig.json index fc0b6811..014f1760 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,9 @@ { "compilerOptions": { "target": "es6", - "module": "esnext", + "module": "node16", "lib": ["dom","esnext"], - "moduleResolution": "node", + "moduleResolution": "node16", "strict": true, "sourceMap": true, "skipLibCheck": true, diff --git a/vite.config.js b/vite.config.js index 8c2a3705..cbcf5c15 100644 --- a/vite.config.js +++ b/vite.config.js @@ -4,12 +4,14 @@ import html from '@rollup/plugin-html' import glob from 'fast-glob' import fs from 'fs' import yaml from 'js-yaml' +import { createRequire } from 'module' import { env } from 'process' +import { visualizer } from 'rollup-plugin-visualizer' import { defineConfig } from 'vite' import { viteStaticCopy } from 'vite-plugin-static-copy' -import config from './src/config.json' -import English from './src/locales/en.json' -import { visualizer } from 'rollup-plugin-visualizer' +const require = createRequire(import.meta.url) +const config = require('./src/config.json') +const English = require('./src/locales/en.json') const guides = glob.sync('src/guides/**/*.md').flatMap(g => { const content = fs.readFileSync(g).toString('utf-8')