From 8cced13442df3f413ce313bb4bffe4c17f5cece4 Mon Sep 17 00:00:00 2001 From: 0zd0 <67220210+0zd0@users.noreply.github.com> Date: Thu, 13 Jun 2024 20:06:31 +0300 Subject: [PATCH] add/billwerk logs page --- includes/Admin/LogsPage.php | 49 + includes/Admin/Main.php | 10 +- includes/Api/Controller/LogsController.php | 77 + includes/Utils/FilesystemUtil.php | 69 + includes/Utils/Logger/JsonLogger.php | 73 +- reepay-woocommerce-payment.php | 5 +- templates/admin/logs-page.php | 13 + vite/bun.lockb | Bin 196279 -> 205832 bytes vite/package-lock.json | 5830 ----------------- vite/package.json | 131 +- vite/plugins/rollup-plugin-wp-resolve.ts | 78 - vite/src/admin/logs-page/App.tsx | 17 + vite/src/admin/logs-page/components/File.tsx | 58 + .../admin/logs-page/components/FilesList.tsx | 190 + vite/src/admin/logs-page/components/Level.tsx | 32 + .../admin/logs-page/components/LogItem.tsx | 110 + vite/src/admin/logs-page/components/Logs.tsx | 60 + .../admin/logs-page/components/LogsList.tsx | 104 + vite/src/admin/logs-page/components/Tab.tsx | 44 + .../admin/logs-page/components/TabContent.tsx | 44 + vite/src/admin/logs-page/index.css | 3 + vite/src/admin/logs-page/main.tsx | 15 + vite/src/admin/logs-page/store/index.ts | 22 + .../admin/logs-page/store/models/LogsModel.ts | 144 + .../src/admin/logs-page/store/models/index.ts | 8 + vite/src/admin/meta-fields/App.css | 7 - vite/src/admin/meta-fields/App.tsx | 1 - vite/src/admin/meta-fields/index.css | 6 +- vite/src/api/wp/index.ts | 11 +- vite/src/api/wp/log/index.ts | 21 + vite/src/components/ButtonLink.tsx | 23 + vite/src/components/ResetButton.tsx | 21 + vite/src/types/WpLog.ts | 47 + vite/src/utils/number.ts | 1 + vite/src/utils/twm.ts | 7 + vite/tailwind.config.js | 3 + vite/vite.config.debug-page.ts | 4 +- vite/vite.config.logs.ts | 38 + vite/vite.config.meta-fields.ts | 4 +- 39 files changed, 1384 insertions(+), 5996 deletions(-) create mode 100644 includes/Admin/LogsPage.php create mode 100644 includes/Api/Controller/LogsController.php create mode 100644 includes/Utils/FilesystemUtil.php create mode 100644 templates/admin/logs-page.php delete mode 100644 vite/package-lock.json delete mode 100644 vite/plugins/rollup-plugin-wp-resolve.ts create mode 100644 vite/src/admin/logs-page/App.tsx create mode 100644 vite/src/admin/logs-page/components/File.tsx create mode 100644 vite/src/admin/logs-page/components/FilesList.tsx create mode 100644 vite/src/admin/logs-page/components/Level.tsx create mode 100644 vite/src/admin/logs-page/components/LogItem.tsx create mode 100644 vite/src/admin/logs-page/components/Logs.tsx create mode 100644 vite/src/admin/logs-page/components/LogsList.tsx create mode 100644 vite/src/admin/logs-page/components/Tab.tsx create mode 100644 vite/src/admin/logs-page/components/TabContent.tsx create mode 100644 vite/src/admin/logs-page/index.css create mode 100644 vite/src/admin/logs-page/main.tsx create mode 100644 vite/src/admin/logs-page/store/index.ts create mode 100644 vite/src/admin/logs-page/store/models/LogsModel.ts create mode 100644 vite/src/admin/logs-page/store/models/index.ts delete mode 100644 vite/src/admin/meta-fields/App.css create mode 100644 vite/src/api/wp/log/index.ts create mode 100755 vite/src/components/ButtonLink.tsx create mode 100755 vite/src/components/ResetButton.tsx create mode 100644 vite/src/types/WpLog.ts create mode 100644 vite/src/utils/number.ts create mode 100644 vite/src/utils/twm.ts create mode 100644 vite/vite.config.logs.ts diff --git a/includes/Admin/LogsPage.php b/includes/Admin/LogsPage.php new file mode 100644 index 00000000..cb576d2a --- /dev/null +++ b/includes/Admin/LogsPage.php @@ -0,0 +1,49 @@ +get_template( + 'admin/logs-page.php', + $template_args + ); + } +} diff --git a/includes/Admin/Main.php b/includes/Admin/Main.php index 6afa38c1..63456e67 100644 --- a/includes/Admin/Main.php +++ b/includes/Admin/Main.php @@ -24,6 +24,7 @@ class Main { public function __construct() { new PluginsPage(); new DebugPage(); + new LogsPage(); new Ajax(); new MetaBoxes\Order(); new MetaBoxes\User(); @@ -37,7 +38,8 @@ public function __construct() { * @param string $hook current page hook. */ public function admin_enqueue_scripts( string $hook ) { - $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; + $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; + $vite_dev = defined( 'VITE_DEV' ) && VITE_DEV; if ( 'post.php' === $hook || rp_hpos_is_order_page() ) { $suffix = $debug ? '' : '.min'; @@ -87,8 +89,12 @@ public function admin_enqueue_scripts( string $hook ) { 'nested_path' => '/debug-page/', 'file' => 'src/admin/debug-page/main.tsx', ), + array( + 'nested_path' => '/logs-page/', + 'file' => 'src/admin/logs-page/main.tsx', + ), ); - if ( $debug ) { + if ( $vite_dev ) { ViteAssetsLoader::dev( $vite_entry_points ); } else { ViteAssetsLoader::production( diff --git a/includes/Api/Controller/LogsController.php b/includes/Api/Controller/LogsController.php new file mode 100644 index 00000000..f34e5081 --- /dev/null +++ b/includes/Api/Controller/LogsController.php @@ -0,0 +1,77 @@ +namespace = 'billwerk/v1'; + $this->rest_base = 'logs'; + } + + /** + * Register API routes + * + * @return void + */ + public function register_routes() { + register_rest_route( + $this->namespace, + "/$this->rest_base/", + array( + array( + 'methods' => WP_REST_Server::CREATABLE, + 'callback' => array( $this, 'get_logs' ), + 'permission_callback' => array( $this, 'get_items_permissions_check' ), + ), + 'schema' => array( $this, 'get_item_schema' ), + ) + ); + } + + /** + * Retrieves files logs + * + * @param WP_REST_Request $request Full details about the request. + * + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. + */ + public function get_logs( WP_REST_Request $request ) { + $files = reepay()->log()->get_files(); + + return rest_ensure_response( $files ); + } + + /** + * Checks if a given request has access to get items. + * + * @param WP_REST_Request $request Full details about the request. + * + * @return true|WP_Error True if the request has read access, WP_Error object otherwise. + */ + public function get_items_permissions_check( $request ) { + if ( ! current_user_can( 'manage_options' ) ) { + return new WP_Error( 'rest_forbidden', esc_html__( 'You cannot view the post resource.' ), array( 'status' => rest_authorization_required_code() ) ); + } + + return true; + } +} diff --git a/includes/Utils/FilesystemUtil.php b/includes/Utils/FilesystemUtil.php new file mode 100644 index 00000000..fd782997 --- /dev/null +++ b/includes/Utils/FilesystemUtil.php @@ -0,0 +1,69 @@ +wp_filesystem = FilesystemUtil::get_wp_filesystem(); - $this->wp_filesystem = $wp_filesystem; $this->directory_path = $directory_path; + $this->directory_url = $directory_url; $this->source = $source; } @@ -182,6 +194,53 @@ private function log( string $level, $message, array $context = array() ) { $this->wp_filesystem->put_contents( $log_file_path, $log_entry_json, FS_CHMOD_FILE ); } + /** + * Get file information + * + * @param SplFileInfo $file file path. + * + * @return array + */ + public function get_file_details( SplFileInfo $file ): array { + $pathname = $file->getPathname(); + $split_path = explode( self::FOLDER, $pathname ); + $nested_path = null; + if ( $split_path ) { + $nested_path = $this->directory_url . $split_path[1]; + } + return array( + 'name' => $file->getBasename( '.json' ), + 'url' => set_url_scheme( $nested_path ?? $pathname ), + 'size' => filesize( $pathname ), + 'created' => gmdate( DATE_ATOM, filectime( $pathname ) ), + 'modified' => gmdate( DATE_ATOM, filemtime( $pathname ) ), + ); + } + + /** + * Get files logs + * + * @return array + */ + public function get_files(): array { + $rii = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $this->directory_path ) ); + $files = array(); + + /** + * File log + * + * @var $file SplFileInfo + */ + foreach ( $rii as $file ) { + if ( ! $file->isFile() ) { + continue; + } + $files[] = $this->get_file_details( $file ); + } + + return $files; + } + /** * Adds info level message. * diff --git a/reepay-woocommerce-payment.php b/reepay-woocommerce-payment.php index 2f324eae..08ef6ed9 100755 --- a/reepay-woocommerce-payment.php +++ b/reepay-woocommerce-payment.php @@ -21,6 +21,7 @@ use GuzzleHttp\Psr7\HttpFactory; use Reepay\Checkout\Api; use Reepay\Checkout\Api\Controller\DebugController; +use Reepay\Checkout\Api\Controller\LogsController; use Reepay\Checkout\Api\Controller\MetaFieldsController; use Reepay\Checkout\DIContainer; use Reepay\Checkout\Gateways; @@ -295,7 +296,8 @@ public function sdk( bool $force_live_key = false ): Sdk { */ public function log( string $source = 'billwerk' ): JsonLogger { return ( new JsonLogger( - wp_upload_dir()['basedir'] . '/billwerk-logs', + wp_upload_dir()['basedir'] . '/' . JsonLogger::FOLDER, + wp_upload_dir()['baseurl'] . '/' . JsonLogger::FOLDER, $source ) )->add_ignored_classes_backtrace( array( @@ -362,6 +364,7 @@ public function include_classes() { public function init_rest_api(): void { ( new MetaFieldsController() )->register_routes(); ( new DebugController() )->register_routes(); + ( new LogsController() )->register_routes(); } } diff --git a/templates/admin/logs-page.php b/templates/admin/logs-page.php new file mode 100644 index 00000000..3fefd98b --- /dev/null +++ b/templates/admin/logs-page.php @@ -0,0 +1,13 @@ + + +
+
+
diff --git a/vite/bun.lockb b/vite/bun.lockb index e0fdbc2b675c95a40cf9a618bd207b26611df17c..a4c82b16831a27a8ebd51f909dc279a0d8cafea9 100755 GIT binary patch delta 45199 zcmeFacUTlj7dP6|Fv=(hDoGp#R1{GV5D9`KMvRCV14Ig44> zoO8f{u4zqc4wzk6UE}vVUERp*;=b?meE0rwpS$z;n^Wi1sj5?_PKEAi>}{XRjy-NV z#m!|{{)A1@BNqgWPRRHA;uyDlo$pA?^Wj-vel=fl=nhbe)&^n+RP^J7CV~#TgAERdS ztKca=JuM+F5;do#XD7s^aojM{Gaw@+IW0XZEse`B#c^if4}g{dO^QfLCKHgCo}HrS z`lA3f>}JAomY`bD3ZPLDiTZ@NLHa((r}FJV$uJ*KYtS2L-2yZWhLZjiRBjI1FCjV7 z5Sa~&5+c%KVOgR+wV&RT;mTsg?8XJ%-X zDjWbxhDU*tr{a=g^{H{`X>mz0332^m(~Y2C7IJrdQMq#FoIxtk1*J(4nHmwLhime| zQ$^*`DpeE(O8G{RQw4Epu99tb=qBm?0VOgpCL%3;01Qmk4@`@T$>tUypF9?hZqtyg z0VPB4%KFi9hE%DhEND>!PN1<%he4}?HbVg__}P}p#Y(KF zH$b(Jj{zk^9?1FUK`AEsRAzdeL8-wYP%=C+B2Dk%&2cdaQu|y?WIX)LaR#$0OhF~n zl+@(JxHLT%krt6c3UAOF1=T~DUI(R$55h`vy@@@e!Jrge>8W05hT}#;zCh^)9|GC92(i;4cA z)PQ+)WA~AGgvU{wKxsSbY*L81wuYe*^`}L$0iV){U4vF)k@C zB_b^?96ZIy_bZ^8EZ?JJL%0Ey3|-Zj=??)V1A7ND+S&jC&Ch2L(EPsxN(NcU^imU6 zfm2gf;D;5-^?cueQeRjz7As1x!q!j!dz<- zK{6Hj6r_9MZ;_1U}ON%GV(Q0m~kAU3okKryt29Ca&}kq7}rDWW_%Aw$pg zXwAmD11Pzy31~Uc*od^`%p{Hz+OUS)<%<2BbO)aUP^8(g4V3bu<6>e+z6yLf@DZu~h~*Z@`4Lgc zsZ?|_cnjnkWST6~zA|kJO0!4ugaL`{h{Ob{=%OF9Obv^vL9foNhwmV#29JX$c?v}; zK2IU1Sh*?ZE9K+k(&H#!*)5|JGKl5!p-1JTVw3yFMMtFKz!GhUj!R9k?#3Ee2ue|} z6pTp9PK-#8idA~L3l&h$95KCIK}&(s^h`
Dp1Q=gy_;`KP`&|06}n>Cm$Q~NO1 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 CSbT~A diff --git a/vite/package-lock.json b/vite/package-lock.json deleted file mode 100644 index 86011fb9..00000000 --- a/vite/package-lock.json +++ /dev/null @@ -1,5830 +0,0 @@ -{ - "name": "react", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "react", - "version": "0.0.0", - "dependencies": { - "-": "^0.0.1", - "@codemirror/lang-php": "^6.0.1", - "@hookform/resolvers": "^3.3.4", - "@monaco-editor/loader": "^1.4.0", - "@monaco-editor/react": "^4.6.0", - "@rematch/core": "^2.2.0", - "@rematch/immer": "^2.1.3", - "@rematch/loading": "^2.1.2", - "@rematch/updated": "^2.1.2", - "@types/uuid": "^9.0.8", - "@uiw/codemirror-theme-github": "^4.22.0", - "@uiw/react-codemirror": "^4.22.0", - "axios": "^1.6.8", - "clsx": "^2.1.1", - "immer": "^9.0.21", - "localforage": "^1.10.0", - "lodash": "^4.17.21", - "moment": "^2.30.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-hook-form": "^7.51.4", - "react-redux": "^9.1.2", - "rollup-plugin-copy": "^3.5.0", - "styled-components": "^6.1.11", - "uuid": "^9.0.1", - "zod": "^3.23.7" - }, - "devDependencies": { - "@types/node": "^20.12.8", - "@types/react": "^18.2.66", - "@types/react-dom": "^18.2.22", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "@vitejs/plugin-react-swc": "^3.5.0", - "@wordpress/i18n": "^4.57.0", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", - "postcss": "^8.4.38", - "prettier": "^3.2.5", - "prettier-plugin-tailwindcss": "^0.5.14", - "tailwindcss": "^3.4.3", - "typescript": "^5.2.2", - "vite": "^5.2.0", - "vite-plugin-monaco-editor": "^1.1.0" - } - }, - "node_modules/-": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/-/-/--0.0.1.tgz", - "integrity": "sha512-3HfneK3DGAm05fpyj20sT3apkNcvPpCuccOThOPdzz8sY7GgQGe0l93XH9bt+YzibcTIgUAIMoyVJI740RtgyQ==" - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.5", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.0.tgz", - "integrity": "sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - }, - "peerDependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.5.0.tgz", - "integrity": "sha512-rK+sj4fCAN/QfcY9BEzYMgp4wwL/q5aj/VfNSoH1RWPF9XS/dUwBkvlL3hpWgEjOqlpdN1uLC9UkjJ4tmyjJYg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", - "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", - "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.0" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", - "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-php": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz", - "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/php": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.1.tgz", - "integrity": "sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.7.1.tgz", - "integrity": "sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz", - "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", - "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz", - "integrity": "sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.3.tgz", - "integrity": "sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==", - "dependencies": { - "@codemirror/state": "^6.4.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "license": "MIT" - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "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/regexpp": { - "version": "4.10.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "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/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@hookform/resolvers": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.3.4.tgz", - "integrity": "sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==", - "peerDependencies": { - "react-hook-form": "^7.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "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", - "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", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "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", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "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/@jridgewell/gen-mapping": { - "version": "0.3.5", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lezer/common": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", - "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" - }, - "node_modules/@lezer/css": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", - "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz", - "integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.9.tgz", - "integrity": "sha512-MXxeCMPyrcemSLGaTQEZx0dBUH0i+RPl8RN5GwMAzo53nTsd/Unc/t5ZxACeQoyPUM5/GkPLRUs2WliOImzkRA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.4.16", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.16.tgz", - "integrity": "sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz", - "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/php": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz", - "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.1.0" - } - }, - "node_modules/@monaco-editor/loader": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz", - "integrity": "sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==", - "dependencies": { - "state-local": "^1.0.6" - }, - "peerDependencies": { - "monaco-editor": ">= 0.21.0 < 1" - } - }, - "node_modules/@monaco-editor/react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.6.0.tgz", - "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==", - "dependencies": { - "@monaco-editor/loader": "^1.4.0" - }, - "peerDependencies": { - "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "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", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rematch/core": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "redux": ">=4" - } - }, - "node_modules/@rematch/immer": { - "version": "2.1.3", - "license": "MIT", - "peerDependencies": { - "@rematch/core": ">=2", - "immer": ">=7 | >= 8 | >= 9", - "redux": ">=4" - } - }, - "node_modules/@rematch/loading": { - "version": "2.1.2", - "license": "MIT", - "peerDependencies": { - "@rematch/core": ">=2" - } - }, - "node_modules/@rematch/updated": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rematch/updated/-/updated-2.1.2.tgz", - "integrity": "sha512-Y89x2P8gslnRdU/uF5xgfgHLKXGVoCNFxIiTsQAB+5xc9trXmL5zldJyD5bzMBUBbAWn4b8XEq2P1A3XwX4u+Q==", - "peerDependencies": { - "@rematch/core": ">=2" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@swc/core": { - "version": "1.4.17", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.17", - "@swc/core-darwin-x64": "1.4.17", - "@swc/core-linux-arm-gnueabihf": "1.4.17", - "@swc/core-linux-arm64-gnu": "1.4.17", - "@swc/core-linux-arm64-musl": "1.4.17", - "@swc/core-linux-x64-gnu": "1.4.17", - "@swc/core-linux-x64-musl": "1.4.17", - "@swc/core-win32-arm64-msvc": "1.4.17", - "@swc/core-win32-ia32-msvc": "1.4.17", - "@swc/core-win32-x64-msvc": "1.4.17" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.17", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.6", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@tannin/compile": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/evaluate": "^1.2.0", - "@tannin/postfix": "^1.1.0" - } - }, - "node_modules/@tannin/evaluate": { - "version": "1.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@tannin/plural-forms": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/compile": "^1.1.0" - } - }, - "node_modules/@tannin/postfix": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/fs-extra": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", - "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", - "dependencies": { - "@types/node": "*" - } - }, - "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==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "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==" - }, - "node_modules/@types/node": { - "version": "20.12.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz", - "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.1", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stylis": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", - "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@uiw/codemirror-extensions-basic-setup": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.22.0.tgz", - "integrity": "sha512-3vdpMq1Oj3qRKGjNgi5NeMxWem/cJ/gL0dZSu62MLBR4w3BWlEVi6xsk/MEk0+mT1AVKOzQV3jFS5y7mzxrfeA==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/autocomplete": ">=6.0.0", - "@codemirror/commands": ">=6.0.0", - "@codemirror/language": ">=6.0.0", - "@codemirror/lint": ">=6.0.0", - "@codemirror/search": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, - "node_modules/@uiw/codemirror-theme-github": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-theme-github/-/codemirror-theme-github-4.22.0.tgz", - "integrity": "sha512-toRG+V8xCKVvqZnyEHgR9posQ8fA28U0m8ALqn0fWTRRFuGPvYCSSX+i2mpA3HF06Sv7GWCzgHe8ioyYbrN2Lg==", - "dependencies": { - "@uiw/codemirror-themes": "4.22.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - } - }, - "node_modules/@uiw/codemirror-themes": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.22.0.tgz", - "integrity": "sha512-nn7K+lkfdLOSQN6NZx651ae24L5L2RiCuNOxIeP3/CcGm9tnic8i+9pq42IXZe+hEoxX64yUTZisoB5qtocvrQ==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/language": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, - "node_modules/@uiw/react-codemirror": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.22.0.tgz", - "integrity": "sha512-ZbC9NX1458McehTN0XGVUHK/hb79DJXwwP3SfvumcjzIx/zIwAK0wtGABposlGHpxifIF6RAxMmUcL3gDVpiMA==", - "dependencies": { - "@babel/runtime": "^7.18.6", - "@codemirror/commands": "^6.1.0", - "@codemirror/state": "^6.1.1", - "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.22.0", - "codemirror": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.11.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/theme-one-dark": ">=6.0.0", - "@codemirror/view": ">=6.0.0", - "codemirror": ">=6.0.0", - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@swc/core": "^1.3.107" - }, - "peerDependencies": { - "vite": "^4 || ^5" - } - }, - "node_modules/@wordpress/hooks": { - "version": "3.57.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@wordpress/i18n": { - "version": "4.57.0", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.57.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/acorn": { - "version": "8.11.3", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "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/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "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/any-promise": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "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-includes": { - "version": "3.1.8", - "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-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "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", - "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", - "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", - "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.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", - "es-shim-unscopables": "^1.0.2" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "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/ast-types-flow": { - "version": "0.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "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", - "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.7.0", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.6.8", - "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.2.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.0", - "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.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/camelize": { - "version": "1.0.1", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001616", - "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/chalk": { - "version": "4.1.2", - "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/chokidar": { - "version": "3.6.0", - "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", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "license": "MIT", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "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", - "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", - "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/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "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-properties": { - "version": "1.2.1", - "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/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/diff": { - "version": "4.0.2", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.756", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "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-object-atoms": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "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/esbuild": { - "version": "0.20.2", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "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": "9.1.0", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" - }, - "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", - "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", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.34.1", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "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-refresh": { - "version": "0.4.6", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.11", - "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", - "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", - "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", - "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-plugin-react/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "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-visitor-keys": { - "version": "3.4.3", - "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/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "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/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "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", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.17.1", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "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/flat-cache": { - "version": "3.2.0", - "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/flatted": { - "version": "3.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "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/form-data": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "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, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "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", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "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-symbol-description": { - "version": "1.0.2", - "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/gettext-parser": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "encoding": "^0.1.12", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "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/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "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", - "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/gopd": { - "version": "1.0.1", - "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==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "license": "MIT" - }, - "node_modules/immer": { - "version": "9.0.21", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "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/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "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/is-array-buffer": { - "version": "3.0.4", - "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-async-function": { - "version": "2.0.0", - "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", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "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-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "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", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "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-set": { - "version": "2.0.3", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "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-weakmap": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "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", - "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/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "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": "2.3.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.1.1", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/localforage": { - "version": "1.10.0", - "license": "Apache-2.0", - "dependencies": { - "lie": "3.1.1" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true - }, - "node_modules/memize": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "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/minipass": { - "version": "7.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/moment": { - "version": "2.30.1", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/monaco-editor": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.48.0.tgz", - "integrity": "sha512-goSDElNqFfw7iDHMg8WDATkfcyeLTNpBHQpO8incK6p5qZt5G/1j41X0xdGzpIkGojGXM+QiRQyLjnfDVvrpwA==", - "peer": true - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "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", - "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", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.14", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "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.entries": { - "version": "1.1.8", - "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", - "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.hasown": { - "version": "1.1.4", - "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.values": { - "version": "1.2.0", - "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/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "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/p-limit": { - "version": "3.1.0", - "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": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.10.2", - "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.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "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.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "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", - "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", - "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-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "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-selector-parser": { - "version": "6.0.16", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.2.5", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-tailwindcss": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz", - "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==", - "dev": true, - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "@ianvs/prettier-plugin-sort-imports": "*", - "@prettier/plugin-pug": "*", - "@shopify/prettier-plugin-liquid": "*", - "@trivago/prettier-plugin-sort-imports": "*", - "@zackad/prettier-plugin-twig-melody": "*", - "prettier": "^3.0", - "prettier-plugin-astro": "*", - "prettier-plugin-css-order": "*", - "prettier-plugin-import-sort": "*", - "prettier-plugin-jsdoc": "*", - "prettier-plugin-marko": "*", - "prettier-plugin-organize-attributes": "*", - "prettier-plugin-organize-imports": "*", - "prettier-plugin-sort-imports": "*", - "prettier-plugin-style-order": "*", - "prettier-plugin-svelte": "*" - }, - "peerDependenciesMeta": { - "@ianvs/prettier-plugin-sort-imports": { - "optional": true - }, - "@prettier/plugin-pug": { - "optional": true - }, - "@shopify/prettier-plugin-liquid": { - "optional": true - }, - "@trivago/prettier-plugin-sort-imports": { - "optional": true - }, - "@zackad/prettier-plugin-twig-melody": { - "optional": true - }, - "prettier-plugin-astro": { - "optional": true - }, - "prettier-plugin-css-order": { - "optional": true - }, - "prettier-plugin-import-sort": { - "optional": true - }, - "prettier-plugin-jsdoc": { - "optional": true - }, - "prettier-plugin-marko": { - "optional": true - }, - "prettier-plugin-organize-attributes": { - "optional": true - }, - "prettier-plugin-organize-imports": { - "optional": true - }, - "prettier-plugin-sort-imports": { - "optional": true - }, - "prettier-plugin-style-order": { - "optional": true - }, - "prettier-plugin-svelte": { - "optional": true - } - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "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/react": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-hook-form": { - "version": "7.51.4", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.4.tgz", - "integrity": "sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA==", - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "dev": true, - "license": "MIT" - }, - "node_modules/react-redux": { - "version": "9.1.2", - "license": "MIT", - "dependencies": { - "@types/use-sync-external-store": "^0.0.3", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^18.2.25", - "react": "^18.0", - "redux": "^5.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redux": { - "version": "5.0.1", - "license": "MIT", - "peer": true - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "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/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "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/resolve": { - "version": "1.22.8", - "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-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.17.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-copy": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", - "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", - "dependencies": { - "@types/fs-extra": "^8.0.1", - "colorette": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "10.0.1", - "is-plain-object": "^3.0.0" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/rollup-plugin-copy/node_modules/globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "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/safe-array-concat": { - "version": "1.1.2", - "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", - "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", - "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", - "dev": true, - "license": "MIT" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.6.0", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "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", - "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/shallowequal": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "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": "4.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, - "node_modules/string-width": { - "version": "5.1.2", - "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/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "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", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "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/string.prototype.matchall": { - "version": "4.0.11", - "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.trim": { - "version": "1.2.9", - "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", - "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", - "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", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" - }, - "node_modules/styled-components": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz", - "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==", - "dependencies": { - "@emotion/is-prop-valid": "1.2.2", - "@emotion/unitless": "0.8.1", - "@types/stylis": "4.2.5", - "css-to-react-native": "3.2.0", - "csstype": "3.1.3", - "postcss": "8.4.38", - "shallowequal": "1.1.0", - "stylis": "4.3.2", - "tslib": "2.6.2" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - } - }, - "node_modules/stylis": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" - }, - "node_modules/sucrase": { - "version": "3.35.0", - "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/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.3", - "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/tannin": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@tannin/plural-forms": "^1.1.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/ts-node": { - "version": "10.9.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "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", - "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", - "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", - "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/typescript": { - "version": "5.4.5", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "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/undici-types": { - "version": "5.26.5", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.15", - "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.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/uuid": { - "version": "9.0.1", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/vite": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", - "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-monaco-editor": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vite-plugin-monaco-editor/-/vite-plugin-monaco-editor-1.1.0.tgz", - "integrity": "sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==", - "dev": true, - "peerDependencies": { - "monaco-editor": ">=0.33.0" - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "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", - "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", - "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", - "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/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "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/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "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/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "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/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "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/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.4.2", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.23.7", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.7.tgz", - "integrity": "sha512-NBeIoqbtOiUMomACV/y+V3Qfs9+Okr18vR5c/5pHClPpufWOrsx8TENboDPe265lFdfewX2yBtNTLPvnmCxwog==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/vite/package.json b/vite/package.json index 95515048..1a9d8157 100644 --- a/vite/package.json +++ b/vite/package.json @@ -1,65 +1,70 @@ { - "name": "react", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev:meta-fields": "vite -c vite.config.meta-fields.ts", - "build:meta-fields": "tsc && vite build -c vite.config.meta-fields.ts", - "dev:debug-page": "vite -c vite.config.debug-page.ts", - "build:debug-page": "tsc && vite build -c vite.config.debug-page.ts", - "build": "bun run build:meta-fields && bun run build:debug-page", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0" - }, - "dependencies": { - "-": "^0.0.1", - "@codemirror/lang-php": "^6.0.1", - "@hookform/resolvers": "^3.3.4", - "@monaco-editor/loader": "^1.4.0", - "@monaco-editor/react": "^4.6.0", - "@rematch/core": "^2.2.0", - "@rematch/immer": "^2.1.3", - "@rematch/loading": "^2.1.2", - "@rematch/updated": "^2.1.2", - "@types/uuid": "^9.0.8", - "@uiw/codemirror-theme-github": "^4.22.0", - "@uiw/react-codemirror": "^4.22.0", - "axios": "^1.6.8", - "clsx": "^2.1.1", - "immer": "^9.0.21", - "localforage": "^1.10.0", - "lodash": "^4.17.21", - "moment": "^2.30.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-hook-form": "^7.51.4", - "react-redux": "^9.1.2", - "rollup-plugin-copy": "^3.5.0", - "styled-components": "^6.1.11", - "uuid": "^9.0.1", - "zod": "^3.23.7" - }, - "devDependencies": { - "@types/node": "^20.12.8", - "@types/react": "^18.2.66", - "@types/react-dom": "^18.2.22", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "@vitejs/plugin-react-swc": "^3.5.0", - "@wordpress/i18n": "^4.57.0", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", - "postcss": "^8.4.38", - "prettier": "^3.2.5", - "prettier-plugin-tailwindcss": "^0.5.14", - "tailwindcss": "^3.4.3", - "typescript": "^5.2.2", - "vite": "^5.2.0", - "vite-plugin-monaco-editor": "^1.1.0" - } + "name": "react", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev:meta-fields": "vite -c vite.config.meta-fields.ts", + "build:meta-fields": "tsc && vite build -c vite.config.meta-fields.ts", + "dev:debug-page": "vite -c vite.config.debug-page.ts", + "build:debug-page": "tsc && vite build -c vite.config.debug-page.ts", + "dev:logs": "vite -c vite.config.logs.ts", + "build:logs": "tsc && vite build -c vite.config.logs.ts", + "build": "bun run build:meta-fields && bun run build:debug-page && bun run build:logs", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0" + }, + "dependencies": { + "-": "^0.0.1", + "@codemirror/lang-php": "^6.0.1", + "@heroicons/react": "^2.1.3", + "@hookform/resolvers": "^3.3.4", + "@rematch/core": "^2.2.0", + "@rematch/immer": "^2.1.3", + "@rematch/loading": "^2.1.2", + "@rematch/select": "^3.1.2", + "@rematch/updated": "^2.1.2", + "@types/uuid": "^9.0.8", + "@uiw/codemirror-theme-github": "^4.22.0", + "@uiw/react-codemirror": "^4.22.0", + "axios": "^1.6.8", + "clsx": "^2.1.1", + "filesize": "^10.1.2", + "immer": "^9.0.21", + "localforage": "^1.10.0", + "lodash": "^4.17.21", + "moment": "^2.30.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.51.4", + "react-json-view": "^1.21.3", + "react-redux": "^9.1.2", + "rollup-plugin-copy": "^3.5.0", + "styled-components": "^6.1.11", + "tailwind-merge": "^2.3.0", + "uuid": "^9.0.1", + "zod": "^3.23.7" + }, + "devDependencies": { + "@types/node": "^20.12.8", + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "@wordpress/i18n": "^4.57.0", + "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-jsx-a11y": "^6.8.0", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "postcss": "^8.4.38", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.14", + "rollup-plugin-wordpress-dependency-extraction": "^1.0.3", + "tailwindcss": "^3.4.3", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } } diff --git a/vite/plugins/rollup-plugin-wp-resolve.ts b/vite/plugins/rollup-plugin-wp-resolve.ts deleted file mode 100644 index 33a8d3c8..00000000 --- a/vite/plugins/rollup-plugin-wp-resolve.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { OutputOptions, InputOptions, ExternalOption } from 'rollup' - -const ns = '@wordpress/' -const nsExclude = ['icons', 'interface'] -const wordpressMatch = new RegExp(`^${ns}(?!(${nsExclude.join('|')})).*$`) // /^@wordpress\/(?!(icons|interface)).*$/ - -const external: Record = { - jquery: 'window.jQuery', - 'lodash-es': 'window.lodash', - lodash: 'window.lodash', - moment: 'window.moment', - 'react-dom': 'window.ReactDOM', - react: 'window.React', -} - -export default function wpResolve() { - return { - name: 'wp-resolve', - options: (options: InputOptions) => { - if (Array.isArray(options.external) === false) { - // If string, RegExp or function - options.external = [options.external].filter( - Boolean, - ) as ExternalOption - } - - if (Array.isArray(options.external)) { - options.external = options.external.concat( - Object.keys(external), - ) - options.external.push(wordpressMatch) - } - - return options - }, - outputOptions: (outputOptions: OutputOptions) => { - const configGlobals = outputOptions.globals - - const resolveGlobals = (id: string) => { - if ( - typeof configGlobals === 'object' && - id in configGlobals && - configGlobals[id] - ) { - return configGlobals[id] - } - - // options.globals is a function - defer to it - if (typeof configGlobals === 'function') { - const configGlobalId = configGlobals(id) - - if (configGlobalId && configGlobalId !== id) { - return configGlobalId - } - } - - // see if it's a static wp external - if (id in external && external[id]) { - return external[id] - } - - if (wordpressMatch.test(id)) { - // convert @namespace/component-name to namespace.componentName - return id - .replace(new RegExp(`^${ns}`), 'wp.') - .replace(/\//g, '.') - .replace(/-([a-z])/g, (_, letter) => - letter.toUpperCase(), - ) - } - - return '' - } - - outputOptions.globals = resolveGlobals - }, - } -} diff --git a/vite/src/admin/logs-page/App.tsx b/vite/src/admin/logs-page/App.tsx new file mode 100644 index 00000000..1aa43576 --- /dev/null +++ b/vite/src/admin/logs-page/App.tsx @@ -0,0 +1,17 @@ +import React from 'react' +import { Provider } from 'react-redux' +import Logs from '@/admin/logs-page/components/Logs' +import { store } from '@/admin/logs-page/store' +import clsx from 'clsx' + +const App: React.FC = () => { + return ( + +
+ +
+
+ ) +} + +export default App diff --git a/vite/src/admin/logs-page/components/File.tsx b/vite/src/admin/logs-page/components/File.tsx new file mode 100644 index 00000000..2c6c1d14 --- /dev/null +++ b/vite/src/admin/logs-page/components/File.tsx @@ -0,0 +1,58 @@ +import { ILogFile } from '@/types/WpLog' +import React from 'react' +import moment from 'moment' +import { filesize } from 'filesize' +import ResetButton from '@/components/ResetButton' +import { twJoin } from 'tailwind-merge' +import { isEven } from '@/utils/number' +import { twm } from '@/utils/twm' + +type FileProps = { + file: ILogFile + fileIndex: number + onOpen: () => void +} + +const File: React.FC = ({ file, fileIndex, onOpen }) => { + return ( + <> + + + onOpen()} + > + {file.name} + + + + {moment(file.created, moment.ISO_8601).format('YYYY-MM-DD')} + + + {moment(file.modified, moment.ISO_8601).format( + 'YYYY-MM-DD HH:mm:ss', + )} + + + {filesize(file.size, { round: 0 })} + + + + ) +} + +export default File diff --git a/vite/src/admin/logs-page/components/FilesList.tsx b/vite/src/admin/logs-page/components/FilesList.tsx new file mode 100644 index 00000000..026f744f --- /dev/null +++ b/vite/src/admin/logs-page/components/FilesList.tsx @@ -0,0 +1,190 @@ +import React, { + ButtonHTMLAttributes, + PropsWithChildren, + useEffect, + useState, +} from 'react' +import { __ } from '@wordpress/i18n' +import File from '@/admin/logs-page/components/File' +import { + ChevronDoubleLeftIcon, + ChevronDoubleRightIcon, + ChevronLeftIcon, + ChevronRightIcon, +} from '@heroicons/react/16/solid' +import { ILogFile, ILogTab } from '@/types/WpLog' +import moment from 'moment/moment' +import { useDispatch } from 'react-redux' +import { Dispatch } from '@/admin/logs-page/store' +import { twJoin } from 'tailwind-merge' + +const ITEMS_PER_PAGE = 10 + +type FilesListProps = { + tab: ILogTab +} + +const Th: React.FC = ({ children }) => { + return ( + + {children} + + ) +} + +const ButtonNavigation: React.FC< + ButtonHTMLAttributes & { + Icon: React.ComponentType> + } +> = ({ Icon, disabled, ...props }) => { + return ( + + ) +} + +const FilesList: React.FC = ({ tab }) => { + const dispatch = useDispatch() + const [currentPage, setCurrentPage] = useState(1) + + useEffect(() => { + dispatch.logs.fetchFiles({ tabId: tab.id }) + }, [dispatch, tab.id]) + + const sortedFiles = [...tab.files].sort( + (a, b) => + moment(b.created, moment.ISO_8601).valueOf() - + moment(a.created, moment.ISO_8601).valueOf(), + ) + + const indexOfLastFile = currentPage * ITEMS_PER_PAGE + const indexOfFirstFile = indexOfLastFile - ITEMS_PER_PAGE + const currentFiles = sortedFiles.slice(indexOfFirstFile, indexOfLastFile) + + const totalPages = Math.ceil(sortedFiles.length / ITEMS_PER_PAGE) + + const handleNextPage = () => { + if (currentPage < totalPages) { + setCurrentPage((prevPage) => prevPage + 1) + } + } + + const handlePrevPage = () => { + if (currentPage > 1) { + setCurrentPage((prevPage) => prevPage - 1) + } + } + + const handleFirstPage = () => { + setCurrentPage(1) + } + + const handleLastPage = () => { + setCurrentPage(totalPages) + } + + const handleOpenFile = (file: ILogFile) => { + dispatch.logs.setActiveFile({ tab, file }) + } + + return ( + <> +
+ + + + + + + + + + + {currentFiles.map((file, index) => ( + handleOpenFile(file)} + /> + ))} + +
{__('Name', 'reepay-checkout-gateway')} + {__('Date created', 'reepay-checkout-gateway')} + + {__('Date modified', 'reepay-checkout-gateway')} + + {__('File size', 'reepay-checkout-gateway')} +
+
+ + {tab.files.length}{' '} + {__('items', 'reepay-checkout-gateway')} + + + + + {currentPage} of {totalPages} + + + +
+
+ +
+ + ) +} + +export default FilesList diff --git a/vite/src/admin/logs-page/components/Level.tsx b/vite/src/admin/logs-page/components/Level.tsx new file mode 100644 index 00000000..5e235278 --- /dev/null +++ b/vite/src/admin/logs-page/components/Level.tsx @@ -0,0 +1,32 @@ +import React from 'react' +import { LogLevel } from '@/types/WpLog' +import { twm } from '@/utils/twm' + +type LevelProps = { + level: LogLevel +} + +const levelClasses = { + [LogLevel.ERROR]: 'bw-bg-red-500', + [LogLevel.INFO]: 'bw-bg-blue-500', + [LogLevel.WARNING]: 'bw-bg-yellow-500', + [LogLevel.NOTICE]: 'bw-bg-green-500', + [LogLevel.DEBUG]: 'bw-bg-gray-500', +} + +const Level: React.FC = ({ level }) => { + return ( + <> +
+ {level} +
+ + ) +} + +export default Level diff --git a/vite/src/admin/logs-page/components/LogItem.tsx b/vite/src/admin/logs-page/components/LogItem.tsx new file mode 100644 index 00000000..d9322133 --- /dev/null +++ b/vite/src/admin/logs-page/components/LogItem.tsx @@ -0,0 +1,110 @@ +import React from 'react' +import { ILog, SelectLogFieldEnum } from '@/types/WpLog' +import { twJoin } from 'tailwind-merge' +import Level from '@/admin/logs-page/components/Level' +import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/16/solid' +import ResetButton from '@/components/ResetButton' +import { useDispatch } from 'react-redux' +import { Dispatch, store } from '@/admin/logs-page/store' +import moment from 'moment/moment' +import ReactJson from 'react-json-view' + +type LogItemProps = { + log: ILog + logIndex: number +} + +const OpenIcon: React.FC<{ + Icon: React.ComponentType> +}> = ({ Icon }) => { + return ( + + ) +} + +const LogItem: React.FC = ({ log, logIndex }) => { + const dispatch = useDispatch() + const activeTabId = store.select.logs.getActiveTabId(store.getState()) + const openLogs = store.select.logs.getActiveOpenLogs(store.getState()) + + return ( + <> + { + dispatch.logs.toggleOpenLog({ + tabId: activeTabId, + logIndex, + }) + }} + > + +
{log.message}
+
+
+ {moment(log.timestamp, moment.ISO_8601).format( + 'DD.MM.YYYY HH:mm:ss', + )} +
+ +
+
+ {openLogs.includes(logIndex) && ( +
+
+ {Object.values(SelectLogFieldEnum).map((field) => ( + { + dispatch.logs.setSelectInLog({ + tabId: activeTabId, + logIndex, + field, + }) + }} + > + {field} + + ))} +
+ + +
+ )} + + ) +} + +export default LogItem diff --git a/vite/src/admin/logs-page/components/Logs.tsx b/vite/src/admin/logs-page/components/Logs.tsx new file mode 100644 index 00000000..0adad61f --- /dev/null +++ b/vite/src/admin/logs-page/components/Logs.tsx @@ -0,0 +1,60 @@ +import { useDispatch, useSelector } from 'react-redux' +import { Dispatch, RootState } from '@/admin/logs-page/store' +import React from 'react' +import Tab from '@/admin/logs-page/components/Tab' +import TabContent from '@/admin/logs-page/components/TabContent' +import { ILogTab } from '@/types/WpLog' +import moment from 'moment' +import { twJoin } from 'tailwind-merge' + +const Logs: React.FC = () => { + const logsState = useSelector((state: RootState) => state.logs) + const dispatch = useDispatch() + + const getName = (tab: ILogTab, index: number): string => { + const fileName = tab.activeFile?.name + const fileCreated = tab.activeFile?.created + if (fileName && fileCreated) { + return `${fileName} (${moment(fileCreated, moment.ISO_8601).format('DD.MM.YYYY')})` + } + return fileName ?? (index + 1).toString() + } + + return ( + <> +
+ {logsState?.tabs.map((tab, index) => ( + dispatch.logs.setActiveTabId(tab.id)} + onDelete={() => { + dispatch.logs.deleteTab(tab.id) + }} + > + ))} + dispatch.logs.addTab()} + > +
+ +
+ {logsState?.tabs.map((tab, index) => ( + + ))} +
+ + ) +} + +export default Logs diff --git a/vite/src/admin/logs-page/components/LogsList.tsx b/vite/src/admin/logs-page/components/LogsList.tsx new file mode 100644 index 00000000..82224924 --- /dev/null +++ b/vite/src/admin/logs-page/components/LogsList.tsx @@ -0,0 +1,104 @@ +import { ILog } from '@/types/WpLog' +import React from 'react' +import ResetButton from '@/components/ResetButton' +import { __ } from '@wordpress/i18n' +import { + ChevronLeftIcon, + ChevronDoubleUpIcon, + ChevronDoubleDownIcon, +} from '@heroicons/react/16/solid' +import { twJoin } from 'tailwind-merge' +import LogItem from '@/admin/logs-page/components/LogItem' +import { useDispatch } from 'react-redux' +import { Dispatch, store } from '@/admin/logs-page/store' +import { twm } from '@/utils/twm' + +interface LogButtonProps { + className?: string + onClick?: () => void + Icon: React.ComponentType> + classNameIcon?: string + label: string +} + +const LogButton: React.FC = ({ + className, + onClick, + Icon, + classNameIcon, + label, +}) => ( + + + {label} + +) + +type LogsListProps = { + logs: ILog[] + onClose: () => void +} + +const LogsList: React.FC = ({ logs, onClose }) => { + const dispatch = useDispatch() + const activeTab = store.select.logs.getActiveTab(store.getState()) + + return ( + <> +
+ onClose()} + /> + + dispatch.logs.setOpenLogs({ + tabId: activeTab.id, + logs: [], + }) + } + /> + + dispatch.logs.setOpenLogs({ + tabId: activeTab.id, + logs: activeTab.logs.map((_, index) => index), + }) + } + /> +
+
+ {logs.map((log, index) => { + return ( + + ) + })} +
+ + ) +} + +export default LogsList diff --git a/vite/src/admin/logs-page/components/Tab.tsx b/vite/src/admin/logs-page/components/Tab.tsx new file mode 100644 index 00000000..468b32f8 --- /dev/null +++ b/vite/src/admin/logs-page/components/Tab.tsx @@ -0,0 +1,44 @@ +import React, { ButtonHTMLAttributes } from 'react' +import { XCircleIcon } from '@heroicons/react/16/solid' +import { twJoin } from 'tailwind-merge' + +type TabProps = ButtonHTMLAttributes & { + active: boolean + name: string + onDelete?: () => void +} + +const Tab: React.FC = ({ name, active, onDelete, ...props }) => { + return ( + <> + + + ) +} + +export default Tab diff --git a/vite/src/admin/logs-page/components/TabContent.tsx b/vite/src/admin/logs-page/components/TabContent.tsx new file mode 100644 index 00000000..7762a5db --- /dev/null +++ b/vite/src/admin/logs-page/components/TabContent.tsx @@ -0,0 +1,44 @@ +import React, { useEffect } from 'react' +import { useDispatch } from 'react-redux' +import { Dispatch, store } from '@/admin/logs-page/store' +import FilesList from '@/admin/logs-page/components/FilesList' +import LogsList from '@/admin/logs-page/components/LogsList' +import { ILogTab } from '@/types/WpLog' + +type TabContentProps = { + tab: ILogTab +} + +const TabContent: React.FC = ({ tab }) => { + const dispatch = useDispatch() + const activeTab = store.select.logs.getActiveTab(store.getState()) + const activeFile = tab.activeFile + + useEffect(() => { + if (activeFile) { + dispatch.logs.fetchLogs({ tabId: tab.id, activeFile }) + } + }, [dispatch, tab.id, activeFile]) + + if (activeTab.id !== tab.id) return + + return ( + <> + {!activeFile && } + + {activeFile && ( + { + dispatch.logs.setActiveFile({ + tab, + file: undefined, + }) + }} + /> + )} + + ) +} + +export default TabContent diff --git a/vite/src/admin/logs-page/index.css b/vite/src/admin/logs-page/index.css new file mode 100644 index 00000000..bd6213e1 --- /dev/null +++ b/vite/src/admin/logs-page/index.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/vite/src/admin/logs-page/main.tsx b/vite/src/admin/logs-page/main.tsx new file mode 100644 index 00000000..8899503e --- /dev/null +++ b/vite/src/admin/logs-page/main.tsx @@ -0,0 +1,15 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import './index.css' +import App from './App' + +document.addEventListener('DOMContentLoaded', () => { + document.querySelectorAll('.billwerk-logs').forEach((el) => { + ReactDOM.createRoot(el!).render( + + + , + ) + }) +}) diff --git a/vite/src/admin/logs-page/store/index.ts b/vite/src/admin/logs-page/store/index.ts new file mode 100644 index 00000000..6ef890a4 --- /dev/null +++ b/vite/src/admin/logs-page/store/index.ts @@ -0,0 +1,22 @@ +import { init, RematchDispatch, RematchRootState } from '@rematch/core' +import immerPlugin from '@rematch/immer' +import loadingPlugin, { ExtraModelsFromLoading } from '@rematch/loading' +import updatedPlugin, { ExtraModelsFromUpdated } from '@rematch/updated' +import { models, RootModel } from '@/admin/logs-page/store/models' +import selectPlugin from '@rematch/select' + +type FullModel = ExtraModelsFromLoading & + ExtraModelsFromUpdated + +export const store = init({ + models, + plugins: [ + immerPlugin(), + loadingPlugin({ type: 'full' }), + updatedPlugin(), + selectPlugin(), + ], +}) +export type Store = typeof store +export type Dispatch = RematchDispatch +export type RootState = RematchRootState diff --git a/vite/src/admin/logs-page/store/models/LogsModel.ts b/vite/src/admin/logs-page/store/models/LogsModel.ts new file mode 100644 index 00000000..daf8eb51 --- /dev/null +++ b/vite/src/admin/logs-page/store/models/LogsModel.ts @@ -0,0 +1,144 @@ +import { createModel } from '@rematch/core' +import { RootModel } from '.' +import { ILog, ILogFile, ILogTab, SelectLogFieldEnum } from '@/types/WpLog' +import { v4 as uuidv4 } from 'uuid' +import { LogApi } from '@/api/wp/log' + +type LogsState = { + activeTabId: string | null + tabs: ILogTab[] +} + +export const logsModel = createModel()({ + state: { + activeTabId: null, + tabs: [ + { + id: uuidv4(), + filters: [], + logs: [], + files: [], + openLogs: [], + }, + ], + } as LogsState, + reducers: { + addTab(state) { + state.tabs = [ + ...state.tabs, + { + id: uuidv4(), + filters: [], + logs: [], + files: [], + openLogs: [], + }, + ] + }, + setActiveTabId(state, id: string) { + state.activeTabId = id + }, + setFiles( + state, + { tabId, files }: { tabId: string; files: ILogFile[] }, + ) { + const targetTab = state.tabs.find((item) => item.id === tabId) + if (targetTab) { + targetTab.files = files + } + }, + setLogs(state, { tabId, logs }: { tabId: string; logs: ILog[] }) { + const targetTab = state.tabs.find((item) => item.id === tabId) + if (targetTab) { + targetTab.logs = logs.map((log) => ({ id: uuidv4(), ...log })) + } + }, + setActiveFile(state, { tab, file }: { tab: ILogTab; file?: ILogFile }) { + const targetTab = state.tabs.find((item) => item.id === tab.id) + if (targetTab) { + targetTab.activeFile = file + targetTab.openLogs = [] + } + }, + deleteTab(state, id: string) { + if (state.tabs.length === 1) return + + state.tabs = state.tabs.filter((tab) => tab.id !== id) + if (state.activeTabId === id) { + state.activeTabId = state.tabs[0].id + } + }, + setSelectInLog( + state, + { + tabId, + logIndex, + field, + }: { tabId: string; logIndex: number; field: SelectLogFieldEnum }, + ) { + const targetTab = state.tabs.find((item) => item.id === tabId) + if (targetTab) { + targetTab.logs[logIndex].select = field + } + }, + setOpenLogs(state, { tabId, logs }: { tabId: string; logs: number[] }) { + const targetTab = state.tabs.find((item) => item.id === tabId) + if (targetTab) { + targetTab.openLogs = logs + } + }, + toggleOpenLog( + state, + { tabId, logIndex }: { tabId: string; logIndex: number }, + ) { + const targetTab = state.tabs.find((item) => item.id === tabId) + if (targetTab) { + targetTab.openLogs = + targetTab.openLogs.includes(logIndex) ? + targetTab.openLogs.filter((index) => index !== logIndex) + : [...targetTab.openLogs, logIndex] + } + }, + }, + selectors: (slice, createSelector) => ({ + getActiveTabId() { + return createSelector( + slice, + (state) => state.activeTabId || state.tabs[0].id, + ) + }, + getActiveTab() { + return createSelector( + slice, + (state) => + state.tabs.find((tab) => tab.id === state.activeTabId) || + state.tabs[0], + ) + }, + getActiveOpenLogs: () => + createSelector(slice, (state) => { + const activeTab = + state.tabs.find((tab) => tab.id === state.activeTabId) || + state.tabs[0] + return activeTab.openLogs + }), + }), + effects: (dispatch) => ({ + async fetchFiles({ tabId }: { tabId: string | null }) { + if (!tabId) return + const files = await LogApi.files() + dispatch.logs.setFiles({ tabId, files }) + }, + async fetchLogs({ + tabId, + activeFile, + }: { + tabId: string | null + activeFile?: ILogFile + }) { + if (!activeFile || !tabId) return + const logs = await LogApi.logs(activeFile.url) + dispatch.logs.setLogs({ tabId, logs }) + }, + }), +}) diff --git a/vite/src/admin/logs-page/store/models/index.ts b/vite/src/admin/logs-page/store/models/index.ts new file mode 100644 index 00000000..d710fbfe --- /dev/null +++ b/vite/src/admin/logs-page/store/models/index.ts @@ -0,0 +1,8 @@ +import { Models } from '@rematch/core' +import { logsModel } from '@/admin/logs-page/store/models/LogsModel' + +export interface RootModel extends Models { + logs: typeof logsModel +} + +export const models: RootModel = { logs: logsModel } diff --git a/vite/src/admin/meta-fields/App.css b/vite/src/admin/meta-fields/App.css deleted file mode 100644 index 4fa910cb..00000000 --- a/vite/src/admin/meta-fields/App.css +++ /dev/null @@ -1,7 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -#reepay_meta_fields > .inside { - @apply bw-mt-4; -} \ No newline at end of file diff --git a/vite/src/admin/meta-fields/App.tsx b/vite/src/admin/meta-fields/App.tsx index aa72a9b8..44432f7a 100644 --- a/vite/src/admin/meta-fields/App.tsx +++ b/vite/src/admin/meta-fields/App.tsx @@ -1,5 +1,4 @@ import React from 'react' -import './App.css' import { Provider, useDispatch } from 'react-redux' import { Dispatch, store } from '@/admin/meta-fields/store' import List from '@/admin/meta-fields/components/List' diff --git a/vite/src/admin/meta-fields/index.css b/vite/src/admin/meta-fields/index.css index bd6213e1..4fa910cb 100644 --- a/vite/src/admin/meta-fields/index.css +++ b/vite/src/admin/meta-fields/index.css @@ -1,3 +1,7 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; + +#reepay_meta_fields > .inside { + @apply bw-mt-4; +} \ No newline at end of file diff --git a/vite/src/api/wp/index.ts b/vite/src/api/wp/index.ts index f7acfcb9..fb215c82 100644 --- a/vite/src/api/wp/index.ts +++ b/vite/src/api/wp/index.ts @@ -1,10 +1,17 @@ import axios from 'axios' -export const DefaultConfig = { +export const ApiConfig = { baseURL: `/wp-json/`, headers: { 'X-WP-Nonce': window.BILLWERK_SETTINGS.nonce, }, } -export const WpApiInstance = axios.create(DefaultConfig) +export const DefaultConfig = { + headers: { + 'X-WP-Nonce': window.BILLWERK_SETTINGS.nonce, + }, +} + +export const WpApiInstance = axios.create(ApiConfig) +export const WpInstance = axios.create(DefaultConfig) diff --git a/vite/src/api/wp/log/index.ts b/vite/src/api/wp/log/index.ts new file mode 100644 index 00000000..be8d09b0 --- /dev/null +++ b/vite/src/api/wp/log/index.ts @@ -0,0 +1,21 @@ +import { WpApiInstance, WpInstance } from '@/api/wp' +import { PREFIX } from '@/const' +import { ILogFile, ILog } from '@/types/WpLog' +import { validationApiData } from '@/utils/api' + +const namespace = `${PREFIX}/v1` + +export const LogApi = { + async files(): Promise { + const { data } = await WpApiInstance.post( + `${namespace}/logs/`, + {}, + ) + return data + }, + async logs(logUrl: string): Promise { + const { data } = await WpInstance.get(logUrl) + validationApiData(data) + return data + }, +} diff --git a/vite/src/components/ButtonLink.tsx b/vite/src/components/ButtonLink.tsx new file mode 100755 index 00000000..eefed879 --- /dev/null +++ b/vite/src/components/ButtonLink.tsx @@ -0,0 +1,23 @@ +import React, { HTMLProps, PropsWithChildren } from 'react' +import ResetButton from '@/components/ResetButton' +import { clsx } from 'clsx' + +const ButtonLink: React.FC>> = ({ + children, + className, + ...props +}) => { + return ( + + {children} + + ) +} + +export default ButtonLink diff --git a/vite/src/components/ResetButton.tsx b/vite/src/components/ResetButton.tsx new file mode 100755 index 00000000..773c910c --- /dev/null +++ b/vite/src/components/ResetButton.tsx @@ -0,0 +1,21 @@ +import React, { HTMLProps, PropsWithChildren } from 'react' +import { twm } from '@/utils/twm' + +const ResetButton: React.FC< + PropsWithChildren> +> = ({ children, className, ...props }) => { + return ( + + ) +} + +export default ResetButton diff --git a/vite/src/types/WpLog.ts b/vite/src/types/WpLog.ts new file mode 100644 index 00000000..d3aa575a --- /dev/null +++ b/vite/src/types/WpLog.ts @@ -0,0 +1,47 @@ +export enum LogLevel { + ERROR = 'ERROR', + INFO = 'INFO', + WARNING = 'WARNING', + NOTICE = 'NOTICE', + DEBUG = 'DEBUG', +} + +export enum SelectLogFieldEnum { + Context = 'context', + Backtrace = 'backtrace', +} + +export interface ILogBacktrace { + file: string + line: number + function: string + class?: string + type?: string + args?: string[] +} + +export interface ILog { + timestamp: string + level: LogLevel + message: string + context: object + backtrace: ILogBacktrace[] + select?: SelectLogFieldEnum +} + +export interface ILogFile { + name: string + url: string + created: string + modified: string + size: number +} + +export interface ILogTab { + id: string + filters: [] + activeFile?: ILogFile + files: ILogFile[] + logs: ILog[] + openLogs: number[] +} diff --git a/vite/src/utils/number.ts b/vite/src/utils/number.ts new file mode 100644 index 00000000..9f252302 --- /dev/null +++ b/vite/src/utils/number.ts @@ -0,0 +1 @@ +export const isEven = (num: number) => num % 2 === 0 diff --git a/vite/src/utils/twm.ts b/vite/src/utils/twm.ts new file mode 100644 index 00000000..76c07c57 --- /dev/null +++ b/vite/src/utils/twm.ts @@ -0,0 +1,7 @@ +import { ClassNameValue, extendTailwindMerge } from 'tailwind-merge' + +const twMerge = extendTailwindMerge({ prefix: 'bw-' }) + +export const twm = (...classLists: ClassNameValue[]): string => { + return twMerge(classLists) +} diff --git a/vite/tailwind.config.js b/vite/tailwind.config.js index d1f62a4e..394599c7 100644 --- a/vite/tailwind.config.js +++ b/vite/tailwind.config.js @@ -8,6 +8,9 @@ export default { boxShadow: { 'input-error': '0 0 0 1px #ef4444', }, + flex: { + '0-0-auto': '0 0 auto', + }, }, }, plugins: [], diff --git a/vite/vite.config.debug-page.ts b/vite/vite.config.debug-page.ts index 332bb1fc..2a305b84 100644 --- a/vite/vite.config.debug-page.ts +++ b/vite/vite.config.debug-page.ts @@ -1,14 +1,14 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react-swc' -import wpResolve from './plugins/rollup-plugin-wp-resolve' import { join } from 'path' import copy from 'rollup-plugin-copy' +import wpDependencyExtraction from 'rollup-plugin-wordpress-dependency-extraction' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ react(), - wpResolve(), + wpDependencyExtraction(), copy({ targets: [{ src: 'public/*', dest: '../assets/dist/vite' }], }), diff --git a/vite/vite.config.logs.ts b/vite/vite.config.logs.ts new file mode 100644 index 00000000..09979531 --- /dev/null +++ b/vite/vite.config.logs.ts @@ -0,0 +1,38 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' +import { join } from 'path' +import copy from 'rollup-plugin-copy' +import wpDependencyExtraction from 'rollup-plugin-wordpress-dependency-extraction' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + react(), + wpDependencyExtraction(), + copy({ + targets: [{ src: 'public/*', dest: '../assets/dist/vite' }], + }), + ], + build: { + manifest: true, + emptyOutDir: true, + copyPublicDir: false, + rollupOptions: { + input: { + 'meta-fields': 'src/admin/logs-page/main.tsx', + }, + output: { + dir: '../assets/dist/vite/logs-page', + format: 'iife', + }, + }, + }, + esbuild: { + minifyIdentifiers: false, + }, + resolve: { + alias: { + '@': join(__dirname, 'src'), + }, + }, +}) diff --git a/vite/vite.config.meta-fields.ts b/vite/vite.config.meta-fields.ts index dccfe79d..665b19ba 100644 --- a/vite/vite.config.meta-fields.ts +++ b/vite/vite.config.meta-fields.ts @@ -1,14 +1,14 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react-swc' -import wpResolve from './plugins/rollup-plugin-wp-resolve' import { join } from 'path' import copy from 'rollup-plugin-copy' +import wpDependencyExtraction from 'rollup-plugin-wordpress-dependency-extraction' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ react(), - wpResolve(), + wpDependencyExtraction(), copy({ targets: [{ src: 'public/*', dest: '../assets/dist/vite' }], }),