From af9567dff191f615871e4222efce396c6e20baec Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Wed, 10 Jul 2024 02:00:53 +0530 Subject: [PATCH 01/11] Moved PHP code from Hyve Pro --- .browserslintrc | 7 + .distignore | 37 + .editorconfig | 19 + .eslintrc | 66 + .gitattributes | 31 + .gitignore | 14 + .releaserc.yml | 34 + Gruntfile.js | 37 + assets/audio/click.mp3 | Bin 0 -> 6085 bytes assets/audio/ping.mp3 | Bin 0 -> 1977 bytes composer.json | 45 + composer.lock | 867 + hyve-lite.php | 49 + inc/API.php | 724 + inc/BaseAPI.php | 160 + inc/Block.php | 45 + inc/Cosine_Similarity.php | 64 + inc/DB_Table.php | 414 + inc/Main.php | 289 + inc/OpenAI.php | 439 + inc/Threads.php | 218 + package-lock.json | 27129 ++++++++++++++++ package.json | 65 + phpcs.xml | 44 + phpstan.neon | 8 + postcss.config.js | 3 + src/backend/App.js | 79 + src/backend/index.js | 18 + src/backend/parts/Home.js | 173 + src/backend/parts/Messages.js | 169 + src/backend/parts/ModerationReview.js | 119 + src/backend/parts/Notices.js | 33 + src/backend/parts/PostModal.js | 181 + src/backend/parts/PostsTable.js | 98 + src/backend/parts/Sidebar.js | 97 + src/backend/parts/data/AddData.js | 200 + src/backend/parts/data/Custom.js | 171 + src/backend/parts/data/FAQ.js | 195 + src/backend/parts/data/FailedModeration.js | 138 + src/backend/parts/data/KnowledgeBase.js | 103 + src/backend/parts/data/Updated.js | 132 + src/backend/parts/settings/Advanced.js | 240 + src/backend/parts/settings/Appearance.js | 127 + src/backend/parts/settings/Assistant.js | 117 + src/backend/parts/settings/General.js | 159 + src/backend/parts/settings/Moderation.js | 123 + src/backend/route.js | 116 + src/backend/store.js | 124 + src/backend/style.scss | 41 + src/backend/utils.js | 235 + src/block/block.json | 36 + src/block/index.js | 30 + src/block/render.php | 25 + src/frontend/App.js | 463 + src/frontend/index.js | 14 + src/frontend/style.scss | 364 + tailwind.config.js | 6 + tests/php/static-analysis-stubs/hyve-lite.php | 11 + 58 files changed, 34945 insertions(+) create mode 100644 .browserslintrc create mode 100644 .distignore create mode 100644 .editorconfig create mode 100644 .eslintrc create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .releaserc.yml create mode 100644 Gruntfile.js create mode 100644 assets/audio/click.mp3 create mode 100644 assets/audio/ping.mp3 create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 hyve-lite.php create mode 100644 inc/API.php create mode 100644 inc/BaseAPI.php create mode 100644 inc/Block.php create mode 100644 inc/Cosine_Similarity.php create mode 100644 inc/DB_Table.php create mode 100644 inc/Main.php create mode 100644 inc/OpenAI.php create mode 100644 inc/Threads.php create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpcs.xml create mode 100644 phpstan.neon create mode 100644 postcss.config.js create mode 100644 src/backend/App.js create mode 100644 src/backend/index.js create mode 100644 src/backend/parts/Home.js create mode 100644 src/backend/parts/Messages.js create mode 100644 src/backend/parts/ModerationReview.js create mode 100644 src/backend/parts/Notices.js create mode 100644 src/backend/parts/PostModal.js create mode 100644 src/backend/parts/PostsTable.js create mode 100644 src/backend/parts/Sidebar.js create mode 100644 src/backend/parts/data/AddData.js create mode 100644 src/backend/parts/data/Custom.js create mode 100644 src/backend/parts/data/FAQ.js create mode 100644 src/backend/parts/data/FailedModeration.js create mode 100644 src/backend/parts/data/KnowledgeBase.js create mode 100644 src/backend/parts/data/Updated.js create mode 100644 src/backend/parts/settings/Advanced.js create mode 100644 src/backend/parts/settings/Appearance.js create mode 100644 src/backend/parts/settings/Assistant.js create mode 100644 src/backend/parts/settings/General.js create mode 100644 src/backend/parts/settings/Moderation.js create mode 100644 src/backend/route.js create mode 100644 src/backend/store.js create mode 100644 src/backend/style.scss create mode 100644 src/backend/utils.js create mode 100644 src/block/block.json create mode 100644 src/block/index.js create mode 100644 src/block/render.php create mode 100644 src/frontend/App.js create mode 100644 src/frontend/index.js create mode 100644 src/frontend/style.scss create mode 100644 tailwind.config.js create mode 100644 tests/php/static-analysis-stubs/hyve-lite.php diff --git a/.browserslintrc b/.browserslintrc new file mode 100644 index 0000000..ff95991 --- /dev/null +++ b/.browserslintrc @@ -0,0 +1,7 @@ +# Browsers that we support + +last 1 version +> 1% +not ie > 0 +not ie_mob > 0 +not dead \ No newline at end of file diff --git a/.distignore b/.distignore new file mode 100644 index 0000000..753003b --- /dev/null +++ b/.distignore @@ -0,0 +1,37 @@ +.git +.distignore +.gitignore +.travis.yml +.jshintrc +Gruntfile.js +phpcs.xml +.eslintrc +.gitattributes +.releaserc.yml +.DS_Store +.editorconfig +.browserslistrc +postcss.config.js +docker-compose.yml +webpack.config.js +CONTRIBUTING.md +package.json +composer.json +composer.lock +package-lock.json +themeisle-hash.json +npm-debug.log +phpstan.neon +tailwind.config.js +/grunt +/node_modules +/logs +/.github +/.wordpress-org +/.idea +/src +/bin +/tests +/phpunit.xml +/dist +/artifact \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..dfe8254 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.yml] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..87cb608 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,66 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "extends": "wordpress", + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": 2021, + "sourceType": "module" + }, + "ignorePatterns": [ "node_modules", "assets" ], + "rules": { + "indent": [ + "error", + "tab" + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single" + ], + "semi": [ + "error", + "always" + ], + "prefer-destructuring": [ + "warn", + { + "array": false, + "object": true + }, + { + "enforceForRenamedProperties": false + } + ], + "array-bracket-spacing": [ + "warn", + "always", + { + "arraysInArrays": false, + "objectsInArrays": false + } + ], + "key-spacing": [ + "warn", + { + "beforeColon": false, + "afterColon": true + } + ], + "object-curly-spacing": [ + "warn", + "always", + { + "arraysInObjects": true, + "objectsInObjects": false + } + ], + } +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f17ed90 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,31 @@ +.gitattributes export-ignore +.gitignore export-ignore +.travis.yml export-ignore +Gruntfile.js export-ignore +sample-theme export-ignore +docker-compose.yml export-ignore +.releaserc.json export-ignore +composer.json export-ignore +composer.lock export-ignore +.nvmrc export-ignore +package.json export-ignore +package-lock.json export-ignore +phpcs.xml export-ignore +phpunit.xml export-ignore +README.md export-ignore +tests export-ignore +bin export-ignore +README.md export-ignore +# Set the default behavior for all files. +* text=auto + +# Normalized and converts to +# native line endings on checkout. +*.php text + +# Convert to LF line endings on checkout. +*.sh text eol=lf + +# Binary files. +*.png binary +*.jpg binary \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63a1000 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +.idea +node_modules +logs +dist +build +artifact +vendor +.DS_Store +.vscode +todo.md +artifacts +*.results.json +.phpunit.result.cache +.fleet \ No newline at end of file diff --git a/.releaserc.yml b/.releaserc.yml new file mode 100644 index 0000000..07b8e43 --- /dev/null +++ b/.releaserc.yml @@ -0,0 +1,34 @@ +--- +branches: + - main +plugins: + - - "@semantic-release/commit-analyzer" + - preset: simple-preset + releaseRules: conventional-changelog-simple-preset/release-rules + - - "@semantic-release/changelog" + - changelogFile: CHANGELOG.md + - - "@semantic-release/release-notes-generator" + - preset: simple-preset + - - "@semantic-release/exec" + - prepareCmd: "replace-in-file \"== Changelog ==\" \"== Changelog ==\n\n${nextRelease.notes}\" readme.txt" + - - "@semantic-release/exec" + - prepareCmd: grunt version::${nextRelease.version} + - - "semantic-release-slack-bot" + - notifyOnSuccess: false + notifyOnFail: false + markdownReleaseNotes: true + branchesConfig: + - pattern: main + notifyOnSuccess: true + notifyOnFail: false + - - "@semantic-release/git" + - assets: + - CHANGELOG.md + - composer.json + - package-lock.json + - readme.txt + - README.md + - hyve-lite.php + - package.json + message: "chore(release): ${nextRelease.version} \n\n${nextRelease.notes}" + - - "@semantic-release/github" diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..dc97d83 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,37 @@ +/* eslint-disable camelcase */ +/* jshint node:true */ +/* global require */ + +module.exports = function( grunt ) { + grunt.loadNpmTasks( 'grunt-version' ); + grunt.initConfig( + { + version: { + project: { + src: [ + 'package.json' + ] + }, + composer: { + src: [ + 'composer.json' + ] + }, + metatag: { + options: { + prefix: 'Version:\\s*', + flags: '' + }, + src: [ 'hyve-lite.php' ] + }, + php: { + options: { + prefix: 'HYVE_LITE_VERSION\', \'', + flags: '' + }, + src: [ 'hyve-lite.php' ] + } + } + } + ); +}; diff --git a/assets/audio/click.mp3 b/assets/audio/click.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0ab817570ac4712f9071525d90b113c54f7713c8 GIT binary patch literal 6085 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 literal 0 HcmV?d00001 diff --git a/assets/audio/ping.mp3 b/assets/audio/ping.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7e8de0dc6d393287b2d0141488a6998cfa7576c9 GIT binary patch literal 1977 zcmc(geKb^Q7{H&IxtbwqVlY}+#&>Dx`m*pZ+rtqoRLB|G)GK4~`&D$lt(30D2;zT0FF@ z(GspDR*OPQiI(eH+O?>)5Lz@Qr1J)i^E^$U#YVfJC-z^-Hq%DhnHWX+Fu4yPl-ywe zOtJ)^&=x|^KOeZ_0LaBi<>3J%wOe6m%8G_-14p;N%P`Gz-?!JBYm*W$VpasL+`YAP z&YgB)Qk^{!Xk^O_9iP%(M}!Q17&kd7Y$*G|V2{G`$M-FH$=<-gZ}fS#eNEjJoi@0$DG*0F$DIMz~44#?f5W zYm<1xPl5-krX)iA@kQx@mI1n(odvrcSg}@i$#!QfglC#p4AuIFWPdj&|4E!!c8X&x zH)9{!{J7g_m-{lLtmOWfdQB$%e(SdIt3@m3u4=lFFxNPEU)IErkMdG;b^MP1#;nA*i&M>Y|iFJZFM zamES8uiqu0u)OUwL9A@c4pSN*dMsKs!+vqO2q-enbqr&&oEh$?Gv4rc9M_OvE?wnQ zEBw*^Pm}Q@(e+L538IS~b2+smg$dw~8}PGxPgF;u=&bYRlX`pO$0E@_SxYoif5!l; zY6Vadd!k@w~I=3v~UD%4>cg-ui=o>R$m-jTwF)T@3sZQLw zTIox8Y%z*;1BQ}pxs5bgzlVPFZJH+-+`NS&)D|Stkv(aV6~@D*IGK}+y`;|ZlnvFc zyx<^BpAx>_$>P8&D$NTmdg1Q#a+92h_>?~|Oxz-f@sIbe7mis*7e6}I-+FnWt3ls{ zlljw>h0F9i{J70`z*o%njf9n6c+^RaY+|NA2MBW#)N#%#*wrtL19EhjeW@YZ$~}$ zl`nReQ+=zYN9=N!>el5K`fYxR5ULw5yT|T{!jpcmj>59ZnK3V z74o}<{x`Ruji%O|_nq>3cFx?H!QCIhO(>8ilo?L0?vZKaO!2;Q zNsgsjKl8=I+94_H{DSAnET^Su_5ML}#*^xXvrA3={%n){ zSS1MX7ICJr9kcKI?J1jzif85+oC~qV;}4x{KlZK9FY5x*N-ys%)U+HYw(mZLhx6EA zhOto~E2mG>fjA7LV2P2gnPz=?Ibn;VpQId2w-WxrJ75^rppbUV8&#BA=v9hpBi^ox z>X2GjIEBTpYjk+OtJQW-X1CP~)XydtQ>9kj`TAg}?@ZSralg3k=TiaWwKqJCV#ewk z6g?+Kc#`kUQkb4TE)Fqd!#Z)7jC?FF74U=}v$*r;YYOMYP*s8(Stu~;GW`VBK;1!Y r%#Fh=zXCHp$f?}fzMlt;9G2Yo-{*mRA@WI8O8{3=8TmYBWY)g`(2y4+ literal 0 HcmV?d00001 diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..07af59f --- /dev/null +++ b/composer.json @@ -0,0 +1,45 @@ +{ + "name": "codeinwp/hyve-lite", + "description": "An AI support bot.", + "version": "1.1.0", + "type": "wordpress-plugin", + "license": "GPL-V3", + "autoload": { + "psr-4": { + "ThemeIsle\\HyveLite\\": "inc/" + }, + "files": [ + "vendor/codeinwp/themeisle-sdk/load.php" + ] + }, + "authors": [ + { + "name": "ThemeIsle Team", + "email": "friends@themeisle.com" + }, + { + "name": "Hardeep Asrani", + "email": "hardeep@themeisle.com" + } + ], + "scripts": { + "lint": "phpcs --standard=phpcs.xml", + "format": "phpcbf --standard=phpcs.xml", + "phpstan": "phpstan analyse --memory-limit 2G" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "szepeviktor/phpstan-wordpress": "^1.3", + "wp-coding-standards/wpcs": "^3.0", + "automattic/vipwpcs": "^3.0", + "phpcompatibility/php-compatibility": "^9.3" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, + "require": { + "codeinwp/themeisle-sdk": "^3.3" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..e2fd4d8 --- /dev/null +++ b/composer.lock @@ -0,0 +1,867 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "899cea0899e04b0a7aeb6b06127115f5", + "packages": [ + { + "name": "codeinwp/themeisle-sdk", + "version": "3.3.24", + "source": { + "type": "git", + "url": "https://github.com/Codeinwp/themeisle-sdk.git", + "reference": "b9ba5697b150eddacb4aa482b363d9f459f822c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/b9ba5697b150eddacb4aa482b363d9f459f822c5", + "reference": "b9ba5697b150eddacb4aa482b363d9f459f822c5", + "shasum": "" + }, + "require-dev": { + "codeinwp/phpcs-ruleset": "dev-main" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "ThemeIsle team", + "email": "friends@themeisle.com", + "homepage": "https://themeisle.com" + } + ], + "description": "ThemeIsle SDK", + "homepage": "https://github.com/Codeinwp/themeisle-sdk", + "keywords": [ + "wordpress" + ], + "support": { + "issues": "https://github.com/Codeinwp/themeisle-sdk/issues", + "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.24" + }, + "time": "2024-06-25T09:38:29+00:00" + } + ], + "packages-dev": [ + { + "name": "automattic/vipwpcs", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/Automattic/VIP-Coding-Standards.git", + "reference": "2b1d206d81b74ed999023cffd924f862ff2753c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Automattic/VIP-Coding-Standards/zipball/2b1d206d81b74ed999023cffd924f862ff2753c8", + "reference": "2b1d206d81b74ed999023cffd924f862ff2753c8", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "phpcsstandards/phpcsextra": "^1.2.1", + "phpcsstandards/phpcsutils": "^1.0.11", + "sirbrillig/phpcs-variable-analysis": "^2.11.18", + "squizlabs/php_codesniffer": "^3.9.2", + "wp-coding-standards/wpcs": "^3.1.0" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9", + "phpcsstandards/phpcsdevtools": "^1.0", + "phpunit/phpunit": "^4 || ^5 || ^6 || ^7 || ^8 || ^9" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/Automattic/VIP-Coding-Standards/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress VIP minimum coding conventions", + "keywords": [ + "phpcs", + "standards", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/Automattic/VIP-Coding-Standards/issues", + "source": "https://github.com/Automattic/VIP-Coding-Standards", + "wiki": "https://github.com/Automattic/VIP-Coding-Standards/wiki" + }, + "time": "2024-05-10T20:31:09+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "php-stubs/wordpress-stubs", + "version": "v6.5.3", + "source": { + "type": "git", + "url": "https://github.com/php-stubs/wordpress-stubs.git", + "reference": "e611a83292d02055a25f83291a98fadd0c21e092" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/e611a83292d02055a25f83291a98fadd0c21e092", + "reference": "e611a83292d02055a25f83291a98fadd0c21e092", + "shasum": "" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "nikic/php-parser": "^4.13", + "php": "^7.4 || ~8.0.0", + "php-stubs/generator": "^0.8.3", + "phpdocumentor/reflection-docblock": "5.3", + "phpstan/phpstan": "^1.10.49", + "phpunit/phpunit": "^9.5", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.11" + }, + "suggest": { + "paragonie/sodium_compat": "Pure PHP implementation of libsodium", + "symfony/polyfill-php80": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WordPress function and class declaration stubs for static analysis.", + "homepage": "https://github.com/php-stubs/wordpress-stubs", + "keywords": [ + "PHPStan", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/php-stubs/wordpress-stubs/issues", + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.5.3" + }, + "time": "2024-05-08T02:12:31+00:00" + }, + { + "name": "phpcompatibility/php-compatibility", + "version": "9.3.5", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + }, + "conflict": { + "squizlabs/php_codesniffer": "2.6.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "homepage": "https://github.com/wimg", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" + } + ], + "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", + "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", + "keywords": [ + "compatibility", + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, + "time": "2019-12-27T09:44:58+00:00" + }, + { + "name": "phpcsstandards/phpcsextra", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", + "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/11d387c6642b6e4acaf0bd9bf5203b8cca1ec489", + "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "phpcsstandards/phpcsutils": "^1.0.9", + "squizlabs/php_codesniffer": "^3.8.0" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcsstandards/phpcsdevcs": "^1.1.6", + "phpcsstandards/phpcsdevtools": "^1.2.1", + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors" + } + ], + "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", + "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSExtra" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2023-12-08T16:49:07+00:00" + }, + { + "name": "phpcsstandards/phpcsutils", + "version": "1.0.12", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", + "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/87b233b00daf83fb70f40c9a28692be017ea7c6c", + "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.10.0 || 4.0.x-dev@dev" + }, + "require-dev": { + "ext-filter": "*", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcsstandards/phpcsdevcs": "^1.1.6", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHPCSUtils/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors" + } + ], + "description": "A suite of utility functions for use with PHP_CodeSniffer", + "homepage": "https://phpcsutils.com/", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "phpcs3", + "standards", + "static analysis", + "tokens", + "utility" + ], + "support": { + "docs": "https://phpcsutils.com/", + "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", + "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSUtils" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-05-20T13:34:27+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "1.11.7", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2024-07-06T11:17:41+00:00" + }, + { + "name": "sirbrillig/phpcs-variable-analysis", + "version": "v2.11.19", + "source": { + "type": "git", + "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", + "reference": "bc8d7e30e2005bce5c59018b7cdb08e9fb45c0d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/bc8d7e30e2005bce5c59018b7cdb08e9fb45c0d1", + "reference": "bc8d7e30e2005bce5c59018b7cdb08e9fb45c0d1", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "squizlabs/php_codesniffer": "^3.5.6" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", + "phpcsstandards/phpcsdevcs": "^1.1", + "phpstan/phpstan": "^1.7", + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0", + "sirbrillig/phpcs-import-detection": "^1.1", + "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0@beta" + }, + "type": "phpcodesniffer-standard", + "autoload": { + "psr-4": { + "VariableAnalysis\\": "VariableAnalysis/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Sam Graham", + "email": "php-codesniffer-variableanalysis@illusori.co.uk" + }, + { + "name": "Payton Swick", + "email": "payton@foolord.com" + } + ], + "description": "A PHPCS sniff to detect problems with variables.", + "keywords": [ + "phpcs", + "static analysis" + ], + "support": { + "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues", + "source": "https://github.com/sirbrillig/phpcs-variable-analysis", + "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" + }, + "time": "2024-06-26T20:08:34+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.10.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877", + "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-05-22T21:24:41+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "szepeviktor/phpstan-wordpress", + "version": "v1.3.4", + "source": { + "type": "git", + "url": "https://github.com/szepeviktor/phpstan-wordpress.git", + "reference": "891d0767855a32c886a439efae090408cc1fa156" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/891d0767855a32c886a439efae090408cc1fa156", + "reference": "891d0767855a32c886a439efae090408cc1fa156", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "php-stubs/wordpress-stubs": "^4.7 || ^5.0 || ^6.0", + "phpstan/phpstan": "^1.10.31", + "symfony/polyfill-php73": "^1.12.0" + }, + "require-dev": { + "composer/composer": "^2.1.14", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpstan/phpstan-strict-rules": "^1.2", + "phpunit/phpunit": "^8.0 || ^9.0", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.8" + }, + "suggest": { + "swissspidy/phpstan-no-private": "Detect usage of internal core functions, classes and methods" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "SzepeViktor\\PHPStan\\WordPress\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WordPress extensions for PHPStan", + "keywords": [ + "PHPStan", + "code analyse", + "code analysis", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", + "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v1.3.4" + }, + "time": "2024-03-21T16:32:59+00:00" + }, + { + "name": "wp-coding-standards/wpcs", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", + "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/9333efcbff231f10dfd9c56bb7b65818b4733ca7", + "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", + "php": ">=5.4", + "phpcsstandards/phpcsextra": "^1.2.1", + "phpcsstandards/phpcsutils": "^1.0.10", + "squizlabs/php_codesniffer": "^3.9.0" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.0", + "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "suggest": { + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", + "keywords": [ + "phpcs", + "standards", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, + "funding": [ + { + "url": "https://opencollective.com/php_codesniffer", + "type": "custom" + } + ], + "time": "2024-03-25T16:39:00+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/hyve-lite.php b/hyve-lite.php new file mode 100644 index 0000000..a4eea66 --- /dev/null +++ b/hyve-lite.php @@ -0,0 +1,49 @@ +register_route(); + } + + /** + * Register hooks and actions. + * + * @return void + */ + private function register_route() { + add_action( 'rest_api_init', array( $this, 'register_routes' ) ); + } + + /** + * Register REST API route + * + * @return void + */ + public function register_routes() { + $namespace = $this->get_endpoint(); + + $routes = array( + 'settings' => array( + array( + 'methods' => \WP_REST_Server::READABLE, + 'callback' => array( $this, 'get_settings' ), + ), + array( + 'methods' => \WP_REST_Server::CREATABLE, + 'args' => array( + 'data' => array( + 'required' => true, + 'type' => 'object', + 'validate_callback' => function ( $param ) { + return is_array( $param ); + }, + ), + ), + 'callback' => array( $this, 'update_settings' ), + ), + ), + 'data' => array( + array( + 'methods' => \WP_REST_Server::READABLE, + 'args' => array( + 'offset' => array( + 'required' => false, + 'type' => 'integer', + 'default' => 0, + ), + 'type' => array( + 'required' => false, + 'type' => 'string', + 'default' => 'any', + ), + 'search' => array( + 'required' => false, + 'type' => 'string', + ), + 'status' => array( + 'required' => false, + 'type' => 'string', + ), + ), + 'callback' => array( $this, 'get_data' ), + ), + array( + 'methods' => \WP_REST_Server::CREATABLE, + 'args' => array( + 'action' => array( + 'required' => false, + 'type' => 'string', + ), + 'data' => array( + 'required' => true, + 'type' => 'object', + ), + ), + 'callback' => array( $this, 'add_data' ), + ), + array( + 'methods' => \WP_REST_Server::DELETABLE, + 'args' => array( + 'id' => array( + 'required' => true, + 'type' => 'integer', + ), + ), + 'callback' => array( $this, 'delete_data' ), + ), + ), + 'threads' => array( + array( + 'methods' => \WP_REST_Server::READABLE, + 'args' => array( + 'offset' => array( + 'required' => false, + 'type' => 'integer', + 'default' => 0, + ), + ), + 'callback' => array( $this, 'get_threads' ), + ), + ), + 'chat' => array( + array( + 'methods' => \WP_REST_Server::READABLE, + 'args' => array( + 'run_id' => array( + 'required' => true, + 'type' => 'string', + ), + 'thread_id' => array( + 'required' => true, + 'type' => 'string', + ), + 'record_id' => array( + 'required' => true, + 'type' => array( + 'string', + 'integer', + ), + ), + 'message' => array( + 'required' => false, + 'type' => 'string', + ), + ), + 'callback' => array( $this, 'get_chat' ), + 'permission_callback' => function ( $request ) { + $nonce = $request->get_header( 'x_wp_nonce' ); + return wp_verify_nonce( $nonce, 'wp_rest' ); + }, + ), + array( + 'methods' => \WP_REST_Server::CREATABLE, + 'args' => array( + 'message' => array( + 'required' => true, + 'type' => 'string', + ), + 'thread_id' => array( + 'required' => false, + 'type' => 'string', + ), + 'record_id' => array( + 'required' => false, + 'type' => array( + 'string', + 'integer', + ), + ), + ), + 'callback' => array( $this, 'send_chat' ), + 'permission_callback' => function ( $request ) { + $nonce = $request->get_header( 'x_wp_nonce' ); + return wp_verify_nonce( $nonce, 'wp_rest' ); + }, + ), + ), + ); + + foreach ( $routes as $route => $args ) { + foreach ( $args as $key => $arg ) { + if ( ! isset( $args[ $key ]['permission_callback'] ) ) { + $args[ $key ]['permission_callback'] = function () { + return current_user_can( 'manage_options' ); + }; + } + } + + register_rest_route( $namespace, '/' . $route, $args ); + } + } + + /** + * Get settings. + * + * @return \WP_REST_Response + */ + public function get_settings() { + $settings = Main::get_settings(); + return rest_ensure_response( $settings ); + } + + /** + * Update settings. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function update_settings( $request ) { + $data = $request->get_param( 'data' ); + $settings = Main::get_settings(); + $updated = array(); + + foreach ( $data as $key => $datum ) { + if ( ! array_key_exists( $key, $settings ) || $settings[ $key ] === $datum ) { + continue; + } + + $updated[ $key ] = $datum; + } + + if ( empty( $updated ) ) { + return rest_ensure_response( array( 'error' => __( 'No settings to update.', 'hyve' ) ) ); + } + + $validation = apply_filters( + 'hyve_settings_validation', + array( + 'api_key' => function ( $value ) { + return is_string( $value ); + }, + 'chat_enabled' => function ( $value ) { + return is_bool( $value ); + }, + 'welcome_message' => function ( $value ) { + return is_string( $value ); + }, + 'default_message' => function ( $value ) { + return is_string( $value ); + }, + 'temperature' => function ( $value ) { + return is_numeric( $value ); + }, + 'top_p' => function ( $value ) { + return is_numeric( $value ); + }, + 'moderation_threshold' => function ( $value ) { + return is_array( $value ) && array_reduce( + $value, + function ( $carry, $item ) { + return $carry && is_int( $item ); + }, + true + ); + }, + ) + ); + + foreach ( $updated as $key => $value ) { + if ( ! $validation[ $key ]( $value ) ) { + return rest_ensure_response( + array( + // translators: %s: option key. + 'error' => sprintf( __( 'Invalid value: %s', 'hyve' ), $key ), + ) + ); + } + } + + foreach ( $updated as $key => $value ) { + $settings[ $key ] = $value; + + if ( 'api_key' === $key && ! empty( $value ) ) { + $openai = new OpenAI( $value ); + $valid_api = $openai->setup_assistant(); + + if ( is_wp_error( $valid_api ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $valid_api ) ) ); + } + + $settings['assistant_id'] = $valid_api; + } + } + + update_option( 'hyve_settings', $settings ); + + return rest_ensure_response( __( 'Settings updated.', 'hyve' ) ); + } + + /** + * Get data. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function get_data( $request ) { + $args = array( + 'post_type' => $request->get_param( 'type' ), + 'post_status' => 'publish', + 'posts_per_page' => 20, + 'fields' => 'ids', + 'offset' => $request->get_param( 'offset' ), + 'meta_query' => array( + array( + 'key' => '_hyve_added', + 'compare' => 'NOT EXISTS', + ), + array( + 'key' => '_hyve_moderation_failed', + 'compare' => 'NOT EXISTS', + ), + ), + ); + + $search = $request->get_param( 'search' ); + + if ( ! empty( $search ) ) { + $args['s'] = $search; + } + + $status = $request->get_param( 'status' ); + + if ( 'included' === $status ) { + $args['meta_query'] = array( + 'relation' => 'AND', + array( + 'key' => '_hyve_added', + 'value' => '1', + 'compare' => '=', + ), + array( + 'key' => '_hyve_moderation_failed', + 'compare' => 'NOT EXISTS', + ), + ); + } + + if ( 'pending' === $status ) { + $args['meta_query'] = array( + 'relation' => 'AND', + array( + 'key' => '_hyve_needs_update', + 'value' => '1', + 'compare' => '=', + ), + array( + 'key' => '_hyve_moderation_failed', + 'compare' => 'NOT EXISTS', + ), + ); + } + + if ( 'moderation' === $status ) { + $args['meta_query'] = array( + array( + 'key' => '_hyve_moderation_failed', + 'value' => '1', + 'compare' => '=', + ), + ); + } + + $query = new \WP_Query( $args ); + + $posts_data = array(); + + if ( $query->have_posts() ) { + foreach ( $query->posts as $post_id ) { + $post_data = array( + 'ID' => $post_id, + 'title' => get_the_title( $post_id ), + 'content' => apply_filters( 'the_content', get_post_field( 'post_content', $post_id ) ), + ); + + if ( 'moderation' === $status ) { + $review = get_post_meta( $post_id, '_hyve_moderation_review', true ); + + if ( ! is_array( $review ) || empty( $review ) ) { + $review = array(); + } + + $post_data['review'] = $review; + } + + $posts_data[] = $post_data; + } + } + + $posts = array( + 'posts' => $posts_data, + 'more' => $query->found_posts > 20, + 'totalChunks' => $this->table->get_count(), + ); + + return rest_ensure_response( $posts ); + } + + /** + * Add data. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function add_data( $request ) { + $data = $request->get_param( 'data' ); + $content = apply_filters( 'the_content', get_post_field( 'post_content', $data['post_id'] ) ); + $chunks = str_split( $content, 2000 ); + + $moderation = $this->moderate( $chunks, $data['post_id'] ); + + if ( is_wp_error( $moderation ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $moderation ) ) ); + } + + if ( true !== $moderation && 'override' !== $request->get_param( 'action' ) ) { + update_post_meta( $data['post_id'], '_hyve_moderation_failed', 1 ); + update_post_meta( $data['post_id'], '_hyve_moderation_review', $moderation ); + + return rest_ensure_response( + array( + 'error' => __( 'The content failed moderation policies.', 'hyve' ), + 'code' => 'content_failed_moderation', + 'review' => $moderation, + ) + ); + } + + if ( 'update' === $request->get_param( 'action' ) ) { + $this->table->delete_by_post_id( $data['post_id'] ); + delete_post_meta( $data['post_id'], '_hyve_needs_update' ); + } + + $this->table->insert( $data ); + + update_post_meta( $data['post_id'], '_hyve_added', 1 ); + delete_post_meta( $data['post_id'], '_hyve_moderation_failed' ); + delete_post_meta( $data['post_id'], '_hyve_moderation_review' ); + + $this->table->process_posts(); + + return rest_ensure_response( true ); + } + + /** + * Delete data. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function delete_data( $request ) { + $id = $request->get_param( 'id' ); + + $this->table->delete_by_post_id( $id ); + + delete_post_meta( $id, '_hyve_added' ); + delete_post_meta( $id, '_hyve_needs_update' ); + delete_post_meta( $id, '_hyve_moderation_failed' ); + delete_post_meta( $id, '_hyve_moderation_review' ); + return rest_ensure_response( true ); + } + + /** + * Get threads. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function get_threads( $request ) { + $args = array( + 'post_type' => 'hyve_threads', + 'post_status' => 'publish', + 'posts_per_page' => 10, + 'fields' => 'ids', + 'offset' => $request->get_param( 'offset' ), + ); + + $query = new \WP_Query( $args ); + + $posts_data = array(); + + if ( $query->have_posts() ) { + foreach ( $query->posts as $post_id ) { + $post_data = array( + 'ID' => $post_id, + 'title' => get_the_title( $post_id ), + 'date' => get_the_date( 'd/m/Y g:i A', $post_id ), + 'thread' => get_post_meta( $post_id, '_hyve_thread_data', true ), + 'thread_id' => get_post_meta( $post_id, '_hyve_thread_id', true ), + ); + + $posts_data[] = $post_data; + } + } + + $posts = array( + 'posts' => $posts_data, + 'more' => $query->found_posts > 10, + ); + + return rest_ensure_response( $posts ); + } + + /** + * Get chat. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function get_chat( $request ) { + $run_id = $request->get_param( 'run_id' ); + $thread_id = $request->get_param( 'thread_id' ); + $query = $request->get_param( 'message' ); + $record_id = $request->get_param( 'record_id' ); + + $openai = new OpenAI(); + + $status = $openai->get_status( $run_id, $thread_id ); + + if ( is_wp_error( $status ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $status ) ) ); + } + + if ( 'completed' !== $status ) { + return rest_ensure_response( array( 'status' => $status ) ); + } + + $messages = $openai->get_messages( $thread_id ); + + if ( is_wp_error( $messages ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $messages ) ) ); + } + + $messages = array_filter( + $messages, + function ( $message ) use ( $run_id ) { + return $message->run_id === $run_id; + } + ); + + $message = reset( $messages )->content[0]->text->value; + + $message = json_decode( $message, true ); + + if ( json_last_error() !== JSON_ERROR_NONE ) { + return rest_ensure_response( array( 'error' => __( 'No messages found.', 'hyve' ) ) ); + } + + $settings = Main::get_settings(); + + $response = ( isset( $message['success'] ) && true === $message['success'] && isset( $message['response'] ) ) ? $message['response'] : $settings['default_message']; + + do_action( 'hyve_chat_response', $run_id, $thread_id, $query, $record_id, $message, $response ); + + return rest_ensure_response( + array( + 'status' => $status, + 'success' => isset( $message['success'] ) ? $message['success'] : false, + 'message' => $response, + ) + ); + } + + /** + * Send chat. + * + * @param \WP_REST_Request $request Request object. + * + * @return \WP_REST_Response + */ + public function send_chat( $request ) { + $message = $request->get_param( 'message' ); + $record_id = $request->get_param( 'record_id' ); + $moderation = $this->moderate( $message ); + + if ( true !== $moderation ) { + return rest_ensure_response( array( 'error' => __( 'Message was flagged.', 'hyve' ) ) ); + } + + $openai = new OpenAI(); + $message_vector = $openai->create_embeddings( $message ); + $message_vector = reset( $message_vector ); + $message_vector = $message_vector->embedding; + + if ( is_wp_error( $message_vector ) ) { + return rest_ensure_response( array( 'error' => __( 'No embeddings found.', 'hyve' ) ) ); + } + + $hash = md5( strtolower( $message ) ); + set_transient( 'hyve_message_' . $hash, $message_vector, MINUTE_IN_SECONDS ); + + $posts = $this->table->get_by_status( 'processed' ); + + $embeddings_with_cosine_distance_sorted = array_map( + function ( $row ) use ( $message_vector ) { + $embeddings = json_decode( $row->embeddings, true ); + + if ( ! is_array( $embeddings ) ) { + return array( + 'post_id' => $row->post_id, + 'distance' => 0, + 'token_count' => $row->token_count, + 'post_title' => $row->post_title, + 'post_content' => $row->post_content, + ); + } + + $distance = Cosine_Similarity::calculate( $message_vector, $embeddings ); + + return array( + 'post_id' => $row->post_id, + 'distance' => $distance, + 'token_count' => $row->token_count, + 'post_title' => $row->post_title, + 'post_content' => $row->post_content, + ); + }, + $posts + ); + + usort( + $embeddings_with_cosine_distance_sorted, + function ( $a, $b ) { + if ( $a['distance'] < $b['distance'] ) { + return 1; + } elseif ( $a['distance'] > $b['distance'] ) { + return -1; + } else { + return 0; + } + } + ); + + $embeddings_with_cosine_distance_sorted = array_filter( + $embeddings_with_cosine_distance_sorted, + function ( $row ) { + return $row['distance'] > 0.4; + } + ); + + $max_tokens_length = 2000; + $curr_tokens_length = 0; + $article_context = ''; + + foreach ( $embeddings_with_cosine_distance_sorted as $row ) { + $curr_tokens_length += $row['token_count']; + if ( $curr_tokens_length < $max_tokens_length ) { + $article_context .= "\n ===START POST=== " . $row['post_title'] . ' - ' . $row['post_content'] . ' ===END POST==='; + } + } + + if ( $request->get_param( 'thread_id' ) ) { + $thread_id = $request->get_param( 'thread_id' ); + } else { + $thread_id = $openai->create_thread(); + } + + if ( is_wp_error( $thread_id ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $thread_id ) ) ); + } + + $query_run = $openai->create_run( + array( + array( + 'role' => 'user', + 'content' => 'START QUESTION: ' . $message . ' :END QUESTION', + ), + array( + 'role' => 'user', + 'content' => 'START CONTEXT: ' . $article_context . ' :END CONTEXT', + ), + ), + $thread_id + ); + + if ( is_wp_error( $query_run ) ) { + if ( strpos( $this->get_error_message( $query_run ), 'No thread found with id' ) !== false ) { + $thread_id = $openai->create_thread(); + + if ( is_wp_error( $thread_id ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $thread_id ) ) ); + } + + $query_run = $openai->create_run( + array( + array( + 'role' => 'user', + 'content' => 'Question: ' . $message, + ), + array( + 'role' => 'user', + 'content' => 'Context: ' . $article_context, + ), + ), + $thread_id + ); + + if ( is_wp_error( $query_run ) ) { + return rest_ensure_response( array( 'error' => $this->get_error_message( $query_run ) ) ); + } + } + } + + do_action( 'hyve_chat_request', $thread_id, $record_id, $message ); + + return rest_ensure_response( + array( + 'thread_id' => $thread_id, + 'query_run' => $query_run, + 'record_id' => $record_id ? $record_id : null, + ) + ); + } +} diff --git a/inc/BaseAPI.php b/inc/BaseAPI.php new file mode 100644 index 0000000..15625b0 --- /dev/null +++ b/inc/BaseAPI.php @@ -0,0 +1,160 @@ +table = new DB_Table(); + + $this->errors = array( + 'invalid_api_key' => __( 'Incorrect API key provided.', 'hyve' ), + 'missing_scope' => __( ' You have insufficient permissions for this operation.', 'hyve' ), + ); + } + + /** + * Get Error Message. + * + * @param \WP_Error $error Error. + * + * @return string + */ + public function get_error_message( $error ) { + if ( isset( $this->errors[ $error->get_error_code() ] ) ) { + return $this->errors[ $error->get_error_code() ]; + } + + return $error->get_error_message(); + } + + /** + * Get endpoint. + * + * @return string + */ + public function get_endpoint() { + return $this->namespace . '/' . $this->version; + } + + /** + * Moderate data. + * + * @param array|string $chunks Data to moderate. + * @param int $id Post ID. + * + * @return true|array|\WP_Error + */ + public function moderate( $chunks, $id = null ) { + if ( $id ) { + $moderated = get_transient( 'hyve_moderate_post_' . $id ); + + if ( false !== $moderated ) { + return is_array( $moderated ) ? $moderated : true; + } + } + + $openai = new OpenAI(); + $results = array(); + $return = true; + $settings = Main::get_settings(); + $moderation_threshold = $settings['moderation_threshold']; + + if ( ! is_array( $chunks ) ) { + $chunks = array( $chunks ); + } + + foreach ( $chunks as $chunk ) { + $moderation = $openai->moderate( $chunk ); + + if ( is_wp_error( $moderation ) ) { + return $moderation; + } + + if ( true !== $moderation && is_object( $moderation ) ) { + $results[] = $moderation; + } + } + + if ( ! empty( $results ) ) { + $flagged = array(); + + foreach ( $results as $result ) { + $categories = $result->categories; + + foreach ( $categories as $category => $flag ) { + if ( ! $flag ) { + continue; + } + + if ( ! isset( $moderation_threshold[ $category ] ) || $result->category_scores->$category < ( $moderation_threshold[ $category ] / 100 ) ) { + continue; + } + + if ( ! isset( $flagged[ $category ] ) ) { + $flagged[ $category ] = $result->category_scores->$category; + continue; + } + + if ( $result->category_scores->$category > $flagged[ $category ] ) { + $flagged[ $category ] = $result->category_scores->$category; + } + } + } + + if ( empty( $flagged ) ) { + $return = true; + } else { + $return = $flagged; + } + } + + if ( $id ) { + set_transient( 'hyve_moderate_post_' . $id, $return, MINUTE_IN_SECONDS ); + } + + return $return; + } +} diff --git a/inc/Block.php b/inc/Block.php new file mode 100644 index 0000000..ee38a3d --- /dev/null +++ b/inc/Block.php @@ -0,0 +1,45 @@ +' ); + } + + return do_blocks( '' ); + } +} diff --git a/inc/Cosine_Similarity.php b/inc/Cosine_Similarity.php new file mode 100644 index 0000000..c4bcbd7 --- /dev/null +++ b/inc/Cosine_Similarity.php @@ -0,0 +1,64 @@ + $value ) { + if ( isset( $vector_b[ $key ] ) ) { + $sum += $value * $vector_b[ $key ]; + } + } + return $sum; + } + + /** + * Calculates the magnitude (length) of a vector. + * + * @param array $vector The vector to calculate the magnitude of. + * @return float The magnitude of the vector. + */ + private static function magnitude( array $vector ): float { + $sum = 0.0; + foreach ( $vector as $component ) { + $sum += pow( $component, 2 ); + } + return sqrt( $sum ); + } + + /** + * Calculates the cosine similarity between two vectors. + * + * @param array $vector_a First vector. + * @param array $vector_b Second vector. + * @return float The cosine similarity between the two vectors. + */ + public static function calculate( array $vector_a, array $vector_b ): float { + $dot_product = self::dot_product( $vector_a, $vector_b ); + $magnitude_a = self::magnitude( $vector_a ); + $magnitude_b = self::magnitude( $vector_b ); + + // To prevent division by zero. + if ( 0.0 === $magnitude_a || 0.0 === $magnitude_b ) { + return 0.0; + } + + return $dot_product / ( $magnitude_a * $magnitude_b ); + } +} diff --git a/inc/DB_Table.php b/inc/DB_Table.php new file mode 100644 index 0000000..89e49a7 --- /dev/null +++ b/inc/DB_Table.php @@ -0,0 +1,414 @@ +table_name = $wpdb->prefix . 'hyve'; + + if ( ! wp_next_scheduled( 'hyve_process_posts' ) ) { + wp_schedule_event( time(), 'daily', 'hyve_process_posts' ); + } + + add_action( 'hyve_process_posts', array( $this, 'process_posts' ) ); + + if ( ! $this->table_exists() || version_compare( $this->version, get_option( $this->table_name . '_db_version' ), '>' ) ) { + $this->create_table(); + } + } + + /** + * Create the table. + * + * @since 1.2.0 + */ + public function create_table() { + global $wpdb; + + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; + + $sql = 'CREATE TABLE ' . $this->table_name . ' ( + id bigint(20) NOT NULL AUTO_INCREMENT, + date datetime NOT NULL, + modified datetime NOT NULL, + post_id mediumtext NOT NULL, + post_title mediumtext NOT NULL, + post_content longtext NOT NULL, + embeddings longtext NOT NULL, + token_count int(11) NOT NULL DEFAULT 0, + post_status VARCHAR(255) NOT NULL DEFAULT "scheduled", + PRIMARY KEY (id) + ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'; + + dbDelta( $sql ); + update_option( $this->table_name . '_db_version', $this->version ); + } + + /** + * Check if the table exists. + * + * @since 1.2.0 + * + * @return bool + */ + public function table_exists() { + global $wpdb; + $table = sanitize_text_field( $this->table_name ); + return $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $table ) ) === $table; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery + } + + /** + * Get columns and formats. + * + * @since 1.2.0 + * + * @return array + */ + public function get_columns() { + return array( + 'date' => '%s', + 'modified' => '%s', + 'post_id' => '%s', + 'post_title' => '%s', + 'post_content' => '%s', + 'embeddings' => '%s', + 'token_count' => '%d', + 'post_status' => '%s', + ); + } + + /** + * Get default column values. + * + * @since 1.2.0 + * + * @return array + */ + public function get_column_defaults() { + return array( + 'date' => gmdate( 'Y-m-d H:i:s' ), + 'modified' => gmdate( 'Y-m-d H:i:s' ), + 'post_id' => '', + 'post_title' => '', + 'post_content' => '', + 'embeddings' => '', + 'token_count' => 0, + 'post_status' => 'scheduled', + ); + } + + /** + * Insert a new row. + * + * @since 1.2.0 + * + * @param array $data The data to insert. + * + * @return int + */ + public function insert( $data ) { + global $wpdb; + + $column_formats = $this->get_columns(); + $column_defaults = $this->get_column_defaults(); + + $data = wp_parse_args( $data, $column_defaults ); + $data = array_intersect_key( $data, $column_formats ); + + $wpdb->insert( $this->table_name, $data, $column_formats ); + + $this->delete_cache( 'entries' ); + $this->delete_cache( 'entries_count' ); + + return $wpdb->insert_id; + } + + /** + * Update a row. + * + * @since 1.2.0 + * + * @param int $id The row ID. + * @param array $data The data to update. + * + * @return int + */ + public function update( $id, $data ) { + global $wpdb; + + $column_formats = $this->get_columns(); + $column_defaults = $this->get_column_defaults(); + + $data = array_intersect_key( $data, $column_formats ); + + $wpdb->update( $this->table_name, $data, array( 'id' => $id ), $column_formats, array( '%d' ) ); + + $this->delete_cache( 'entry_' . $id ); + $this->delete_cache( 'entries_processed' ); + + return $wpdb->rows_affected; + } + + /** + * Delete rows by post ID. + * + * @since 1.2.0 + * + * @param int $post_id The post ID. + * + * @return int + */ + public function delete_by_post_id( $post_id ) { + global $wpdb; + + $wpdb->delete( $this->table_name, array( 'post_id' => $post_id ), array( '%d' ) ); + + $this->delete_cache( 'entry_post_' . $post_id ); + $this->delete_cache( 'entries' ); + $this->delete_cache( 'entries_processed' ); + $this->delete_cache( 'entries_count' ); + + return $wpdb->rows_affected; + } + + /** + * Get all rows by status. + * + * @since 1.2.0 + * + * @param string $status The status. + * @param int $limit The limit. + * + * @return array + */ + public function get_by_status( $status, $limit = 500 ) { + global $wpdb; + + $cache = $this->get_cache( 'entries_' . $status ); + + if ( is_array( $cache ) && false !== $cache ) { + return $cache; + } + + $query = $wpdb->prepare( "SELECT * FROM {$this->table_name} WHERE post_status = %s LIMIT %d", $status, $limit ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + + $results = $wpdb->get_results( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + + if ( 'scheduled' !== $status ) { + $this->set_cache( 'entries_' . $status, $results ); + } + + return $results; + } + + /** + * Process posts. + * + * @since 1.2.0 + * + * @return void + */ + public function process_posts() { + $posts = $this->get_by_status( 'scheduled' ); + + foreach ( $posts as $post ) { + $id = $post->id; + $content = $post->post_content; + $openai = new OpenAI(); + $embeddings = $openai->create_embeddings( $content ); + $embeddings = reset( $embeddings ); + $embeddings = $embeddings->embedding; + + if ( is_wp_error( $embeddings ) || ! $embeddings ) { + continue; + } + + $embeddings = wp_json_encode( $embeddings ); + + $this->update( + $id, + array( + 'embeddings' => $embeddings, + 'post_status' => 'processed', + ) + ); + } + } + + /** + * Get Total Rows Count. + * + * @since 1.2.0 + * + * @return int + */ + public function get_count() { + $cache = $this->get_cache( 'entries_count' ); + + if ( false !== $cache ) { + return $cache; + } + + global $wpdb; + + $query = "SELECT COUNT(*) FROM {$this->table_name}"; + + $count = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + + $this->set_cache( 'entries_count', $count ); + + return $count; + } + + /** + * Return cache. + * + * @since 1.2.0 + * + * @param string $key The cache key. + * + * @return mixed + */ + private function get_cache( $key ) { + $key = $this->get_cache_key( $key ); + + if ( $this->get_cache_key( 'entries_processed' ) === $key ) { + $total = get_transient( $key . '_total' ); + + if ( false === $total ) { + return false; + } + + $entries = array(); + + for ( $i = 0; $i < $total; $i++ ) { + $chunk_key = $key . '_' . $i; + $chunk = get_transient( $chunk_key ); + + if ( false === $chunk ) { + return false; + } + + $entries = array_merge( $entries, $chunk ); + } + + return $entries; + } + + return get_transient( $key ); + } + + /** + * Set cache. + * + * @since 1.2.0 + * + * @param string $key The cache key. + * @param mixed $value The cache value. + * @param int $expiration The expiration time. + * + * @return bool + */ + private function set_cache( $key, $value, $expiration = DAY_IN_SECONDS ) { + $key = $this->get_cache_key( $key ); + + if ( $this->get_cache_key( 'entries_processed' ) === $key ) { + $chunks = array_chunk( $value, 50 ); + $total = count( $chunks ); + + foreach ( $chunks as $index => $chunk ) { + $chunk_key = $key . '_' . $index; + set_transient( $chunk_key, $chunk, $expiration ); + } + + set_transient( $key . '_total', $total, $expiration ); + return true; + } + return set_transient( $key, $value, $expiration ); + } + + /** + * Delete cache. + * + * @since 1.2.0 + * + * @param string $key The cache key. + * + * @return bool + */ + private function delete_cache( $key ) { + $key = $this->get_cache_key( $key ); + + if ( $this->get_cache_key( 'entries_processed' ) === $key ) { + $total = get_transient( $key . '_total' ); + + if ( false === $total ) { + return true; + } + + for ( $i = 0; $i < $total; $i++ ) { + $chunk_key = $key . '_' . $i; + delete_transient( $chunk_key ); + } + + delete_transient( $key . '_total' ); + return true; + } + + return delete_transient( $key ); + } + + /** + * Return cache key. + * + * @since 1.2.0 + * + * @param string $key The cache key. + * + * @return string + */ + private function get_cache_key( $key ) { + return self::CACHE_PREFIX . $key; + } +} diff --git a/inc/Main.php b/inc/Main.php new file mode 100644 index 0000000..9b701e7 --- /dev/null +++ b/inc/Main.php @@ -0,0 +1,289 @@ +table = new DB_Table(); + $this->api = new API(); + + new Block(); + new Threads(); + + add_action( 'admin_menu', array( $this, 'register_menu_page' ) ); + add_action( 'save_post', array( $this, 'update_meta' ) ); + add_action( 'delete_post', array( $this, 'delete_post' ) ); + + $settings = self::get_settings(); + + if ( + is_array( $settings ) && + isset( $settings['api_key'] ) && isset( $settings['assistant_id'] ) && + ! empty( $settings['api_key'] ) && ! empty( $settings['assistant_id'] ) + ) { + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_assets' ) ); + } + } + + /** + * Register menu page. + * + * @since 1.2.0 + * + * @return void + */ + public function register_menu_page() { + $page_hook_suffix = add_menu_page( + __( 'Hyve', 'hyve' ), + __( 'Hyve', 'hyve' ), + 'manage_options', + 'hyve', + array( $this, 'menu_page' ), + 'dashicons-format-chat', + 99 + ); + + add_action( "admin_print_scripts-$page_hook_suffix", array( $this, 'enqueue_options_assets' ) ); + } + + /** + * Menu page. + * + * @since 1.2.0 + * + * @return void + */ + public function menu_page() { + ?> +
+ true ), 'objects' ); + $post_types_for_js = array(); + + foreach ( $post_types as $post_type ) { + $post_types_for_js[] = array( + 'label' => $post_type->labels->name, + 'value' => $post_type->name, + ); + } + + $settings = self::get_settings(); + + wp_localize_script( + 'hyve-scripts', + 'hyve', + apply_filters( + 'hyve_options_data', + array( + 'api' => $this->api->get_endpoint(), + 'postTypes' => $post_types_for_js, + 'hasAPIKey' => isset( $settings['api_key'] ) && ! empty( $settings['api_key'] ), + 'chunksLimit' => apply_filters( 'hyve_chunks_limit', 500 ), + 'stats' => array( + 'threads' => Threads::get_thread_count(), + 'messages' => Threads::get_messages_count(), + 'totalChunks' => $this->table->get_count(), + ), + 'docs' => 'https://docs.themeisle.com/article/2009-hyve-documentation', + ) + ) + ); + } + + /** + * Get Default Settings. + * + * @since 1.1.0 + * + * @return array + */ + public static function get_default_settings() { + return apply_filters( + 'hyve_default_settings', + array( + 'api_key' => '', + 'chat_enabled' => true, + 'welcome_message' => __( 'Hello! How can I help you today?', 'hyve' ), + 'default_message' => __( 'Sorry, I\'m not able to help with that.', 'hyve' ), + 'temperature' => 1, + 'top_p' => 1, + 'moderation_threshold' => array( + 'sexual' => 80, + 'hate' => 70, + 'harassment' => 70, + 'self-harm' => 50, + 'sexual/minors' => 50, + 'hate/threatening' => 60, + 'violence/graphic' => 80, + 'self-harm/intent' => 50, + 'self-harm/instructions' => 50, + 'harassment/threatening' => 60, + 'violence' => 70, + ), + ), + ); + } + + /** + * Get Settings. + * + * @since 1.1.0 + * + * @return array + */ + public static function get_settings() { + $settings = get_option( 'hyve_settings', array() ); + return wp_parse_args( $settings, self::get_default_settings() ); + } + + /** + * Enqueue assets. + * + * @since 1.2.0 + * + * @return void + */ + public function enqueue_assets() { + $asset_file = include HYVE_LITE_PATH . '/build/frontend/frontend.asset.php'; + + wp_register_style( + 'hyve-styles', + HYVE_LITE_URL . 'build/frontend/style-index.css', + array(), + $asset_file['version'] + ); + + wp_register_script( + 'hyve-scripts', + HYVE_LITE_URL . 'build/frontend/frontend.js', + $asset_file['dependencies'], + $asset_file['version'], + true + ); + + wp_set_script_translations( 'hyve-scripts', 'hyve' ); + + $settings = self::get_settings(); + + wp_localize_script( + 'hyve-scripts', + 'hyve', + apply_filters( + 'hyve_frontend_data', + array( + 'api' => $this->api->get_endpoint(), + 'audio' => array( + 'click' => HYVE_LITE_URL . 'assets/audio/click.mp3', + 'ping' => HYVE_LITE_URL . 'assets/audio/ping.mp3', + ), + 'welcome' => $settings['welcome_message'] ?? '', + 'isEnabled' => $settings['chat_enabled'], + ), + ) + ); + + if ( ! isset( $settings['chat_enabled'] ) || false === $settings['chat_enabled'] ) { + return; + } + + wp_enqueue_style( 'hyve-styles' ); + wp_enqueue_script( 'hyve-scripts' ); + } + + /** + * Update meta. + * + * @param int $post_id Post ID. + * + * @since 1.2.0 + * + * @return void + */ + public function update_meta( $post_id ) { + $added = get_post_meta( $post_id, '_hyve_added', true ); + + if ( ! $added ) { + return; + } + + update_post_meta( $post_id, '_hyve_needs_update', 1 ); + delete_post_meta( $post_id, '_hyve_moderation_failed' ); + delete_post_meta( $post_id, '_hyve_moderation_review' ); + } + + /** + * Delete post. + * + * @param int $post_id Post ID. + * + * @since 1.2.0 + * + * @return void + */ + public function delete_post( $post_id ) { + $this->table->delete_by_post_id( $post_id ); + } +} diff --git a/inc/OpenAI.php b/inc/OpenAI.php new file mode 100644 index 0000000..b289102 --- /dev/null +++ b/inc/OpenAI.php @@ -0,0 +1,439 @@ +api_key = ! empty( $api_key ) ? $api_key : ( isset( $settings['api_key'] ) ? $settings['api_key'] : '' ); + $this->assistant_id = isset( $settings['assistant_id'] ) ? $settings['assistant_id'] : ''; + + if ( $this->assistant_id && version_compare( $this->prompt_version, get_option( 'hyve_prompt_version', '1.0.0' ), '>' ) ) { + $this->update_assistant(); + } + } + + /** + * Setup Assistant. + * + * @return string|\WP_Error + */ + public function setup_assistant() { + $assistant = $this->retrieve_assistant(); + + if ( is_wp_error( $assistant ) ) { + return $assistant; + } + + if ( ! $assistant ) { + return $this->create_assistant(); + } + + return $assistant; + } + + /** + * Create Assistant. + * + * @return string|\WP_Error + */ + public function create_assistant() { + $response = $this->request( + 'assistants', + array( + 'instructions' => "Assistant Role & Concise Response Guidelines: As a Support Assistant, provide precise, to-the-point answers based exclusively on the previously provided context.\r\n\r\nSET OF PRINCIPLES TO FOLLOW:\r\n\r\n1. **Identify the Context and Question**:\r\n1.1. **START CONTEXT**: Identify the context provided in the message. **: END CONTEXT**\r\n1.2. **START QUESTION**: Identify the question that needs to be answered based on the context.. **: END QUESTION**\r\n\r\n2. **Check the Context for Relevance**:\r\n2.1. Determine if the context contains information directly relevant to the question.\r\n2.2. If the context addresses the user's question, proceed to the next step.\r\n2.3. If the question is a greeting, respond appropriately with the greeting.\r\n2.4. If the context does not address the user's question, respond with: `{\"response\": \"\", \"success\": false}`.\r\n\r\n3. **Formulate the Response**:\r\n3.1. If the context is sufficient, formulate a clear and concise response using only the information provided in the context.\r\n3.2. Ensure the response includes all important details covered in the context, but avoid any extraneous information.\r\n\r\n4. **Avoid Referring to the Context**:\r\n4.1. Do not refer to the context or state that the response is based on the context in your answer.\r\n4.2. Ensure the response is straightforward and directly answers the question.\r\n\r\n5. **Generate the JSON Response**:\r\n5.1. Structure the response according to the following JSON schema:\r\n\r\n\r\n{\r\n \"\$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"response\": {\r\n \"type\": \"string\",\r\n \"description\": \"Contains the response to the question. Do not include it if the answer wasn't available in the context.\"\r\n },\r\n \"success\": {\r\n \"type\": \"boolean\",\r\n \"description\": \"Indicates whether the question was successfully answered from provided context.\"\r\n }\r\n },\r\n \"required\": [\"success\"]\r\n}\r\n\r\nExample Usage:\r\n\r\nContext: [Provide context here]\r\nQuestion: [Provide question here]\r\n\r\nExpected Behavior:\r\n\r\n- If the question is fully covered by the context, provide a response using the provided JSON schema.\r\n- If the question is not fully covered by the context, respond with: {\"response\": \"\", \"success\": false}.\r\n\r\nExample Responses:\r\n\r\n- Context covers the question: {\"response\": \"Here is the information you requested.\", \"success\": true}\r\n- Context does not cover the question: {\"response\": \"\", \"success\": false}\r\n- Context does not cover the question but is a greeting: {\"response\": \"Hello, what can I help you with?.\", \"success\": true}", + 'name' => 'Chatbot by Hyve', + 'model' => 'gpt-3.5-turbo-0125', + ) + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->id ) ) { + $this->assistant_id = $response->id; + return $response->id; + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while creating the assistant.', 'hyve' ) ); + } + + /** + * Update Assistant. + * + * @return bool|\WP_Error + */ + public function update_assistant() { + $assistant = $this->retrieve_assistant(); + $settings = Main::get_settings(); + $assistant_id = ''; + + if ( is_wp_error( $assistant ) ) { + return $assistant; + } + + if ( ! $assistant ) { + $assistant_id = $this->create_assistant(); + + if ( is_wp_error( $assistant_id ) ) { + return $assistant_id; + } + } else { + $response = $this->request( + 'assistants/' . $this->assistant_id, + array( + 'instructions' => "Assistant Role & Concise Response Guidelines: As a Support Assistant, provide precise, to-the-point answers based exclusively on the previously provided context.\r\n\r\nSET OF PRINCIPLES TO FOLLOW:\r\n\r\n1. **Identify the Context and Question**:\r\n1.1. **START CONTEXT**: Identify the context provided in the message. **: END CONTEXT**\r\n1.2. **START QUESTION**: Identify the question that needs to be answered based on the context.. **: END QUESTION**\r\n\r\n2. **Check the Context for Relevance**:\r\n2.1. Determine if the context contains information directly relevant to the question.\r\n2.2. If the context addresses the user's question, proceed to the next step.\r\n2.3. If the question is a greeting, respond appropriately with the greeting.\r\n2.4. If the context does not address the user's question, respond with: `{\"response\": \"\", \"success\": false}`.\r\n\r\n3. **Formulate the Response**:\r\n3.1. If the context is sufficient, formulate a clear and concise response using only the information provided in the context.\r\n3.2. Ensure the response includes all important details covered in the context, but avoid any extraneous information.\r\n\r\n4. **Avoid Referring to the Context**:\r\n4.1. Do not refer to the context or state that the response is based on the context in your answer.\r\n4.2. Ensure the response is straightforward and directly answers the question.\r\n\r\n5. **Generate the JSON Response**:\r\n5.1. Structure the response according to the following JSON schema:\r\n\r\n\r\n{\r\n \"\$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"response\": {\r\n \"type\": \"string\",\r\n \"description\": \"Contains the response to the question. Do not include it if the answer wasn't available in the context.\"\r\n },\r\n \"success\": {\r\n \"type\": \"boolean\",\r\n \"description\": \"Indicates whether the question was successfully answered from provided context.\"\r\n }\r\n },\r\n \"required\": [\"success\"]\r\n}\r\n\r\nExample Usage:\r\n\r\nContext: [Provide context here]\r\nQuestion: [Provide question here]\r\n\r\nExpected Behavior:\r\n\r\n- If the question is fully covered by the context, provide a response using the provided JSON schema.\r\n- If the question is not fully covered by the context, respond with: {\"response\": \"\", \"success\": false}.\r\n\r\nExample Responses:\r\n\r\n- Context covers the question: {\"response\": \"Here is the information you requested.\", \"success\": true}\r\n- Context does not cover the question: {\"response\": \"\", \"success\": false}\r\n- Context does not cover the question but is a greeting: {\"response\": \"Hello, what can I help you with?.\", \"success\": true}", + ) + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( ! isset( $response->id ) ) { + return false; + } + + $this->assistant_id = $response->id; + $assistant_id = $response->id; + } + + $settings['assistant_id'] = $assistant_id; + update_option( 'hyve_settings', $settings ); + update_option( 'hyve_prompt_version', $this->prompt_version ); + + return true; + } + + /** + * Retrieve Assistant. + * + * @return string|\WP_Error|false + */ + public function retrieve_assistant() { + if ( ! $this->assistant_id ) { + return false; + } + + $response = $this->request( 'assistants/' . $this->assistant_id ); + + if ( is_wp_error( $response ) ) { + if ( strpos( $response->get_error_message(), 'No assistant found' ) !== false ) { + return false; + } + + return $response; + } + + if ( isset( $response->id ) ) { + return $response->id; + } + + return false; + } + + /** + * Create Embeddings. + * + * @param string|array $content Content. + * @param string $model Model. + * + * @return mixed + */ + public function create_embeddings( $content, $model = 'text-embedding-3-small' ) { + $response = $this->request( + 'embeddings', + array( + 'input' => $content, + 'model' => $model, + ) + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->data ) ) { + return $response->data; + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while creating the embeddings.', 'hyve' ) ); + } + + /** + * Create a Thread. + * + * @param array $params Parameters. + * + * @return string|\WP_Error + */ + public function create_thread( $params = array() ) { + $response = $this->request( + 'threads', + $params + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->id ) ) { + return $response->id; + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while creating the thread.', 'hyve' ) ); + } + + /** + * Send Message. + * + * @param string $message Message. + * @param string $thread Thread. + * @param string $role Role. + * + * @return true|\WP_Error + */ + public function send_message( $message, $thread, $role = 'assistant' ) { + $response = $this->request( + 'threads/' . $thread . '/messages', + array( + 'role' => $role, + 'content' => $message, + ) + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->id ) ) { + return true; + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while sending the message.', 'hyve' ) ); + } + + /** + * Create a run + * + * @param array $messages Messages. + * @param string $thread Thread. + * + * @return string|\WP_Error + */ + public function create_run( $messages, $thread ) { + $settings = Main::get_settings(); + + $response = $this->request( + 'threads/' . $thread . '/runs', + array( + 'assistant_id' => $this->assistant_id, + 'additional_messages' => $messages, + 'temperature' => $settings['temperature'], + 'top_p' => $settings['top_p'], + 'response_format' => array( + 'type' => 'json_object', + ), + ) + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( ! isset( $response->id ) || ( isset( $response->status ) && 'queued' !== $response->status ) ) { + return new \WP_Error( 'unknown_error', __( 'An error occurred while creating the run.', 'hyve' ) ); + } + + return $response->id; + } + + /** + * Get Run Status. + * + * @param string $run_id Run ID. + * @param string $thread Thread. + * + * @return string|\WP_Error + */ + public function get_status( $run_id, $thread ) { + $response = $this->request( 'threads/' . $thread . '/runs/' . $run_id, array(), 'GET' ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->status ) ) { + return $response->status; + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while getting the run status.', 'hyve' ) ); + } + + /** + * Get Thread Messages. + * + * @param string $thread Thread. + * + * @return mixed + */ + public function get_messages( $thread ) { + $response = $this->request( 'threads/' . $thread . '/messages', array(), 'GET' ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->data ) ) { + return $response->data; + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while getting the messages.', 'hyve' ) ); + } + + /** + * Create Moderation Request. + * + * @param string $message Message. + * + * @return true|object|\WP_Error + */ + public function moderate( $message ) { + $response = $this->request( + 'moderations', + array( + 'input' => $message, + ) + ); + + if ( is_wp_error( $response ) ) { + return $response; + } + + if ( isset( $response->results ) ) { + $result = reset( $response->results ); + + if ( isset( $result->flagged ) && $result->flagged ) { + return $result; + } + } + + return true; + } + + /** + * Create Request. + * + * @param string $endpoint Endpoint. + * @param array $params Parameters. + * @param string $method Method. + * + * @return mixed + */ + private function request( $endpoint, $params = array(), $method = 'POST' ) { + if ( ! $this->api_key ) { + return (object) array( + 'error' => true, + 'message' => 'API key is missing.', + ); + } + + $body = wp_json_encode( $params ); + + $response = ''; + + if ( 'POST' === $method ) { + $response = wp_remote_post( + self::$base_url . $endpoint, + array( + 'headers' => array( + 'Content-Type' => 'application/json', + 'Authorization' => 'Bearer ' . $this->api_key, + 'OpenAI-Beta' => 'assistants=v2', + ), + 'body' => $body, + 'method' => 'POST', + 'data_format' => 'body', + ) + ); + } + + if ( 'GET' === $method ) { + $url = self::$base_url . $endpoint; + $args = array( + 'headers' => array( + 'Content-Type' => 'application/json', + 'Authorization' => 'Bearer ' . $this->api_key, + 'OpenAI-Beta' => 'assistants=v2', + ), + ); + + if ( function_exists( 'vip_safe_wp_remote_get' ) ) { + $response = vip_safe_wp_remote_get( $url, '', 3, 1, 20, $args ); + } else { + $response = wp_remote_get( $url, $args ); // phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.wp_remote_get_wp_remote_get + } + } + + if ( is_wp_error( $response ) ) { + return $response; + } else { + $body = wp_remote_retrieve_body( $response ); + $body = json_decode( $body ); + + if ( isset( $body->error ) ) { + if ( isset( $body->error->message ) ) { + return new \WP_Error( isset( $body->error->code ) ? $body->error->code : 'unknown_error', $body->error->message ); + } + + return new \WP_Error( 'unknown_error', __( 'An error occurred while processing the request.', 'hyve' ) ); + } + + return $body; + } + } +} diff --git a/inc/Threads.php b/inc/Threads.php new file mode 100644 index 0000000..56ec8f2 --- /dev/null +++ b/inc/Threads.php @@ -0,0 +1,218 @@ + _x( 'Threads', 'post type general name', 'hyve' ), + 'singular_name' => _x( 'Thread', 'post type singular name', 'hyve' ), + 'menu_name' => _x( 'Threads', 'admin menu', 'hyve' ), + 'name_admin_bar' => _x( 'Thread', 'add new on admin bar', 'hyve' ), + 'add_new' => _x( 'Add New', 'Thread', 'hyve' ), + 'add_new_item' => __( 'Add New Thread', 'hyve' ), + 'new_item' => __( 'New Thread', 'hyve' ), + 'edit_item' => __( 'Edit Thread', 'hyve' ), + 'view_item' => __( 'View Thread', 'hyve' ), + 'all_items' => __( 'All Threads', 'hyve' ), + 'search_items' => __( 'Search Threads', 'hyve' ), + 'parent_item_colon' => __( 'Parent Thread:', 'hyve' ), + 'not_found' => __( 'No Threads found.', 'hyve' ), + 'not_found_in_trash' => __( 'No Threads found in Trash.', 'hyve' ), + ); + + $args = array( + 'labels' => $labels, + 'description' => __( 'Threads.', 'hyve' ), + 'public' => false, + 'publicly_queryable' => false, + 'show_ui' => false, + 'show_in_menu' => false, + 'query_var' => false, + 'rewrite' => array( 'slug' => 'threads' ), + 'capability_type' => 'post', + 'has_archive' => false, + 'hierarchical' => false, + 'show_in_rest' => false, + 'supports' => array( 'title', 'editor', 'custom-fields', 'comments' ), + ); + + register_post_type( 'hyve_threads', $args ); + } + + /** + * Record the message. + * + * @param string $run_id Run ID. + * @param string $thread_id Thread ID. + * @param string $query Query. + * @param string|int $record_id Record ID. + * @param array $message Message. + * @param string $response Response. + * + * @return void + */ + public function record_message( $run_id, $thread_id, $query, $record_id, $message, $response ) { + if ( ! $record_id ) { + return; + } + + self::add_message( + $record_id, + array( + 'thread_id' => $thread_id, + 'sender' => 'bot', + 'message' => $response, + ) + ); + } + + /** + * Record the thread. + * + * @param string $thread_id Thread ID. + * @param string|int $record_id Record ID. + * @param string $message Message. + * + * @return void + */ + public function record_thread( $thread_id, $record_id, $message ) { + if ( $record_id ) { + $record_id = self::add_message( + $record_id, + array( + 'thread_id' => $thread_id, + 'sender' => 'user', + 'message' => $message, + ) + ); + return; + } + + $record_id = self::create_thread( + $message, + array( + 'thread_id' => $thread_id, + 'sender' => 'user', + 'message' => $message, + ) + ); + } + + + /** + * Create a new thread. + * + * @param string $title The title of the thread. + * @param array $data The data of the thread. + * + * @return int + */ + public static function create_thread( $title, $data ) { + $post_id = wp_insert_post( + array( + 'post_title' => $title, + 'post_content' => '', + 'post_status' => 'publish', + 'post_type' => 'hyve_threads', + ) + ); + + $thread_data = array( + array( + 'time' => time(), + 'sender' => $data['sender'], + 'message' => $data['message'], + ), + ); + + update_post_meta( $post_id, '_hyve_thread_data', $thread_data ); + update_post_meta( $post_id, '_hyve_thread_count', 1 ); + update_post_meta( $post_id, '_hyve_thread_id', $data['thread_id'] ); + + return $post_id; + } + + /** + * Add a new message to a thread. + * + * @param int $post_id The ID of the thread. + * @param array $data The data of the message. + * + * @return int + */ + public static function add_message( $post_id, $data ) { + $thread_id = get_post_meta( $post_id, '_hyve_thread_id', true ); + + if ( $thread_id !== $data['thread_id'] ) { + return self::create_thread( $data['message'], $data ); + } + + $thread_data = get_post_meta( $post_id, '_hyve_thread_data', true ); + + $thread_data[] = array( + 'time' => time(), + 'sender' => $data['sender'], + 'message' => $data['message'], + ); + + update_post_meta( $post_id, '_hyve_thread_data', $thread_data ); + update_post_meta( $post_id, '_hyve_thread_count', count( $thread_data ) ); + + return $post_id; + } + + /** + * Get Thread Count. + * + * @return int + */ + public static function get_thread_count() { + $threads = wp_count_posts( 'hyve_threads' ); + return $threads->publish; + } + + /** + * Get Messages Count. + * + * @return int + */ + public static function get_messages_count() { + $messages = get_transient( 'hyve_messages_count' ); + + if ( false === $messages ) { + $messages = 0; + + global $wpdb; + + $query = "SELECT SUM( CAST( meta_value AS UNSIGNED ) ) FROM {$wpdb->postmeta} WHERE meta_key = '_hyve_thread_count'"; + $messages = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + + set_transient( 'hyve_messages_count', $messages, HOUR_IN_SECONDS ); + } + + return $messages; + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1bdcbfa --- /dev/null +++ b/package-lock.json @@ -0,0 +1,27129 @@ +{ + "name": "hyve-lite", + "version": "1.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hyve-lite", + "version": "1.1.0", + "license": "GPL-3.0-or-later", + "dependencies": { + "@dqbd/tiktoken": "^1.0.13", + "@wordpress/icons": "^9.39.0", + "classnames": "^2.5.1", + "js-tiktoken": "^1.0.10", + "object-hash": "^3.0.0" + }, + "devDependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@wordpress/scripts": "^26.19.0", + "conventional-changelog-simple-preset": "^1.0.24", + "eslint-config-wordpress": "^2.0.0", + "grunt": "^1.6.1", + "grunt-version": "^3.0.1", + "grunt-wp-readme-to-markdown": "^2.1.0", + "npm-run-all": "^4.1.5", + "replace-in-file": "^7.1.0", + "semantic-release": "^19.0.5", + "semantic-release-slack-bot": "^4.0.2", + "simple-git-hooks": "^2.9.0", + "tailwindcss": "^3.4.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.7.tgz", + "integrity": "sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", + "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "dev": true, + "license": "CC0-1.0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@dqbd/tiktoken": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@dqbd/tiktoken/-/tiktoken-1.0.15.tgz", + "integrity": "sha512-a6I67K1xUkuqcuwulobIJiLikkoE7egMaviI1Jg5bxSn2V7QGqXsGE3jTKr8UIOU/o74mAAd5TkeXFNBtaKF4A==", + "license": "MIT" + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", + "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "1.4.1", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "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, + "license": "MIT", + "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/eslint-utils/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "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/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "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, + "license": "ISC", + "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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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, + "license": "MIT", + "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/@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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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, + "license": "MIT", + "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/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/endpoint/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-4.1.6.tgz", + "integrity": "sha512-obkYzIgEC75r8+9Pnfiiqy3y/x1bc3QLE5B7qvv9wi9Kj0R5tGQFC6QMBg1154WQ9lAVypuQDGyp3hNpp15gQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-throttling": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-5.2.3.tgz", + "integrity": "sha512-C9CFg9mrf6cugneKiaI841iG8DOv6P5XXkjmiNNut+swePxQ7RWEdAZRp5rJoE1hjsIqiYcKa/ZkOQ+ujPI39Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": "^4.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "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, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@playwright/test": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.1.tgz", + "integrity": "sha512-Wo1bWTzQvGA7LyKGIZc8nFSTFf2TkthGIFBR+QVNilvwouGzFd4PYukZe3rvf5PSqjHi1+1NyKSDZKcQWETzaA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "playwright": "1.45.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", + "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@puppeteer/browsers": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", + "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.0", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/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, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@semantic-release/changelog": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", + "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^11.0.0", + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" + } + }, + "node_modules/@semantic-release/commit-analyzer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", + "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "import-from": "^4.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" + } + }, + "node_modules/@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@semantic-release/exec": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-6.0.3.tgz", + "integrity": "sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "parse-json": "^5.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" + } + }, + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" + } + }, + "node_modules/@semantic-release/github": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.1.0.tgz", + "integrity": "sha512-erR9E5rpdsz0dW1I7785JtndQuMWN/iDcemcptf67tBNOmBUN0b2YNOgcjYUnBpgRpZ5ozfBHrK7Bz+2ets/Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-retry": "^4.1.3", + "@octokit/plugin-throttling": "^5.2.3", + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "fs-extra": "^11.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^6.0.0", + "lodash": "^4.17.4", + "mime": "^3.0.0", + "p-filter": "^2.0.0", + "url-join": "^4.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" + } + }, + "node_modules/@semantic-release/github/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@semantic-release/github/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@semantic-release/github/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@semantic-release/npm": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.2.tgz", + "integrity": "sha512-zgsynF6McdzxPnFet+a4iO9HpAlARXOM5adz7VGVCvj0ne8wtL2ZOQoDV2wZPDmdEotDIbVeJjafhelZjs9j6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "execa": "^5.0.0", + "fs-extra": "^11.0.0", + "lodash": "^4.17.15", + "nerf-dart": "^1.0.0", + "normalize-url": "^6.0.0", + "npm": "^8.3.0", + "rc": "^1.2.8", + "read-pkg": "^5.0.0", + "registry-auth-token": "^5.0.0", + "semver": "^7.1.2", + "tempy": "^1.0.0" + }, + "engines": { + "node": ">=16 || ^14.17" + }, + "peerDependencies": { + "semantic-release": ">=19.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/@semantic-release/npm/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/@semantic-release/npm/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@semantic-release/npm/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/npm/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", + "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "get-stream": "^6.0.0", + "import-from": "^4.0.0", + "into-stream": "^6.0.0", + "lodash": "^4.17.4", + "read-pkg-up": "^7.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" + } + }, + "node_modules/@sentry/core": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", + "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@sentry/hub": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", + "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@sentry/minimal": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", + "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@sentry/node": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", + "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@sentry/types": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", + "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", + "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@tannin/compile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz", + "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tannin/evaluate": "^1.2.0", + "@tannin/postfix": "^1.1.0" + } + }, + "node_modules/@tannin/evaluate": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz", + "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tannin/plural-forms": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz", + "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tannin/compile": "^1.1.0" + } + }, + "node_modules/@tannin/postfix": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz", + "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/source-list-map": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tapable": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uglify-js": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", + "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/@types/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webpack": { + "version": "4.41.38", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz", + "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@wordpress/api-fetch": { + "version": "6.55.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz", + "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/i18n": "^4.58.0", + "@wordpress/url": "^3.59.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/babel-plugin-import-jsx-pragma": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz", + "integrity": "sha512-hYxj2Uobxk86ctlfaJou9v13XqXZ30yx4ZwRNu5cH5/LWXe2MIXBTPv7dUk6wqN/qFOjsFvP9jCB0NsW6MnkrA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": "^7.12.9" + } + }, + "node_modules/@wordpress/babel-preset-default": { + "version": "7.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.42.0.tgz", + "integrity": "sha512-AWSxWuEuzazt/nWomKiaVhYQeXuqxTniPCKhvks58wB3P4UXvSe3hRnO+nujz20IuxIk2xHT6x47HgpDZy30jw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.41.0", + "@wordpress/browserslist-config": "^5.41.0", + "@wordpress/warning": "^2.58.0", + "browserslist": "^4.21.10", + "core-js": "^3.31.0", + "react": "^18.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/base-styles": { + "version": "4.49.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.49.0.tgz", + "integrity": "sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==", + "dev": true, + "license": "GPL-2.0-or-later" + }, + "node_modules/@wordpress/browserslist-config": { + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz", + "integrity": "sha512-J7ejzzDpPZddVIiq2YiK8J/pNTJDy3X1s+5ZtwkwklCxBMZJurxf9pEhtbaf7us0Q6c1j8Ubv7Fpx3lqk2ypxA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.31.0.tgz", + "integrity": "sha512-Xpm8EEhi6e8GL1juYh/70AFbcE/ZVXJ3p47KMkkEsn5t+hG9QHjKe2lTj98v2r3rB+ampoK+whdV1w6gItXYpw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "json2php": "^0.0.7", + "webpack-sources": "^3.2.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "webpack": "^4.8.3 || ^5.0.0" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.16.0.tgz", + "integrity": "sha512-CktRj5/Cc/pAvTHXIAPIMrmmnb0VjtXbTGSjYG6pW/JI2YAmpwY2yBA+DlHJjqOIpcjDDj+sSsJomRSxT2chwQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/api-fetch": "^6.45.0", + "@wordpress/keycodes": "^3.48.0", + "@wordpress/url": "^3.49.0", + "change-case": "^4.1.2", + "form-data": "^4.0.0", + "get-port": "^5.1.1", + "lighthouse": "^10.4.0", + "mime": "^3.0.0", + "web-vitals": "^3.5.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@playwright/test": ">=1" + } + }, + "node_modules/@wordpress/element": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz", + "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==", + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", + "@wordpress/escape-html": "^2.58.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/element/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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/escape-html": { + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.58.0.tgz", + "integrity": "sha512-9YJXMNfzkrhHEVP1jFEhgijbZqW8Mt3NHIMZjIQoWtBf7QE86umpYpGGBXzYC0YlpGTRGzZTBwYaqFKxjeaSgA==", + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/eslint-plugin": { + "version": "17.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-17.13.0.tgz", + "integrity": "sha512-QnG5HmOd+XsweKOvrqbOugm9rINUjcsh1jo2SN4cbbTWZJ6nPmcfLS0YJdrKkgOQUnKDPQgBPVEyI8tp19OtBw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/eslint-parser": "^7.16.0", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", + "@wordpress/babel-preset-default": "^7.40.0", + "@wordpress/prettier-config": "^3.13.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.2.3", + "eslint-plugin-jsdoc": "^46.4.6", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-playwright": "^0.15.3", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6.14.4" + }, + "peerDependencies": { + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=3", + "typescript": ">=4" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wordpress/eslint-plugin/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@wordpress/hooks": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz", + "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/i18n": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz", + "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/hooks": "^3.58.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "sprintf-js": "^1.1.1", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/icons": { + "version": "9.49.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.49.0.tgz", + "integrity": "sha512-Z8F+ledkfkcKDuS1c/RkM0dEWdfv2AXs6bCgey89p0atJSscf7qYbMJR9zE5rZ5aqXyFfV0DAFKJEgayNqneNQ==", + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/element": "^5.35.0", + "@wordpress/primitives": "^3.56.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/jest-console": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz", + "integrity": "sha512-/9PZJhyszdRX4mka7t1WzoooM+Q/DwC4jkNVtJxqci5lbL3Lrhy1cCJGCgMr1n/9w+zs7eLmExFBvV4v44iyNw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "jest-matcher-utils": "^29.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "jest": ">=29" + } + }, + "node_modules/@wordpress/jest-preset-default": { + "version": "11.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.29.0.tgz", + "integrity": "sha512-7LA0ZS5t0Thn7xrdwPL3hLgjB9LKloneGhMwnnDUTgJP330lyfdDfJ+O6Lnz3iL+bg68mkA3AzrT9Fs9f3WKww==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/jest-console": "^7.29.0", + "babel-jest": "^29.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": ">=7", + "jest": ">=29" + } + }, + "node_modules/@wordpress/keycodes": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz", + "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/i18n": "^4.58.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/npm-package-json-lint-config": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz", + "integrity": "sha512-XSb7AdDC7yGTBVYeRM4oqmOygEB+/+tk7lobLIGDmlZJs+M3F/NUvQq0Vcas1pojq2fyPYTUwOlu81ga33fNwQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "npm-package-json-lint": ">=6.0.0" + } + }, + "node_modules/@wordpress/postcss-plugins-preset": { + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.42.0.tgz", + "integrity": "sha512-5xmKF7IUsqS5JcmJlHKHq7RaR6ZpaLj3n9c+X0X0/Oo7ZCIGp6WeDQngx13sH4NJoKXrZ9g4n1rbzhEKeo/Wtg==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/base-styles": "^4.49.0", + "autoprefixer": "^10.2.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/@wordpress/prettier-config": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.15.0.tgz", + "integrity": "sha512-exC2rkEioTt//AnzPRyaaFv8FNYIvamPDytNol5bKQ6Qh65QSdZZE9V+GtRCrIPL7/Bq6xba03XuRVxl9TjtJg==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "prettier": ">=3" + } + }, + "node_modules/@wordpress/primitives": { + "version": "3.56.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.56.0.tgz", + "integrity": "sha512-NXBq1ODjl6inMWx/l7KCbATcjdoeIOqYeL9i9alqdAfWeKx1EH9PIvKWylIkqZk7erXxCxldiRkuyjTtwjNBxw==", + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/element": "^5.35.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/scripts": { + "version": "26.19.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.19.0.tgz", + "integrity": "sha512-m3QYlgpWRfIqCfU4jWKwGeA12Qkt6d9CMewEIxIBGVlEGd/sL5rU1fM7LKNBEbSPQpaOTWJApNGWPcW75Fwp+w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", + "@svgr/webpack": "^8.0.1", + "@wordpress/babel-preset-default": "^7.32.0", + "@wordpress/browserslist-config": "^5.31.0", + "@wordpress/dependency-extraction-webpack-plugin": "^4.31.0", + "@wordpress/e2e-test-utils-playwright": "^0.16.0", + "@wordpress/eslint-plugin": "^17.5.0", + "@wordpress/jest-preset-default": "^11.19.0", + "@wordpress/npm-package-json-lint-config": "^4.33.0", + "@wordpress/postcss-plugins-preset": "^4.32.0", + "@wordpress/prettier-config": "^3.5.0", + "@wordpress/stylelint-config": "^21.31.0", + "adm-zip": "^0.5.9", + "babel-jest": "^29.6.2", + "babel-loader": "^8.2.3", + "browserslist": "^4.21.10", + "chalk": "^4.0.0", + "check-node-version": "^4.1.0", + "clean-webpack-plugin": "^3.0.0", + "copy-webpack-plugin": "^10.2.0", + "cross-spawn": "^5.1.0", + "css-loader": "^6.2.0", + "cssnano": "^6.0.1", + "cwd": "^0.10.0", + "dir-glob": "^3.0.1", + "eslint": "^8.3.0", + "expect-puppeteer": "^4.4.0", + "fast-glob": "^3.2.7", + "filenamify": "^4.2.0", + "jest": "^29.6.2", + "jest-dev-server": "^9.0.1", + "jest-environment-jsdom": "^29.6.2", + "jest-environment-node": "^29.6.2", + "markdownlint-cli": "^0.31.1", + "merge-deep": "^3.0.3", + "mini-css-extract-plugin": "^2.5.1", + "minimist": "^1.2.0", + "npm-package-json-lint": "^6.4.0", + "npm-packlist": "^3.0.0", + "playwright-core": "1.39.0", + "postcss": "^8.4.5", + "postcss-loader": "^6.2.1", + "prettier": "npm:wp-prettier@3.0.3", + "puppeteer-core": "^13.2.0", + "react-refresh": "^0.14.0", + "read-pkg-up": "^7.0.1", + "resolve-bin": "^0.4.0", + "sass": "^1.35.2", + "sass-loader": "^12.1.0", + "source-map-loader": "^3.0.0", + "stylelint": "^14.2.0", + "terser-webpack-plugin": "^5.3.9", + "url-loader": "^4.1.1", + "webpack": "^5.88.2", + "webpack-bundle-analyzer": "^4.9.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + }, + "bin": { + "wp-scripts": "bin/wp-scripts.js" + }, + "engines": { + "node": ">=14", + "npm": ">=6.14.4" + }, + "peerDependencies": { + "@playwright/test": "^1.39.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@wordpress/stylelint-config": { + "version": "21.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz", + "integrity": "sha512-2wxFu8ICeRGF3Lxz7H7o2SU1u6pTI4mjuog39DgtCNb+v+f6yhgREDuNQEeti3Svb0rjj63AJ7r2CqLZk+EQIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^6.0.0", + "stylelint-config-recommended-scss": "^5.0.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "stylelint": "^14.2" + } + }, + "node_modules/@wordpress/url": { + "version": "3.59.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz", + "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "remove-accents": "^0.5.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/warning": { + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz", + "integrity": "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=12" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "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, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", + "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/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, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", + "dev": true, + "license": "MIT" + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "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, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "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.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, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", + "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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, + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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, + "license": "MIT", + "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/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/check-node-version": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz", + "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==", + "dev": true, + "license": "Unlicense", + "dependencies": { + "chalk": "^3.0.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "run-parallel": "^1.1.4", + "semver": "^6.3.0" + }, + "bin": { + "check-node-version": "bin.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/check-node-version/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/clean-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/webpack": "^4.4.31", + "del": "^4.1.1" + }, + "engines": { + "node": ">=8.9.0" + }, + "peerDependencies": { + "webpack": "*" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-func": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", + "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-angular/node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/conventional-changelog-angular/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-angular/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-simple-preset": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/conventional-changelog-simple-preset/-/conventional-changelog-simple-preset-1.0.24.tgz", + "integrity": "sha512-bocRAENpHnUP73xFvu9Syap/aB3Owwu2YN4ebItpSTudTsbEhoTUad/ZLfnuHaEbtlKOeI6JK7LqdARYD+Mohg==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^1.3.1", + "q": "^1.5.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", + "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz", + "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "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, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/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, + "license": "Python-2.0" + }, + "node_modules/cosmiconfig/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, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "license": "ISC" + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/csp_evaluator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", + "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12 || >=16" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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, + "license": "MIT", + "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/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/cwd": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-pkg": "^0.1.2", + "fs-exists-sync": "^0.1.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/devtools-protocol": { + "version": "0.0.1155343", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz", + "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "license": "MIT", + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "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, + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.818", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.818.tgz", + "integrity": "sha512-eGvIk2V0dGImV9gWLq8fDfTTsCAeMDwZqEPMr+jMInxZdnp9Us8UpovYpRCf9NQ7VOFgrN2doNSgvISbsbNpxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", + "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-ci": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", + "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "fromentries": "^1.3.2", + "java-properties": "^1.0.0" + }, + "engines": { + "node": ">=10.17" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "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, + "license": "MIT", + "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/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "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-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-wordpress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-wordpress/-/eslint-config-wordpress-2.0.0.tgz", + "integrity": "sha512-9ydUZ1zORI3av5EOx4zQml8WpdDx1bAOZC4dLPcYGqVcdBol3dQ2L40e2ill52k/+I+rqUJppGzWK+zP7+lI1w==", + "deprecated": "This package has been deprecated, please use @wordpress/eslint-plugin or @wordpress/scripts", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.2.1" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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, + "license": "MIT", + "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, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "46.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", + "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "~0.41.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", + "spdx-expression-parse": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", + "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.9.1", + "axobject-query": "~3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.19", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-playwright": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz", + "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7", + "eslint-plugin-jest": ">=25" + }, + "peerDependenciesMeta": { + "eslint-plugin-jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", + "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "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/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/eslint/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/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, + "license": "BSD-2-Clause", + "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/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "license": "BSD-2-Clause", + "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/espree/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "BSD-3-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/execa/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/expect-puppeteer": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz", + "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "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, + "license": "ISC", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-file-up": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-exists-sync": "^0.1.0", + "resolve-dir": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-parent-dir": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", + "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-pkg": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-file-up": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-process": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz", + "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "commander": "^5.1.0", + "debug": "^4.1.1" + }, + "bin": { + "find-process": "bin/find-process.js" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-regex": "^3.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/findup-sync/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": 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, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/foreground-child/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/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, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "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" + } + ], + "license": "MIT" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "dev": true, + "license": "Unlicense" + }, + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/getobject": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/gettext-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", + "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.12", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/git-log-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", + "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "0.6.8" + } + }, + "node_modules/git-log-parser/node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "dev": true, + "license": "ISC", + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/git-log-parser/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/glob/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^0.1.4", + "is-windows": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-modules/node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.0", + "ini": "^1.3.4", + "is-windows": "^0.2.0", + "which": "^1.2.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/grunt": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dateformat": "~4.6.2", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~5.0.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.6.3", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "nopt": "~3.0.6" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-cli/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/grunt-known-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-legacy-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-legacy-util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-legacy-util/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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/grunt-version": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/grunt-version/-/grunt-version-3.0.1.tgz", + "integrity": "sha512-GBGCQffBZVYlRAnZn5qJ+4E+u4hH0VfhYjQoLqPSfeTO1QuSoG3CR7p4dK3v/gHp3ct9kN2pZrOJnutsdbEUvA==", + "dev": true, + "dependencies": { + "grunt": "^1.4.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-version/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-wp-readme-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-wp-readme-to-markdown/-/grunt-wp-readme-to-markdown-2.1.0.tgz", + "integrity": "sha512-32OYDYNaKgykI2vxVsbqzvYBA9xHJI3XqXHSwXbLzUd1wa0ZepoceHYCs4rYFLo3ZxKpPExxvVuH3gLUS/Fq1Q==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/grunt/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "license": "MIT", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hook-std": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", + "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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, + "license": "ISC", + "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, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/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, + "license": "ISC" + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ignore-walk/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/ignore-walk/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/image-ssim": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", + "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", + "dev": true, + "license": "MIT" + }, + "node_modules/immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.2" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "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, + "license": "ISC" + }, + "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, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/intl-messageformat": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", + "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "intl-messageformat-parser": "^1.8.1" + } + }, + "node_modules/intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "license": "MIT", + "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-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.1.tgz", + "integrity": "sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/java-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", + "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-dev-server": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.2.tgz", + "integrity": "sha512-Zc/JB0IlNNrpXkhBw+h86cGrde/Mey52KvF+FER2eyrtYJTHObOwW7Iarxm3rPyTKby5+3Y2QZtl8pRz/5GCxg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "cwd": "^0.10.0", + "find-process": "^1.4.7", + "prompts": "^2.4.2", + "spawnd": "^9.0.2", + "tree-kill": "^1.2.2", + "wait-on": "^7.2.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/js-library-detector": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz", + "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/js-tiktoken": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.12.tgz", + "integrity": "sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.5.1" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC" + }, + "node_modules/json2php": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz", + "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==", + "dev": true, + "license": "BSD" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/known-css-properties": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", + "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "dev": true, + "license": "MIT" + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz", + "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/liftup/node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/liftup/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftup/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftup/node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lighthouse": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz", + "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sentry/node": "^6.17.4", + "axe-core": "4.7.2", + "chrome-launcher": "^0.15.2", + "configstore": "^5.0.1", + "csp_evaluator": "1.1.1", + "devtools-protocol": "0.0.1155343", + "enquirer": "^2.3.6", + "http-link-header": "^1.1.1", + "intl-messageformat": "^4.4.0", + "jpeg-js": "^0.4.4", + "js-library-detector": "^6.6.0", + "lighthouse-logger": "^1.4.1", + "lighthouse-stack-packs": "1.11.0", + "lodash": "^4.17.21", + "lookup-closest-locale": "6.2.0", + "metaviewport-parser": "0.3.0", + "open": "^8.4.0", + "parse-cache-control": "1.0.1", + "ps-list": "^8.0.0", + "puppeteer-core": "^20.8.0", + "robots-parser": "^3.0.0", + "semver": "^5.3.0", + "speedline-core": "^1.4.3", + "third-party-web": "^0.23.3", + "ws": "^7.0.0", + "yargs": "^17.3.1", + "yargs-parser": "^21.0.0" + }, + "bin": { + "chrome-debug": "core/scripts/manual-chrome-launcher.js", + "lighthouse": "cli/index.js", + "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js" + }, + "engines": { + "node": ">=16.16" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/lighthouse-stack-packs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz", + "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/lighthouse/node_modules/axe-core": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", + "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/lighthouse/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/lighthouse/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, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", + "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "1.4.6", + "chromium-bidi": "0.4.16", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1147663", + "ws": "8.13.0" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", + "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1147663", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", + "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/lighthouse/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lighthouse/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/lighthouse/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/lighthouse/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "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, + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==", + "dev": true, + "license": "Public Domain" + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/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, + "license": "Python-2.0" + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdownlint": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", + "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-it": "12.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", + "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "~9.0.0", + "get-stdin": "~9.0.0", + "glob": "~7.2.0", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.0.0", + "markdownlint": "~0.25.1", + "markdownlint-rule-helpers": "~0.16.0", + "minimatch": "~3.0.5", + "run-con": "~1.2.10" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdownlint-cli/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, + "license": "Python-2.0" + }, + "node_modules/markdownlint-cli/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/markdownlint-cli/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "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/markdownlint-cli/node_modules/glob/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/markdownlint-cli/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/markdownlint-cli/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, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/markdownlint-rule-helpers": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", + "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/marked-terminal": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", + "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^6.2.0", + "cardinal": "^2.1.1", + "chalk": "^5.2.0", + "cli-table3": "^0.6.3", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.3.0" + }, + "engines": { + "node": ">=14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true, + "license": "Apache-2.0" + }, + "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, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", + "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", + "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-gfm-autolink-literal": "^0.1.0", + "mdast-util-gfm-strikethrough": "^0.2.0", + "mdast-util-gfm-table": "^0.1.0", + "mdast-util-gfm-task-list-item": "^0.1.0", + "mdast-util-to-markdown": "^0.6.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", + "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ccount": "^1.0.0", + "mdast-util-find-and-replace": "^1.1.0", + "micromark": "^2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", + "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", + "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-table": "^2.0.0", + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", + "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "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, + "license": "CC0-1.0" + }, + "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, + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.0.tgz", + "integrity": "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/metaviewport-parser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz", + "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", + "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0", + "micromark-extension-gfm-autolink-literal": "~0.5.0", + "micromark-extension-gfm-strikethrough": "~0.6.5", + "micromark-extension-gfm-table": "~0.4.0", + "micromark-extension-gfm-tagfilter": "~0.3.0", + "micromark-extension-gfm-task-list-item": "~0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", + "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", + "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", + "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", + "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", + "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimist-options/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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, + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "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, + "license": "BSD-2-Clause", + "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/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm": { + "version": "8.19.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.4.tgz", + "integrity": "sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/ci-detect", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/run-script", + "abbrev", + "archy", + "cacache", + "chalk", + "chownr", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "mkdirp", + "mkdirp-infer-owner", + "ms", + "node-gyp", + "nopt", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "opener", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "read-package-json", + "read-package-json-fast", + "readdir-scoped-modules", + "rimraf", + "semver", + "ssri", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "workspaces/*" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^5.6.3", + "@npmcli/ci-detect": "^2.0.0", + "@npmcli/config": "^4.2.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/map-workspaces": "^2.0.3", + "@npmcli/package-json": "^2.0.0", + "@npmcli/run-script": "^4.2.1", + "abbrev": "~1.1.1", + "archy": "~1.0.0", + "cacache": "^16.1.3", + "chalk": "^4.1.2", + "chownr": "^2.0.0", + "cli-columns": "^4.0.0", + "cli-table3": "^0.6.2", + "columnify": "^1.6.0", + "fastest-levenshtein": "^1.0.12", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "graceful-fs": "^4.2.10", + "hosted-git-info": "^5.2.1", + "ini": "^3.0.1", + "init-package-json": "^3.0.2", + "is-cidr": "^4.0.2", + "json-parse-even-better-errors": "^2.3.1", + "libnpmaccess": "^6.0.4", + "libnpmdiff": "^4.0.5", + "libnpmexec": "^4.0.14", + "libnpmfund": "^3.0.5", + "libnpmhook": "^8.0.4", + "libnpmorg": "^4.0.4", + "libnpmpack": "^4.1.3", + "libnpmpublish": "^6.0.5", + "libnpmsearch": "^5.0.4", + "libnpmteam": "^4.0.4", + "libnpmversion": "^3.0.7", + "make-fetch-happen": "^10.2.0", + "minimatch": "^5.1.0", + "minipass": "^3.1.6", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "mkdirp-infer-owner": "^2.0.0", + "ms": "^2.1.2", + "node-gyp": "^9.1.0", + "nopt": "^6.0.0", + "npm-audit-report": "^3.0.0", + "npm-install-checks": "^5.0.0", + "npm-package-arg": "^9.1.0", + "npm-pick-manifest": "^7.0.2", + "npm-profile": "^6.2.0", + "npm-registry-fetch": "^13.3.1", + "npm-user-validate": "^1.0.1", + "npmlog": "^6.0.2", + "opener": "^1.5.2", + "p-map": "^4.0.0", + "pacote": "^13.6.2", + "parse-conflict-json": "^2.0.2", + "proc-log": "^2.0.1", + "qrcode-terminal": "^0.12.0", + "read": "~1.0.7", + "read-package-json": "^5.0.2", + "read-package-json-fast": "^2.0.3", + "readdir-scoped-modules": "^1.1.0", + "rimraf": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^9.0.1", + "tar": "^6.1.11", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^2.0.0", + "validate-npm-package-name": "^4.0.0", + "which": "^2.0.2", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true, + "license": "ISC" + }, + "node_modules/npm-package-json-lint": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz", + "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.6", + "ajv-errors": "^1.0.1", + "chalk": "^4.1.2", + "cosmiconfig": "^8.0.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "ignore": "^5.2.0", + "is-plain-obj": "^3.0.0", + "jsonc-parser": "^3.2.0", + "log-symbols": "^4.1.0", + "meow": "^9.0.0", + "plur": "^4.0.0", + "semver": "^7.3.8", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1", + "type-fest": "^3.2.0", + "validate-npm-package-name": "^5.0.0" + }, + "bin": { + "npmPkgJsonLint": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/npm-package-json-lint/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-package-json-lint/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-json-lint/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/@gar/promisify": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "5.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/map-workspaces": "^2.0.3", + "@npmcli/metavuln-calculator": "^3.0.1", + "@npmcli/move-file": "^2.0.0", + "@npmcli/name-from-folder": "^1.0.1", + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/package-json": "^2.0.0", + "@npmcli/query": "^1.2.0", + "@npmcli/run-script": "^4.1.3", + "bin-links": "^3.0.3", + "cacache": "^16.1.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^5.2.1", + "json-parse-even-better-errors": "^2.3.1", + "json-stringify-nice": "^1.1.4", + "minimatch": "^5.1.0", + "mkdirp": "^1.0.4", + "mkdirp-infer-owner": "^2.0.0", + "nopt": "^6.0.0", + "npm-install-checks": "^5.0.0", + "npm-package-arg": "^9.0.0", + "npm-pick-manifest": "^7.0.2", + "npm-registry-fetch": "^13.0.0", + "npmlog": "^6.0.2", + "pacote": "^13.6.1", + "parse-conflict-json": "^2.0.1", + "proc-log": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^1.0.1", + "read-package-json-fast": "^2.0.2", + "readdir-scoped-modules": "^1.1.0", + "rimraf": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^9.0.0", + "treeverse": "^2.0.0", + "walk-up-path": "^1.0.0" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/ci-detect": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "4.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^2.0.2", + "ini": "^3.0.0", + "mkdirp-infer-owner": "^2.0.0", + "nopt": "^6.0.0", + "proc-log": "^2.0.0", + "read-package-json-fast": "^2.0.3", + "semver": "^7.3.5", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^3.0.0", + "lru-cache": "^7.4.4", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents/node_modules/npm-bundled": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^1.0.1", + "glob": "^8.0.1", + "minimatch": "^5.0.1", + "read-package-json-fast": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^16.0.0", + "json-parse-even-better-errors": "^2.3.1", + "pacote": "^13.0.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "infer-owner": "^1.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^9.1.0", + "postcss-selector-parser": "^6.0.10", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@tootallnate/once": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^5.0.0", + "mkdirp-infer-owner": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0", + "read-cmd-shim": "^3.0.0", + "rimraf": "^3.0.0", + "write-file-atomic": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/bin-links/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "16.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^4.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mkdirp-infer-owner": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "8.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "5.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^9.0.1", + "promzard": "^0.3.0", + "read": "^1.0.7", + "read-package-json": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^3.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/is-core-module": { + "version": "2.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "4.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/disparity-colors": "^2.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "binary-extensions": "^2.2.0", + "diff": "^5.1.0", + "minimatch": "^5.0.1", + "npm-package-arg": "^9.0.1", + "pacote": "^13.6.1", + "tar": "^6.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "4.0.14", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^5.6.3", + "@npmcli/ci-detect": "^2.0.0", + "@npmcli/fs": "^2.1.1", + "@npmcli/run-script": "^4.2.0", + "chalk": "^4.1.0", + "mkdirp-infer-owner": "^2.0.0", + "npm-package-arg": "^9.0.1", + "npmlog": "^6.0.2", + "pacote": "^13.6.1", + "proc-log": "^2.0.0", + "read": "^1.0.7", + "read-package-json-fast": "^2.0.2", + "semver": "^7.3.7", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^5.6.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "8.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "4.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/run-script": "^4.1.3", + "npm-package-arg": "^9.0.1", + "pacote": "^13.6.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "6.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "normalize-package-data": "^4.0.0", + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0", + "semver": "^7.3.7", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "5.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "3.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^3.0.0", + "@npmcli/run-script": "^4.1.3", + "json-parse-even-better-errors": "^2.3.1", + "proc-log": "^2.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "7.13.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "10.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "3.3.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/mkdirp-infer-owner": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "9.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.22 || ^14.13 || >=16" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/node-gyp/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "9.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "5.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^5.0.0", + "npm-normalize-package-bin": "^2.0.0", + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "13.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^10.0.6", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.3", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "13.6.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^4.1.0", + "cacache": "^16.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.1.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "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" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.3.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.11", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/ssri": { + "version": "9.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.1.11", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npm/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.defaults/node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map/node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.5", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "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, + "license": "MIT", + "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/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.0.tgz", + "integrity": "sha512-bfJaPTuEiTYBu+ulDaeQ0F+uLmlfFkMgXj4cbwfuMSjgObGMzb55FMMbDvbRU0fAHZ4sLGkz2mKwcMg8Dvm8Ww==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.1.tgz", + "integrity": "sha512-Hjrgae4kpSQBr98nhCj3IScxVeVUixqj+5oyif8TdIn2opTCPEzqAqNMeK42i3cWDCVu9MI+ZsGWw+gVR4ISBg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "playwright-core": "1.45.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", + "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/playwright/node_modules/playwright-core": { + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.1.tgz", + "integrity": "sha512-LF4CUUtrUu2TCpDw4mcrAIuYrEjVDfT1cHbJMfwnE2+1b8PZcFzPNgvZCvq2JfQ4aTjRCCHw5EJ2tmr2NSzdPg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "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": [ + { + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "name": "wp-prettier", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz", + "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", + "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ps-list": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz", + "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer-core/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, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/puppeteer-core/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg-up/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remark-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", + "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-gfm": "^0.1.0", + "micromark-extension-gfm": "^0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", + "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "dev": true, + "license": "MIT" + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-in-file": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.2.0.tgz", + "integrity": "sha512-CiLXVop3o8/h2Kd1PwKPPimmS9wUV0Ki6Fl8+1ITD35nB3Gl/PrW5IONpTE0AXk0z4v8WYcpEpdeZqMXvSnWpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "glob": "^8.1.0", + "yargs": "^17.7.2" + }, + "bin": { + "replace-in-file": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/replace-in-file/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/replace-in-file/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "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-bin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.4.3.tgz", + "integrity": "sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-parent-dir": "~0.3.0" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^1.2.2", + "global-modules": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-homedir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/robots-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", + "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "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, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "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-con/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, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "license": "MIT", + "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/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/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, + "license": "MIT" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release": { + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.5.tgz", + "integrity": "sha512-NMPKdfpXTnPn49FDogMBi36SiBfXkSOJqCkk0E4iWOY1tusvvgBwqUmxTX1kmlT6kIYed9YwNKD1sfPpqa5yaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/commit-analyzer": "^9.0.2", + "@semantic-release/error": "^3.0.0", + "@semantic-release/github": "^8.0.0", + "@semantic-release/npm": "^9.0.0", + "@semantic-release/release-notes-generator": "^10.0.0", + "aggregate-error": "^3.0.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.0.0", + "env-ci": "^5.0.0", + "execa": "^5.0.0", + "figures": "^3.0.0", + "find-versions": "^4.0.0", + "get-stream": "^6.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^2.0.0", + "hosted-git-info": "^4.0.0", + "lodash": "^4.17.21", + "marked": "^4.0.10", + "marked-terminal": "^5.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "p-reduce": "^2.0.0", + "read-pkg-up": "^7.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^3.1.1", + "signale": "^1.2.1", + "yargs": "^16.2.0" + }, + "bin": { + "semantic-release": "bin/semantic-release.js" + }, + "engines": { + "node": ">=16 || ^14.17" + } + }, + "node_modules/semantic-release-slack-bot": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/semantic-release-slack-bot/-/semantic-release-slack-bot-4.0.2.tgz", + "integrity": "sha512-EgpUGmxDq5l9qSfAJNkGMOjxi6p5a7lAMnV5sNG53QxpIOsgMUF9X3J+NeaFWXsGyRP5CEkVtDdDkfvvNNo2ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^2.2.0", + "micromatch": "4.0.2", + "node-fetch": "^2.3.0", + "slackify-markdown": "^4.3.0" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "semantic-release": ">=11.0.0" + } + }, + "node_modules/semantic-release-slack-bot/node_modules/@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "dev": true, + "license": "MIT" + }, + "node_modules/semantic-release-slack-bot/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/semantic-release/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/semantic-release/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-regex": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", + "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/signale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/signale/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, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/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, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/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, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/signale/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, + "license": "MIT" + }, + "node_modules/signale/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/signale/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/simple-git-hooks": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.11.1.tgz", + "integrity": "sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "simple-git-hooks": "cli.js" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slackify-markdown": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/slackify-markdown/-/slackify-markdown-4.4.0.tgz", + "integrity": "sha512-a2b0Rh4aPi3PYt23N0vxPn7emkQtShewhLX8uIiXOMlPBAXRki+/9kEXJztZr1Oo9rDb1YxScGuZ0D2ubLPhvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.2", + "remark-gfm": "^1.0.0", + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.1", + "unified": "^9.0.0", + "unist-util-remove": "^2.0.1", + "unist-util-visit": "^2.0.3" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/spawnd": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz", + "integrity": "sha512-nl8DVHEDQ57IcKakzpjanspVChkMpGLuVwMR/eOn9cXE55Qr6luD2Kn06sA0ootRMdgrU4tInN6lA6ohTNvysw==", + "dev": true, + "dependencies": { + "signal-exit": "^4.1.0", + "tree-kill": "^1.2.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/spawnd/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, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-correct/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, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/speedline-core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", + "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "image-ssim": "^0.2.0", + "jpeg-js": "^0.4.1" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/streamx": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", + "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "license": "MIT", + "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": { + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/string-width/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, + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", + "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "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, + "license": "ISC" + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/stylelint": { + "version": "14.16.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", + "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^7.1.0", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "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.2.0", + "ignore": "^5.2.1", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.26.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.19", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "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": "^2.3.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.2" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^6.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "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, + "license": "MIT" + }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/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, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/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, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.3.tgz", + "integrity": "sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true, + "license": "MIT" + }, + "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/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "license": "BSD-3-Clause", + "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.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/tannin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", + "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tannin/plural-forms": "^1.1.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", + "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", + "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "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, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/third-party-web": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.4.tgz", + "integrity": "sha512-kwYnSZRhEvv0SBW2fp8SBBKRglMoBjV8xz6C31m0ewqOtknB5UL+Ihg+M81hyFY5ldkZuGWPb+e4GVDkzf/gYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/traverse": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/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, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "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, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", + "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "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, + "license": "MIT", + "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/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.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, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-license/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, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/wait-on": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "axios": "^1.6.1", + "joi": "^17.11.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", + "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/webpack": { + "version": "5.92.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz", + "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-cli/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-cli/node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-cli/node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-cli/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-merge/node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-merge/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-merge/node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "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, + "license": "MIT", + "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-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "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": { + "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, + "license": "MIT", + "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/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, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c5959d8 --- /dev/null +++ b/package.json @@ -0,0 +1,65 @@ +{ + "name": "hyve-lite", + "version": "1.1.0", + "description": "An AI support bot.", + "scripts": { + "build": "npm-run-all build:*", + "build:backend": "wp-scripts build --webpack-src-dir=src/backend --output-path=build/backend --output-filename=index.js", + "build:frontend": "wp-scripts build --webpack-src-dir=src/frontend --output-path=build/frontend --output-filename=frontend.js", + "build:block": "wp-scripts build --webpack-src-dir=src/block --output-path=build/block --output-filename=index.js", + "check-engines": "wp-scripts check-engines", + "check-licenses": "wp-scripts check-licenses", + "format": "wp-scripts format", + "lint:css": "wp-scripts lint-style", + "lint:js": "wp-scripts lint-js", + "lint:md:docs": "wp-scripts lint-md-docs", + "lint:pkg-json": "wp-scripts lint-pkg-json", + "packages-update": "wp-scripts packages-update", + "plugin-zip": "wp-scripts plugin-zip", + "start": "npm-run-all --parallel start:*", + "start:backend": "wp-scripts start --webpack-src-dir=src/backend --output-path=build/backend --output-filename=index.js", + "start:frontend": "wp-scripts start --webpack-src-dir=src/frontend --output-path=build/frontend --output-filename=frontend.js", + "start:block": "wp-scripts start --webpack-src-dir=src/block --output-path=build/block --output-filename=index.js", + "test:e2e": "wp-scripts test-e2e", + "test:unit": "wp-scripts test-unit-js", + "dist": "bash bin/dist.sh", + "release": "npx semantic-release" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Codeinwp/hyve-lite.git" + }, + "keywords": [ + "wordpress-plugin" + ], + "author": "Hardeep Asrani ", + "license": "GPL-3.0-or-later", + "bugs": { + "url": "https://github.com/Codeinwp/hyve-lite/issues" + }, + "homepage": "https://github.com/Codeinwp/hyve-lite#readme", + "devDependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@wordpress/scripts": "^26.19.0", + "conventional-changelog-simple-preset": "^1.0.24", + "eslint-config-wordpress": "^2.0.0", + "grunt": "^1.6.1", + "grunt-version": "^3.0.1", + "grunt-wp-readme-to-markdown": "^2.1.0", + "npm-run-all": "^4.1.5", + "replace-in-file": "^7.1.0", + "semantic-release": "^19.0.5", + "semantic-release-slack-bot": "^4.0.2", + "simple-git-hooks": "^2.9.0", + "tailwindcss": "^3.4.0" + }, + "dependencies": { + "@dqbd/tiktoken": "^1.0.13", + "@wordpress/icons": "^9.39.0", + "classnames": "^2.5.1", + "js-tiktoken": "^1.0.10", + "object-hash": "^3.0.0" + } +} diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 0000000..ac9c278 --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,44 @@ + + + ThemeIsle ruleset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + node_modules/* + vendor/* + build/* + tests/* + Gruntfile.js + dist + cypress + dist/* + artifact/* + assets/* + \ No newline at end of file diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..7fac5b4 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,8 @@ +parameters: + level: 5 + paths: + - %currentWorkingDirectory%/inc + bootstrapFiles: + - %currentWorkingDirectory%/tests/php/static-analysis-stubs/hyve-lite.php +includes: + - %currentWorkingDirectory%/vendor/szepeviktor/phpstan-wordpress/extension.neon \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..0e0e5d7 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [ require( 'tailwindcss' ) ] +}; diff --git a/src/backend/App.js b/src/backend/App.js new file mode 100644 index 0000000..4f1424b --- /dev/null +++ b/src/backend/App.js @@ -0,0 +1,79 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { Spinner } from '@wordpress/components'; + +import { + useSelect, + useDispatch +} from '@wordpress/data'; + +import { useEffect } from '@wordpress/element'; + +/** + * Internal dependencies. + */ +import { ROUTE_COMPONENTS } from './route'; +import Sidebar from './parts/Sidebar'; +import Notices from './parts/Notices'; + +const App = () => { + const hasLoaded = useSelect( ( select ) => select( 'hyve' ).hasLoaded() ); + const route = useSelect( ( select ) => select( 'hyve' ).getRoute() ); + + const { + setSettings, + setLoading, + setRoute + } = useDispatch( 'hyve' ); + + useEffect( () => { + const fetchData = async() => { + const response = await apiFetch({ + path: `${ window.hyve.api }/settings` + }); + + setSettings( response ); + setLoading(); + }; + + fetchData(); + + const urlParams = new URLSearchParams( window.location.search ); + const nav = urlParams.get( 'nav' ); + + if ( nav ) { + setRoute( nav ); + } + }, []); + + const Page = ROUTE_COMPONENTS[route] || null; + + return ( + <> + { ! hasLoaded && ( +
+ +
+ )} + +
+
+
+ + + { Page && } +
+
+
+ + + + ); +}; + +export default App; diff --git a/src/backend/index.js b/src/backend/index.js new file mode 100644 index 0000000..bb7fca7 --- /dev/null +++ b/src/backend/index.js @@ -0,0 +1,18 @@ +/** + * WordPress dependencies. + */ +import domReady from '@wordpress/dom-ready'; + +import { createRoot } from '@wordpress/element'; + +/** + * Internal dependencies. + */ +import './style.scss'; +import './store'; +import App from './App'; + +domReady( () => { + const root = createRoot( document.getElementById( 'hyve-options' ) ); + root.render( ); +}); diff --git a/src/backend/parts/Home.js b/src/backend/parts/Home.js new file mode 100644 index 0000000..38c9037 --- /dev/null +++ b/src/backend/parts/Home.js @@ -0,0 +1,173 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import { + Button, + Panel, + PanelRow +} from '@wordpress/components'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +import { + archive, + brush, + help +} from '@wordpress/icons'; + +const STATUS = [ + { + label: __( 'Sessions', 'hyve' ), + value: hyve?.stats?.threads, + description: __( 'Unique chat sessions created by your users.', 'hyve' ) + }, + { + label: __( 'Messages', 'hyve' ), + value: hyve?.stats?.messages, + description: __( 'Total messages exchanged between users and Hyve.', 'hyve' ) + }, + { + label: __( 'Knowledge Base', 'hyve' ), + value: `${ hyve?.stats?.totalChunks } / ${ hyve?.chunksLimit }`, + description: __( 'Current knowledge base chunks used.', 'hyve' ) + } +]; + +const Home = () => { + const hasAPI = useSelect( ( select ) => select( 'hyve' ).hasAPI() ); + + const { setRoute } = useDispatch( 'hyve' ); + + if ( ! hasAPI ) { + return ( +
+ + +
+ +
+ +

{ __( 'Welcome to Hyve! Designed to seamlessly integrate AI chat into your WordPress site, this plugin allows you to craft a personalized chat experience using your own posts and pages. Enjoy engaging with your website visitors through Hyve!', 'hyve' ) }

+ +

{ __( 'To begin using the Hyve plugin, you\'ll need an OpenAI API key. This key enables Hyve to communicate with OpenAI\'s powerful language models, ensuring you get the best possible responses.', 'hyve' ) }

+ +
+ + + +
+
+
+
+ ); + } + + const ACTIONS = [ + { + label: __( 'Knowledge Base', 'hyve' ), + description: __( 'In Knowledge Base, view and remove any Posts/Pages added to Hyve from the chat\'s data source.', 'hyve' ), + icon: archive, + action: () => setRoute( 'data' ) + }, + { + label: __( 'Personalize', 'hyve' ), + description: __( 'Customize Hyve\'s behavior and appearance to better suit your website and brand.', 'hyve' ), + icon: brush, + action: () => setRoute( 'settings' ) + }, + { + label: __( 'Need help?', 'hyve' ), + description: __( 'Check out our documentation or contact support for assistance.', 'hyve' ), + icon: help, + action: () => window?.open( window?.hyve?.docs, '_blank' ) + } + ]; + + return ( +
+ + +

+ { __( 'Overview', 'hyve' ) } +

+ +
+ { STATUS.map( ({ label, value, description }) => ( +
+
+
+
+ { label } +
+ +
+ { value } +
+ +
+ { description } +
+
+
+
+ ) ) } +
+ +

+ { __( 'Get Started', 'hyve' ) } +

+ +
+ { ACTIONS.map( ({ label, description, icon, action }) => ( + + ) )} +
+
+
+
+ ); +}; + +export default Home; diff --git a/src/backend/parts/Messages.js b/src/backend/parts/Messages.js new file mode 100644 index 0000000..423a9ee --- /dev/null +++ b/src/backend/parts/Messages.js @@ -0,0 +1,169 @@ +/** + * External dependencies. + */ +import classnames from 'classnames'; + +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Button, + Panel, + PanelRow, + Spinner +} from '@wordpress/components'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +const Messages = () => { + const [ posts, setPosts ] = useState([]); + const [ selectedPost, setSelectedPost ] = useState( null ); + const [ hasMore, setHasMore ] = useState( false ); + const [ isLoading, setLoading ] = useState( true ); + + const fetchPosts = async() => { + setLoading( true ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/threads`, { + offset: posts?.length || 0 + }) + }); + + setLoading( false ); + setPosts( posts.concat( response.posts ) ); + setHasMore( response.more ); + }; + + useEffect( () => { + fetchPosts(); + }, []); + + return ( +
+ + +

{ __( 'Here you can see an history of all the messages between Hyve and your users.', 'hyve' ) }

+ + { ( isLoading && ! posts?.length ) && ( +
+ +
+ )} + + { ( ! isLoading && ! posts?.length ) && ( +
+

{ __( 'Messsages between Hyve and your users will appear here', 'hyve' ) }

+
+ )} + + { ( ( ! isLoading && ( posts && 0 < posts.length ) ) || ( posts && 0 < posts.length ) ) && ( +
+ { ( ! isLoading || ( posts && 0 < posts.length ) ) && ( +
+ { posts?.map( ( post, index ) => ( + + ) ) } + + { hasMore && ( + + ) } +
+ ) } + +
+ { ! selectedPost && ( +
+

{ __( 'Select a message to view the conversation', 'hyve' ) }

+
+ ) } + + { selectedPost && ( + <> +
+

{ __( 'Thread ID', 'hyve' ) }

+

{ selectedPost?.thread_id?.replace( 'thread_', '' ) }

+
+ +
+ { selectedPost?.thread && ( 0 < selectedPost?.thread?.length ) && selectedPost?.thread.map( ( message, index ) => { + const datetime = new Date( message.time * 1000 ); + const date = `${ String( datetime.getDate() ).padStart( 2, 0 ) }/${ String( datetime.getMonth() + 1 ).padStart( 2, 0 ) }/${ datetime.getFullYear() } ${ String( datetime.getHours() ).padStart( 2, 0 ) }:${ String( datetime.getMinutes() ).padStart( 2, 0 ) } ${ 12 <= datetime.getHours() ? 'PM' : 'AM' }`; + + if ( 'bot' === message.sender ) { + return ( +
+

{ message.message }

+ +
+ ); + } + + if ( 'user' === message.sender ) { + return ( +
+

{ message.message }

+ +
+ ); + } + + return null; + }) } +
+ + ) } +
+
+ ) } +
+
+
+ ); +}; + +export default Messages; diff --git a/src/backend/parts/ModerationReview.js b/src/backend/parts/ModerationReview.js new file mode 100644 index 0000000..dcc7cec --- /dev/null +++ b/src/backend/parts/ModerationReview.js @@ -0,0 +1,119 @@ +/** + * WordPress dependencies. + */ +import { + __, + sprintf +} from '@wordpress/i18n'; + +import { + Button, + Modal +} from '@wordpress/components'; + +import { useState } from '@wordpress/element'; + +import { info } from '@wordpress/icons'; + +/** + * Internal dependencies. + */ +import { + moderationLabels, + onProcessData +} from '../utils'; + +const ModerationReview = ({ + post, + type = '', + isOpen, + onClose, + onSuccess = () => {} +}) => { + const [ isBusy, setBusy ] = useState( false ); + + const onOverride = async() => { + setBusy( true ); + + await onProcessData({ + post, + type, + params: { + action: 'override' + }, + onSuccess: () => { + onClose(); + onSuccess(); + } + }); + + setBusy( false ); + }; + + if ( ! isOpen || ! post?.review ) { + return null; + } + + return ( + +

{ __( 'The content of the post listed here could not be added or updated due to non-compliance with content policies. Review these to understand the limitations and possibly modify content to align with required standards.', 'hyve' ) }

+ +

{ __( 'The following content was flagged for:', 'hyve' ) }

+ + { post && Object.keys( post.review ).map( review => ( +
+
+

{ moderationLabels[ review ].label }

+ +
+ +
+
+
+
+
+ +
+ { Math.floor( post.review[ review ] * 100 ) }% +
+
+ ) ) } + +

{ __( 'Occasionally, OpenAI\'s Moderation system may incorrectly flag content as a violation—these are false positives. Such errors can occur because automated systems sometimes lack the necessary context to interpret nuances accurately. If your content is flagged but you believe it adheres to the guidelines, please manually review it. Should you determine it does not violate the content policies, you can click the button below to override the moderation decision.', 'hyve' ) }

+ +
+ +
+ + ); +}; + +export default ModerationReview; diff --git a/src/backend/parts/Notices.js b/src/backend/parts/Notices.js new file mode 100644 index 0000000..cc70f61 --- /dev/null +++ b/src/backend/parts/Notices.js @@ -0,0 +1,33 @@ +/** + * WordPress dependencies. + */ +import { SnackbarList } from '@wordpress/components'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +import { store as noticesStore } from '@wordpress/notices'; + +const Notices = () => { + const notices = useSelect( + ( select ) => + select( noticesStore ) + .getNotices() + .filter( ( notice ) => 'snackbar' === notice.type ), + [] + ); + + const { removeNotice } = useDispatch( noticesStore ); + + return ( + + ); +}; + +export default Notices; diff --git a/src/backend/parts/PostModal.js b/src/backend/parts/PostModal.js new file mode 100644 index 0000000..0101b92 --- /dev/null +++ b/src/backend/parts/PostModal.js @@ -0,0 +1,181 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Button, + Modal, + TextControl, + TextareaControl +} from '@wordpress/components'; + +import { useDispatch } from '@wordpress/data'; + +import { useState } from '@wordpress/element'; + +/** + * Internal dependencies. + */ +import { onProcessData } from '../utils'; +import ModerationReview from './ModerationReview'; + +const PostModal = ({ + action, + post, + onClose +}) => { + const [ data, setData ] = useState({ ...post }); + const [ isLoading, setLoading ] = useState( false ); + const [ isModerationModalOpen, setModerationModalOpen ] = useState( false ); + + const { createNotice } = useDispatch( 'core/notices' ); + + const isEdit = 'edit' === action; + + const onDelete = async() => { + setLoading( true ); + + const response = await apiFetch({ + path: `${ window.hyve.api }/knowledge/${ data.ID }`, + method: 'POST', + headers: { + 'X-HTTP-Method-Override': 'DELETE' + } + }); + + if ( response.error ) { + createNotice( + 'error', + response.error, + { + type: 'snackbar', + isDismissible: true + } + ); + setLoading( false ); + + return; + } + + createNotice( + 'success', + __( 'Post has been deleted.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + } + ); + + onClose( true ); + }; + + const onProcess = async() => { + setLoading( true ); + + await onProcessData({ + post: data, + type: 'knowledge', + onSuccess: () => { + onClose( true ); + setLoading( false ); + }, + onError: ( error ) => { + if ( 'content_failed_moderation' === error?.code && undefined !== error.review ) { + const newPost = { + ...data, + review: error.review + }; + + setData( newPost ); + setModerationModalOpen( true ); + } + + setLoading( false ); + } + }); + }; + + if ( isModerationModalOpen ) { + return ( + { + setModerationModalOpen( false ); + } } + onSuccess={ () => { + onClose( true ); + setModerationModalOpen( false ); + } } + /> + ); + } + + return ( + onClose( false ) } + shouldCloseOnOverlayClick={ true } + isOpen={ true } + className="md:max-w-3xl md:w-full" + > +
+ { + setData({ + ...data, + title + }); + } } + /> + + { + setData({ + ...data, + content + }); + } } + /> + +
+ { isEdit && ( + + ) } + + +
+
+
+ ); +}; + +export default PostModal; diff --git a/src/backend/parts/PostsTable.js b/src/backend/parts/PostsTable.js new file mode 100644 index 0000000..3fe9bca --- /dev/null +++ b/src/backend/parts/PostsTable.js @@ -0,0 +1,98 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import { + Button, + Spinner +} from '@wordpress/components'; + +const PostsTable = ({ + posts, + isLoading, + hasMore, + onFetch, + onAction, + actionLabel, + isBusy, + isDisabled = false, + secondaryAction = false +}) => { + return ( + <> +
+
+
+
{ __( 'ID', 'hyve' ) }
+
{ __( 'Title', 'hyve' ) }
+
{ __( 'Action', 'hyve' ) }
+
+
+
+ { posts?.map( ( post ) => ( +
+
{ post.ID }
+ +
+ { post.title } +
+ +
+ { ( false !== secondaryAction && undefined !== post.review ) && ( + + )} + + +
+
+ ) )} + + { ( ! posts.length && ! isLoading ) && ( +
+ {__( 'No data found.', 'hyve' )} +
+ )} +
+
+ + { isLoading && ( +
+ +
+ )} + + { hasMore && ( +
+ +
+ )} + + ); +}; + +export default PostsTable; diff --git a/src/backend/parts/Sidebar.js b/src/backend/parts/Sidebar.js new file mode 100644 index 0000000..1f6b3e4 --- /dev/null +++ b/src/backend/parts/Sidebar.js @@ -0,0 +1,97 @@ +/** + * External dependencies. + */ +import classnames from 'classnames'; + +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +import { + Button, + Icon, + Panel +} from '@wordpress/components'; + +import { chevronDown } from '@wordpress/icons'; + +/** + * Internal dependencies. + */ +import { ROUTE as MENU_ITEMS } from '../route'; + +const Sidebar = () => { + const route = useSelect( ( select ) => select( 'hyve' ).getRoute() ); + const hasAPI = useSelect( ( select ) => select( 'hyve' ).hasAPI() ); + + const { setRoute } = useDispatch( 'hyve' ); + + return ( +
+ +
+ +
+
+
+ ); +}; + +export default Sidebar; diff --git a/src/backend/parts/data/AddData.js b/src/backend/parts/data/AddData.js new file mode 100644 index 0000000..1010934 --- /dev/null +++ b/src/backend/parts/data/AddData.js @@ -0,0 +1,200 @@ +/** + * External dependencies. + */ +import hash from 'object-hash'; + +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Notice, + Panel, + PanelRow, + SearchControl, + SelectControl +} from '@wordpress/components'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +/** + * Internal dependencies. + */ +import { onProcessData } from '../../utils'; + +import PostsTable from '../PostsTable'; + +import ModerationReview from '../ModerationReview'; + +const excludeTypes = [ 'attachment' ]; + +let postTypes = window.hyve.postTypes.filter( ( postType ) => ! excludeTypes.includes( postType.value ) ); + +postTypes.unshift({ + label: __( 'All', 'hyve' ), + value: 'any' +}); + +const AddData = () => { + const [ posts, setPosts ] = useState({}); + const [ processedPosts, setProcessedPosts ] = useState([]); + const [ hasMore, setHasMore ] = useState( false ); + const [ isLoading, setLoading ] = useState( true ); + const [ isUpdating, setUpdating ] = useState([]); + const [ isModerationModalOpen, setModerationModalOpen ] = useState( false ); + const [ post, setPost ] = useState( null ); + + const [ query, setQuery ] = useState({ + type: 'any', + search: '' + }); + + const { setTotalChunks } = useDispatch( 'hyve' ); + const hasReachedLimit = useSelect( ( select ) => select( 'hyve' ).hasReachedLimit() ); + + const fetchData = async() => { + setLoading( true ); + + const queryHash = hash( query ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/data`, { + offset: posts[ queryHash ]?.length || 0, + ...query + }) + }); + + setLoading( false ); + + setPosts({ + ...posts, + [ queryHash ]: ( posts[ queryHash ] || []).concat( response.posts ) + }); + + setHasMore( response.more ); + setTotalChunks( response?.totalChunks ); + }; + + const onProcess = async( id ) => { + setUpdating( prev => [ ...prev, id ]); + const post = posts[hash( query )].find( post => post.ID === id ); + + await onProcessData({ + post, + onSuccess: () => { + setUpdating( prev => prev.filter( postId => postId !== id ) ); + setProcessedPosts( prev => [ ...prev, id ]); + }, + onError: ( error ) => { + if ( 'content_failed_moderation' === error?.code && undefined !== error.review ) { + const newPost = { + ...post, + review: error.review + }; + + setPost( newPost ); + setModerationModalOpen( true ); + } + + setUpdating( prev => prev.filter( postId => postId !== id ) ); + } + }); + }; + + useEffect( () => { + const handler = setTimeout( () => fetchData(), 1000 ); + return () => clearTimeout( handler ); + }, [ query ]); + + const onChangeQuery = ( key, value ) => { + setQuery({ + ...query, + [ key ]: value + }); + }; + + return ( + <> +
+ + + { hasReachedLimit && ( + + { __( 'You have reached the limit of posts that can be added to the knowledge base. Please delete existing posts if you wish to add more.', 'hyve' ) } + + ) } + +

{ __( 'Select posts that are informative, engaging, and relevant. These will be the building blocks that empower your chat assistant to deliver precise and helpful responses. Whether it is answering FAQs or diving into detailed explanations, the content you choose here will shape how effectively your assistant interacts with users.', 'hyve' ) }

+ +
+
+
+ onChangeQuery( 'type', e )} + /> +
+ +
+ onChangeQuery( 'search', e )} + /> +
+
+ + ! processedPosts.includes( post.ID ) ) || []} + isLoading={ isLoading } + hasMore={ hasMore } + onFetch={ fetchData } + onAction={ onProcess } + actionLabel={ __( 'Add', 'hyve' ) } + isBusy={ isUpdating } + isDisabled={ hasReachedLimit } + /> +
+
+
+
+ + { + setModerationModalOpen( false ); + setUpdating( prev => prev.filter( postId => postId !== post.ID ) ); + } } + onSuccess={ () => { + setModerationModalOpen( false ); + setUpdating( prev => prev.filter( postId => postId !== post.ID ) ); + setProcessedPosts( prev => [ ...prev, post.ID ]); + } } + /> + + ); +}; + +export default AddData; diff --git a/src/backend/parts/data/Custom.js b/src/backend/parts/data/Custom.js new file mode 100644 index 0000000..00ef89b --- /dev/null +++ b/src/backend/parts/data/Custom.js @@ -0,0 +1,171 @@ +/** + * External dependencies. + */ +import hash from 'object-hash'; + +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Button, + Notice, + Panel, + PanelRow, + SearchControl +} from '@wordpress/components'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +/** + * Internal dependencies. + */ +import PostModal from '../PostModal'; +import PostsTable from '../PostsTable'; + +const Custom = () => { + const [ posts, setPosts ] = useState({}); + const [ hasMore, setHasMore ] = useState( false ); + const [ isLoading, setLoading ] = useState( true ); + const [ isModalOpen, setModalOpen ] = useState( false ); + const [ selectedPost, setSelectedPost ] = useState({}); + + const [ query, setQuery ] = useState({ + search: '' + }); + + const { setTotalChunks } = useDispatch( 'hyve' ); + const hasReachedLimit = useSelect( ( select ) => select( 'hyve' ).hasReachedLimit() ); + + const fetchData = async() => { + setLoading( true ); + + const queryHash = hash( query ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/knowledge`, { + offset: posts[ queryHash ]?.length || 0, + ...query + }) + }); + + setLoading( false ); + + setPosts({ + ...posts, + [ queryHash ]: [ + ...( posts[ queryHash ] || []), + ...response.posts + ] + }); + + setHasMore( response.more ); + setTotalChunks( response?.totalChunks ); + }; + + useEffect( () => { + const handler = setTimeout( () => fetchData(), 1000 ); + return () => clearTimeout( handler ); + }, [ query ]); + + const onChangeQuery = ( key, value ) => { + setQuery({ + ...query, + [ key ]: value + }); + }; + + const onClose = ( refresh = false ) => { + setModalOpen( false ); + setSelectedPost({}); + + if ( refresh ) { + setPosts({}); + setQuery({ search: '' }); + } + }; + + const onOpenModal = ( id = {}) => { + setModalOpen( true ); + const post = id ? posts[ hash( query )]?.find( post => post.ID === id ) : {}; + setSelectedPost( post ); + }; + + return ( + <> + { isModalOpen && ( + + ) } + +
+ + + { hasReachedLimit && ( + + { __( 'You have reached the limit of posts that can be added to the knowledge base. Please delete existing posts if you wish to add more.', 'hyve' ) } + + ) } + +

{ __( 'Custom Data allows you to privately feed specific data directly into your chat bot without displaying this information on your public website. With this, you can equip your bot with unique, specialized knowledge that aligns with your business needs and customer queries.', 'hyve' ) }

+ +
+
+
+ onChangeQuery( 'search', e )} + /> +
+ +
+ +
+
+ + +
+
+
+
+ + ); +}; + +export default Custom; diff --git a/src/backend/parts/data/FAQ.js b/src/backend/parts/data/FAQ.js new file mode 100644 index 0000000..fb24fd6 --- /dev/null +++ b/src/backend/parts/data/FAQ.js @@ -0,0 +1,195 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Button, + Notice, + Panel, + PanelRow, + Spinner +} from '@wordpress/components'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +/** + * Internal dependencies. + */ +import PostModal from '../PostModal'; + +const Custom = () => { + const [ posts, setPosts ] = useState([]); + const [ isLoading, setLoading ] = useState( true ); + const [ isModalOpen, setModalOpen ] = useState( false ); + const [ selectedPost, setSelectedPost ] = useState({}); + + const { setTotalChunks } = useDispatch( 'hyve' ); + const { createNotice } = useDispatch( 'core/notices' ); + + const hasReachedLimit = useSelect( ( select ) => select( 'hyve' ).hasReachedLimit() ); + + const fetchData = async() => { + setLoading( true ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/faq` ) + }); + + setLoading( false ); + setPosts( response?.items ); + setTotalChunks( response?.totalChunks ); + }; + + useEffect( () => { + fetchData(); + }, []); + + const onClose = async( refresh = false ) => { + setModalOpen( false ); + + if ( refresh ) { + onDelete( selectedPost.hash ); + } + + setSelectedPost({}); + }; + + const onDelete = async( id ) => { + const response = await apiFetch({ + path: `${ window.hyve.api }/faq/${ id }`, + method: 'POST', + headers: { + 'X-HTTP-Method-Override': 'DELETE' + } + }); + + if ( response.error ) { + createNotice( + 'error', + response.error, + { + type: 'snackbar', + isDismissible: true + } + ); + setLoading( false ); + + return; + } + + fetchData(); + }; + + const onOpenModal = ( item ) => { + setModalOpen( true ); + + const post = { + title: item.question, + hash: item.hash + }; + + setSelectedPost( post ); + }; + + return ( + <> + { isModalOpen && ( + + ) } + +
+ + + { hasReachedLimit && ( + + { __( 'You have reached the limit of posts that can be added to the knowledge base. Please delete existing posts if you wish to add more.', 'hyve' ) } + + ) } + +

{ __( 'The FAQ captures frequently asked questions that went unanswered by our chatbot, providing you with a valuable insight into what your users are seeking. This feature allows you to review these queries and decide whether to incorporate them into your bot\'s knowledge base. By actively updating your FAQ, you can continuously refine your chatbot\'s ability to address user needs effectively and enhance their interactive experience. These aren\'t updated instantly.', 'hyve' ) }

+ +
+ +
+
+
+
{ __( 'Title', 'hyve' ) }
+
{ __( 'Count', 'hyve' ) }
+
{ __( 'Action', 'hyve' ) }
+
+
+
+ { posts?.map( ( post ) => ( +
+
+ { post.question } +
+ +
{ post.count }
+ +
+ + + +
+
+ ) )} + + { ( ! posts.length && ! isLoading ) && ( +
+ {__( 'No data found.', 'hyve' )} +
+ )} +
+
+ + { isLoading && ( +
+ +
+ )} +
+
+
+
+ + ); +}; + +export default Custom; diff --git a/src/backend/parts/data/FailedModeration.js b/src/backend/parts/data/FailedModeration.js new file mode 100644 index 0000000..1ece68e --- /dev/null +++ b/src/backend/parts/data/FailedModeration.js @@ -0,0 +1,138 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Panel, + PanelRow +} from '@wordpress/components'; + +import { useDispatch } from '@wordpress/data'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +/** + * Internal dependencies. + */ +import { onProcessData } from '../../utils'; +import PostsTable from '../PostsTable'; +import ModerationReview from '../ModerationReview'; + +const FailedModeration = () => { + const [ needsUpdate, setNeedsUpdate ] = useState([]); + const [ hasMoreUpdate, setHasMoreUpdate ] = useState( false ); + const [ isLoadingUpdate, setLoadingUpdate ] = useState( false ); + const [ isUpdating, setUpdating ] = useState([]); + const [ isOpen, setOpen ] = useState( false ); + const [ post, setPost ] = useState( null ); + + const { setTotalChunks } = useDispatch( 'hyve' ); + + const fetchUpdate = async() => { + setLoadingUpdate( true ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/data`, { + offset: needsUpdate?.length || 0, + status: 'moderation' + }) + }); + + setLoadingUpdate( false ); + setNeedsUpdate([ + ...needsUpdate, + ...response.posts + ]); + setHasMoreUpdate( response.more ); + setTotalChunks( response?.totalChunks ); + }; + + const onUpdate = async( id ) => { + setUpdating( prev => [ ...prev, id ]); + const post = needsUpdate.find( post => post.ID === id ); + + await onProcessData({ + post, + params: { + action: 'update' + }, + onSuccess: () => { + setUpdating( prev => prev.filter( postId => postId !== id ) ); + setNeedsUpdate( prev => prev.filter( post => post.ID !== id ) ); + }, + onError: ( error ) => { + if ( 'content_failed_moderation' === error?.code && undefined !== error.review ) { + const newPost = { + ...post, + review: error.review + }; + + setPost( newPost ); + setOpen( true ); + } + + setUpdating( prev => prev.filter( postId => postId !== id ) ); + } + }); + }; + + useEffect( () => { + fetchUpdate(); + }, []); + + return ( + <> +
+ + +

{ __( 'On this page, you\'ll find posts and pages that could not be added or updated due to non-compliance with content policies. Review these to understand the limitations and possibly modify content to align with required standards. You can also adjust the moderation threshold in the Settings.', 'hyve' ) }

+ +
+ { + setOpen( true ); + setPost( post ); + } + } } + /> +
+
+
+
+ + { + setOpen( false ); + setUpdating( prev => prev.filter( postId => postId !== post.ID ) ); + } } + onSuccess={ () => { + setNeedsUpdate( prev => prev.filter( i => i.ID !== post.ID ) ); + setUpdating( prev => prev.filter( postId => postId !== post.ID ) ); + } } + /> + + ); +}; + +export default FailedModeration; diff --git a/src/backend/parts/data/KnowledgeBase.js b/src/backend/parts/data/KnowledgeBase.js new file mode 100644 index 0000000..ddff021 --- /dev/null +++ b/src/backend/parts/data/KnowledgeBase.js @@ -0,0 +1,103 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Panel, + PanelRow +} from '@wordpress/components'; + +import { useDispatch } from '@wordpress/data'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +/** + * Internal dependencies. + */ +import PostsTable from '../PostsTable'; + +const KnowledgeBase = () => { + const [ posts, setPosts ] = useState([]); + const [ hasMore, setHasMore ] = useState( false ); + const [ isLoading, setLoading ] = useState( true ); + const [ isDeleting, setDeleting ] = useState([]); + + const { createNotice } = useDispatch( 'core/notices' ); + const { setTotalChunks } = useDispatch( 'hyve' ); + + const fetchPosts = async() => { + setLoading( true ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/data`, { + offset: posts?.length || 0, + status: 'included' + }) + }); + + setLoading( false ); + setPosts( posts.concat( response.posts ) ); + setHasMore( response.more ); + setTotalChunks( response?.totalChunks ); + }; + + const onDelete = async( id ) => { + setDeleting([ ...isDeleting, id ]); + + await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/data`, { + id + }), + method: 'DELETE' + }); + + setPosts( posts.filter( ( post ) => post.ID !== id ) ); + + createNotice( + 'success', + __( 'Post has been removed.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + } + ); + }; + + useEffect( () => { + fetchPosts(); + }, []); + + return ( +
+ + +

{ __( 'A list of all the content that has been added to the knowledge base. It\'s the foundation that supports your chat assistant, enabling it to provide accurate and insightful responses.', 'hyve' ) }

+ +
+ +
+
+
+
+ ); +}; + +export default KnowledgeBase; diff --git a/src/backend/parts/data/Updated.js b/src/backend/parts/data/Updated.js new file mode 100644 index 0000000..a4e1f8f --- /dev/null +++ b/src/backend/parts/data/Updated.js @@ -0,0 +1,132 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Panel, + PanelRow +} from '@wordpress/components'; + +import { useDispatch } from '@wordpress/data'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { addQueryArgs } from '@wordpress/url'; + +/** + * Internal dependencies. + */ +import { onProcessData } from '../../utils'; +import PostsTable from '../PostsTable'; +import ModerationReview from '../ModerationReview'; + +const Updated = () => { + const [ needsUpdate, setNeedsUpdate ] = useState([]); + const [ hasMoreUpdate, setHasMoreUpdate ] = useState( false ); + const [ isLoadingUpdate, setLoadingUpdate ] = useState( false ); + const [ isUpdating, setUpdating ] = useState([]); + const [ isModerationModalOpen, setModerationModalOpen ] = useState( false ); + const [ post, setPost ] = useState( null ); + + const { setTotalChunks } = useDispatch( 'hyve' ); + + const fetchUpdate = async() => { + setLoadingUpdate( true ); + + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/data`, { + offset: needsUpdate?.length || 0, + status: 'pending' + }) + }); + + setLoadingUpdate( false ); + setNeedsUpdate([ + ...needsUpdate, + ...response.posts + ]); + setHasMoreUpdate( response.more ); + setTotalChunks( response?.totalChunks ); + }; + + const onUpdate = async( id ) => { + setUpdating( prev => [ ...prev, id ]); + const post = needsUpdate.find( post => post.ID === id ); + + await onProcessData({ + post, + params: { + action: 'update' + }, + onSuccess: () => { + setUpdating( prev => prev.filter( postId => postId !== id ) ); + setNeedsUpdate( prev => prev.filter( post => post.ID !== id ) ); + }, + onError: ( error ) => { + if ( 'content_failed_moderation' === error?.code && undefined !== error.review ) { + const newPost = { + ...post, + review: error.review + }; + + setPost( newPost ); + setModerationModalOpen( true ); + } + + setUpdating( prev => prev.filter( postId => postId !== id ) ); + } + }); + }; + + useEffect( () => { + fetchUpdate(); + }, []); + + return ( + <> +
+ + +

{ __( 'Here, you\'ll see posts that have been updated since their addition to the knowledge base. This page allows you to review these updates and decide if you want to refresh the knowledge your assistant relies on.', 'hyve' ) }

+ +
+ +
+
+
+
+ + { + setModerationModalOpen( false ); + setUpdating( prev => prev.filter( postId => postId !== post.ID ) ); + } } + onSuccess={ () => { + setModerationModalOpen( false ); + setUpdating( prev => prev.filter( postId => postId !== post.ID ) ); + setNeedsUpdate( prev => prev.filter( item => item.ID !== post.ID ) ); + } } + /> + + ); +}; + +export default Updated; diff --git a/src/backend/parts/settings/Advanced.js b/src/backend/parts/settings/Advanced.js new file mode 100644 index 0000000..d2b9fd4 --- /dev/null +++ b/src/backend/parts/settings/Advanced.js @@ -0,0 +1,240 @@ +/** + * WordPress dependencies. + */ +import { + __, + sprintf +} from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + BaseControl, + Button, + ExternalLink, + Icon, + Panel, + PanelRow, + TextControl +} from '@wordpress/components'; + +import { + useEffect, + useState +} from '@wordpress/element'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +const Advanced = () => { + const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); + const { + setHasAPI, + setSetting + } = useDispatch( 'hyve' ); + + const { createNotice } = useDispatch( 'core/notices' ); + + const [ isSaving, setIsSaving ] = useState( false ); + const [ license, setLicense ] = useState( window.hyve?.license ); + const [ licenseKey, setLicenseKey ] = useState( '' ); + + useEffect( () => { + const statuses = [ 'valid', 'active_expired' ]; + + if ( license.key && ( statuses.includes( license.valid ) ) ) { + setLicenseKey( license.key ); + } + }, [ license ]); + + const onSave = async() => { + setIsSaving( true ); + + try { + const response = await apiFetch({ + path: `${ window.hyve.api }/settings`, + method: 'POST', + data: { + data: settings + } + }); + + if ( response.error ) { + throw new Error( response.error ); + } + + if ( settings.api_key ) { + setHasAPI( true ); + } else { + setHasAPI( false ); + } + + createNotice( + 'success', + __( 'Settings saved.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + }); + } catch ( error ) { + createNotice( + 'error', + error, + { + type: 'snackbar', + isDismissible: true + }); + } + + setIsSaving( false ); + }; + + const onSaveLicense = async( data ) => { + setIsSaving( true ); + + try { + const response = await apiFetch({ + path: `${ window.hyve.api }/license`, + method: 'POST', + data: { + data + } + }); + + if ( response.error ) { + throw new Error( response.error ); + } + + createNotice( + response.success ? 'success' : 'error', + response.message, + { + isDismissible: true, + type: 'snackbar' + } + ); + + if ( response?.success && response.license && 'free' !== response.license.key ) { + setLicense( response.license ); + setLicenseKey( response.license.key ); + } else { + setLicense({}); + setLicenseKey( '' ); + } + + window.location = window.location.href + '&nav=advanced'; + } catch ( error ) { + createNotice( + 'error', + error, + { + type: 'snackbar', + isDismissible: true + }); + } + setIsSaving( false ); + }; + + const isValid = 'valid' === license?.valid || 'valid' === license?.license; + + return ( +
+ + + + setLicenseKey( newValue ) } + /> + + + { isValid && ( +
+

+ + { + license.expiration ? + sprintf( __( 'Valid - Expires %s', 'hyve' ), license.expiration ) : + __( 'Valid', 'hyve' ) + } +

+
+ )} + + { 'active_expired' === license?.valid && ( + <> +

{ __( 'License Key has expired. In order to continue receiving support and software updates you must renew your license key.', 'hyve' ) }

+ + + { __( 'Renew License', 'hyve' ) } + + + )} + + { ! isValid && ( + + { __( 'Get license from Purchase History', 'hyve' ) } + + ) } + + +
+
+ +
+ + + + + setSetting( 'api_key', newValue ) } + /> + + + + { __( 'Get an API key', 'hyve' ) } + + + + + +
+ ); +}; + +export default Advanced; diff --git a/src/backend/parts/settings/Appearance.js b/src/backend/parts/settings/Appearance.js new file mode 100644 index 0000000..ce3d390 --- /dev/null +++ b/src/backend/parts/settings/Appearance.js @@ -0,0 +1,127 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + BaseControl, + Button, + ColorPalette, + Panel, + PanelRow +} from '@wordpress/components'; + +import { useState } from '@wordpress/element'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +const colorOptions = [ + { + label: __( 'Chat Background', 'hyve' ), + value: 'chat_background' + }, + { + label: __( 'Assistant Background', 'hyve' ), + value: 'assistant_background' + }, + { + label: __( 'User Background', 'hyve' ), + value: 'user_background' + }, + { + label: __( 'Icon Background', 'hyve' ), + value: 'icon_background' + } +]; + +const Appearance = () => { + const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); + const { setSetting } = useDispatch( 'hyve' ); + + const { createNotice } = useDispatch( 'core/notices' ); + + const [ isSaving, setIsSaving ] = useState( false ); + + const updateColor = ( key, value ) => { + const colors = { ...settings.colors, [ key ]: value }; + setSetting( 'colors', colors ); + }; + + const onSave = async() => { + setIsSaving( true ); + + try { + const response = await apiFetch({ + path: `${ window.hyve.api }/settings`, + method: 'POST', + data: { + data: settings + } + }); + + if ( response.error ) { + throw new Error( response.error ); + } + + createNotice( + 'success', + __( 'Settings saved.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + }); + } catch ( error ) { + createNotice( + 'error', + error, + { + type: 'snackbar', + isDismissible: true + }); + } + + setIsSaving( false ); + }; + + return ( +
+ + + { colorOptions.map( ( option ) => ( + + updateColor( option.value, color ) } + /> + + ) ) } + + + + + + +
+ ); +}; + +export default Appearance; diff --git a/src/backend/parts/settings/Assistant.js b/src/backend/parts/settings/Assistant.js new file mode 100644 index 0000000..8d39ec6 --- /dev/null +++ b/src/backend/parts/settings/Assistant.js @@ -0,0 +1,117 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Button, + Panel, + PanelRow, + RangeControl +} from '@wordpress/components'; + +import { + useState +} from '@wordpress/element'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +const Assistant = () => { + const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); + const { setSetting } = useDispatch( 'hyve' ); + + const { createNotice } = useDispatch( 'core/notices' ); + + const [ isSaving, setIsSaving ] = useState( false ); + + const onSave = async() => { + setIsSaving( true ); + + try { + const response = await apiFetch({ + path: `${ window.hyve.api }/settings`, + method: 'POST', + data: { + data: settings + } + }); + + if ( response.error ) { + throw new Error( response.error ); + } + + createNotice( + 'success', + __( 'Settings saved.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + }); + } catch ( error ) { + createNotice( + 'error', + error, + { + type: 'snackbar', + isDismissible: true + }); + } + + setIsSaving( false ); + }; + + return ( +
+ + + setSetting( 'temperature', newValue ) } + /> + + + + setSetting( 'top_p', newValue ) } + /> + + + + + + +
+ ); +}; + +export default Assistant; diff --git a/src/backend/parts/settings/General.js b/src/backend/parts/settings/General.js new file mode 100644 index 0000000..e9f47ea --- /dev/null +++ b/src/backend/parts/settings/General.js @@ -0,0 +1,159 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + BaseControl, + Button, + Panel, + PanelRow, + TextControl, + __experimentalToggleGroupControl as ToggleGroupControl, + __experimentalToggleGroupControlOption as ToggleGroupControlOption +} from '@wordpress/components'; + +import { useState } from '@wordpress/element'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +const General = () => { + const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); + const { setSetting } = useDispatch( 'hyve' ); + + const { createNotice } = useDispatch( 'core/notices' ); + + const [ isSaving, setIsSaving ] = useState( false ); + + const updateQuestion = ( index, value ) => { + const newQuestions = [ ...settings.predefined_questions ]; + newQuestions[ index ] = value; + setSetting( 'predefined_questions', newQuestions ); + }; + + const onSave = async() => { + setIsSaving( true ); + + try { + const response = await apiFetch({ + path: `${ window.hyve.api }/settings`, + method: 'POST', + data: { + data: settings + } + }); + + if ( response.error ) { + throw new Error( response.error ); + } + + createNotice( + 'success', + __( 'Settings saved.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + }); + } catch ( error ) { + createNotice( + 'error', + error, + { + type: 'snackbar', + isDismissible: true + }); + } + + setIsSaving( false ); + }; + + return ( +
+ + + setSetting( 'chat_enabled', Boolean( newValue ) ) } + > + + + + + + + setSetting( 'welcome_message', newValue ) } + /> + + + + setSetting( 'default_message', newValue ) } + /> + + + + +

{ __( 'These questions will be displayed in the chat to get the conversation started.', 'hyve' ) }

+ +
+ { Array.from({ length: 3 }).map( ( _, index ) => ( + updateQuestion( index, e ) } + /> + ) ) } +
+
+
+ + + + +
+
+ ); +}; + +export default General; diff --git a/src/backend/parts/settings/Moderation.js b/src/backend/parts/settings/Moderation.js new file mode 100644 index 0000000..cd255c6 --- /dev/null +++ b/src/backend/parts/settings/Moderation.js @@ -0,0 +1,123 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { + Button, + Panel, + PanelRow, + RangeControl +} from '@wordpress/components'; + +import { useState } from '@wordpress/element'; + +import { + useDispatch, + useSelect +} from '@wordpress/data'; + +/** + * Internal dependencies. + */ +import { moderationLabels } from '../../utils'; + +const Moderation = () => { + const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); + const { setSetting } = useDispatch( 'hyve' ); + + const { createNotice } = useDispatch( 'core/notices' ); + + const [ isSaving, setIsSaving ] = useState( false ); + + const onSave = async() => { + setIsSaving( true ); + + try { + const response = await apiFetch({ + path: `${ window.hyve.api }/settings`, + method: 'POST', + data: { + data: settings + } + }); + + if ( response.error ) { + throw new Error( response.error ); + } + + createNotice( + 'success', + __( 'Settings saved.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + }); + } catch ( error ) { + createNotice( + 'error', + error, + { + type: 'snackbar', + isDismissible: true + }); + } + + setIsSaving( false ); + }; + + const onChangeModeration = ( key, value ) => { + setSetting( 'moderation_threshold', { + ...settings.moderation_threshold, + [key]: Number( value ) * 100 + }); + }; + + return ( +
+ + +

{ __( 'With the moderation functionality, you can check whether your content is potentially harmful. Users can use it to identify content that might be harmful and take action.', 'hyve' ) }

+ +

{ __( 'Occasionally, OpenAI\'s Moderation system may incorrectly flag content as a violation—these are false positives. Such errors can occur because automated systems sometimes lack the necessary context to interpret nuances accurately. If your content is flagged but you believe it adheres to the guidelines, please manually review it. Should you determine it does not violate the content policies, you can also override the moderation decisions.', 'hyve' ) }

+ + { Object.keys( moderationLabels ).map( moderation => ( + onChangeModeration( moderation, newValue ) } + /> + ) ) } +
+ + + + +
+
+ ); +}; + +export default Moderation; diff --git a/src/backend/route.js b/src/backend/route.js new file mode 100644 index 0000000..ecb0732 --- /dev/null +++ b/src/backend/route.js @@ -0,0 +1,116 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import { + archive, + comment, + home, + settings +} from '@wordpress/icons'; + +/** + * Internal dependencies. + */ +import Home from './parts/Home'; +import KnowledgeBase from './parts/data/KnowledgeBase'; +import AddData from './parts/data/AddData'; +import Updated from './parts/data/Updated'; +import FailedModeration from './parts/data/FailedModeration'; +import Custom from './parts/data/Custom'; +import FAQ from './parts/data/FAQ'; +import Messages from './parts/Messages'; +import General from './parts/settings/General'; +import Appearance from './parts/settings/Appearance'; +import Assistant from './parts/settings/Assistant'; +import Moderation from './parts/settings/Moderation'; +import Advanced from './parts/settings/Advanced'; + +export const ROUTE = { + home: { + label: __( 'Dashboard', 'hyve' ), + icon: home, + component: Home, + disabled: false + }, + data: { + label: __( 'Data', 'hyve' ), + icon: archive, + children: { + data: { + label: __( 'Knowledge Base', 'hyve' ), + component: KnowledgeBase + }, + add: { + label: __( 'Add Data', 'hyve' ), + component: AddData + }, + update: { + label: __( 'Requires Update', 'hyve' ), + component: Updated + }, + flagged: { + label: __( 'Failed Moderation', 'hyve' ), + component: FailedModeration + }, + custom: { + label: __( 'Custom Data', 'hyve' ), + component: Custom + }, + faq: { + label: __( 'FAQ', 'hyve' ), + component: FAQ + } + } + }, + messages: { + label: __( 'Messages', 'hyve' ), + icon: comment, + component: Messages + }, + settings: { + label: __( 'Settings', 'hyve' ), + icon: settings, + children: { + settings: { + label: __( 'General', 'hyve' ), + component: General + }, + apperance: { + label: __( 'Appearance', 'hyve' ), + component: Appearance, + disabled: true + }, + assistant: { + label: __( 'Assistant', 'hyve' ), + component: Assistant, + disabled: true + }, + moderation: { + label: __( 'Moderation', 'hyve' ), + component: Moderation, + disabled: true + }, + advanced: { + label: __( 'Advanced', 'hyve' ), + component: Advanced, + disabled: false + } + } + } +}; + +export const ROUTE_COMPONENTS = Object.keys( ROUTE ).reduce( ( acc, key ) => { + if ( ROUTE[key].component ) { + acc[key] = ROUTE[key].component; + } + + if ( ROUTE[key].children ) { + Object.keys( ROUTE[key].children ).forEach( ( childKey ) => { + acc[childKey] = ROUTE[key].children[childKey].component; + }); + } + + return acc; +}, {}); diff --git a/src/backend/store.js b/src/backend/store.js new file mode 100644 index 0000000..b1037b2 --- /dev/null +++ b/src/backend/store.js @@ -0,0 +1,124 @@ +/** + * WordPress dependencies. + */ +import { + createReduxStore, + register +} from '@wordpress/data'; + +const DEFAULT_STATE = { + route: 'home', + hasLoaded: false, + settings: {}, + processed: [], + hasAPI: Boolean( window.hyve.hasAPIKey ), + totalChunks: 0 +}; + +const actions = { + setRoute( route ) { + return { + type: 'SET_ROUTE', + route + }; + }, + setLoading() { + return { + type: 'HAS_LOADED' + }; + }, + setSettings( settings ) { + return { + type: 'SET_SETTINGS', + settings + }; + }, + setSetting( key, value ) { + return { + type: 'SET_SETTING', + key, + value + }; + }, + setHasAPI( hasAPI ) { + return { + type: 'SET_HAS_API', + hasAPI + }; + }, + setTotalChunks( totalChunks ) { + return { + type: 'SET_TOTAL_CHUNKS', + totalChunks + }; + } +}; + +const selectors = { + getRoute( state ) { + return state.route; + }, + hasLoaded( state ) { + return state.hasLoaded; + }, + getSettings( state ) { + return state.settings; + }, + hasAPI( state ) { + return state.hasAPI; + }, + getTotalChunks( state ) { + return state.totalChunks; + }, + hasReachedLimit( state ) { + return hyve.chunksLimit <= Number( state.totalChunks ); + } +}; + +const reducer = ( state = DEFAULT_STATE, action ) => { + switch ( action.type ) { + case 'SET_ROUTE': + return { + ...state, + route: action.route + }; + case 'HAS_LOADED': + return { + ...state, + hasLoaded: true + }; + case 'SET_SETTINGS': + return { + ...state, + settings: action.settings + }; + case 'SET_SETTING': + return { + ...state, + settings: { + ...state.settings, + [ action.key ]: action.value + } + }; + case 'SET_HAS_API': + return { + ...state, + hasAPI: action.hasAPI + }; + case 'SET_TOTAL_CHUNKS': + return { + ...state, + totalChunks: action.totalChunks + }; + default: + return state; + } +}; + +const store = createReduxStore( 'hyve', { + reducer, + actions, + selectors +}); + +register( store ); diff --git a/src/backend/style.scss b/src/backend/style.scss new file mode 100644 index 0000000..8cc3c42 --- /dev/null +++ b/src/backend/style.scss @@ -0,0 +1,41 @@ +@import 'tailwindcss/base'; +@import 'tailwindcss/components'; +@import 'tailwindcss/utilities'; + +#wpcontent { + padding: 0; +} + +.components-panel__row { + display: block; + margin: 0; + padding: 16px; +} + +.components-snackbar-list { + bottom: .5rem; + position: fixed; + padding-left: 1.5rem; +} + +.components-toggle-group-control { + max-width: 12rem; +} + +.components-color-palette__custom-color-text-wrapper { + display: none; +} + +.hyve-video { + position: relative; + padding-bottom: 56.25%; /* 16:9 */ + height: 0; + + iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } +} diff --git a/src/backend/utils.js b/src/backend/utils.js new file mode 100644 index 0000000..2a35be3 --- /dev/null +++ b/src/backend/utils.js @@ -0,0 +1,235 @@ +/** + * External dependencies. + */ +import { getEncoding } from 'js-tiktoken'; + +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import apiFetch from '@wordpress/api-fetch'; + +import { dispatch } from '@wordpress/data'; + +const { createNotice } = dispatch( 'core/notices' ); + +const tokenizer = getEncoding( 'cl100k_base' ); + +const createChunks = ( text, maxTokens, tokenizer ) => { + const sentences = text.split( '. ' ); + + const chunks = []; + let tokensSoFar = 0; + let chunk = []; + + for ( let i = 0; i < sentences.length; i++ ) { + const sentence = sentences[i]; + const tokenLength = tokenizer.encode( ' ' + sentence ).length; + + if ( tokensSoFar + tokenLength > maxTokens ) { + chunks.push( chunk.join( '. ' ) + '.' ); + chunk = []; + tokensSoFar = 0; + } + + if ( tokenLength > maxTokens ) { + continue; + } + + chunk.push( sentence ); + tokensSoFar += tokenLength + 1; + } + + if ( 0 < chunk.length ) { + chunks.push( chunk.join( '. ' ) + '.' ); + } + + return chunks; +}; + +export const tokenize = ( post, chunk = true ) => { + let { + ID, + title, + content + } = post; + + content = content.replace( /<[^>]+>/g, '' ); + + const tokens = tokenizer.encode( content ); + + const article = { + 'post_id': ID, + 'post_title': title, + 'post_content': content, + tokens + }; + + let data = []; + + const chunkedTokenSize = 1000; + const tokenLength = article.tokens.length; + + if ( ( tokenLength > chunkedTokenSize ) && chunk ) { + const shortenedSentences = createChunks( article.post_content, chunkedTokenSize, tokenizer ); + + for ( const shortenedSentence of shortenedSentences ) { + const chunkedTokens = tokenizer.encode( article.title + ' ' + shortenedSentence ); + + data.push({ + ...article, + 'post_content': shortenedSentence, + tokens: chunkedTokens, + 'token_count': chunkedTokens.length + }); + } + } else { + const chunkedTokens = tokenizer.encode( article.title + ' ' + article.post_content ); + + data.push({ + ...article, + tokens: chunkedTokens, + 'token_count': chunkedTokens.length + }); + } + + return data; +}; + +export const moderationLabels = { + 'hate': { + label: __( 'Hate Speech', 'hyve' ), + description: __( 'Content that expresses, incites, or promotes hate based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste. Hateful content aimed at non-protected groups (e.g., chess players) is harassment.', 'hyve' ), + default: 0.7 + }, + 'hate/threatening': { + label: __( 'Hate Speech/Threatening', 'hyve' ), + description: __( 'Hateful content that also includes violence or serious harm towards the targeted group based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste.', 'hyve' ), + default: 0.6 + }, + 'harassment': { + label: __( 'Harassment', 'hyve' ), + description: __( 'Content that expresses, incites, or promotes harassing language towards any target.', 'hyve' ), + default: 0.7 + }, + 'harassment/threatening': { + label: __( 'Harassment/Threatening', 'hyve' ), + description: __( 'Harassment content that also includes violence or serious harm towards any target.', 'hyve' ), + default: 0.6 + }, + 'self-harm': { + label: __( 'Self-Harm', 'hyve' ), + description: __( 'Content that promotes, encourages, or depicts acts of self-harm, such as suicide, cutting, and eating disorders.', 'hyve' ), + default: 0.5 + }, + 'self-harm/intent': { + label: __( 'Self-Harm with Intent', 'hyve' ), + description: __( 'Content where the speaker expresses that they are engaging or intend to engage in acts of self-harm, such as suicide, cutting, and eating disorders.', 'hyve' ), + default: 0.5 + }, + 'self-harm/instructions': { + label: __( 'Self-Harm Instructions', 'hyve' ), + description: __( 'Content that encourages performing acts of self-harm, such as suicide, cutting, and eating disorders, or that gives instructions or advice on how to commit such acts.', 'hyve' ), + default: 0.5 + }, + 'sexual': { + label: __( 'Sexual Content', 'hyve' ), + description: __( 'Content meant to arouse sexual excitement, such as the description of sexual activity, or that promotes sexual services (excluding sex education and wellness).', 'hyve' ), + default: 0.8 + }, + 'sexual/minors': { + label: __( 'Sexual Content Involving Minors', 'hyve' ), + description: __( 'Sexual content that includes an individual who is under 18 years old.', 'hyve' ), + default: 0.5 + }, + 'violence': { + label: __( 'Violence', 'hyve' ), + description: __( 'Content that depicts death, violence, or physical injury.', 'hyve' ), + default: 0.7 + }, + 'violence/graphic': { + label: __( 'Graphic Violence', 'hyve' ), + description: __( 'Content that depicts death, violence, or physical injury in graphic detail.', 'hyve' ), + default: 0.8 + } +}; + +export const onProcessData = async({ + post = {}, + type = 'core', + params = {}, + onSuccess = () => {}, + onError = () => {} +}) => { + const chunks = tokenize( post ); + let bailOut = false; + + try { + for ( const data of chunks ) { + if ( bailOut ) { + break; + } + + let response = ''; + + if ( 'knowledge' === type ) { + if ( post.ID ) { + response = await apiFetch({ + path: `${ window.hyve.api }/knowledge/${ post.ID }`, + method: 'POST', + data: { + data, + ...params + } + }); + } else { + response = await apiFetch({ + path: `${ window.hyve.api }/knowledge`, + method: 'POST', + data: { + data, + ...params + } + }); + } + } else { + response = await apiFetch({ + path: `${ window.hyve.api }/data`, + method: 'POST', + data: { + data, + ...params + } + }); + } + + if ( response.error ) { + bailOut = true; + throw response; + } + } + + createNotice( + 'success', + __( 'Post has been updated.', 'hyve' ), + { + type: 'snackbar', + isDismissible: true + } + ); + + onSuccess(); + } catch ( error ) { + createNotice( + 'error', + error.error, + { + type: 'snackbar', + isDismissible: true + } + ); + + onError( error ); + } +}; diff --git a/src/block/block.json b/src/block/block.json new file mode 100644 index 0000000..19b13fc --- /dev/null +++ b/src/block/block.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 3, + "name": "hyve/chat", + "version": "1.0.0", + "title": "Hyve Chat", + "category": "widgets", + "attributes": { + "variant": { + "type": "string" + } + }, + "supports": { + "html": false + }, + "variations": [ + { + "name": "default", + "title": "Hyve Chat - Inline", + "isDefault": true + }, + { + "name": "floating", + "title": "Hyve Chat - Chat Bubble", + "description": "A floating chat bubble that opens the chat window when clicked.", + "attributes": { + "variant": "floating" + } + } + ], + "textdomain": "hyve", + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "hyve-styles", + "viewScript": "hyve-scripts" +} diff --git a/src/block/index.js b/src/block/index.js new file mode 100644 index 0000000..e2d2372 --- /dev/null +++ b/src/block/index.js @@ -0,0 +1,30 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import { registerBlockType } from '@wordpress/blocks'; + +import { useBlockProps } from '@wordpress/block-editor'; + +import { Placeholder } from '@wordpress/components'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; + +registerBlockType( metadata.name, { + edit: () => { + const blockProps = useBlockProps(); + + return ( +
+ + { __( 'Hyve Chatbot will appear here. No further action needed.', 'hyve' ) } + +
+ ); + }, + save: () => null +}); diff --git a/src/block/render.php b/src/block/render.php new file mode 100644 index 0000000..9e42bda --- /dev/null +++ b/src/block/render.php @@ -0,0 +1,25 @@ + + +
$hyve_id, + ) + ) +); +?> +>
diff --git a/src/frontend/App.js b/src/frontend/App.js new file mode 100644 index 0000000..e0fa2a6 --- /dev/null +++ b/src/frontend/App.js @@ -0,0 +1,463 @@ +/** + * WordPress dependencies. + */ +import apiFetch from '@wordpress/api-fetch'; + +import { addQueryArgs } from '@wordpress/url'; + +const clickAudio = new Audio( hyve.audio.click ); +const pingAudio = new Audio( hyve.audio.ping ); + +class App { + constructor() { + this.isInitialToggle = true; + this.hasSuggestions = false; + this.messages = []; + this.threadID = null; + this.runID = null; + this.recordID = null; + + this.renderUI(); + this.setupListeners(); + this.restoreStorage(); + } + + restoreStorage() { + if ( null === window.localStorage.getItem( 'hyve-chat' ) ) { + return; + } + + const storage = JSON.parse( window.localStorage.getItem( 'hyve-chat' ) ); + + if ( ! storage.timestamp ) { + return; + } + + const currentDate = new Date(); + const storageDate = new Date( storage.timestamp ); + + if ( 86400000 < currentDate - storageDate || null === storage.threadID ) { + window.localStorage.removeItem( 'hyve-chat' ); + return; + } + + this.messages = storage.messages; + this.threadID = storage.threadID; + this.recordID = storage.recordID; + this.isInitialToggle = false; + + this.messages.forEach( message => { + this.addMessage( message.time, message.message, message.sender, message.id, false ); + }); + } + + updateStorage() { + const messages = this.messages.filter( message => null === message.id ).slice( -20 ); + + window.localStorage.setItem( 'hyve-chat', JSON.stringify({ + timestamp: new Date(), + messages, + threadID: this.threadID, + recordID: this.recordID + }) ); + } + + add( message, sender, id = null ) { + const time = new Date(); + + message = this.sanitize( message ); + + this.messages.push({ time, message, sender, id }); + this.addMessage( time, message, sender, id ); + + this.updateStorage(); + + if ( 'user' !== sender ) { + return; + } + + this.sendRequest( message ); + + if ( this.hasSuggestions ) { + this.removeSuggestions(); + } + } + + sanitize( input ) { + const tempDiv = document.createElement( 'div' ); + tempDiv.textContent = input; + return tempDiv.innerHTML; + } + + setThreadID( threadID ) { + this.threadID = threadID; + } + + setRunID( runID ) { + this.runID = runID; + } + + setRecordID( recordID ) { + this.recordID = recordID; + } + + setLoading( isLoading ) { + const chatInputText = document.querySelector( '#hyve-text-input' ); + const chatSendButton = document.querySelector( '.hyve-send-button button' ); + + chatInputText.disabled = isLoading; + chatSendButton.disabled = isLoading; + } + + async getResponse( message ) { + try { + const response = await apiFetch({ + path: addQueryArgs( `${ window.hyve.api }/chat`, { + 'thread_id': this.threadID, + 'run_id': this.runID, + 'record_id': this.recordID, + message + }), + headers: { + 'Cache-Control': 'no-cache' + } + }); + + if ( response.error ) { + this.add( 'Sorry, I am not able to process your request at the moment. Please try again.', 'bot' ); + this.removeMessage( this.runID ); + return; + } + + if ( 'in_progress' === response.status ) { + setTimeout( async() => { + await this.getResponse( message ); + }, 2000 ); + + return; + } + + this.removeMessage( this.runID ); + + if ( 'completed' === response.status ) { + this.add( response.message, 'bot' ); + this.setLoading( false ); + } + + if ( 'failed' === response.status ) { + this.add( 'Sorry, I am not able to process your request at the moment. Please try again.', 'bot' ); + this.setLoading( false ); + } + } catch ( error ) { + this.add( 'Sorry, I am not able to process your request at the moment. Please try again.', 'bot' ); + this.setLoading( false ); + } + } + + async sendRequest( message ) { + try { + this.setLoading( true ); + + const response = await apiFetch({ + path: `${ window.hyve.api }/chat`, + method: 'POST', + data: { + message, + ...( null !== this.threadID ? { 'thread_id': this.threadID } : {}), + ...( null !== this.recordID ? { 'record_id': this.recordID } : {}) + } + }); + + if ( response.error ) { + this.add( 'Sorry, I am not able to process your request at the moment. Please try again.', 'bot' ); + this.setLoading( false ); + return; + } + + if ( response.thread_id !== this.threadID ) { + this.setThreadID( response.thread_id ); + } + + if ( response.record_id !== this.recordID ) { + this.setRecordID( response.record_id ); + } + + this.setRunID( response.query_run ); + + this.add( 'Typing...', 'bot', response.query_run ); + + await this.getResponse( message ); + } catch ( error ) { + this.add( 'Sorry, I am not able to process your request at the moment. Please try again.', 'bot' ); + this.setLoading( false ); + } + } + + addAudioPlayback( audioElement ) { + audioElement.play(); + } + + addMessage( time, message, sender, id, sound = true ) { + const chatMessageBox = document.getElementById( 'hyve-message-box' ); + + const datetime = new Date( time ); + + const date = `${ String( datetime.getDate() ).padStart( 2, 0 ) }/${ String( datetime.getMonth() + 1 ).padStart( 2, 0 ) }/${ datetime.getFullYear() } ${ String( datetime.getHours() ).padStart( 2, 0 ) }:${ String( datetime.getMinutes() ).padStart( 2, 0 ) } ${ 12 <= datetime.getHours() ? 'PM' : 'AM' }`; + + const messageDiv = this.createElement( 'div', { + className: `hyve-${sender}-message`, + innerHTML: `

${message}

` + }); + + if ( 'bot' === sender && window.hyve.colors?.assistant_background ) { + messageDiv.classList.add( 'is-dark' ); + } + + if ( 'user' === sender && window.hyve.colors?.user_background ) { + messageDiv.classList.add( 'is-dark' ); + } + + if ( 'user' === sender && ! window.hyve.colors?.user_background && undefined !== window.hyve.colors?.user_background ) { + messageDiv.classList.add( 'is-light' ); + } + + if ( null !== id ) { + messageDiv.id = `hyve-message-${id}`; + } + + chatMessageBox.appendChild( messageDiv ); + chatMessageBox.scrollTop = chatMessageBox.scrollHeight; + + if ( ! sound ) { + return; + } + + this.addAudioPlayback( pingAudio ); + } + + removeMessage( id ) { + const message = document.getElementById( `hyve-message-${id}` ); + if ( message ) { + message.remove(); + } + } + + toggleChatWindow( isOpen ) { + const elements = [ 'hyve-open', 'hyve-close', 'hyve-window' ].map( id => document.getElementById( id ) ); + + if ( isOpen ) { + elements[0].style.display = 'none'; + elements[1].style.display = 'block'; + elements[2].style.display = 'block'; + + const chatMessageBox = document.getElementById( 'hyve-message-box' ); + chatMessageBox.scrollTop = chatMessageBox.scrollHeight; + } else { + elements[0].style.display = 'block'; + elements[1].style.display = 'none'; + elements[2].style.display = 'none'; + } + + this.addAudioPlayback( clickAudio ); + + if ( window.hyve.welcome && '' !== window.hyve.welcome && this.isInitialToggle ) { + this.isInitialToggle = false; + const welcomeMessage = window.hyve.welcome; + + setTimeout( () => { + this.add( welcomeMessage, 'bot' ); + this.addSuggestions(); + }, 1000 ); + } + } + + addSuggestions() { + const questions = window.hyve?.predefinedQuestions; + + if ( ! Array.isArray( questions ) ) { + return; + } + + const filteredQuestions = questions.filter( question => '' !== question.trim() ); + + if ( 0 === filteredQuestions.length ) { + return; + } + + const chatMessageBox = document.getElementById( 'hyve-message-box' ); + + let suggestions = [ + 'Not sure where to start?' + ]; + + filteredQuestions.forEach( question => { + suggestions.push( `` ); + }); + + const messageDiv = this.createElement( 'div', { + className: 'hyve-suggestions', + innerHTML: suggestions.join( '' ) + }); + + + if ( window.hyve.colors?.user_background ) { + messageDiv.classList.add( 'is-dark' ); + } + + if ( ! window.hyve.colors?.user_background && undefined !== window.hyve.colors?.user_background ) { + messageDiv.classList.add( 'is-light' ); + } + + const suggestionButtons = messageDiv.querySelectorAll( 'button' ); + + suggestionButtons.forEach( button => { + button.addEventListener( 'click', () => { + this.add( button.textContent, 'user' ); + }); + }); + + chatMessageBox.appendChild( messageDiv ); + + this.hasSuggestions = true; + } + + removeSuggestions() { + const suggestions = document.querySelector( '.hyve-suggestions' ); + + if ( suggestions ) { + suggestions.remove(); + this.hasSuggestions = false; + } + } + + setupListeners() { + const chatOpen = document.getElementById( 'hyve-open' ); + const chatClose = document.getElementById( 'hyve-close' ); + const chatInputText = document.getElementById( 'hyve-text-input' ); + const chatSendButton = document.getElementById( 'hyve-send-button' ); + + if ( ! chatInputText || ! chatSendButton ) { + return; + } + + if ( chatOpen && chatClose ) { + chatOpen.addEventListener( 'click', () => this.toggleChatWindow( true ) ); + chatClose.addEventListener( 'click', () => this.toggleChatWindow( false ) ); + } + + chatInputText.addEventListener( 'keydown', ( event ) => { + if ( 13 === event.keyCode ) { + if ( '' !== chatInputText.value.trim() ) { + this.add( chatInputText.value, 'user' ); + chatInputText.value = ''; + } + } + }); + + chatSendButton.addEventListener( 'click', () => { + if ( '' !== chatInputText.value.trim() ) { + this.add( chatInputText.value, 'user' ); + chatInputText.value = ''; + } + }); + } + + createElement( tag, props, ...children ) { + const element = document.createElement( tag ); + Object.assign( element, props ); + children.forEach( child => { + if ( 'string' === typeof child ) { + element.appendChild( document.createTextNode( child ) ); + } else { + element.appendChild( child ); + } + }); + return element; + } + + renderUI() { + const chatOpenButton = this.createElement( 'button', { + className: 'collapsible open', + innerText: '💬' + }); + + const chatOpen = this.createElement( 'div', { className: 'hyve-bar-open', id: 'hyve-open' }, chatOpenButton ); + + const chatCloseButton = this.createElement( 'button', { + className: 'collapsible close', + innerHTML: '' + }); + + const chatClose = this.createElement( 'div', { className: 'hyve-bar-close', id: 'hyve-close' }, chatCloseButton ); + + if ( window.hyve.colors?.icon_background ) { + chatClose.classList.add( 'is-dark' ); + } + + if ( ! window.hyve.colors?.icon_background && undefined !== window.hyve.colors?.icon_background ) { + chatClose.classList.add( 'is-light' ); + } + + const chatWindow = this.createElement( 'div', { className: 'hyve-window', id: 'hyve-window' }); + + if ( window.hyve.colors?.chat_background ) { + chatWindow.classList.add( 'is-dark' ); + } + + const chatMessageBox = this.createElement( 'div', { className: 'hyve-message-box', id: 'hyve-message-box' }); + + const chatInputBox = this.createElement( 'div', { className: 'hyve-input-box' }); + const chatCreditsAnchor = this.createElement( 'a', { + href: 'https://themeisle.com/plugins/hyve/', + target: '_blank' + }, 'Powered by Hyve' ); + const chatCredits = this.createElement( 'div', { className: 'hyve-credits' }); + const chatWrite = this.createElement( 'div', { className: 'hyve-write' }); + + const chatInputText = this.createElement( 'input', { + className: 'hyve-input-text', + type: 'text', + id: 'hyve-text-input', + placeholder: 'Write a reply...' + }); + + const chatSendButton = this.createElement( + 'div', + { + className: 'hyve-send-button', + id: 'hyve-send-button' + }, + this.createElement( 'button', { className: 'hyve-send-message', innerHTML: '' }) + ); + + chatWindow.appendChild( chatMessageBox ); + chatWindow.appendChild( chatCredits ); + chatCredits.appendChild( chatCreditsAnchor ); + chatWrite.appendChild( chatInputText ); + chatInputBox.appendChild( chatWrite ); + chatInputBox.appendChild( chatSendButton ); + chatWindow.appendChild( chatInputBox ); + + const chatExists = document.querySelectorAll( '#hyve-chat' ); + + if ( true === Boolean( window?.hyve?.isEnabled ) || 0 < chatExists.length ) { + chatExists.forEach( element => { + element.remove(); + }); + + document.body.appendChild( chatWindow ); + document.body.appendChild( chatOpen ); + document.body.appendChild( chatClose ); + + return; + } + + const inlineChat = document.querySelector( '#hyve-inline-chat' ); + + if ( inlineChat ) { + inlineChat.appendChild( chatWindow ); + } + } +}; + +export default App; diff --git a/src/frontend/index.js b/src/frontend/index.js new file mode 100644 index 0000000..76f7c62 --- /dev/null +++ b/src/frontend/index.js @@ -0,0 +1,14 @@ +/** + * WordPress dependencies. + */ +import domReady from '@wordpress/dom-ready'; + +/** + * Internal dependencies. + */ +import './style.scss'; +import App from './App'; + +domReady( () => { + new App(); +}); diff --git a/src/frontend/style.scss b/src/frontend/style.scss new file mode 100644 index 0000000..4b5c34d --- /dev/null +++ b/src/frontend/style.scss @@ -0,0 +1,364 @@ +.hyve-bar-open, +.hyve-bar-close { + text-align: center; + position: fixed; + bottom: 40px; + right: 50px; + z-index: 9999999; + + &.is-dark { + .close { + svg { + fill: #fff; + } + } + } + + &.is-light { + .close { + svg { + fill: #000; + } + } + } + + .open, + .close { + background-color: var( --icon_background, #1155cc ); + font-size: 24px; + width: 70px; + cursor: pointer; + height: 70px; + padding: 15px; + border-radius: 50%; + border-style: none; + vertical-align: middle; + box-shadow: rgb(0 0 0 / 10%) 0px 1px 6px, rgb(0 0 0 / 20%) 0px 2px 24px; + } + + .close { + display: flex; + justify-content: center; + align-items: center; + + svg { + fill: #fff; + } + } +} + +.hyve-bar-close { + display: none; +} + +#hyve-inline-chat { + .hyve-window { + display: block; + position: relative; + bottom: 0; + right: 0; + box-shadow: none; + border: 1px solid lightgray; + width: auto; + z-index: 0; + } +} + +.hyve-window { + display: none; + box-sizing: border-box; + width: 350px; + height: 480px; + border-radius: 10px; + background-color: var( --chat_background, #ffffff ); + padding: 16px; + z-index: 9999999; + position: fixed; + bottom: 120px; + right: 54px; + box-shadow: rgb(0 0 0 / 10%) 0px 1px 6px, rgb(0 0 0 / 20%) 0px 2px 24px; + + &.is-dark { + .hyve-credits { + color: #e5e5e5; + + a { + color: #e5e5e5; + } + } + + .hyve-message-box { + .hyve-bot-message, + .hyve-user-message { + time { + color: #e5e5e5; + } + } + } + + .hyve-input-box { + .hyve-write { + input[type="text"] { + color: #ffffff; + + &::placeholder { + color: #e5e5e5; + } + } + } + + .hyve-send-button { + button { + &:hover, + &:focus { + svg { + fill: #e5e5e5; + } + } + + &:disabled { + fill: #ffffff; + } + + svg { + fill: #ffffff; + } + } + } + } + + .hyve-message-box { + .hyve-suggestions { + span { + color: #ffffff; + } + } + } + } + + &.is-light { + .hyve-message-box { + .hyve-suggestions { + span { + color: #202020; + } + } + } + } + + .hyve-credits { + text-align: center; + font-size: 10px; + color: #202020; + line-height: 1; + + a { + text-decoration: none; + color: #202020; + } + } + + .hyve-input-box { + display: flex; + justify-content: space-between; + gap: 1rem; + position: absolute; + font-size: 12px; + bottom: 0; + left: 0; + right: 0; + padding: 18px 30px; + border-top: 1px solid lightgray; + + .hyve-write { + float: left; + flex-grow: 100; + + input[type="text"] { + background-color: var( --chat_background, #ffffff ); + color: #202020; + border: none; + outline: none; + box-shadow: none; + font-size: 14px; + padding: 0; + height: 24px; + color: #202020; + + &::placeholder { + color: #808080; + } + } + } + + .hyve-send-button { + float: right; + border: none; + outline: none; + + button { + border: none; + background-color: transparent; + cursor: pointer; + outline: none; + padding: 0; + + &:hover, + &:focus { + svg { + fill: #5B5B66; + } + } + + &:disabled { + fill: #808080; + cursor: default; + } + + svg { + fill: #808080; + width: 24px; + height: 24px; + } + } + } + } +} + +.hyve-message-box { + height: 380px; + width: 100%; + padding-right: 5px; + overflow: auto; + display: flex; + flex-direction: column; + position: relative; + + .hyve-user-message, + .hyve-bot-message { + display: flex; + flex-direction: column; + + p { + font-size: 13px; + display: flex; + padding: 10px; + border-radius: 5px; + width: 100%; + overflow-wrap: break-word; + margin: 0; + } + + time { + font-size: 10px; + padding: 4px; + color: #000; + } + } + + .hyve-user-message { + margin-left: auto; + max-width: 75%; + min-width: 50%; + word-break: break-word; + margin-top: 14px; + margin-bottom: 14px; + color: white; + align-items: flex-end; + + &.is-dark { + color: #ffffff; + } + + &.is-light { + color: #000000; + } + + p { + background-color: var( --user_background, #1155cc ); + justify-content: flex-end; + } + } + + .hyve-bot-message { + margin-right: auto; + color: #000; + max-width: 75%; + min-width: 50%; + word-break: break-word; + margin-top: 14px; + margin-bottom: 14px; + border-radius: 5px; + align-items: flex-start; + + &.is-dark { + color: #ffffff; + } + + p { + background-color: var( --assistant_background, #ecf1fb ); + justify-content: flex-start; + } + } + + .hyve-suggestions { + display: flex; + flex-wrap: wrap; + justify-content: right; + position: absolute; + bottom: 0; + right: 0; + padding: 20px 0; + gap: 4px; + + &.is-dark { + button { + background-color: var( --user_background, #1155cc); + color: #ffffff; + } + } + + &.is-light { + button { + background-color: var( --user_background, #1155cc); + color: #202020; + } + } + + span { + font-size: 12px; + font-weight: 500; + flex: 0 0 100%; + text-align: right; + color: #202020; + } + + button { + background: #ecf1fb99; + box-shadow: none; + border: 0.5px solid rgb(145, 145, 145); + padding: 6px 8px; + border-radius: 8px; + cursor: pointer; + } + } +} + +@media screen and (max-width: 396px) { + .hyve-bar-open, + .hyve-bar-close { + bottom: 20px; + right: 21px; + + &.hyve-bar-close { + bottom: 21px; + right: 25px; + } + } + + .hyve-window { + right: 14px; + bottom: 87px; + width: 80% + } +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..31e3c78 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,6 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ './src/style.scss', './src/*.js', './src/**/*.js' ], + theme: {}, + plugins: [] +}; diff --git a/tests/php/static-analysis-stubs/hyve-lite.php b/tests/php/static-analysis-stubs/hyve-lite.php new file mode 100644 index 0000000..c306f87 --- /dev/null +++ b/tests/php/static-analysis-stubs/hyve-lite.php @@ -0,0 +1,11 @@ + Date: Sat, 13 Jul 2024 04:19:48 +0530 Subject: [PATCH 02/11] Finish moving JS code --- assets/images/threads.png | Bin 0 -> 253522 bytes inc/API.php | 6 +- inc/Main.php | 41 ++++- src/backend/App.js | 20 ++- src/backend/index.js | 7 + src/backend/parts/Messages.js | 63 ++++++-- src/backend/parts/Sidebar.js | 37 ++++- src/backend/parts/UpsellContainer.js | 42 +++++ src/backend/parts/data/Custom.js | 177 +++++++-------------- src/backend/parts/data/FAQ.js | 190 +++++++---------------- src/backend/parts/settings/Advanced.js | 132 +--------------- src/backend/parts/settings/Appearance.js | 87 +++-------- src/backend/parts/settings/General.js | 63 +++++--- src/backend/route.js | 27 +--- src/backend/utils.js | 13 ++ src/block/block.json | 2 +- src/frontend/App.js | 7 - 17 files changed, 380 insertions(+), 534 deletions(-) create mode 100644 assets/images/threads.png create mode 100644 src/backend/parts/UpsellContainer.js diff --git a/assets/images/threads.png b/assets/images/threads.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9cf240d1c323a2a26bf36606a2618335eaa085 GIT binary patch literal 253522 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%0DI-Mqk4h7u2n~|ao4fPh)K5j1EkL8 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 ) } diff --git a/src/backend/parts/Sidebar.js b/src/backend/parts/Sidebar.js index 1f6b3e4..0b2c49e 100644 --- a/src/backend/parts/Sidebar.js +++ b/src/backend/parts/Sidebar.js @@ -19,12 +19,15 @@ import { Panel } from '@wordpress/components'; +import { applyFilters } from '@wordpress/hooks'; + import { chevronDown } from '@wordpress/icons'; /** * Internal dependencies. */ -import { ROUTE as MENU_ITEMS } from '../route'; +import { ROUTE_TREE } from '../route'; +import { setUtm } from '../utils'; const Sidebar = () => { const route = useSelect( ( select ) => select( 'hyve' ).getRoute() ); @@ -32,6 +35,8 @@ const Sidebar = () => { const { setRoute } = useDispatch( 'hyve' ); + const MENU_ITEMS = applyFilters( 'hyve.route', ROUTE_TREE ); + return (
{ onClick={ () => setRoute( childKey ) } disabled={ ( ! hasAPI && false !== MENU_ITEMS[key].children[childKey]?.disabled ) } className={ classnames( - 'flex items-center w-full h-12 p-2 text-base font-normal text-gray-900 hover:text-gray-900 transition duration-75 rounded-lg group hover:bg-gray-100 pl-11', + 'flex items-center justify-between w-full h-12 p-2 text-base font-normal text-gray-900 hover:text-gray-900 transition duration-75 rounded-lg group hover:bg-gray-100 pl-11', { 'bg-gray-100 hover:text-gray-900': route === childKey } ) } > { MENU_ITEMS[key].children[childKey].label } + + { MENU_ITEMS[key].children[childKey].isPro && ( +
{ __( 'Pro', 'hyve' ) }
+ )} ) )} @@ -90,6 +99,30 @@ const Sidebar = () => {
+ + { ( hasAPI && ! window?.hyve?.license ) && ( + <> +
+ + +
+
+

{ __( 'Upgrade to Premium', 'hyve' ) }

+

{ __( 'Unlock powerful features and enhance your chatbot experience.', 'hyve' ) }

+
+ + +
+
+ + ) }

P7W_SBWbei*G84%+r!R;+)re- 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 z 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%0A{%g*w*&)_KhPZ9O(Te?=IP z&yp;1#33x?m{bHOJE%7{(=j-205gBDGNUYky~T?)rd^u!{&HCNkbR>j^C6;;DY?RF zEAhfrss}R-gGn|Y=egjIk4?ogh?j{NvfuMTj7psu9R0K-&Pff>CLVMNwMcy>cf{U3 zP!+Hmu~T`wJ&F{qdE&&@pQEvJr$V8n+c8*1!@@erNde@e2*Bc64BqQbuD7zdB~5ZR zS%eEY9w-E43uSR;|3#Q4_N&9{FI)f_$QL?KOLsVvpH?107{P@%6s zwzG`5pRIW@4>i@6FnQw+6pJN?KYK9j>q|L(GE$+GuSas=`g4vx=A(=7&n)@p+$C1% z03EAegJoz!)ksm&h$Kdda4N3K%UQ2!E=P<~ywq|eyu3eplVu<#g<`Wgj$gjCnF3EL z3ds!j;px81I;CYI26xLMMN_QAacInQOs{PHm};&j8=q{H0Zs~fMmcL@rRdH@ZBt(h zEz1}q-hmbJ0=95+)h72WNojgZ{+TJqw8bsxL6FozAePSai}e*s4lNzLua2_MTn&*} zSw&aEOTN7&X(=Tm;LwG`)TWFx7kf>~54MAf>pS$J@je{F&pMltUo9Ao>Yv1ZU_6hl z4}$LQWxff`HvBP@a|;&(Gfpy$zzxiKXx+aFU@%G#vc|@j7esjyVx3Jy)dociIto!& z^1BORd9h~$CeZ%vH*cp}^9&mv);+J3enqumdcE4{^^mbZ=hdC7Gbp8i@C}L4o8KIl zUO`e6JsC`Oi}W=&ke9V$F-^5457FGp(8!Bx(t4ljaz=t@BlCWt98WgIK@G`cT*~?5 zO1n|4EDKI{uWRg5Ti~05((ZEy_D!a~RfZOW3`WY9oB>>4_|eo#Bnt_nf*fjNLO&B9 zwEl8I3E5}&rbxeXbgp81r(F=cH5M*sAGL%$%kfXX( z%1i&|DI+nEzLSk9g|>L!D1{y#%v}QeU3+>ior+pz9^&Dh`$p-;A~*18-!PUtIa2W` zA}PwxZ6${Fdqp^REM8WD$?==DYzj^{vYfI2%=K%!1e6kXS3M zcD{(A<6{nByw<{dGZhy8ecX_8>cJga7) z*xvreAKPzTq9F9(@z0P-CW%^epDf*BQ7Y^RlNNQ6X!-kVHzI!ec!1wyf3#!L0 z$@DUIMq77DDYWDzoec7IeY#@TkU2;SuC2Si*2s`b){XOoc;PB=0FyHG)4P+2gvBMOv@(3K|8IPO0&-PS+)^pVaLMT?wo|+=`>F;0RGahJ zZtz56wEplwt1MD4Gtq=?BL zA3qrRnKvYfbfL!~PUGuNd=KZU;ILFaB~qHl4%MFH7ZW!JD@y{hwpM2C@TY35x9)CQ z)ESS-Y)>ai;}z9LUzJiZ>R2RrxbvdiQ7^&VY}}FQJ^AN-N4>$8FW*ON`j42oPCnkr zs_n83W_}B`iu8gewc9!;cL0PtljRQjm?Nc*J0(4p&W5~V9v|RLPP35>c{kD>uJDdM zxkQzs6u|HHxfUXL{anY@jn@FRB{g7Y=Vs*vpR#iWTEcvb@&qZQ{L6t)`ECYmSLkrw zv90k>LN#}dzpHyQYC$|iqrNhbpYhVKxQ=y3`0^KFoVRtBu|Wvm!E%vyxybI5mROhZ zx8$Z5_kUqMvHIaYusu)>PV|Y$sv<}NV|4!O{dX_!;j@w#O!nsgsI`jd)wcICV!=bBz`-)&CUb(kqA^uX=z@c~kdl<9g%XO1}n2 zG{&_2K$Yj|@wz|j#P$an*XV$;!q`K$M&*b%`afuRW|EmJ&SgMVQ{P&|{$7){KdpHt^uidD6R0By$fE<~vQM%W_P~3m;0IBc+o{5ls2zc;WapS^*n(x@z=Z!$F5Pb~AFXg^h{ufyV-$w|ImS*|UHu z!F;LbCrn3Q?6NGK_HQvvz_lLO%`|_HLPPQQ4`@2$lo;PlK?yoLu5L$E9-4%#-D7dU zttgk{4rV>e1J+JaHTioT~dbO@2DaI4R?KT?YvXNuMA34|C@|*OuYXA_9R{ z)=rV*uT^mx=bk0rq?IoTjAei6q*5xY5zRdRQ-5@rFgn#!i2qezD?^J%XM=;pKKI@l z<8;cpgO=c0M_Zr9mXh+Sl#f8Ck`~D2x*|Qbslm~W!w`*FSjt#_OlJTl*67%4P;|gE zQ}{&@D(cp4zst66izytwl7nQcTo0W?iB{+`$szKei;DegqF2WljN}p73O0V@-SQXT zUAoH})D*LlrP$WzVn&M!A0)pSybUC4 zi*NO+(s5E<%3=H`*8DXSeM@Hda9l9FxEW8;;7D3lHn;2Jtyzs{$4Mw3p03~t;YdvD ze)B6m)}Ud8rOUKXYH=`<$+u4T{?47!a~xW=I|>q+-8JYhu#<07%ihGbqZTcpw+}mN zNVWkKepkQ>+NoBr=V<1<0|VR@!R5Op##!exZg5P5P7TUg^b**|x=pJ`1ZKwftoWy| z!H1ddVE4eOsnnr3&lhB<{lQw(H(bqKJrNrC6Tj=D6b10U-)daxI4gr{A`O1y=@{(B z-Iogq$DS*c+b;CXq&b`*=!if0YIL>9I+Ms{TkT|Fn>vQDRDYb7l&X5He^EZs@vg01 zBaFAk!sT z#7FQ;tI}Xs_h%!MiGhp#uI*j)!;GT~H{Oh8=tS^dXt>dsR{yv^GyH3>3^T@%92_QK zRBx~IY(QM@u8*t6(Fw%g8_#vF?8GfVukW5J6&LHw99_G*DJ<8jUDBFJ#oF#Rdm_E! z>@{xd2nyP_H%t|>t<9P?E^p>+WhJ=hLqFQQ z5?%v|M^)|YmUy;f+vt#E!3B5YXrXLb(CPBb@r0uZJ~qnh5n496O@zrqMHb!T2S+fQ zZ@>0;x-2pMMXt;>-*ZLM2a_*5#7GM?KS7O+!VZV9HE(a_Q^GCk{A>^tVm4{|?AE2* zjDf@DP6X(e?ZgL^kH;d7Df#70xaE#o1mOZ2*XZ3_D#l&vnkE7iWH2*|?8W*}W9ut? z#t%=N^S3*TVow|%^sWh0V5CC#)7e_xh^Q*h$OX8?$au%dQk)IlXHjJcJA+5W@>G_I zm`V-oYk4VONuCY2O$`Vrgx+6GQq9Z#{3?n0OYjDo#-?K)-SN2Y;LvgY!$o%MTSwmz z1gmq;#Hvlfk6K9$QO*9Q9jD z=@uV!Ne$>o&$yeMU9GnjBe`29R=XBk!BK}0irCXvsR#wIx#ndUvPKc?EosRT(Wk~r z=h3gLtOu3S+csox)uePE6ibSQhgvNvgs; z0JaZ9c1W*`cgVSRTmLRN$GbS2BVfAR8<}V$>gYW1wV0OD*CRt9%m=ED_yqQonZ#de z#3Tn+`)gW#swAoy`IHDw2rQJkeviUcVdLJ_)Z8q}#v;?IKB4i#RH-Zu!X1AN_Gn%C zg|$7Ia^dw!xLai(B7WpmCBIYgdGv8AwM&2ydJt?t(J4aQozH6Hdv}puE};6v^~WB? z4HqDR(@eqZOd%|I_-MIzcg~;1r;t4pB6<170LyVs+IxCvK#@^q_UOYOZ>h^(juk7H z^Sd7H>0!|1@WSE~y^-8As=P+_N%z^-g+V<@WlIx}MqC#)I;hUUAhr3q)v+o{of-a! zcv_IrQq1;pBRP{#CasT$%H*!vt(u7^@UI2~FA83^XD#mQs`WR%Uwc_8KS5qqwC){N zRklE#D6M)QNv>c|x3-fm#XMc^!!wO7;d<$S=9DM7+(^i)kr{ZiEX29TYZJ}b`7Qxc z);)M>O?)JNC+XM0?AF09m22HW^?fl$tU9}i*O(Wni48l#L>M>Pa7SyQ!;F?Sn@K&e zxtlT6irx8!2IaQO+#UQ^CQn)FzqX{+D6>R>nM%PPEq4aT6qXo#65$8~M*G3IA(FdL zyq$CJMyAlBm?t3TT^(!N6TdDO;}KZ@8AC8XMW{TwDYO^k*OQ%fG!FXGE&Lvpkqtj~f1>rOy^LJ$o{?z*=#TT+Xd) z@O9nz(*s_Zmh(8XH4~kLbQXpS^=q?mqMXOQbVxUBpBjGjsKRBa2Qj8`&P9;M)KFmQ z%4Y)NY0p%}@($a;<3zE?$jP;=vfw7#l%HhoM*flG-;CIu%a((_X<)kmazkP=A;Lvw z&vDaH>DZo=*%3fwOcZrxCyTtQ)_lVv-Mf|6`OWM)eU|;@!Q(xo-MuWKC4FPK*gm|9qB+hfT0cnzOJJ zGj}i*#-_U}MYA|7W&&(rhaEqEOMsq>vbQEc2RR49QA_91e#x?~)VXHfGb|qW_tY|1 zZ38yy?LAsgIN*=MeBf4wpQ3Wgk>6j(rM^}V5E8+x1wU*ct2;+7jvF-uF-7CTu+8&y^X$*vYVp&?|Q58vD8(heLmJDh3uYSc9(QOrJJq%2?$KIE> zdd)4Kl5Mb$&SOp;&-_XD5n<;i9-g0cufxVVc&yZzxb`=69&J-@rCC&t_FaRqlTLd^ zHcXVV&8ZnzOms+(&!qWuy7c8&1kWZ0ZZ4_ZmvjB}(66l$`9Z-LW!>>E*Pa?10zI)# zQsnTj|0p_qp=xKoPe5~c8{TFbV4wC4p59(+Ts>>j&rxE(P>Bq1?#{a`a3Vf?TL&(8 zZp+IG&%w~DuWhhj%hPgNJ=6zlBD22u!#Pc8X|Qxp&n7K!PZVsr6k-1P!DR*N$o8dbE1UAUgsF$xx?1TjvBMI-5-5{^b zE*&qjS*q{BQq;QhkgSJhm&Z>fL5UE(-o?3N6ex2PvFjB%@yxJV?#LC6wE;NMu3X!g zz{j6&_Jj~JUQWa}wm?KU^)S|ixH?hD`1WmOxza8|@z-p>{D_tqRUzN=(yt`#7LJJu z>@jB>ToBs``xXLff*gRs&?YBOQDC701|#F@dGU}_?`0RK9TR$jAt?^xDQ=-=awg{V z(wnUP=>513hTUzQnB=XW(!5KAnz3{X{*5n3&20+aB6xH&u))@AM+=ZVwKY zHBmK^@=o#(fdGx))AvE1roX6JT$cQb;|Rh>sXBBnAU9}>zr$zp!v81>y} zUzyn>V9BPvSgy8ReyyTI#5&ayzO7YYR>_z0ZKjnp#sop+B!!mp3Kt z{k=>-rNG6{3A6Zv+{w%>Sg$_%KJP|{AH*Jjh(hg|tqMa8xoR1&`s&CQyuxNX?tLw* z6x%91flgm^*I?8^U=Lfi>vr$fwAnlLZ%J77bXm)LM9HB#iuj@Ax43BMl7b+Mqq@l( z6CLwUhX@mb=2fpPX{4;UFxZK%F-k4h=c2qNr>H#4td8hhD|~y#BgNOBFQoC?rh3(4 z6Gi+6UlbL0LGIVjhR3_Llqrk{)7IFp^|mAuGBFs;Gqg1eC5A}EBDl2^Im#8|&b~aO zyK?-!mu>Y~SaRovf-_vPbGRc&SQvmed2qucjaE?-&dpNW6(RRsS?p!buhFCnSYTo6 z&fS$x2i!VP{gLt( z*1IFJUD~O_h*Aegm%Bj8G53HXJ#qEn40pn(62h{Fc!`l{6#T^H*toQL;8mfyc`$Y- z%xvQ%#+dQ|(QwZUaLBa`Iklwy(hxn;_I@ysJ8ocL3g=hMZAGUBXRbiW_X;D>M0X)#tgLVePSB-C2hxZ}*rE z%#;X-rfcwdBP`S~TQRmlVBxG+NXF%@`8Dn9K*=fz^h|Kz0u{xlEU7K$&f>RIvPAG{ zMRcFOwN((P*|_=oi57xUp~>J-x-;}cDj z+TN_9#JRI(;ISuj`%HLEfGmilWmn2ITs%be5{OOEh3zjHl}QHXzHLL~$iNu=`E9{& z6+;8VWM+rB@7P_LHzh&`{I%O9t@vdx7fQ0!RylgX>Ssv?HyKXa(!YX+UOU!Snc(+b zVu{dFjzZzw2*9aFpiv6)i)ISHUFzRVxd$$VGU&UIgcJg=(KbFVj`jDwZ~Vaz6ESC{ ze)H~>fw#b=X*$>SDD>ar?kR&t8HMZrg!&N#MAHhA zcb@#_)^Ap%vw%ya?uJ!d_$AyxO!PE0!EDB*1=hh29x~^*|K^zN|Bu*9q(A`=XoAe6 zDCm3tVe(o05_WBN_fO~PVF}QFHzqK3w86OGF&es%{+2Hvf(DAllcRBn&06&|h5H3VG!y=<*S{qf_fOjb z&(lF)Sa>++cEIzq9*^)zv;j-c5XPIFveYHy3jvxgO6KHMVI-ujeSgT-9CGFiL$QjY zobGgxK$ZVrlPUc+z9BK>>P)K{i}omJI-d9E&MAGl4?}LBM^{@9Mnb9_phjKiVbn+X zkNy67@Jz@nirh=1AIiPD90r~h5t;sc33vd))9)-EuYYr;iJfAI1rgPNjFmO#nKdXf zvK>w?O#-p$=t!cEZso4Z8?2g zymhKs=72yYa5gUdHHLq2R~H5p(43#gpNYe53SQpuvg)s&PbCoOQZC#SXl(j^`usBp zP(??UisYvw_qTTaM+yF>4G++E?W&c_rT@@Ygrm*j>*CEnv;nbAaBaNwzi7(_v{^fN z@Sd`OTMp26`ArqbzWq(s?@wG{C~}@QWt?7~4FgX}M_vw8{LP5J|J~pK)I6edUZ=)U zlYRqdULJj@Qu&|!1z9Vgf-}E=DmZ-`KCnIHpBnl9(wTJ&Bu>ZlGLCPwb}p3v;hQUtZ#KD$H%{O7 z9efQFbEEoioAEgR&8W}xkJqLOdQ^1X?$)W@_-ABgWkEAfwHf}{h(~}BtqtZ9tMw2{w$D# z8MU1U;C#hh=)hx_J-S*M&oO`%gASkpY(38p$?@AdIt4k-3zA)VYgy zz5&e0nu!)1(4#1-ZZB2Jr2twXAhA}aQ-ws6?*pu(uFM!|2b-=WYmte^3jSsXoYnAh z$6>leyN@>Asm>Y~rS~6}uE1)tpO|?+&aVfkCE*AAGcjENbg8ole(d0d4BT^1%i9#+ z9WrqRF!}ynrjNf95T|J%s{q(iw!>h)ik5`!PX<8%y`uv_!Ag-qnD}7=Y308K4jB43 zKr+LvSQgKp4$3c~NRxd#jzN zXk_C_vU5do+71edH1(eJwEmfe0{xh@soNQPeRwlIsG1LyX7@7q&c<59iWgG->BO9? zm$Fq*O2|R6fm?Ok4?M=5D+z)WZGV2WZ_x{>Kt@aL8VUv-?F(4ca@^6BL@RDhcyz~C zy=VrwP(e7Tvyh^+{33Y_V7B!_{N-6zkJX!26#WGTe3(*+^{+o*LI!Cdn0G*_Wq3HxA?r+~xTmy4S#P*}x-KCa1VEeH<31)fFFNWVSAg*?;KiX6ieE99m z7T{4b5N70)^@*zO3GlMYrJjs1GOX~~O#k8iC5(Zo+jC)BNuMvmTge4hEMiS12ztQkCkkkZ_W ztQngmpVqoFg}(*lowGKw83q7RcelVqY^h(8{g+Pyk_i+*8G^%{6aFZ}E3FAE2=dp| zmmQm`#&9VigJ>SR!1+Ym&il%YdVVN!$&IIC3m-k4zKK0*jJOf^`c`!-jDz{k<8*+9 zr8Qt%U{E9iyrxK!#{R0HS~+c%xcRQ+@#7$X_G|+Lk5{VGOd+E}wLdp+;8m!1yd1h? z#7=nIBAn3%ERRWKZnD9$`n4wE4J#){3o;_Vyt~L#0zFRZg)Gwjwa>s<4)Y6Os`g5? zs%X=ogSoprzh%GgO~B#y(ypz;>npqh+%uWkeZonRJtVG)xfh}xxyLhA=!6ekO4>Mf zyZsc>-Da9AV%U_U%etRA<{dheD94HW#mVz*Vzq;Tj>`r|W@PK+Xxf0{GV}|Xsczj@ z%9N_rd^8DOLn{}c`s4c_!};5A%>pAUy`UgV zcF_8%@ zj8vY-{hAV8k&F@|`I0>Vm)Cjn*k>l2uK-rhVYObhz~uiiDb#r|#h~ACrN&`tKR*cG z-n?iuKoS72Y75&$utX^7(q7ZBv7452WzAiUN;R5vbb3uT?fP};ghSyGmn4Ln?E(8!HH$*cfOi*L19k2%-uZ0rZx#- z%m~w)4l;V@WC{s601DgLz!AglY6{WAm<0CaqZqwLSeJa3F~(%5gyLSBl3p!u3o-lh z^1}jm{^c5^>5W3YMdL0Q^)#5E+=4SA^n>#y#pUbe`A4gz-4z9^dZiGJsY=8nZDPjw zUoV|WCa7ycUAlxroLOSKI=f})K#bOGK_z9`EAxyh4)UWYr}7d=99JbWsHST6ts35m zzwQUvWrd{c+O$kjdF$WP9=dUQ%qLm(ICwJ_Xn0w!ZC8XN4tq$j5~$iZ7U>PU$AA2V z-`$@AlaRdSP7moRgGx96GmZd^wyRpzP4n83p`P7jxOf1-IkOho8z|;B`BZXytW1w* zj#DeuX{EgYUmck4Pd^t#n6O7%-D(DXwtj(TvIWi5Of5X|nJj+To#DzX6);~CzV7|< zez3Ei<}*!PBW{xHU;RERsM@3IwgFGA9(NPpk5BG=)$dg^?J`ZD_b1&@VUIWgR5JB^pp)y;5aty|MzQ#@c zSrku~&D`~Z-8K0*wi0ev50hbXsUkm8xoDCBVDLR^=*;6}^G{&n8$lj&wff&rHhz$c zL?(o-4-0ENw!5Z$V!oXn*8GAREvKA1^RFO-C>;1@cbY@YPhG?}!XW`f)8zu=&_~gg z?#5U1X^Y~=)!yGM-uY&kyxhw3%v&Qlz&vng&|2Qdn^%USyLqR)!6>8jxPba-IR;ra zn%iD>;|vo(YwJUM^6Uz;^84>P(c>3bXQr(;aO-&d3LzYWSEo;+-mU6VniqU4FU~j4 zm#am%XfM$ZRtGO-CA3eJn#8XUe>c$Z6Rju7&@*op)=j@$*t+`$AdMIVD}4W9E~6<)w^#E+p{Wa%CmyhYbt^=i&{L zwth-<=Sl}U(ThLHg+kYdMPfvoxwA6$Mv`u5^ZGlRE*py+=6Nh>oPnml@5Q-an$ice zxv;NfI>MLIWrm?9!$GNF=}yEzqs(}m@7zoRLmxd^KC&qLjX6&}@SmJ(@=Y`9^>YCJ z`gcjpYAM%=pvrtfoIUjkaC2NZ1F1q+{HlX@w0Ncmw=0yAMV#@>#+`HX7qtBuau3); zCb)gQ1!N)&ROk&Xk;whw!J*+7^}Hq(*CWVXLUFmWMQGd z%&=a(gDgSdB!F!5IzQ{>iJC19;Fsm9Yp-(D9-3PF>WV9SjtvU&XS}@V>{391faEc6 zGpkTQ)_BvunRUNNrG|^t9DWw18%O|%<#z{TVulIh_uO0s?c|kQ)xT!9;g^s2ZGq*2 zMd5?wC`H(>YI7t(6iBB-H15F@R?-E=Zxq z$8Yk1%U7T0!Njt&5lpBB`glKk)w; z+8EAv3xxUYw>TvQ6Rag%mAnJJ~t26z$*#= zT7;JPg#eJXIPEaVj@n4OA9>$5{{2dT<@p?GAl$s9OdkgPUPQu5j3`34Ubj0lW0U-(SZJ!6) z2yrBhXakeHBUneA?lwFd#-XkINx3^E)f!Y5X>o(9m%n*MAr0K|jVNNN-T+|;T9H0+z%RFoihvL<7S<-?OCKF@1OlBvgdI#X_2gkoQr ztgW4NrtqY!tki(x90ZLoA+ywI#>0IyShtmE%&a&mtG!W7o)Mvj&2;maBh{ z=cC?@e6L|M@6p@it|VUN+(tal^lmAI6g5~t_4S_?ebX)fSuR$P6zV>B91ZPQ`+5`BEE0<55IjmcKp$qjG2y8RD}1&GFWRbBA#t`TAf`6JOp=dJdQafLK86K3m-XJY zSsf|%Dv|GkkTKJ&o&$8m_vpXU&;FkBO_U)mu_#c{yhQD;AKz)7iX=fhyPSD z^-<#DWba(+24k+(N+v14k&THWgLUcQb}Q)S(D`Iz4U{ovcg>m68Lr!@!kJ=akiw(u zITcXoz&&h0{0;!gBi@_#=I{A91FuNro<34HYyzSLjb8={fLq=VagLGhbdzh|woZ8` zwK=Dwu`?_l3#MG_6L1WG1A%u{N(@7~zX1!hL;}VYFoYi#x;v6x!kgsN`xT>6ut2?7 z=`tzaYOPUS&+Yx${odHbU~sms^gW)<8Rt**kf7KWCfB%hke zwZGG6Y7J}$=mO`@*#FoY(L;(G)cNf=eaW{hJG^sWZQ=0c&pCZ5$49?F06;G3B6qRV zMkdUZuivt4v_SvFaZ_&Y#qtm|dHbDluQW(p)VSq~I1ZLlxC#enV^wzprE~z~e@VA) z$pazkQNo{5e@}Wq;&WWJn~!BX<8Pv=s$`|lqpA6=0P3~~2#7Q7!6_+|7s^V;0Md12 zd+`M($&qbfE=q27c>c>Z!(|EOZvtyG{XN6+k7JKpHu{uZjR0r4RAecEI4$m?wJ}m` zCQ`8T2f2)s=;fW2+8j@T`hOX399`NJAXQ4hA35i@KDT@G!$ptKh`?=FA zis0*(;(uPlLV;UQdK^Vq_ou|m5`2vWSdae_@86Fb0U7V+=HxsLuvzv%n^nx`{Qf6V zEKi^E$x?K0onDm<0g8iW?9HMDK zj#>P_y7$-ZR(c>DE%^BH!l|;Fz;!z4!s7qxKs~PX@!V+}1RP-C9-eDo`2)veng5k>eg+otq)lh!T>nJo zxFtbL04@0!tNu_Zs}DSe()PBtKeypJz25Sa>AxNLg%cRb)2sg{WdA2*ry}})LiR5` z_5XQI7C|!oV^G-dKkDXR8bj8CNcTXZk7P#w>z@qHe{ACKuMM0V!J-wHtd7GW 'hyve_threads', 'post_status' => 'publish', - 'posts_per_page' => 10, + 'posts_per_page' => $pages, 'fields' => 'ids', 'offset' => $request->get_param( 'offset' ), ); @@ -504,7 +506,7 @@ public function get_threads( $request ) { $posts = array( 'posts' => $posts_data, - 'more' => $query->found_posts > 10, + 'more' => $query->found_posts > $pages, ); return rest_ensure_response( $posts ); diff --git a/inc/Main.php b/inc/Main.php index 9b701e7..d6319cc 100644 --- a/inc/Main.php +++ b/inc/Main.php @@ -111,14 +111,14 @@ public function enqueue_options_assets() { ); wp_enqueue_script( - 'hyve-scripts', + 'hyve-lite-scripts', HYVE_LITE_URL . 'build/backend/index.js', $asset_file['dependencies'], $asset_file['version'], true ); - wp_set_script_translations( 'hyve-scripts', 'hyve' ); + wp_set_script_translations( 'hyve-lite-scripts', 'hyve' ); $post_types = get_post_types( array( 'public' => true ), 'objects' ); $post_types_for_js = array(); @@ -133,7 +133,7 @@ public function enqueue_options_assets() { $settings = self::get_settings(); wp_localize_script( - 'hyve-scripts', + 'hyve-lite-scripts', 'hyve', apply_filters( 'hyve_options_data', @@ -142,12 +142,16 @@ public function enqueue_options_assets() { 'postTypes' => $post_types_for_js, 'hasAPIKey' => isset( $settings['api_key'] ) && ! empty( $settings['api_key'] ), 'chunksLimit' => apply_filters( 'hyve_chunks_limit', 500 ), + 'assets' => array( + 'images' => HYVE_LITE_URL . 'assets/images/', + ), 'stats' => array( 'threads' => Threads::get_thread_count(), 'messages' => Threads::get_messages_count(), 'totalChunks' => $this->table->get_count(), ), 'docs' => 'https://docs.themeisle.com/article/2009-hyve-documentation', + 'pro' => 'https://themeisle.com/plugins/hyve/', ) ) ); @@ -217,19 +221,19 @@ public function enqueue_assets() { ); wp_register_script( - 'hyve-scripts', + 'hyve-lite-scripts', HYVE_LITE_URL . 'build/frontend/frontend.js', $asset_file['dependencies'], $asset_file['version'], true ); - wp_set_script_translations( 'hyve-scripts', 'hyve' ); + wp_set_script_translations( 'hyve-lite-scripts', 'hyve' ); $settings = self::get_settings(); wp_localize_script( - 'hyve-scripts', + 'hyve-lite-scripts', 'hyve', apply_filters( 'hyve_frontend_data', @@ -250,7 +254,30 @@ public function enqueue_assets() { } wp_enqueue_style( 'hyve-styles' ); - wp_enqueue_script( 'hyve-scripts' ); + wp_enqueue_script( 'hyve-lite-scripts' ); + + $has_pro = apply_filters( 'product_hyve_license_status', false ); + + if ( $has_pro ) { + return; + } + + add_action( + 'wp_footer', + function () { + ?> + + { } }, []); + const ROUTE_TREE = applyFilters( 'hyve.route', ROUTE ); + + const ROUTE_COMPONENTS = Object.keys( ROUTE_TREE ).reduce( ( acc, key ) => { + if ( ROUTE_TREE[key].component ) { + acc[key] = ROUTE_TREE[key].component; + } + + if ( ROUTE_TREE[key].children ) { + Object.keys( ROUTE_TREE[key].children ).forEach( ( childKey ) => { + acc[childKey] = ROUTE_TREE[key].children[childKey].component; + }); + } + + return acc; + }, {}); + const Page = ROUTE_COMPONENTS[route] || null; return ( diff --git a/src/backend/index.js b/src/backend/index.js index bb7fca7..27c12f4 100644 --- a/src/backend/index.js +++ b/src/backend/index.js @@ -11,6 +11,13 @@ import { createRoot } from '@wordpress/element'; import './style.scss'; import './store'; import App from './App'; +import PostsTable from './parts/PostsTable'; +import PostModal from './parts/PostModal'; + +window.hyveComponents = {}; + +window.hyveComponents.PostsTable = PostsTable; +window.hyveComponents.PostModal = PostModal; domReady( () => { const root = createRoot( document.getElementById( 'hyve-options' ) ); diff --git a/src/backend/parts/Messages.js b/src/backend/parts/Messages.js index 423a9ee..15f741e 100644 --- a/src/backend/parts/Messages.js +++ b/src/backend/parts/Messages.js @@ -12,6 +12,7 @@ import apiFetch from '@wordpress/api-fetch'; import { Button, + Modal, Panel, PanelRow, Spinner @@ -22,12 +23,31 @@ import { useState } from '@wordpress/element'; +import { applyFilters } from '@wordpress/hooks'; + import { addQueryArgs } from '@wordpress/url'; +/** + * Internal dependencies. + */ +import UpsellContainer from './UpsellContainer'; + +const LoadMore = ({ onClick }) => ( + +); + const Messages = () => { const [ posts, setPosts ] = useState([]); const [ selectedPost, setSelectedPost ] = useState( null ); const [ hasMore, setHasMore ] = useState( false ); + const [ isUpsellOpen, setUpsellOpen ] = useState( false ); const [ isLoading, setLoading ] = useState( true ); const fetchPosts = async() => { @@ -50,6 +70,24 @@ const Messages = () => { return (

); }; diff --git a/src/backend/parts/UpsellContainer.js b/src/backend/parts/UpsellContainer.js new file mode 100644 index 0000000..71a6f8f --- /dev/null +++ b/src/backend/parts/UpsellContainer.js @@ -0,0 +1,42 @@ +/** + * WordPress dependencies. + */ +import { __ } from '@wordpress/i18n'; + +import { Button } from '@wordpress/components'; + +/** + * Internal dependencies. + */ +import { setUtm } from '../utils'; + +const UpsellContainer = ({ + title, + description, + campaign, + children +}) => { + return ( +
+ { children } + +
+
+
{ title }
+

{ description }

+ + +
+
+
+ ); +}; + +export default UpsellContainer; diff --git a/src/backend/parts/data/Custom.js b/src/backend/parts/data/Custom.js index 00ef89b..c0cd6fd 100644 --- a/src/backend/parts/data/Custom.js +++ b/src/backend/parts/data/Custom.js @@ -8,143 +8,74 @@ import hash from 'object-hash'; */ import { __ } from '@wordpress/i18n'; -import apiFetch from '@wordpress/api-fetch'; - import { Button, - Notice, Panel, PanelRow, SearchControl } from '@wordpress/components'; -import { - useDispatch, - useSelect -} from '@wordpress/data'; - -import { - useEffect, - useState -} from '@wordpress/element'; - -import { addQueryArgs } from '@wordpress/url'; - /** * Internal dependencies. */ -import PostModal from '../PostModal'; import PostsTable from '../PostsTable'; +import UpsellContainer from '../UpsellContainer'; + +const posts = [ + { + ID: 1, + title: __( 'Halloween Limited Time Deal Information', 'hyve' ) + }, + { + ID: 2, + title: __( 'What to do if my order is missing an item?', 'hyve' ) + }, + { + ID: 3, + title: __( 'How do I return an item?', 'hyve' ) + }, + { + ID: 4, + title: __( 'How do I track my order?', 'hyve' ) + }, + { + ID: 5, + title: __( 'How do I change my delivery address?', 'hyve' ) + }, + { + ID: 6, + title: __( 'How do I cancel my order?', 'hyve' ) + } +]; const Custom = () => { - const [ posts, setPosts ] = useState({}); - const [ hasMore, setHasMore ] = useState( false ); - const [ isLoading, setLoading ] = useState( true ); - const [ isModalOpen, setModalOpen ] = useState( false ); - const [ selectedPost, setSelectedPost ] = useState({}); - - const [ query, setQuery ] = useState({ - search: '' - }); - - const { setTotalChunks } = useDispatch( 'hyve' ); - const hasReachedLimit = useSelect( ( select ) => select( 'hyve' ).hasReachedLimit() ); - - const fetchData = async() => { - setLoading( true ); - - const queryHash = hash( query ); - - const response = await apiFetch({ - path: addQueryArgs( `${ window.hyve.api }/knowledge`, { - offset: posts[ queryHash ]?.length || 0, - ...query - }) - }); - - setLoading( false ); - - setPosts({ - ...posts, - [ queryHash ]: [ - ...( posts[ queryHash ] || []), - ...response.posts - ] - }); - - setHasMore( response.more ); - setTotalChunks( response?.totalChunks ); - }; - - useEffect( () => { - const handler = setTimeout( () => fetchData(), 1000 ); - return () => clearTimeout( handler ); - }, [ query ]); - - const onChangeQuery = ( key, value ) => { - setQuery({ - ...query, - [ key ]: value - }); - }; - - const onClose = ( refresh = false ) => { - setModalOpen( false ); - setSelectedPost({}); - - if ( refresh ) { - setPosts({}); - setQuery({ search: '' }); - } - }; - - const onOpenModal = ( id = {}) => { - setModalOpen( true ); - const post = id ? posts[ hash( query )]?.find( post => post.ID === id ) : {}; - setSelectedPost( post ); - }; - return ( - <> - { isModalOpen && ( - - ) } - -
- - - { hasReachedLimit && ( - - { __( 'You have reached the limit of posts that can be added to the knowledge base. Please delete existing posts if you wish to add more.', 'hyve' ) } - - ) } - -

{ __( 'Custom Data allows you to privately feed specific data directly into your chat bot without displaying this information on your public website. With this, you can equip your bot with unique, specialized knowledge that aligns with your business needs and customer queries.', 'hyve' ) }

- -
+
+ + +

{ __( 'Custom Data allows you to privately feed specific data directly into your chat bot without displaying this information on your public website. With this, you can equip your bot with unique, specialized knowledge that aligns with your business needs and customer queries.', 'hyve' ) }

+ +
+
onChangeQuery( 'search', e )} + value="" + onChange={ () => {} } />
@@ -152,19 +83,19 @@ const Custom = () => {
{} } + onAction={ () => {} } actionLabel={ __( 'Edit', 'hyve' ) } isBusy={ [] } /> -
- - -
- + +
+ + +
); }; diff --git a/src/backend/parts/data/FAQ.js b/src/backend/parts/data/FAQ.js index fb24fd6..678d453 100644 --- a/src/backend/parts/data/FAQ.js +++ b/src/backend/parts/data/FAQ.js @@ -3,134 +3,60 @@ */ import { __ } from '@wordpress/i18n'; -import apiFetch from '@wordpress/api-fetch'; - import { Button, - Notice, Panel, - PanelRow, - Spinner + PanelRow } from '@wordpress/components'; -import { - useDispatch, - useSelect -} from '@wordpress/data'; - -import { - useEffect, - useState -} from '@wordpress/element'; - -import { addQueryArgs } from '@wordpress/url'; - /** * Internal dependencies. */ -import PostModal from '../PostModal'; +import UpsellContainer from '../UpsellContainer'; + +const posts = [ + { + question: __( 'How do I reset my password?', 'hyve' ), + count: 5 + }, + { + question: __( 'How do I change my email address?', 'hyve' ), + count: 3 + }, + { + question: __( 'How do I update my payment method?', 'hyve' ), + count: 2 + }, + { + question: __( 'How do I cancel my subscription?', 'hyve' ), + count: 1 + }, + { + question: __( 'How do I change my plan?', 'hyve' ), + count: 1 + }, + { + question: __( 'How do I update my billing information?', 'hyve' ), + count: 1 + } +]; const Custom = () => { - const [ posts, setPosts ] = useState([]); - const [ isLoading, setLoading ] = useState( true ); - const [ isModalOpen, setModalOpen ] = useState( false ); - const [ selectedPost, setSelectedPost ] = useState({}); - - const { setTotalChunks } = useDispatch( 'hyve' ); - const { createNotice } = useDispatch( 'core/notices' ); - - const hasReachedLimit = useSelect( ( select ) => select( 'hyve' ).hasReachedLimit() ); - - const fetchData = async() => { - setLoading( true ); - - const response = await apiFetch({ - path: addQueryArgs( `${ window.hyve.api }/faq` ) - }); - - setLoading( false ); - setPosts( response?.items ); - setTotalChunks( response?.totalChunks ); - }; - - useEffect( () => { - fetchData(); - }, []); - - const onClose = async( refresh = false ) => { - setModalOpen( false ); - - if ( refresh ) { - onDelete( selectedPost.hash ); - } - - setSelectedPost({}); - }; - - const onDelete = async( id ) => { - const response = await apiFetch({ - path: `${ window.hyve.api }/faq/${ id }`, - method: 'POST', - headers: { - 'X-HTTP-Method-Override': 'DELETE' - } - }); - - if ( response.error ) { - createNotice( - 'error', - response.error, - { - type: 'snackbar', - isDismissible: true - } - ); - setLoading( false ); - - return; - } - - fetchData(); - }; - - const onOpenModal = ( item ) => { - setModalOpen( true ); - - const post = { - title: item.question, - hash: item.hash - }; - - setSelectedPost( post ); - }; - return ( - <> - { isModalOpen && ( - - ) } - -
- - - { hasReachedLimit && ( - - { __( 'You have reached the limit of posts that can be added to the knowledge base. Please delete existing posts if you wish to add more.', 'hyve' ) } - - ) } - -

{ __( 'The FAQ captures frequently asked questions that went unanswered by our chatbot, providing you with a valuable insight into what your users are seeking. This feature allows you to review these queries and decide whether to incorporate them into your bot\'s knowledge base. By actively updating your FAQ, you can continuously refine your chatbot\'s ability to address user needs effectively and enhance their interactive experience. These aren\'t updated instantly.', 'hyve' ) }

- -
- +
+ + +

{ __( 'The FAQ captures frequently asked questions that went unanswered by our chatbot, providing you with a valuable insight into what your users are seeking. This feature allows you to review these queries and decide whether to incorporate them into your bot\'s knowledge base. By actively updating your FAQ, you can continuously refine your chatbot\'s ability to address user needs effectively and enhance their interactive experience. These aren\'t updated instantly.', 'hyve' ) }

+ +
+ +
@@ -140,9 +66,9 @@ const Custom = () => {
- { posts?.map( ( post ) => ( + { posts?.map( ( post, key ) => (
@@ -154,7 +80,7 @@ const Custom = () => {
) )} - - { ( ! posts.length && ! isLoading ) && ( -
- {__( 'No data found.', 'hyve' )} -
- )}
- - { isLoading && ( -
- -
- )} -
- - -
- + +
+ + +
); }; diff --git a/src/backend/parts/settings/Advanced.js b/src/backend/parts/settings/Advanced.js index d2b9fd4..5c477cf 100644 --- a/src/backend/parts/settings/Advanced.js +++ b/src/backend/parts/settings/Advanced.js @@ -1,10 +1,7 @@ /** * WordPress dependencies. */ -import { - __, - sprintf -} from '@wordpress/i18n'; +import { __ } from '@wordpress/i18n'; import apiFetch from '@wordpress/api-fetch'; @@ -12,16 +9,12 @@ import { BaseControl, Button, ExternalLink, - Icon, Panel, PanelRow, TextControl } from '@wordpress/components'; -import { - useEffect, - useState -} from '@wordpress/element'; +import { useState } from '@wordpress/element'; import { useDispatch, @@ -38,16 +31,6 @@ const Advanced = () => { const { createNotice } = useDispatch( 'core/notices' ); const [ isSaving, setIsSaving ] = useState( false ); - const [ license, setLicense ] = useState( window.hyve?.license ); - const [ licenseKey, setLicenseKey ] = useState( '' ); - - useEffect( () => { - const statuses = [ 'valid', 'active_expired' ]; - - if ( license.key && ( statuses.includes( license.valid ) ) ) { - setLicenseKey( license.key ); - } - }, [ license ]); const onSave = async() => { setIsSaving( true ); @@ -91,119 +74,10 @@ const Advanced = () => { setIsSaving( false ); }; - const onSaveLicense = async( data ) => { - setIsSaving( true ); - - try { - const response = await apiFetch({ - path: `${ window.hyve.api }/license`, - method: 'POST', - data: { - data - } - }); - - if ( response.error ) { - throw new Error( response.error ); - } - - createNotice( - response.success ? 'success' : 'error', - response.message, - { - isDismissible: true, - type: 'snackbar' - } - ); - - if ( response?.success && response.license && 'free' !== response.license.key ) { - setLicense( response.license ); - setLicenseKey( response.license.key ); - } else { - setLicense({}); - setLicenseKey( '' ); - } - - window.location = window.location.href + '&nav=advanced'; - } catch ( error ) { - createNotice( - 'error', - error, - { - type: 'snackbar', - isDismissible: true - }); - } - setIsSaving( false ); - }; - - const isValid = 'valid' === license?.valid || 'valid' === license?.license; - return (
- - - setLicenseKey( newValue ) } - /> - - - { isValid && ( -
-

- - { - license.expiration ? - sprintf( __( 'Valid - Expires %s', 'hyve' ), license.expiration ) : - __( 'Valid', 'hyve' ) - } -

-
- )} - - { 'active_expired' === license?.valid && ( - <> -

{ __( 'License Key has expired. In order to continue receiving support and software updates you must renew your license key.', 'hyve' ) }

- - - { __( 'Renew License', 'hyve' ) } - - - )} - - { ! isValid && ( - - { __( 'Get license from Purchase History', 'hyve' ) } - - ) } - - -
-
- -
- - { - const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); - const { setSetting } = useDispatch( 'hyve' ); - - const { createNotice } = useDispatch( 'core/notices' ); - - const [ isSaving, setIsSaving ] = useState( false ); - - const updateColor = ( key, value ) => { - const colors = { ...settings.colors, [ key ]: value }; - setSetting( 'colors', colors ); - }; - - const onSave = async() => { - setIsSaving( true ); - - try { - const response = await apiFetch({ - path: `${ window.hyve.api }/settings`, - method: 'POST', - data: { - data: settings - } - }); - - if ( response.error ) { - throw new Error( response.error ); - } - - createNotice( - 'success', - __( 'Settings saved.', 'hyve' ), - { - type: 'snackbar', - isDismissible: true - }); - } catch ( error ) { - createNotice( - 'error', - error, - { - type: 'snackbar', - isDismissible: true - }); - } - - setIsSaving( false ); - }; - return ( -
+ @@ -101,8 +58,8 @@ const Appearance = () => { > updateColor( option.value, color ) } + value={ option.default } + onChange={ () => {} } /> ) ) } @@ -111,16 +68,14 @@ const Appearance = () => { -
+ ); }; diff --git a/src/backend/parts/settings/General.js b/src/backend/parts/settings/General.js index e9f47ea..151c6a4 100644 --- a/src/backend/parts/settings/General.js +++ b/src/backend/parts/settings/General.js @@ -22,6 +22,43 @@ import { useSelect } from '@wordpress/data'; +import { applyFilters } from '@wordpress/hooks'; + +const SuggestedQuestions = () => { + return ( + + + +

{ __( 'These questions will be displayed in the chat to get the conversation started.', 'hyve' ) }

+ +
+ { Array.from({ length: 3 }).map( ( _, index ) => ( + {} } + /> + ) ) } +
+
+
+
+ ); +}; + +/** + * Internal dependencies. + */ +import UpsellContainer from '../UpsellContainer'; + const General = () => { const settings = useSelect( ( select ) => select( 'hyve' ).getSettings() ); const { setSetting } = useDispatch( 'hyve' ); @@ -30,12 +67,6 @@ const General = () => { const [ isSaving, setIsSaving ] = useState( false ); - const updateQuestion = ( index, value ) => { - const newQuestions = [ ...settings.predefined_questions ]; - newQuestions[ index ] = value; - setSetting( 'predefined_questions', newQuestions ); - }; - const onSave = async() => { setIsSaving( true ); @@ -120,25 +151,7 @@ const General = () => { />
- - -

{ __( 'These questions will be displayed in the chat to get the conversation started.', 'hyve' ) }

- -
- { Array.from({ length: 3 }).map( ( _, index ) => ( - updateQuestion( index, e ) } - /> - ) ) } -
-
-
+ { applyFilters( 'hyve.suggestedQuestions', , isSaving, settings, setSetting ) } - + + + +
- +
); }; From cbf1e70417523b07f32a6b379436cd7f113274bb Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Mon, 15 Jul 2024 03:13:03 +0530 Subject: [PATCH 08/11] PCP fixes --- hyve-lite.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hyve-lite.php b/hyve-lite.php index a4eea66..3dd11ac 100644 --- a/hyve-lite.php +++ b/hyve-lite.php @@ -1,10 +1,10 @@ Date: Mon, 15 Jul 2024 05:52:40 +0530 Subject: [PATCH 09/11] Remove timing from typing message --- src/frontend/App.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/frontend/App.js b/src/frontend/App.js index 35ca89a..d0cf8f8 100644 --- a/src/frontend/App.js +++ b/src/frontend/App.js @@ -204,9 +204,15 @@ class App { const date = `${ String( datetime.getDate() ).padStart( 2, 0 ) }/${ String( datetime.getMonth() + 1 ).padStart( 2, 0 ) }/${ datetime.getFullYear() } ${ String( datetime.getHours() ).padStart( 2, 0 ) }:${ String( datetime.getMinutes() ).padStart( 2, 0 ) } ${ 12 <= datetime.getHours() ? 'PM' : 'AM' }`; + let messageHTML = `

${message}

`; + + if ( null === id ) { + messageHTML += ``; + } + const messageDiv = this.createElement( 'div', { className: `hyve-${sender}-message`, - innerHTML: `

${message}

` + innerHTML: messageHTML }); if ( 'bot' === sender && window.hyve.colors?.assistant_background ) { From c7cfdeeb95f765414048cfb9376eb10d2564068e Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Mon, 15 Jul 2024 05:59:35 +0530 Subject: [PATCH 10/11] Update description --- hyve-lite.php | 2 +- readme.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hyve-lite.php b/hyve-lite.php index 3dd11ac..88cf89d 100644 --- a/hyve-lite.php +++ b/hyve-lite.php @@ -6,7 +6,7 @@ * * Plugin Name: Hyve Lite * Plugin URI: https://themeisle.com/plugins/hyve/ - * Description: An AI powered chatbot. + * Description: Hyve is an AI-powered chatbot that transforms your WordPress content into engaging conversations. * Version: 1.1.0 * Author: ThemeIsle * Author URI: https://themeisle.com diff --git a/readme.txt b/readme.txt index 427640f..32f6436 100644 --- a/readme.txt +++ b/readme.txt @@ -8,11 +8,11 @@ Stable tag: trunk License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.en.html -Hyve Description +Hyve is an AI-powered chatbot that transforms your WordPress content into engaging conversations. == Description == -== Screenshots == +Hyve is an AI-powered chatbot that transforms your WordPress content into engaging conversations. It uses the content from your WordPress site as a knowledge base to intelligently respond to user inquiries, providing accurate and context-aware answers directly from your existing materials. == Installation == From dc87afa2ba2f6884c210fabd048ec26d5f58da31 Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Mon, 15 Jul 2024 19:13:31 +0530 Subject: [PATCH 11/11] Rename .browserslintrc to .browserslistrc --- .browserslintrc => .browserslistrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .browserslintrc => .browserslistrc (89%) diff --git a/.browserslintrc b/.browserslistrc similarity index 89% rename from .browserslintrc rename to .browserslistrc index ff95991..192d7c5 100644 --- a/.browserslintrc +++ b/.browserslistrc @@ -4,4 +4,4 @@ last 1 version > 1% not ie > 0 not ie_mob > 0 -not dead \ No newline at end of file +not dead