From 9e007bd730e4304dbfc130109029899c0aac471b Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 14 Sep 2023 11:17:51 +0000 Subject: [PATCH 01/17] Update extension list --- extensions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions.json b/extensions.json index 2adbd0b..15d8947 100644 --- a/extensions.json +++ b/extensions.json @@ -236,7 +236,7 @@ "name": "News Assistant", "author": "Mervyn Zhan", "description": "Use the api of `OpenAI` to summary the news.", - "version": 0.5, + "version": 0.6, "entrypoint": "NewsAssistant", "type": "system", "url": "https://github.com/reply2future/xExtension-NewsAssistant", From 5a1be06d01b2ca0dd57aea02aa095be259cb39e0 Mon Sep 17 00:00:00 2001 From: maTh <1645099+math-GH@users.noreply.github.com> Date: Thu, 14 Sep 2023 14:03:04 +0200 Subject: [PATCH 02/17] added linters and fixed the issues (#169) * added the rules * fixed QuickCollapse * fixed readingtime * fixed stickyfeeds * fix const/var quick_collapse_vars I do not understand why const does not work * update version number --------- Co-authored-by: math-gh <> --- .eslintrc.json | 29 + .gitignore | 2 + .jshintignore | 3 + .jshintrc | 9 + .stylelintignore | 2 + .stylelintrc.json | 72 + package-lock.json | 4633 +++++++++++++++++ package.json | 43 + xExtension-QuickCollapse/metadata.json | 2 +- xExtension-QuickCollapse/static/script.js | 112 +- .../views/quickCollapse/vars.js | 13 +- xExtension-ReadingTime/metadata.json | 2 +- xExtension-ReadingTime/static/readingtime.js | 117 +- xExtension-StickyFeeds/metadata.json | 2 +- xExtension-StickyFeeds/static/script.js | 16 +- 15 files changed, 4928 insertions(+), 129 deletions(-) create mode 100644 .eslintrc.json create mode 100644 .jshintignore create mode 100644 .jshintrc create mode 100644 .stylelintignore create mode 100644 .stylelintrc.json create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..449161c --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,29 @@ +{ + "env": { + "browser": true + }, + "extends": [ + "eslint:recommended", + "standard" + ], + "rules": { + "camelcase": "off", + "comma-dangle": ["warn", { + "arrays": "always-multiline", + "objects": "always-multiline" + }], + "eqeqeq": "off", + "indent": ["warn", "tab", { "SwitchCase": 1 }], + "linebreak-style": ["error", "unix"], + "max-len": ["warn", 165], + "no-tabs": "off", + "semi": ["warn", "always"], + "space-before-function-paren": ["warn", { + "anonymous": "always", + "named": "never", + "asyncArrow": "always" + }], + "yoda": "off" + }, + "root": true +} diff --git a/.gitignore b/.gitignore index a9a5aec..b5aa358 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ tmp +/node_modules/ +.vscode/ diff --git a/.jshintignore b/.jshintignore new file mode 100644 index 0000000..e613653 --- /dev/null +++ b/.jshintignore @@ -0,0 +1,3 @@ +.git/ +node_modules/ + diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..36d4e3f --- /dev/null +++ b/.jshintrc @@ -0,0 +1,9 @@ +{ + "esversion" : 8, + "browser" : true, + "globals": { + "confirm": true, + "console": true + }, + "strict": "global" +} diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000..c8dbc49 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,2 @@ +.git/ +node_modules/ diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..b14138d --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,72 @@ +{ + "extends": "stylelint-config-recommended-scss", + "plugins": [ + "stylelint-order", + "stylelint-scss" + ], + "rules": { + "at-rule-empty-line-before": [ + "always", { + "ignoreAtRules": [ "after-comment", "else" ] + } + ], + "at-rule-name-space-after": [ + "always", { + "ignoreAtRules": [ "after-comment" ] + } + ], + "block-closing-brace-newline-after": [ + "always", { + "ignoreAtRules": [ "if", "else" ] + } + ], + "block-closing-brace-newline-before": "always-multi-line", + "block-opening-brace-newline-after": "always-multi-line", + "block-opening-brace-space-before": "always", + "color-hex-case": "lower", + "color-hex-length": "short", + "color-no-invalid-hex": true, + "declaration-colon-space-after": "always", + "declaration-colon-space-before": "never", + "indentation": "tab", + "no-descending-specificity": null, + "no-eol-whitespace": true, + "property-no-vendor-prefix": true, + "rule-empty-line-before": [ + "always", { + "except": ["after-single-line-comment","first-nested"] + } + ], + "order/properties-order": [ + "margin", + "padding", + "background", + "display", + "float", + "max-width", + "width", + "max-height", + "height", + "color", + "font", + "font-family", + "font-size", + "border", + "border-top", + "border-top-color", + "border-right", + "border-right-color", + "border-bottom", + "border-bottom-color", + "border-left", + "border-left-color", + "border-radius", + "box-shadow" + ], + "scss/at-else-closing-brace-newline-after": "always-last-in-chain", + "scss/at-else-closing-brace-space-after": "always-intermediate", + "scss/at-else-empty-line-before": "never", + "scss/at-if-closing-brace-newline-after": "always-last-in-chain", + "scss/at-if-closing-brace-space-after": "always-intermediate" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a41b34f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4633 @@ +{ + "name": "freshrss extensions", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "freshrss extensions", + "license": "see each extension", + "devDependencies": { + "eslint": "^8.45.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^16.0.1", + "eslint-plugin-promise": "^6.1.1", + "markdownlint-cli": "^0.35.0", + "sass": "^1.63.6", + "stylelint": "^15.10.2", + "stylelint-config-recommended-scss": "^12.0.0", + "stylelint-order": "^6.0.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz", + "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.2.0" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz", + "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz", + "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "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", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", + "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "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" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", + "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.0.2.tgz", + "integrity": "sha512-Y66uDfUNbBzypsr0kELWrIz+5skicECrLUqlWuXawNSLUq3ltGlCwu6phboYYOTSnoTdHgTLrc+5Ydo6KjzZog==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "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.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.7.tgz", + "integrity": "sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "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.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.1.tgz", + "integrity": "sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", + "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdownlint": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.29.0.tgz", + "integrity": "sha512-ASAzqpODstu/Qsk0xW5BPgWnK/qjpBQ4e7IpsSvvFXcfYIjanLTdwFRJK1SIEEh0fGSMKXcJf/qhaZYHyME0wA==", + "dev": true, + "dependencies": { + "markdown-it": "13.0.1", + "markdownlint-micromark": "0.1.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.35.0.tgz", + "integrity": "sha512-lVIIIV1MrUtjoocgDqXLxUCxlRbn7Ve8rsWppfwciUNwLlNS28AhNiyQ3PU7jjj4Qvj+rWTTvwkqg7AcdG988g==", + "dev": true, + "dependencies": { + "commander": "~11.0.0", + "get-stdin": "~9.0.0", + "glob": "~10.2.7", + "ignore": "~5.2.4", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.2.0", + "markdownlint": "~0.29.0", + "minimatch": "~9.0.1", + "run-con": "~1.2.11" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/markdownlint-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/markdownlint-micromark": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.5.tgz", + "integrity": "sha512-HvofNU4QCvfUCWnocQP1IAWaqop5wpWrB0mKB6SSh0fcpV0PdmQNS6tdUuFew1utpYlUvYYzz84oDkrD76GB9A==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.7.tgz", + "integrity": "sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.19" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sorting": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz", + "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==", + "dev": true, + "peerDependencies": { + "postcss": "^8.4.20" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-con": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", + "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.66.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", + "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylelint": { + "version": "15.10.3", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz", + "integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==", + "dev": true, + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4", + "@csstools/selector-specificity": "^3.0.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.2.0", + "css-functions-list": "^3.2.0", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.28.0", + "mathml-tag-names": "^2.1.3", + "meow": "^10.1.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.27", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", + "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", + "dev": true, + "peerDependencies": { + "stylelint": "^15.5.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", + "integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.6", + "stylelint-config-recommended": "^12.0.0", + "stylelint-scss": "^5.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^15.5.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz", + "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==", + "dev": true, + "dependencies": { + "postcss": "^8.4.21", + "postcss-sorting": "^8.0.2" + }, + "peerDependencies": { + "stylelint": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/stylelint-scss": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz", + "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==", + "dev": true, + "dependencies": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1 || ^15.0.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "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/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b9d983e --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "freshrss extensions", + "description": "Extensions for FreshRSS", + "homepage": "https://freshrss.org/", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/FreshRSS/Extensions/issues" + }, + "keywords": [ + "freshrss", + "extensions" + ], + "repository": { + "type": "git", + "url": "https://github.com/FreshRSS/Extensions.git" + }, + "license": "see each extension", + "engines": { + "node": ">=12" + }, + "scripts": { + "eslint": "eslint --ext .js .", + "eslint_fix": "eslint --fix --ext .js .", + "markdownlint": "markdownlint '**/*.md'", + "markdownlint_fix": "markdownlint --fix '**/*.md'", + "stylelint": "stylelint '**/*.css' && stylelint --custom-syntax postcss-scss '**/*.scss'", + "stylelint_fix": "stylelint --fix '**/*.css' && stylelint --fix --custom-syntax postcss-scss '**/*.scss'", + "test": "npm run eslint && npm run stylelint && npm run markdownlint", + "fix": "npm run rtlcss && npm run stylelint_fix && npm run eslint_fix && npm run markdownlint_fix" + }, + "devDependencies": { + "eslint": "^8.45.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^16.0.1", + "eslint-plugin-promise": "^6.1.1", + "markdownlint-cli": "^0.35.0", + "sass": "^1.63.6", + "stylelint": "^15.10.2", + "stylelint-config-recommended-scss": "^12.0.0", + "stylelint-order": "^6.0.3" + } +} diff --git a/xExtension-QuickCollapse/metadata.json b/xExtension-QuickCollapse/metadata.json index 03cfd01..b3fe974 100644 --- a/xExtension-QuickCollapse/metadata.json +++ b/xExtension-QuickCollapse/metadata.json @@ -2,7 +2,7 @@ "name": "Quick Collapse", "author": "romibi and Marien Fressinaud", "description": "Quickly change from folded to unfolded articles", - "version": 0.1, + "version": 0.1.1, "entrypoint": "QuickCollapse", "type": "user" } diff --git a/xExtension-QuickCollapse/static/script.js b/xExtension-QuickCollapse/static/script.js index 93b3196..97810b7 100644 --- a/xExtension-QuickCollapse/static/script.js +++ b/xExtension-QuickCollapse/static/script.js @@ -1,68 +1,70 @@ +/* globals context, quick_collapse_vars */ + (function () { - function toggleCollapse() { - const streamElem = document.getElementById('stream'); - const toggleElem = document.getElementById('toggle-collapse'); - const wasCollapsed = streamElem.classList.contains('hide_posts'); + function toggleCollapse() { + const streamElem = document.getElementById('stream'); + const toggleElem = document.getElementById('toggle-collapse'); + const wasCollapsed = streamElem.classList.contains('hide_posts'); - if (wasCollapsed) { - streamElem.classList.remove('hide_posts'); - toggleElem.classList.remove('collapsed'); - } else { - streamElem.classList.add('hide_posts'); - toggleElem.classList.add('collapsed'); - } + if (wasCollapsed) { + streamElem.classList.remove('hide_posts'); + toggleElem.classList.remove('collapsed'); + } else { + streamElem.classList.add('hide_posts'); + toggleElem.classList.add('collapsed'); + } - if (context.does_lazyload && wasCollapsed) { - const lazyloadedElements = streamElem.querySelectorAll( - 'img[data-original], iframe[data-original]' - ); - lazyloadedElements.forEach(function (el) { - el.src = el.getAttribute('data-original'); - el.removeAttribute('data-original'); - }); - } - } + if (context.does_lazyload && wasCollapsed) { + const lazyloadedElements = streamElem.querySelectorAll( + 'img[data-original], iframe[data-original]' + ); + lazyloadedElements.forEach(function (el) { + el.src = el.getAttribute('data-original'); + el.removeAttribute('data-original'); + }); + } + } - function syncWithContext() { - if (!window.context || !window.quick_collapse_vars) { - // The variables might not be available yet, so we need to wait for them. - return setTimeout(syncWithContext, 10); - } + function syncWithContext() { + if (!window.context || !window.quick_collapse_vars) { + // The variables might not be available yet, so we need to wait for them. + return setTimeout(syncWithContext, 10); + } - const toggleElem = document.getElementById('toggle-collapse'); - toggleElem.title = quick_collapse_vars.i18n.toggle_collapse; - toggleElem.innerHTML = `↕`; - toggleElem.innerHTML += `✖`; + const toggleElem = document.getElementById('toggle-collapse'); + toggleElem.title = quick_collapse_vars.i18n.toggle_collapse; + toggleElem.innerHTML = `↕`; + toggleElem.innerHTML += `✖`; - if (context.hide_posts) { - toggleElem.classList.add('collapsed'); - } - } + if (context.hide_posts) { + toggleElem.classList.add('collapsed'); + } + } - const streamElem = document.getElementById('stream'); - if (!streamElem || !streamElem.classList.contains('normal')) { - // The button should be enabled only on "normal" view - return; - } + const streamElem = document.getElementById('stream'); + if (!streamElem || !streamElem.classList.contains('normal')) { + // The button should be enabled only on "normal" view + return; + } - // create the new button - const toggleElem = document.createElement('button'); - toggleElem.id = 'toggle-collapse'; - toggleElem.classList.add('btn'); - toggleElem.addEventListener('click', toggleCollapse); + // create the new button + const toggleElem = document.createElement('button'); + toggleElem.id = 'toggle-collapse'; + toggleElem.classList.add('btn'); + toggleElem.addEventListener('click', toggleCollapse); - // replace the "order" button by a stick containing the order and the - // collapse buttons - const orderElem = document.getElementById('toggle-order'); + // replace the "order" button by a stick containing the order and the + // collapse buttons + const orderElem = document.getElementById('toggle-order'); - const stickElem = document.createElement('div'); - stickElem.classList.add('stick'); + const stickElem = document.createElement('div'); + stickElem.classList.add('stick'); - orderElem.parentNode.insertBefore(stickElem, orderElem); - stickElem.appendChild(orderElem); - stickElem.appendChild(toggleElem); + orderElem.parentNode.insertBefore(stickElem, orderElem); + stickElem.appendChild(orderElem); + stickElem.appendChild(toggleElem); - // synchronizes the collapse button with dynamic vars passed via the - // backend (async mode). - syncWithContext(); + // synchronizes the collapse button with dynamic vars passed via the + // backend (async mode). + syncWithContext(); }()); diff --git a/xExtension-QuickCollapse/views/quickCollapse/vars.js b/xExtension-QuickCollapse/views/quickCollapse/vars.js index 7f70960..d5fb882 100644 --- a/xExtension-QuickCollapse/views/quickCollapse/vars.js +++ b/xExtension-QuickCollapse/views/quickCollapse/vars.js @@ -1,7 +1,10 @@ +/* exported quick_collapse_vars */ + +// eslint-disable-next-line no-unused-vars var quick_collapse_vars = { - icon_url_in: "icon_url_in ?>", - icon_url_out: "icon_url_out ?>", - i18n: { - toggle_collapse: "i18n_toggle_collapse ?>", - }, + icon_url_in: 'icon_url_in ?>', + icon_url_out: 'icon_url_out ?>', + i18n: { + toggle_collapse: 'i18n_toggle_collapse ?>', + }, }; diff --git a/xExtension-ReadingTime/metadata.json b/xExtension-ReadingTime/metadata.json index 01c348b..969f5d4 100644 --- a/xExtension-ReadingTime/metadata.json +++ b/xExtension-ReadingTime/metadata.json @@ -2,7 +2,7 @@ "name": "ReadingTime", "author": "Lapineige", "description": "Add a reading time estimation next to each article", - "version": 1.3, + "version": 1.3.1, "entrypoint": "ReadingTime", "type": "user" } diff --git a/xExtension-ReadingTime/static/readingtime.js b/xExtension-ReadingTime/static/readingtime.js index 88fc262..b6d3624 100644 --- a/xExtension-ReadingTime/static/readingtime.js +++ b/xExtension-ReadingTime/static/readingtime.js @@ -1,76 +1,77 @@ -/* globals $ */ - (function reading_time() { - 'use strict'; + 'use strict'; - var reading_time = { - flux_list: null, - flux: null, - textContent: null, - words_count: null, - read_time: null, - reading_time: null, + const reading_time = { + flux_list: null, + flux: null, + textContent: null, + words_count: null, + read_time: null, + reading_time: null, - init: function() { - var flux_list = document.querySelectorAll('[id^="flux_"]'); + init: function () { + const flux_list = document.querySelectorAll('[id^="flux_"]'); - for (var i = 0; i < flux_list.length; i++) { + for (let i = 0; i < flux_list.length; i++) { + if ('readingTime' in flux_list[i].dataset) { + continue; + } - if ("readingTime" in flux_list[i].dataset) { - continue; - } + reading_time.flux = flux_list[i]; - reading_time.flux = flux_list[i]; + reading_time.words_count = reading_time.flux_words_count(flux_list[i]); // count the words + // change this number (in words) to your prefered reading speed: + reading_time.reading_time = reading_time.calc_read_time(reading_time.words_count, 300); - reading_time.words_count = reading_time.flux_words_count(flux_list[i]); // count the words - reading_time.reading_time = reading_time.calc_read_time(reading_time.words_count, 300); // change this number (in words) to your prefered reading speed + flux_list[i].dataset.readingTime = reading_time.reading_time; - flux_list[i].dataset.readingTime = reading_time.reading_time; + const li = document.createElement('li'); + li.setAttribute('class', 'item date'); + li.style.width = 'min-content'; + li.style.minWidth = '40px'; + li.style.overflow = 'hidden'; + li.style.textAlign = 'right'; + li.style.display = 'table-cell'; + li.textContent = reading_time.reading_time + '\u2009m'; - const li = document.createElement("li"); - li.setAttribute("class", "item date"); - li.style.width = "min-content"; - li.style.minWidth = "40px"; - li.style.overflow = "hidden"; - li.style.textAlign = "right"; - li.style.display = "table-cell"; - li.textContent = reading_time.reading_time + '\u2009m'; + const ul = document.querySelector('#' + reading_time.flux.id + ' ul.horizontal-list'); + ul.insertBefore(li, ul.children[ul.children.length - 1]); + } + }, - const ul = document.querySelector("#" + reading_time.flux.id + " ul.horizontal-list"); - ul.insertBefore(li, ul.children[ul.children.length - 1]); - } - }, + flux_words_count: function flux_words_count(flux) { + // get textContent, from the article itself (not the header, not the bottom line): + reading_time.textContent = flux.querySelector('.flux_content .content').textContent; - flux_words_count: function flux_words_count(flux) { + // split the text to count the words correctly (source: http://www.mediacollege.com/internet/javascript/text/count-words.html) + reading_time.textContent = reading_time.textContent.replace(/(^\s*)|(\s*$)/gi, ''); // exclude start and end white-space + reading_time.textContent = reading_time.textContent.replace(/[ ]{2,}/gi, ' '); // 2 or more space to 1 + reading_time.textContent = reading_time.textContent.replace(/\n /, '\n'); // exclude newline with a start spacing - reading_time.textContent = flux.querySelector('.flux_content .content').textContent; // get textContent, from the article itself (not the header, not the bottom line). + return reading_time.textContent.split(' ').length; + }, - // split the text to count the words correctly (source: http://www.mediacollege.com/internet/javascript/text/count-words.html) - reading_time.textContent = reading_time.textContent.replace(/(^\s*)|(\s*$)/gi,"");//exclude start and end white-space - reading_time.textContent = reading_time.textContent.replace(/[ ]{2,}/gi," ");//2 or more space to 1 - reading_time.textContent = reading_time.textContent.replace(/\n /,"\n"); // exclude newline with a start spacing + calc_read_time: function calc_read_time(wd_count, speed) { + reading_time.read_time = Math.round(wd_count / speed); - return reading_time.textContent.split(' ').length; - }, + if (reading_time.read_time === 0) { + reading_time.read_time = '<1'; + } - calc_read_time : function calc_read_time(wd_count, speed) { - reading_time.read_time = Math.round(wd_count/speed); - if (reading_time.read_time === 0) { reading_time.read_time = '<1'; } - return reading_time.read_time; - }, - }; + return reading_time.read_time; + }, + }; - function add_load_more_listener() { - reading_time.init(); - document.body.addEventListener('freshrss:load-more', function (e) { - reading_time.init(); - }); - } - - if (document.readyState && document.readyState !== 'loading') { - add_load_more_listener(); - } else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', add_load_more_listener, false); - } + function add_load_more_listener() { + reading_time.init(); + document.body.addEventListener('freshrss:load-more', function (e) { + reading_time.init(); + }); + } + if (document.readyState && document.readyState !== 'loading') { + add_load_more_listener(); + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', add_load_more_listener, false); + } }()); diff --git a/xExtension-StickyFeeds/metadata.json b/xExtension-StickyFeeds/metadata.json index 6f75c7b..86a1f00 100644 --- a/xExtension-StickyFeeds/metadata.json +++ b/xExtension-StickyFeeds/metadata.json @@ -2,7 +2,7 @@ "name": "Sticky Feeds", "author": "Marien Fressinaud", "description": "Set the feed aside in the main stream following the window scroll.", - "version": 0.1, + "version": 0.1.1, "entrypoint": "StickyFeeds", "type": "user" } diff --git a/xExtension-StickyFeeds/static/script.js b/xExtension-StickyFeeds/static/script.js index 6986ca4..b0a4ffc 100644 --- a/xExtension-StickyFeeds/static/script.js +++ b/xExtension-StickyFeeds/static/script.js @@ -1,12 +1,13 @@ -"use strict"; +/* globals $ */ +'use strict'; -var sticky_feeds = { +const sticky_feeds = { aside: null, tree: null, window: null, - init: function() { - if (window.matchMedia("(max-width: 840px)").matches) { + init: function () { + if (window.matchMedia('(max-width: 840px)').matches) { return; } @@ -34,14 +35,14 @@ var sticky_feeds = { } }, - scroller: function() { - var pos_top_window = sticky_feeds.window.scrollTop(); + scroller: function () { + const pos_top_window = sticky_feeds.window.scrollTop(); if (pos_top_window < sticky_feeds.aside.initial_pos.top + sticky_feeds.tree.initial_pos.top) { // scroll top has not reached the top of the sticky tree yet so it // stays in place but its height must adapted: // window height - sticky tree pos top + actual scroll top - var real_tree_pos_top = sticky_feeds.aside.initial_pos.top + sticky_feeds.tree.initial_pos.top; + const real_tree_pos_top = sticky_feeds.aside.initial_pos.top + sticky_feeds.tree.initial_pos.top; sticky_feeds.tree.css('top', sticky_feeds.tree.initial_pos.top); sticky_feeds.tree.css('height', sticky_feeds.window.height - real_tree_pos_top + pos_top_window); } else { @@ -55,5 +56,4 @@ var sticky_feeds = { }, }; - window.onload = sticky_feeds.init; From 69e6357d6584be934e3d708c7682694fed6c8984 Mon Sep 17 00:00:00 2001 From: maTh <1645099+math-GH@users.noreply.github.com> Date: Thu, 14 Sep 2023 14:06:53 +0200 Subject: [PATCH 03/17] added showFeedID (#168) --- xExtension-showFeedID/LICENSE | 661 +++++++++++++++++++++ xExtension-showFeedID/README.md | 7 + xExtension-showFeedID/extension.php | 6 + xExtension-showFeedID/metadata.json | 8 + xExtension-showFeedID/static/showfeedid.js | 26 + 5 files changed, 708 insertions(+) create mode 100644 xExtension-showFeedID/LICENSE create mode 100644 xExtension-showFeedID/README.md create mode 100644 xExtension-showFeedID/extension.php create mode 100644 xExtension-showFeedID/metadata.json create mode 100644 xExtension-showFeedID/static/showfeedid.js diff --git a/xExtension-showFeedID/LICENSE b/xExtension-showFeedID/LICENSE new file mode 100644 index 0000000..9e7363e --- /dev/null +++ b/xExtension-showFeedID/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + xExtension-Flus + Copyright (C) 2019 Marien Fressinaud + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/xExtension-showFeedID/README.md b/xExtension-showFeedID/README.md new file mode 100644 index 0000000..ae8e74f --- /dev/null +++ b/xExtension-showFeedID/README.md @@ -0,0 +1,7 @@ +Extension for FressRSS (https://github.com/FreshRSS) + +It helps to find the feed IDs of each feed. + +Feed IDs are used f.e. for the search or user queries. + +Adds a button to the subscription management page. It will show the feed IDs of each feed in this overview. diff --git a/xExtension-showFeedID/extension.php b/xExtension-showFeedID/extension.php new file mode 100644 index 0000000..1809fbb --- /dev/null +++ b/xExtension-showFeedID/extension.php @@ -0,0 +1,6 @@ +getFileUrl('showfeedid.js', 'js')); + } +} diff --git a/xExtension-showFeedID/metadata.json b/xExtension-showFeedID/metadata.json new file mode 100644 index 0000000..78dd457 --- /dev/null +++ b/xExtension-showFeedID/metadata.json @@ -0,0 +1,8 @@ +{ + "name": "ShowFeedID", + "author": "math-GH", + "description": "Show the feed ID", + "version": 0.1, + "entrypoint": "ShowFeedID", + "type": "user" +} diff --git a/xExtension-showFeedID/static/showfeedid.js b/xExtension-showFeedID/static/showfeedid.js new file mode 100644 index 0000000..ca01ae9 --- /dev/null +++ b/xExtension-showFeedID/static/showfeedid.js @@ -0,0 +1,26 @@ +'use strict'; + +const url = new URL(window.location); +if (url.searchParams.get('c') === 'subscription') { + const div = document.querySelector('h1 ~ div'); + const button = document.createElement('Button'); + + button.classList.add('btn'); + button.id = 'showFeedId'; + button.innerHTML = ' FeedID'; + div.appendChild(button); + + document.getElementById('showFeedId').addEventListener('click', function (e) { + const feeds = document.querySelectorAll('li.item.feed'); + + let feedId; + let feedname_elem; + feeds.forEach(function (feed) { + feedId = feed.dataset.feedId; + feedname_elem = feed.getElementsByClassName('item-title')[0]; + if (feedname_elem) { + feedname_elem.innerHTML = feedname_elem.textContent + ' (ID: ' + feedId + ')'; + } + }); + }); +} From 812a587d9d37db72d3fe4b97cff1007625ffd4d9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Fri, 15 Sep 2023 11:17:42 +0000 Subject: [PATCH 04/17] Update extension list --- extensions.json | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/extensions.json b/extensions.json index 15d8947..218ebdd 100644 --- a/extensions.json +++ b/extensions.json @@ -254,17 +254,6 @@ "method": "git", "directory": "." }, - { - "name": "Quick Collapse", - "author": "romibi and Marien Fressinaud", - "description": "Quickly change from folded to unfolded articles", - "version": 0.1, - "entrypoint": "QuickCollapse", - "type": "user", - "url": "https://github.com/FreshRSS/Extensions", - "method": "git", - "directory": "xExtension-QuickCollapse" - }, { "name": "RSS-Bridge", "author": "Devon Hess", @@ -298,17 +287,6 @@ "method": "git", "directory": "." }, - { - "name": "ReadingTime", - "author": "Lapineige", - "description": "Add a reading time estimation next to each article", - "version": 1.3, - "entrypoint": "ReadingTime", - "type": "user", - "url": "https://github.com/FreshRSS/Extensions", - "method": "git", - "directory": "xExtension-ReadingTime" - }, { "name": "Reddit Image", "author": "Alexis Degrugillier", @@ -331,6 +309,17 @@ "method": "git", "directory": "xExtension-ShareByEmail" }, + { + "name": "ShowFeedID", + "author": "math-GH", + "description": "Show the feed ID", + "version": 0.1, + "entrypoint": "ShowFeedID", + "type": "user", + "url": "https://github.com/FreshRSS/Extensions", + "method": "git", + "directory": "xExtension-showFeedID" + }, { "name": "Smart Mobile Menu", "author": "Marco Heizmann", @@ -342,17 +331,6 @@ "method": "git", "directory": "xExtension-SmartMobileMenu" }, - { - "name": "Sticky Feeds", - "author": "Marien Fressinaud", - "description": "Set the feed aside in the main stream following the window scroll.", - "version": 0.1, - "entrypoint": "StickyFeeds", - "type": "user", - "url": "https://github.com/FreshRSS/Extensions", - "method": "git", - "directory": "xExtension-StickyFeeds" - }, { "name": "Teem Video Feed", "author": "Kevin Papst", From 327a0672b6d736058604f142201feb6f3d312f9a Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Sat, 16 Sep 2023 11:16:38 +0000 Subject: [PATCH 05/17] Update extension list --- extensions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions.json b/extensions.json index 218ebdd..2df32db 100644 --- a/extensions.json +++ b/extensions.json @@ -236,7 +236,7 @@ "name": "News Assistant", "author": "Mervyn Zhan", "description": "Use the api of `OpenAI` to summary the news.", - "version": 0.6, + "version": 0.7, "entrypoint": "NewsAssistant", "type": "system", "url": "https://github.com/reply2future/xExtension-NewsAssistant", From ce38b3849d2d79f953bd804fb43f7364a432946d Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 16 Sep 2023 14:47:44 +0200 Subject: [PATCH 06/17] Fix JSON versions (#176) fix https://github.com/FreshRSS/Extensions/issues/175 Regression from https://github.com/FreshRSS/Extensions/pull/169 --- xExtension-CustomCSS/metadata.json | 2 +- xExtension-CustomJS/metadata.json | 2 +- xExtension-ImageProxy/metadata.json | 2 +- xExtension-QuickCollapse/metadata.json | 2 +- xExtension-ReadingTime/metadata.json | 2 +- xExtension-ShareByEmail/metadata.json | 2 +- xExtension-StickyFeeds/metadata.json | 2 +- xExtension-TTRSS_API/metadata.json | 2 +- xExtension-TitleWrap/metadata.json | 2 +- xExtension-showFeedID/metadata.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/xExtension-CustomCSS/metadata.json b/xExtension-CustomCSS/metadata.json index 84a79d5..5f35291 100644 --- a/xExtension-CustomCSS/metadata.json +++ b/xExtension-CustomCSS/metadata.json @@ -2,7 +2,7 @@ "name": "Custom CSS", "author": "Marien Fressinaud", "description": "Give possibility to overwrite the CSS with a user-specific rules.", - "version": 0.2, + "version": "0.2", "entrypoint": "CustomCSS", "type": "user" } diff --git a/xExtension-CustomJS/metadata.json b/xExtension-CustomJS/metadata.json index 10122db..b101d0e 100644 --- a/xExtension-CustomJS/metadata.json +++ b/xExtension-CustomJS/metadata.json @@ -2,7 +2,7 @@ "name": "Custom JS", "author": "Frans de Jonge", "description": "Apply custom JS.", - "version": 0.2, + "version": "0.2", "entrypoint": "CustomJS", "type": "user" } diff --git a/xExtension-ImageProxy/metadata.json b/xExtension-ImageProxy/metadata.json index 0eb908a..c184bb2 100644 --- a/xExtension-ImageProxy/metadata.json +++ b/xExtension-ImageProxy/metadata.json @@ -2,7 +2,7 @@ "name": "Image Proxy", "author": "Frans de Jonge", "description": "No insecure content warnings or disappearing images.", - "version": 0.5, + "version": "0.5", "entrypoint": "ImageProxy", "type": "user" } diff --git a/xExtension-QuickCollapse/metadata.json b/xExtension-QuickCollapse/metadata.json index b3fe974..c185629 100644 --- a/xExtension-QuickCollapse/metadata.json +++ b/xExtension-QuickCollapse/metadata.json @@ -2,7 +2,7 @@ "name": "Quick Collapse", "author": "romibi and Marien Fressinaud", "description": "Quickly change from folded to unfolded articles", - "version": 0.1.1, + "version": "0.1.1", "entrypoint": "QuickCollapse", "type": "user" } diff --git a/xExtension-ReadingTime/metadata.json b/xExtension-ReadingTime/metadata.json index 969f5d4..4d8b9d4 100644 --- a/xExtension-ReadingTime/metadata.json +++ b/xExtension-ReadingTime/metadata.json @@ -2,7 +2,7 @@ "name": "ReadingTime", "author": "Lapineige", "description": "Add a reading time estimation next to each article", - "version": 1.3.1, + "version": "1.3.1", "entrypoint": "ReadingTime", "type": "user" } diff --git a/xExtension-ShareByEmail/metadata.json b/xExtension-ShareByEmail/metadata.json index 0fadb36..3731a61 100644 --- a/xExtension-ShareByEmail/metadata.json +++ b/xExtension-ShareByEmail/metadata.json @@ -2,7 +2,7 @@ "name": "Share By Email", "author": "Marien Fressinaud", "description": "Improve the sharing by email system.", - "version": 0.1, + "version": "0.1", "entrypoint": "ShareByEmail", "type": "user" } diff --git a/xExtension-StickyFeeds/metadata.json b/xExtension-StickyFeeds/metadata.json index 86a1f00..062a6a3 100644 --- a/xExtension-StickyFeeds/metadata.json +++ b/xExtension-StickyFeeds/metadata.json @@ -2,7 +2,7 @@ "name": "Sticky Feeds", "author": "Marien Fressinaud", "description": "Set the feed aside in the main stream following the window scroll.", - "version": 0.1.1, + "version": "0.1.1", "entrypoint": "StickyFeeds", "type": "user" } diff --git a/xExtension-TTRSS_API/metadata.json b/xExtension-TTRSS_API/metadata.json index 25c167e..4b7e286 100644 --- a/xExtension-TTRSS_API/metadata.json +++ b/xExtension-TTRSS_API/metadata.json @@ -2,7 +2,7 @@ "name": "TinyTinyRSS API", "author": "Marien Fressinaud", "description": "Provides an API compliant with TinyTinyRSS applications.", - "version": 0.1, + "version": "0.1", "entrypoint": "TTRSS_API", "type": "system" } diff --git a/xExtension-TitleWrap/metadata.json b/xExtension-TitleWrap/metadata.json index ab5c4c2..1141025 100644 --- a/xExtension-TitleWrap/metadata.json +++ b/xExtension-TitleWrap/metadata.json @@ -2,7 +2,7 @@ "name": "Title-Wrap", "author": "₣rans de Jonge, Joris Kinable", "description": "Applies a line-wrap to long article titles, as opposed to truncating the title when it overflows its display area.", - "version": 0.1, + "version": "0.1", "entrypoint": "TitleWrap", "type": "user" } diff --git a/xExtension-showFeedID/metadata.json b/xExtension-showFeedID/metadata.json index 78dd457..b34e766 100644 --- a/xExtension-showFeedID/metadata.json +++ b/xExtension-showFeedID/metadata.json @@ -2,7 +2,7 @@ "name": "ShowFeedID", "author": "math-GH", "description": "Show the feed ID", - "version": 0.1, + "version": "0.1", "entrypoint": "ShowFeedID", "type": "user" } From 79211d30aafd6e41141df0490a21dcef1e239285 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Sat, 16 Sep 2023 12:50:13 +0000 Subject: [PATCH 07/17] Update extension list --- extensions.json | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/extensions.json b/extensions.json index 2df32db..c089c09 100644 --- a/extensions.json +++ b/extensions.json @@ -82,7 +82,7 @@ "name": "Custom CSS", "author": "Marien Fressinaud", "description": "Give possibility to overwrite the CSS with a user-specific rules.", - "version": 0.2, + "version": "0.2", "entrypoint": "CustomCSS", "type": "user", "url": "https://github.com/FreshRSS/Extensions", @@ -93,7 +93,7 @@ "name": "Custom JS", "author": "Frans de Jonge", "description": "Apply custom JS.", - "version": 0.2, + "version": "0.2", "entrypoint": "CustomJS", "type": "user", "url": "https://github.com/FreshRSS/Extensions", @@ -181,7 +181,7 @@ "name": "Image Proxy", "author": "Frans de Jonge", "description": "No insecure content warnings or disappearing images.", - "version": 0.5, + "version": "0.5", "entrypoint": "ImageProxy", "type": "user", "url": "https://github.com/FreshRSS/Extensions", @@ -254,6 +254,17 @@ "method": "git", "directory": "." }, + { + "name": "Quick Collapse", + "author": "romibi and Marien Fressinaud", + "description": "Quickly change from folded to unfolded articles", + "version": "0.1.1", + "entrypoint": "QuickCollapse", + "type": "user", + "url": "https://github.com/FreshRSS/Extensions", + "method": "git", + "directory": "xExtension-QuickCollapse" + }, { "name": "RSS-Bridge", "author": "Devon Hess", @@ -287,6 +298,17 @@ "method": "git", "directory": "." }, + { + "name": "ReadingTime", + "author": "Lapineige", + "description": "Add a reading time estimation next to each article", + "version": "1.3.1", + "entrypoint": "ReadingTime", + "type": "user", + "url": "https://github.com/FreshRSS/Extensions", + "method": "git", + "directory": "xExtension-ReadingTime" + }, { "name": "Reddit Image", "author": "Alexis Degrugillier", @@ -302,7 +324,7 @@ "name": "Share By Email", "author": "Marien Fressinaud", "description": "Improve the sharing by email system.", - "version": 0.1, + "version": "0.1", "entrypoint": "ShareByEmail", "type": "user", "url": "https://github.com/FreshRSS/Extensions", @@ -313,7 +335,7 @@ "name": "ShowFeedID", "author": "math-GH", "description": "Show the feed ID", - "version": 0.1, + "version": "0.1", "entrypoint": "ShowFeedID", "type": "user", "url": "https://github.com/FreshRSS/Extensions", @@ -331,6 +353,17 @@ "method": "git", "directory": "xExtension-SmartMobileMenu" }, + { + "name": "Sticky Feeds", + "author": "Marien Fressinaud", + "description": "Set the feed aside in the main stream following the window scroll.", + "version": "0.1.1", + "entrypoint": "StickyFeeds", + "type": "user", + "url": "https://github.com/FreshRSS/Extensions", + "method": "git", + "directory": "xExtension-StickyFeeds" + }, { "name": "Teem Video Feed", "author": "Kevin Papst", @@ -368,7 +401,7 @@ "name": "TinyTinyRSS API", "author": "Marien Fressinaud", "description": "Provides an API compliant with TinyTinyRSS applications.", - "version": 0.1, + "version": "0.1", "entrypoint": "TTRSS_API", "type": "system", "url": "https://github.com/FreshRSS/Extensions", @@ -379,7 +412,7 @@ "name": "Title-Wrap", "author": "₣rans de Jonge, Joris Kinable", "description": "Applies a line-wrap to long article titles, as opposed to truncating the title when it overflows its display area.", - "version": 0.1, + "version": "0.1", "entrypoint": "TitleWrap", "type": "user", "url": "https://github.com/FreshRSS/Extensions", From 0aa6e4c1866f088f4de26889867360a34114b709 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Tue, 19 Sep 2023 11:17:59 +0000 Subject: [PATCH 08/17] Update extension list --- extensions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions.json b/extensions.json index c089c09..90aa994 100644 --- a/extensions.json +++ b/extensions.json @@ -236,7 +236,7 @@ "name": "News Assistant", "author": "Mervyn Zhan", "description": "Use the api of `OpenAI` to summary the news.", - "version": 0.7, + "version": 0.1, "entrypoint": "NewsAssistant", "type": "system", "url": "https://github.com/reply2future/xExtension-NewsAssistant", From da8d929bf8e0db3a28ee3ad1a12e547834cb56df Mon Sep 17 00:00:00 2001 From: Rudis Muiznieks Date: Tue, 26 Sep 2023 02:29:52 -0500 Subject: [PATCH 09/17] Add Kagi Summarizer extension (#177) --- README.md | 4 ++++ extensions.json | 11 +++++++++++ repositories.json | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/README.md b/README.md index 0173e0a..a9294c7 100644 --- a/README.md +++ b/README.md @@ -95,3 +95,7 @@ There are some FreshRSS extensions out there, developed by community members: ### By [@giventofly](https://github.com/giventofly) * [Comics In Feed](https://github.com/giventofly/freshrss-comicsinfeed): Display comicss directly in FreshRSS (currently for The awkward yeti and Butter Safe). + +### By [@rudism](https://code.sitosis.com/rudism) + +* [Kagi Summarizer](https://code.sitosis.com/rudism/freshrss-kagi-summarizer): Adds a "Summarize" button to the top of all entries that will fetch the summary of the entry using the [Kagi Universal Summarizer](https://kagi.com/summarizer/index.html). diff --git a/extensions.json b/extensions.json index 90aa994..2ec6b4d 100644 --- a/extensions.json +++ b/extensions.json @@ -462,6 +462,17 @@ "url": "https://github.com/cn-tools/cntools_FreshRssExtensions", "method": "git", "directory": "xExtension-YouTubeChannel2RssFeed" + }, + { + "name": "Kagi Summarizer", + "author": "Rudis Muiznieks", + "description": "Add a button to summarize articles with the Kagi Universal Summarizer.", + "version": 0.1, + "entrypoint": "KagiSummarizer", + "type": "user", + "url": "https://code.sitosis.com/rudism/freshrss-kagi-summarizer", + "method": "git", + "directory": "." } ] } diff --git a/repositories.json b/repositories.json index c5d307e..b3d414d 100644 --- a/repositories.json +++ b/repositories.json @@ -74,4 +74,8 @@ { "url": "https://github.com/giventofly/freshrss-comicsinfeed", "type": "git" +}, +{ + "url": "https://code.sitosis.com/rudism/freshrss-kagi-summarizer", + "type": "git" }] From 7254dad47d11c063e3dff44d0ecdd8eb6795c86c Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Tue, 26 Sep 2023 11:18:03 +0000 Subject: [PATCH 10/17] Update extension list --- extensions.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/extensions.json b/extensions.json index 2ec6b4d..ae0027e 100644 --- a/extensions.json +++ b/extensions.json @@ -199,6 +199,17 @@ "method": "git", "directory": "xExtension-Invidious" }, + { + "name": "Kagi Summarizer", + "author": "Rudis Muiznieks", + "description": "Add a button to summarize articles with the Kagi Universal Summarizer.", + "version": 0.1, + "entrypoint": "KagiSummarizer", + "type": "user", + "url": "https://code.sitosis.com/rudism/freshrss-kagi-summarizer", + "method": "git", + "directory": "." + }, { "name": "Keep Folder State", "author": "Marco Heizmann", @@ -462,17 +473,6 @@ "url": "https://github.com/cn-tools/cntools_FreshRssExtensions", "method": "git", "directory": "xExtension-YouTubeChannel2RssFeed" - }, - { - "name": "Kagi Summarizer", - "author": "Rudis Muiznieks", - "description": "Add a button to summarize articles with the Kagi Universal Summarizer.", - "version": 0.1, - "entrypoint": "KagiSummarizer", - "type": "user", - "url": "https://code.sitosis.com/rudism/freshrss-kagi-summarizer", - "method": "git", - "directory": "." } ] } From d95776578444a53300bed04c2deed360fe15edb3 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Fri, 29 Sep 2023 11:17:48 +0000 Subject: [PATCH 11/17] Update extension list --- extensions.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions.json b/extensions.json index ae0027e..3cf3eb9 100644 --- a/extensions.json +++ b/extensions.json @@ -202,8 +202,8 @@ { "name": "Kagi Summarizer", "author": "Rudis Muiznieks", - "description": "Add a button to summarize articles with the Kagi Universal Summarizer.", - "version": 0.1, + "description": "Add buttons to summarize articles with the Kagi Universal Summarizer.", + "version": 0.2, "entrypoint": "KagiSummarizer", "type": "user", "url": "https://code.sitosis.com/rudism/freshrss-kagi-summarizer", From 2d9965219dcc591e6df218be7c8913f288653aa8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 Oct 2023 13:31:07 +0200 Subject: [PATCH 12/17] Bump postcss from 8.4.29 to 8.4.31 (#178) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.29 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.29...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a41b34f..39276dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3281,9 +3281,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { From 8af0d55265ffa03de22ee62b2ae175b3cb038a3c Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 8 Oct 2023 16:33:57 +0200 Subject: [PATCH 13/17] Dev updates (#179) Follow-up of https://github.com/FreshRSS/Extensions/pull/178 --- .eslintignore | 4 + .github/workflows/generate.yml | 2 +- .jshintignore | 2 +- .stylelintignore | 1 + package-lock.json | 443 +++++++++++++++++++-------------- package.json | 14 +- 6 files changed, 266 insertions(+), 200 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..97a4d7b --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +*.min.js +.git/ +node_modules/ +tmp/ diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index 54ae13f..3f70d3e 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout source code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build JSON file run: php ./generate.php diff --git a/.jshintignore b/.jshintignore index e613653..211abc0 100644 --- a/.jshintignore +++ b/.jshintignore @@ -1,3 +1,3 @@ .git/ node_modules/ - +tmp/ diff --git a/.stylelintignore b/.stylelintignore index c8dbc49..211abc0 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -1,2 +1,3 @@ .git/ node_modules/ +tmp/ diff --git a/package-lock.json b/package-lock.json index 39276dd..0f26a2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,21 +1,21 @@ { - "name": "freshrss extensions", + "name": "freshrss-extensions", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "freshrss extensions", + "name": "freshrss-extensions", "license": "see each extension", "devDependencies": { - "eslint": "^8.45.0", + "eslint": "^8.51.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.27.5", + "eslint-plugin-import": "^2.28.1", "eslint-plugin-n": "^16.0.1", "eslint-plugin-promise": "^6.1.1", - "markdownlint-cli": "^0.35.0", - "sass": "^1.63.6", - "stylelint": "^15.10.2", - "stylelint-config-recommended-scss": "^12.0.0", + "markdownlint-cli": "^0.37.0", + "sass": "^1.69.0", + "stylelint": "^15.10.3", + "stylelint-config-recommended-scss": "^13.0.0", "stylelint-order": "^6.0.3" }, "engines": { @@ -116,21 +116,21 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, @@ -210,9 +210,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz", - "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", + "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", "dev": true, "funding": [ { @@ -228,13 +228,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz", - "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", + "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", "dev": true, "funding": [ { @@ -251,9 +251,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz", - "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", + "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", "dev": true, "funding": [ { @@ -269,8 +269,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/selector-specificity": { @@ -311,9 +311,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", - "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -343,9 +343,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -480,15 +480,15 @@ "dev": true }, "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.3.tgz", + "integrity": "sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==", "dev": true }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz", + "integrity": "sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==", "dev": true }, "node_modules/acorn": { @@ -585,15 +585,15 @@ } }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -632,14 +632,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -650,14 +650,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -668,14 +668,15 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", - "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "get-intrinsic": "^1.2.1", "is-array-buffer": "^3.0.2", "is-shared-array-buffer": "^1.0.2" @@ -949,14 +950,14 @@ "dev": true }, "node_modules/cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", + "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { @@ -964,6 +965,14 @@ }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -1092,12 +1101,27 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", "dev": true, "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -1166,18 +1190,18 @@ } }, "node_modules/es-abstract": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", - "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", + "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", @@ -1193,23 +1217,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "safe-array-concat": "^1.0.0", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", "typed-array-buffer": "^1.0.0", "typed-array-byte-length": "^1.0.0", "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.10" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -1271,16 +1295,16 @@ } }, "node_modules/eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/js": "8.51.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", @@ -1471,14 +1495,15 @@ } }, "node_modules/eslint-plugin-n": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.0.2.tgz", - "integrity": "sha512-Y66uDfUNbBzypsr0kELWrIz+5skicECrLUqlWuXawNSLUq3ltGlCwu6phboYYOTSnoTdHgTLrc+5Ydo6KjzZog==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", + "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "builtins": "^5.0.1", "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", "ignore": "^5.2.4", "is-core-module": "^2.12.1", "minimatch": "^3.1.2", @@ -1726,12 +1751,12 @@ } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", "dev": true, "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, @@ -1740,9 +1765,9 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/for-each": { @@ -1866,20 +1891,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { - "version": "10.2.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.7.tgz", - "integrity": "sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -1969,9 +2006,9 @@ } }, "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2052,13 +2089,10 @@ } }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -2246,12 +2280,12 @@ "dev": true }, "node_modules/ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/internal-slot": { @@ -2558,9 +2592,9 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.1.tgz", - "integrity": "sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -2636,9 +2670,9 @@ "dev": true }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -2752,33 +2786,33 @@ } }, "node_modules/markdownlint": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.29.0.tgz", - "integrity": "sha512-ASAzqpODstu/Qsk0xW5BPgWnK/qjpBQ4e7IpsSvvFXcfYIjanLTdwFRJK1SIEEh0fGSMKXcJf/qhaZYHyME0wA==", + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz", + "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==", "dev": true, "dependencies": { "markdown-it": "13.0.1", - "markdownlint-micromark": "0.1.5" + "markdownlint-micromark": "0.1.7" }, "engines": { "node": ">=16" } }, "node_modules/markdownlint-cli": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.35.0.tgz", - "integrity": "sha512-lVIIIV1MrUtjoocgDqXLxUCxlRbn7Ve8rsWppfwciUNwLlNS28AhNiyQ3PU7jjj4Qvj+rWTTvwkqg7AcdG988g==", + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.37.0.tgz", + "integrity": "sha512-hNKAc0bWBBuVhJbSWbUhRzavstiB4o1jh3JeSpwC4/dt6eJ54lRfYHRxVdzVp4qGWBKbeE6Pg490PFEfrKjqSg==", "dev": true, "dependencies": { "commander": "~11.0.0", "get-stdin": "~9.0.0", - "glob": "~10.2.7", + "glob": "~10.3.4", "ignore": "~5.2.4", "js-yaml": "^4.1.0", "jsonc-parser": "~3.2.0", - "markdownlint": "~0.29.0", - "minimatch": "~9.0.1", - "run-con": "~1.2.11" + "markdownlint": "~0.31.1", + "minimatch": "~9.0.3", + "run-con": "~1.3.2" }, "bin": { "markdownlint": "markdownlint.js" @@ -2812,9 +2846,9 @@ } }, "node_modules/markdownlint-micromark": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.5.tgz", - "integrity": "sha512-HvofNU4QCvfUCWnocQP1IAWaqop5wpWrB0mKB6SSh0fcpV0PdmQNS6tdUuFew1utpYlUvYYzz84oDkrD76GB9A==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz", + "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", "dev": true, "engines": { "node": ">=16" @@ -2947,9 +2981,9 @@ } }, "node_modules/minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -3337,9 +3371,9 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.7.tgz", - "integrity": "sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, "funding": [ { @@ -3359,7 +3393,7 @@ "node": ">=12.0" }, "peerDependencies": { - "postcss": "^8.4.19" + "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { @@ -3528,14 +3562,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -3554,9 +3588,9 @@ } }, "node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "dependencies": { "is-core-module": "^2.13.0", @@ -3579,6 +3613,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -3625,13 +3668,13 @@ } }, "node_modules/run-con": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", - "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", "dev": true, "dependencies": { "deep-extend": "^0.6.0", - "ini": "~3.0.0", + "ini": "~4.1.0", "minimist": "^1.2.8", "strip-json-comments": "~3.1.1" }, @@ -3663,13 +3706,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -3695,9 +3738,9 @@ } }, "node_modules/sass": { - "version": "1.66.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", - "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "version": "1.69.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.0.tgz", + "integrity": "sha512-l3bbFpfTOGgQZCLU/gvm1lbsQ5mC/WnLz3djL2v4WCJBDrWm58PO+jgngcGRNnKUh6wSsdm50YaovTqskZ0xDQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -3720,6 +3763,20 @@ "semver": "bin/semver.js" } }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3829,9 +3886,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/string-width": { @@ -3900,14 +3957,14 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -3917,28 +3974,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4070,27 +4127,30 @@ } }, "node_modules/stylelint-config-recommended": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", - "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz", + "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==", "dev": true, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, "peerDependencies": { - "stylelint": "^15.5.0" + "stylelint": "^15.10.0" } }, "node_modules/stylelint-config-recommended-scss": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", - "integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-13.0.0.tgz", + "integrity": "sha512-7AmMIsHTsuwUQm7I+DD5BGeIgCvqYZ4BpeYJJpb1cUXQwrJAKjA+GBotFZgUEGP8lAM+wmd91ovzOi8xfAyWEw==", "dev": true, "dependencies": { - "postcss-scss": "^4.0.6", - "stylelint-config-recommended": "^12.0.0", - "stylelint-scss": "^5.0.0" + "postcss-scss": "^4.0.7", + "stylelint-config-recommended": "^13.0.0", + "stylelint-scss": "^5.1.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^15.5.0" + "stylelint": "^15.10.0" }, "peerDependenciesMeta": { "postcss": { @@ -4112,11 +4172,12 @@ } }, "node_modules/stylelint-scss": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz", - "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.2.1.tgz", + "integrity": "sha512-ZoTJUM85/qqpQHfEppjW/St//8s6p9Qsg8deWlYlr56F9iUgC9vXeIDQvH4odkRRJLTLFQzYMALSOFCQ3MDkgw==", "dev": true, "dependencies": { + "known-css-properties": "^0.28.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.13", diff --git a/package.json b/package.json index b9d983e..96065ae 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "freshrss extensions", + "name": "freshrss-extensions", "description": "Extensions for FreshRSS", "homepage": "https://freshrss.org/", "readmeFilename": "README.md", @@ -29,15 +29,15 @@ "fix": "npm run rtlcss && npm run stylelint_fix && npm run eslint_fix && npm run markdownlint_fix" }, "devDependencies": { - "eslint": "^8.45.0", + "eslint": "^8.51.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.27.5", + "eslint-plugin-import": "^2.28.1", "eslint-plugin-n": "^16.0.1", "eslint-plugin-promise": "^6.1.1", - "markdownlint-cli": "^0.35.0", - "sass": "^1.63.6", - "stylelint": "^15.10.2", - "stylelint-config-recommended-scss": "^12.0.0", + "markdownlint-cli": "^0.37.0", + "sass": "^1.69.0", + "stylelint": "^15.10.3", + "stylelint-config-recommended-scss": "^13.0.0", "stylelint-order": "^6.0.3" } } From 8cebb26c3d3bce7c629cf86d08e665ef9623d22a Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Tue, 31 Oct 2023 11:17:59 +0000 Subject: [PATCH 14/17] Update extension list --- extensions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions.json b/extensions.json index 3cf3eb9..2415804 100644 --- a/extensions.json +++ b/extensions.json @@ -126,7 +126,7 @@ "name": "Feed Priority Shortcut", "author": "Aidi Stan", "description": "Set up visibilities/priorities of your feeds easily", - "version": "1.0.2", + "version": "1.0.3", "entrypoint": "FeedPriorityShortcut", "type": "user", "url": "https://github.com/aidistan/freshrss-extensions", From 6c90d616c731671f8d16e82c32d6c768f19bcbed Mon Sep 17 00:00:00 2001 From: iClaud Date: Sun, 19 Nov 2023 04:12:05 +0800 Subject: [PATCH 15/17] Add 'Colorful List' Extension (#180) * add ColorfulList * remove unused css * Update xExtension-ColorfulList/static/script.js Per Frenzie comment/suggestion Co-authored-by: Frans de Jonge * var name refine --------- Co-authored-by: shinemoon Co-authored-by: Frans de Jonge --- xExtension-ColorfulList/LICENSE | 21 ++++++++++++ xExtension-ColorfulList/README.md | 8 +++++ xExtension-ColorfulList/extension.php | 8 +++++ xExtension-ColorfulList/metadata.json | 8 +++++ xExtension-ColorfulList/snapshot.png | Bin 0 -> 156846 bytes xExtension-ColorfulList/static/script.js | 40 +++++++++++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 xExtension-ColorfulList/LICENSE create mode 100644 xExtension-ColorfulList/README.md create mode 100644 xExtension-ColorfulList/extension.php create mode 100644 xExtension-ColorfulList/metadata.json create mode 100644 xExtension-ColorfulList/snapshot.png create mode 100644 xExtension-ColorfulList/static/script.js diff --git a/xExtension-ColorfulList/LICENSE b/xExtension-ColorfulList/LICENSE new file mode 100644 index 0000000..74b8f8b --- /dev/null +++ b/xExtension-ColorfulList/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 oyox + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/xExtension-ColorfulList/README.md b/xExtension-ColorfulList/README.md new file mode 100644 index 0000000..4c2f1da --- /dev/null +++ b/xExtension-ColorfulList/README.md @@ -0,0 +1,8 @@ +# FreshRSS Colorful List +Generate light different background color for article list rows (relying on the feed name) + +# Installation +To use it, upload the *xExtension-ColorfulList* folder in your ./extensions directory and enable it on the extension panel in FreshRSS. + +# Preview +![snapshot](snapshot.png) diff --git a/xExtension-ColorfulList/extension.php b/xExtension-ColorfulList/extension.php new file mode 100644 index 0000000..9301d0e --- /dev/null +++ b/xExtension-ColorfulList/extension.php @@ -0,0 +1,8 @@ +getFileUrl('script.js', 'js'),'','',''); + } +} diff --git a/xExtension-ColorfulList/metadata.json b/xExtension-ColorfulList/metadata.json new file mode 100644 index 0000000..4be6483 --- /dev/null +++ b/xExtension-ColorfulList/metadata.json @@ -0,0 +1,8 @@ +{ + "name": "Colorful List", + "author": "Claud Xiao", + "description": "Colorful Entry Title based on RSS source", + "version": 0.1, + "entrypoint": "ColorfulList", + "type": "user" +} diff --git a/xExtension-ColorfulList/snapshot.png b/xExtension-ColorfulList/snapshot.png new file mode 100644 index 0000000000000000000000000000000000000000..746b8437cd010c1cc05e11a1c4dfaf66569a0d96 GIT binary patch literal 156846 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 NTpcY7yP@_R;j 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

3d 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�@+u#GG2DSwF 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 R`+osHQeyI=<-&$P{tx|LPi_DJ literal 0 HcmV?d00001 diff --git a/xExtension-ColorfulList/static/script.js b/xExtension-ColorfulList/static/script.js new file mode 100644 index 0000000..0363fcf --- /dev/null +++ b/xExtension-ColorfulList/static/script.js @@ -0,0 +1,40 @@ +document.addEventListener('DOMContentLoaded', function(){ + function monitorEntry(monitorCallback) { + const targetNode = document.getElementById('stream'); + const config = { attributes: false, childList: true, subtree: false}; + const callback = function(mutationsList, observer) { + for(let mutation of mutationsList) { + if (mutation.type === 'childList') { + monitorCallback(mutationsList); + } + } + }; + const observer = new MutationObserver(callback); + observer.observe(targetNode, config); + //observer.disconnect(); + }; + monitorEntry(colorize); +}); + + +function colorize(entries){ + let entry = document.querySelectorAll('.flux_header'); + entry.forEach((e,i)=>{ + let cl = stringToColour(e.querySelector('.website').textContent)+'12'; + e.style.background=cl; + }); +}; + + +const stringToColour = (str) => { + let hash = 0; + str.split('').forEach(char => { + hash = char.charCodeAt(0) + ((hash << 5) - hash) + }) + let color = '#'; + for (let i = 0; i < 3; i++) { + const value = (hash >> (i * 8)) & 0xff + color += value.toString(16).padStart(2, '0') + } + return color; +}; From ee6aa7c84f1446a17aadf9130776bdf2d399e8eb Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Sun, 19 Nov 2023 11:17:13 +0000 Subject: [PATCH 16/17] Update extension list --- extensions.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/extensions.json b/extensions.json index 2415804..ce288e1 100644 --- a/extensions.json +++ b/extensions.json @@ -56,6 +56,17 @@ "method": "git", "directory": "xExtension-ClickableLinks" }, + { + "name": "Colorful List", + "author": "Claud Xiao", + "description": "Colorful Entry Title based on RSS source", + "version": 0.1, + "entrypoint": "ColorfulList", + "type": "user", + "url": "https://github.com/FreshRSS/Extensions", + "method": "git", + "directory": "xExtension-ColorfulList" + }, { "name": "Comics in feed", "author": "José Moreira", From ce44911e325dc1291bf91e11b41e16e9e1698cc9 Mon Sep 17 00:00:00 2001 From: Marius Date: Tue, 21 Nov 2023 17:23:55 +0100 Subject: [PATCH 17/17] Make extensions use typed methods Minz_Request::paramString and Minz_Session::paramString (#181) * enable strict_types * replace deprecated Minz_Session::param method and use typed version Minz_Session::paramString instead * replace deprecated Minz_Request::param method and use typed version Minz_Request::paramString instead * bump version --- xExtension-CustomCSS/extension.php | 8 +++++--- xExtension-CustomCSS/metadata.json | 2 +- xExtension-CustomJS/extension.php | 8 +++++--- xExtension-CustomJS/metadata.json | 2 +- xExtension-ImageProxy/extension.php | 14 ++++++++------ xExtension-ImageProxy/metadata.json | 2 +- xExtension-QuickCollapse/extension.php | 2 ++ xExtension-ReadingTime/extension.php | 2 ++ xExtension-ShareByEmail/extension.php | 2 ++ xExtension-StickyFeeds/extension.php | 2 ++ xExtension-TTRSS_API/extension.php | 2 ++ xExtension-TitleWrap/extension.php | 2 ++ xExtension-showFeedID/extension.php | 3 +++ 13 files changed, 36 insertions(+), 15 deletions(-) diff --git a/xExtension-CustomCSS/extension.php b/xExtension-CustomCSS/extension.php index 6860e3d..1061f23 100644 --- a/xExtension-CustomCSS/extension.php +++ b/xExtension-CustomCSS/extension.php @@ -1,10 +1,12 @@ registerTranslates(); - $current_user = Minz_Session::param('currentUser'); + $current_user = Minz_Session::paramString('currentUser'); $filename = 'style.' . $current_user . '.css'; $filepath = join_path($this->getPath(), 'static', $filename); @@ -16,7 +18,7 @@ class CustomCSSExtension extends Minz_Extension { public function handleConfigureAction() { $this->registerTranslates(); - $current_user = Minz_Session::param('currentUser'); + $current_user = Minz_Session::paramString('currentUser'); $filename = 'style.' . $current_user . '.css'; $staticPath = join_path($this->getPath(), 'static'); $filepath = join_path($staticPath, $filename); @@ -28,7 +30,7 @@ class CustomCSSExtension extends Minz_Extension { $tmpPath = explode(EXTENSIONS_PATH . '/', $filepath); $this->permission_problem = $tmpPath[1]; } else if (Minz_Request::isPost()) { - $css_rules = html_entity_decode(Minz_Request::param('css-rules', '')); + $css_rules = html_entity_decode(Minz_Request::paramString('css-rules')); file_put_contents($filepath, $css_rules); } diff --git a/xExtension-CustomCSS/metadata.json b/xExtension-CustomCSS/metadata.json index 5f35291..b606c56 100644 --- a/xExtension-CustomCSS/metadata.json +++ b/xExtension-CustomCSS/metadata.json @@ -2,7 +2,7 @@ "name": "Custom CSS", "author": "Marien Fressinaud", "description": "Give possibility to overwrite the CSS with a user-specific rules.", - "version": "0.2", + "version": "0.3", "entrypoint": "CustomCSS", "type": "user" } diff --git a/xExtension-CustomJS/extension.php b/xExtension-CustomJS/extension.php index db76899..9f86ea5 100644 --- a/xExtension-CustomJS/extension.php +++ b/xExtension-CustomJS/extension.php @@ -1,10 +1,12 @@ registerTranslates(); - $current_user = Minz_Session::param('currentUser'); + $current_user = Minz_Session::paramString('currentUser'); $filename = 'script.' . $current_user . '.js'; $filepath = join_path($this->getPath(), 'static', $filename); @@ -16,7 +18,7 @@ class CustomJSExtension extends Minz_Extension { public function handleConfigureAction() { $this->registerTranslates(); - $current_user = Minz_Session::param('currentUser'); + $current_user = Minz_Session::paramString('currentUser'); $filename = 'script.' . $current_user . '.js'; $staticPath = join_path($this->getPath(), 'static'); $filepath = join_path($staticPath, $filename); @@ -28,7 +30,7 @@ class CustomJSExtension extends Minz_Extension { $tmpPath = explode(EXTENSIONS_PATH . '/', $filepath); $this->permission_problem = $tmpPath[1]; } else if (Minz_Request::isPost()) { - $js_rules = html_entity_decode(Minz_Request::param('js-rules', '')); + $js_rules = html_entity_decode(Minz_Request::paramString('js-rules')); file_put_contents($filepath, $js_rules); } diff --git a/xExtension-CustomJS/metadata.json b/xExtension-CustomJS/metadata.json index b101d0e..c608f47 100644 --- a/xExtension-CustomJS/metadata.json +++ b/xExtension-CustomJS/metadata.json @@ -2,7 +2,7 @@ "name": "Custom JS", "author": "Frans de Jonge", "description": "Apply custom JS.", - "version": "0.2", + "version": "0.3", "entrypoint": "CustomJS", "type": "user" } diff --git a/xExtension-ImageProxy/extension.php b/xExtension-ImageProxy/extension.php index 2e9e3c9..73bc013 100644 --- a/xExtension-ImageProxy/extension.php +++ b/xExtension-ImageProxy/extension.php @@ -1,5 +1,7 @@ registerTranslates(); if (Minz_Request::isPost()) { - FreshRSS_Context::$user_conf->image_proxy_url = Minz_Request::param('image_proxy_url', self::PROXY_URL, true); - FreshRSS_Context::$user_conf->image_proxy_scheme_http = Minz_Request::param('image_proxy_scheme_http', ''); - FreshRSS_Context::$user_conf->image_proxy_scheme_https = Minz_Request::param('image_proxy_scheme_https', ''); - FreshRSS_Context::$user_conf->image_proxy_scheme_default = Minz_Request::param('image_proxy_scheme_default', self::SCHEME_DEFAULT); - FreshRSS_Context::$user_conf->image_proxy_scheme_include = Minz_Request::param('image_proxy_scheme_include', ''); - FreshRSS_Context::$user_conf->image_proxy_url_encode = Minz_Request::param('image_proxy_url_encode', ''); + FreshRSS_Context::$user_conf->image_proxy_url = Minz_Request::paramString('image_proxy_url', true) ?: self::PROXY_URL; + FreshRSS_Context::$user_conf->image_proxy_scheme_http = Minz_Request::paramString('image_proxy_scheme_http'); + FreshRSS_Context::$user_conf->image_proxy_scheme_https = Minz_Request::paramString('image_proxy_scheme_https'); + FreshRSS_Context::$user_conf->image_proxy_scheme_default = Minz_Request::paramString('image_proxy_scheme_default') ?: self::SCHEME_DEFAULT; + FreshRSS_Context::$user_conf->image_proxy_scheme_include = Minz_Request::paramString('image_proxy_scheme_include'); + FreshRSS_Context::$user_conf->image_proxy_url_encode = Minz_Request::paramString('image_proxy_url_encode'); FreshRSS_Context::$user_conf->save(); } } diff --git a/xExtension-ImageProxy/metadata.json b/xExtension-ImageProxy/metadata.json index c184bb2..687423e 100644 --- a/xExtension-ImageProxy/metadata.json +++ b/xExtension-ImageProxy/metadata.json @@ -2,7 +2,7 @@ "name": "Image Proxy", "author": "Frans de Jonge", "description": "No insecure content warnings or disappearing images.", - "version": "0.5", + "version": "0.6", "entrypoint": "ImageProxy", "type": "user" } diff --git a/xExtension-QuickCollapse/extension.php b/xExtension-QuickCollapse/extension.php index 2b4531f..8f8e425 100644 --- a/xExtension-QuickCollapse/extension.php +++ b/xExtension-QuickCollapse/extension.php @@ -1,5 +1,7 @@ registerTranslates(); diff --git a/xExtension-ReadingTime/extension.php b/xExtension-ReadingTime/extension.php index b8fbf4c..3cb3f19 100644 --- a/xExtension-ReadingTime/extension.php +++ b/xExtension-ReadingTime/extension.php @@ -1,4 +1,6 @@ getFileUrl('readingtime.js', 'js')); diff --git a/xExtension-ShareByEmail/extension.php b/xExtension-ShareByEmail/extension.php index 5000da6..5e5ed4f 100644 --- a/xExtension-ShareByEmail/extension.php +++ b/xExtension-ShareByEmail/extension.php @@ -1,5 +1,7 @@ registerTranslates(); diff --git a/xExtension-StickyFeeds/extension.php b/xExtension-StickyFeeds/extension.php index 862d7e8..e5365ce 100644 --- a/xExtension-StickyFeeds/extension.php +++ b/xExtension-StickyFeeds/extension.php @@ -1,5 +1,7 @@ getFileUrl('style.css', 'css')); diff --git a/xExtension-TTRSS_API/extension.php b/xExtension-TTRSS_API/extension.php index 8533149..87004c0 100644 --- a/xExtension-TTRSS_API/extension.php +++ b/xExtension-TTRSS_API/extension.php @@ -1,5 +1,7 @@ registerHook('post_update', diff --git a/xExtension-TitleWrap/extension.php b/xExtension-TitleWrap/extension.php index 36a028e..c33ce8d 100644 --- a/xExtension-TitleWrap/extension.php +++ b/xExtension-TitleWrap/extension.php @@ -1,5 +1,7 @@ getFileUrl('title_wrap.css', 'css')); diff --git a/xExtension-showFeedID/extension.php b/xExtension-showFeedID/extension.php index 1809fbb..b17e37f 100644 --- a/xExtension-showFeedID/extension.php +++ b/xExtension-showFeedID/extension.php @@ -1,4 +1,7 @@ getFileUrl('showfeedid.js', 'js'));