Commit 5397d9c9d24e249188226a252e29ef2903b296f3

Authored by zichun
1 parent ae7e90e0

feat(usr): 前端登录页 + Redux auth 切片 + 测试 REQ-USR-004

Tasks 8-10: authSlice setCredentials/clearCredentials, LoginPage 品牌选择 + 登录表单,
4/4 Vitest 测试通过(authSlice.test.ts + LoginPage.test.tsx)
frontend/index.html 0 → 100644
  1 +<!doctype html>
  2 +<html lang="zh-CN">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7 + <title>小羚羊 ERP</title>
  8 + </head>
  9 + <body>
  10 + <div id="root"></div>
  11 + <script type="module" src="/src/main.tsx"></script>
  12 + </body>
  13 +</html>
... ...
frontend/package-lock.json 0 → 100644
  1 +{
  2 + "name": "erp-frontend",
  3 + "version": "0.0.1",
  4 + "lockfileVersion": 3,
  5 + "requires": true,
  6 + "packages": {
  7 + "": {
  8 + "name": "erp-frontend",
  9 + "version": "0.0.1",
  10 + "dependencies": {
  11 + "@ant-design/icons": "^5.3.7",
  12 + "@reduxjs/toolkit": "^2.2.5",
  13 + "antd": "^5.18.0",
  14 + "axios": "^1.7.2",
  15 + "dayjs": "^1.11.11",
  16 + "react": "^18.3.1",
  17 + "react-dom": "^18.3.1",
  18 + "react-redux": "^9.1.2",
  19 + "react-router-dom": "^6.23.1"
  20 + },
  21 + "devDependencies": {
  22 + "@testing-library/jest-dom": "^6.4.6",
  23 + "@testing-library/react": "^16.0.0",
  24 + "@testing-library/user-event": "^14.5.2",
  25 + "@types/react": "^18.3.3",
  26 + "@types/react-dom": "^18.3.0",
  27 + "@vitejs/plugin-react": "^4.3.1",
  28 + "jsdom": "^24.1.0",
  29 + "typescript": "^5.4.5",
  30 + "vite": "^5.3.1",
  31 + "vitest": "^1.6.0"
  32 + }
  33 + },
  34 + "node_modules/@adobe/css-tools": {
  35 + "version": "4.4.4",
  36 + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz",
  37 + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==",
  38 + "dev": true,
  39 + "license": "MIT"
  40 + },
  41 + "node_modules/@ant-design/colors": {
  42 + "version": "7.2.1",
  43 + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz",
  44 + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==",
  45 + "license": "MIT",
  46 + "dependencies": {
  47 + "@ant-design/fast-color": "^2.0.6"
  48 + }
  49 + },
  50 + "node_modules/@ant-design/cssinjs": {
  51 + "version": "1.24.0",
  52 + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz",
  53 + "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==",
  54 + "license": "MIT",
  55 + "dependencies": {
  56 + "@babel/runtime": "^7.11.1",
  57 + "@emotion/hash": "^0.8.0",
  58 + "@emotion/unitless": "^0.7.5",
  59 + "classnames": "^2.3.1",
  60 + "csstype": "^3.1.3",
  61 + "rc-util": "^5.35.0",
  62 + "stylis": "^4.3.4"
  63 + },
  64 + "peerDependencies": {
  65 + "react": ">=16.0.0",
  66 + "react-dom": ">=16.0.0"
  67 + }
  68 + },
  69 + "node_modules/@ant-design/cssinjs-utils": {
  70 + "version": "1.1.3",
  71 + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz",
  72 + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==",
  73 + "license": "MIT",
  74 + "dependencies": {
  75 + "@ant-design/cssinjs": "^1.21.0",
  76 + "@babel/runtime": "^7.23.2",
  77 + "rc-util": "^5.38.0"
  78 + },
  79 + "peerDependencies": {
  80 + "react": ">=16.9.0",
  81 + "react-dom": ">=16.9.0"
  82 + }
  83 + },
  84 + "node_modules/@ant-design/fast-color": {
  85 + "version": "2.0.6",
  86 + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz",
  87 + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==",
  88 + "license": "MIT",
  89 + "dependencies": {
  90 + "@babel/runtime": "^7.24.7"
  91 + },
  92 + "engines": {
  93 + "node": ">=8.x"
  94 + }
  95 + },
  96 + "node_modules/@ant-design/icons": {
  97 + "version": "5.6.1",
  98 + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz",
  99 + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==",
  100 + "license": "MIT",
  101 + "dependencies": {
  102 + "@ant-design/colors": "^7.0.0",
  103 + "@ant-design/icons-svg": "^4.4.0",
  104 + "@babel/runtime": "^7.24.8",
  105 + "classnames": "^2.2.6",
  106 + "rc-util": "^5.31.1"
  107 + },
  108 + "engines": {
  109 + "node": ">=8"
  110 + },
  111 + "peerDependencies": {
  112 + "react": ">=16.0.0",
  113 + "react-dom": ">=16.0.0"
  114 + }
  115 + },
  116 + "node_modules/@ant-design/icons-svg": {
  117 + "version": "4.4.2",
  118 + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
  119 + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
  120 + "license": "MIT"
  121 + },
  122 + "node_modules/@ant-design/react-slick": {
  123 + "version": "1.1.2",
  124 + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz",
  125 + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==",
  126 + "license": "MIT",
  127 + "dependencies": {
  128 + "@babel/runtime": "^7.10.4",
  129 + "classnames": "^2.2.5",
  130 + "json2mq": "^0.2.0",
  131 + "resize-observer-polyfill": "^1.5.1",
  132 + "throttle-debounce": "^5.0.0"
  133 + },
  134 + "peerDependencies": {
  135 + "react": ">=16.9.0"
  136 + }
  137 + },
  138 + "node_modules/@asamuzakjp/css-color": {
  139 + "version": "3.2.0",
  140 + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
  141 + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
  142 + "dev": true,
  143 + "license": "MIT",
  144 + "dependencies": {
  145 + "@csstools/css-calc": "^2.1.3",
  146 + "@csstools/css-color-parser": "^3.0.9",
  147 + "@csstools/css-parser-algorithms": "^3.0.4",
  148 + "@csstools/css-tokenizer": "^3.0.3",
  149 + "lru-cache": "^10.4.3"
  150 + }
  151 + },
  152 + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
  153 + "version": "10.4.3",
  154 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
  155 + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
  156 + "dev": true,
  157 + "license": "ISC"
  158 + },
  159 + "node_modules/@babel/code-frame": {
  160 + "version": "7.29.0",
  161 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
  162 + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
  163 + "dev": true,
  164 + "license": "MIT",
  165 + "dependencies": {
  166 + "@babel/helper-validator-identifier": "^7.28.5",
  167 + "js-tokens": "^4.0.0",
  168 + "picocolors": "^1.1.1"
  169 + },
  170 + "engines": {
  171 + "node": ">=6.9.0"
  172 + }
  173 + },
  174 + "node_modules/@babel/compat-data": {
  175 + "version": "7.29.3",
  176 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz",
  177 + "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==",
  178 + "dev": true,
  179 + "license": "MIT",
  180 + "engines": {
  181 + "node": ">=6.9.0"
  182 + }
  183 + },
  184 + "node_modules/@babel/core": {
  185 + "version": "7.29.0",
  186 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
  187 + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
  188 + "dev": true,
  189 + "license": "MIT",
  190 + "dependencies": {
  191 + "@babel/code-frame": "^7.29.0",
  192 + "@babel/generator": "^7.29.0",
  193 + "@babel/helper-compilation-targets": "^7.28.6",
  194 + "@babel/helper-module-transforms": "^7.28.6",
  195 + "@babel/helpers": "^7.28.6",
  196 + "@babel/parser": "^7.29.0",
  197 + "@babel/template": "^7.28.6",
  198 + "@babel/traverse": "^7.29.0",
  199 + "@babel/types": "^7.29.0",
  200 + "@jridgewell/remapping": "^2.3.5",
  201 + "convert-source-map": "^2.0.0",
  202 + "debug": "^4.1.0",
  203 + "gensync": "^1.0.0-beta.2",
  204 + "json5": "^2.2.3",
  205 + "semver": "^6.3.1"
  206 + },
  207 + "engines": {
  208 + "node": ">=6.9.0"
  209 + },
  210 + "funding": {
  211 + "type": "opencollective",
  212 + "url": "https://opencollective.com/babel"
  213 + }
  214 + },
  215 + "node_modules/@babel/generator": {
  216 + "version": "7.29.1",
  217 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
  218 + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
  219 + "dev": true,
  220 + "license": "MIT",
  221 + "dependencies": {
  222 + "@babel/parser": "^7.29.0",
  223 + "@babel/types": "^7.29.0",
  224 + "@jridgewell/gen-mapping": "^0.3.12",
  225 + "@jridgewell/trace-mapping": "^0.3.28",
  226 + "jsesc": "^3.0.2"
  227 + },
  228 + "engines": {
  229 + "node": ">=6.9.0"
  230 + }
  231 + },
  232 + "node_modules/@babel/helper-compilation-targets": {
  233 + "version": "7.28.6",
  234 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
  235 + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
  236 + "dev": true,
  237 + "license": "MIT",
  238 + "dependencies": {
  239 + "@babel/compat-data": "^7.28.6",
  240 + "@babel/helper-validator-option": "^7.27.1",
  241 + "browserslist": "^4.24.0",
  242 + "lru-cache": "^5.1.1",
  243 + "semver": "^6.3.1"
  244 + },
  245 + "engines": {
  246 + "node": ">=6.9.0"
  247 + }
  248 + },
  249 + "node_modules/@babel/helper-globals": {
  250 + "version": "7.28.0",
  251 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
  252 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
  253 + "dev": true,
  254 + "license": "MIT",
  255 + "engines": {
  256 + "node": ">=6.9.0"
  257 + }
  258 + },
  259 + "node_modules/@babel/helper-module-imports": {
  260 + "version": "7.28.6",
  261 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
  262 + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
  263 + "dev": true,
  264 + "license": "MIT",
  265 + "dependencies": {
  266 + "@babel/traverse": "^7.28.6",
  267 + "@babel/types": "^7.28.6"
  268 + },
  269 + "engines": {
  270 + "node": ">=6.9.0"
  271 + }
  272 + },
  273 + "node_modules/@babel/helper-module-transforms": {
  274 + "version": "7.28.6",
  275 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
  276 + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
  277 + "dev": true,
  278 + "license": "MIT",
  279 + "dependencies": {
  280 + "@babel/helper-module-imports": "^7.28.6",
  281 + "@babel/helper-validator-identifier": "^7.28.5",
  282 + "@babel/traverse": "^7.28.6"
  283 + },
  284 + "engines": {
  285 + "node": ">=6.9.0"
  286 + },
  287 + "peerDependencies": {
  288 + "@babel/core": "^7.0.0"
  289 + }
  290 + },
  291 + "node_modules/@babel/helper-plugin-utils": {
  292 + "version": "7.28.6",
  293 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
  294 + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
  295 + "dev": true,
  296 + "license": "MIT",
  297 + "engines": {
  298 + "node": ">=6.9.0"
  299 + }
  300 + },
  301 + "node_modules/@babel/helper-string-parser": {
  302 + "version": "7.27.1",
  303 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
  304 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
  305 + "dev": true,
  306 + "license": "MIT",
  307 + "engines": {
  308 + "node": ">=6.9.0"
  309 + }
  310 + },
  311 + "node_modules/@babel/helper-validator-identifier": {
  312 + "version": "7.28.5",
  313 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
  314 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
  315 + "dev": true,
  316 + "license": "MIT",
  317 + "engines": {
  318 + "node": ">=6.9.0"
  319 + }
  320 + },
  321 + "node_modules/@babel/helper-validator-option": {
  322 + "version": "7.27.1",
  323 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
  324 + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
  325 + "dev": true,
  326 + "license": "MIT",
  327 + "engines": {
  328 + "node": ">=6.9.0"
  329 + }
  330 + },
  331 + "node_modules/@babel/helpers": {
  332 + "version": "7.29.2",
  333 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
  334 + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
  335 + "dev": true,
  336 + "license": "MIT",
  337 + "dependencies": {
  338 + "@babel/template": "^7.28.6",
  339 + "@babel/types": "^7.29.0"
  340 + },
  341 + "engines": {
  342 + "node": ">=6.9.0"
  343 + }
  344 + },
  345 + "node_modules/@babel/parser": {
  346 + "version": "7.29.3",
  347 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
  348 + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
  349 + "dev": true,
  350 + "license": "MIT",
  351 + "dependencies": {
  352 + "@babel/types": "^7.29.0"
  353 + },
  354 + "bin": {
  355 + "parser": "bin/babel-parser.js"
  356 + },
  357 + "engines": {
  358 + "node": ">=6.0.0"
  359 + }
  360 + },
  361 + "node_modules/@babel/plugin-transform-react-jsx-self": {
  362 + "version": "7.27.1",
  363 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
  364 + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
  365 + "dev": true,
  366 + "license": "MIT",
  367 + "dependencies": {
  368 + "@babel/helper-plugin-utils": "^7.27.1"
  369 + },
  370 + "engines": {
  371 + "node": ">=6.9.0"
  372 + },
  373 + "peerDependencies": {
  374 + "@babel/core": "^7.0.0-0"
  375 + }
  376 + },
  377 + "node_modules/@babel/plugin-transform-react-jsx-source": {
  378 + "version": "7.27.1",
  379 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
  380 + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
  381 + "dev": true,
  382 + "license": "MIT",
  383 + "dependencies": {
  384 + "@babel/helper-plugin-utils": "^7.27.1"
  385 + },
  386 + "engines": {
  387 + "node": ">=6.9.0"
  388 + },
  389 + "peerDependencies": {
  390 + "@babel/core": "^7.0.0-0"
  391 + }
  392 + },
  393 + "node_modules/@babel/runtime": {
  394 + "version": "7.29.2",
  395 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
  396 + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
  397 + "license": "MIT",
  398 + "engines": {
  399 + "node": ">=6.9.0"
  400 + }
  401 + },
  402 + "node_modules/@babel/template": {
  403 + "version": "7.28.6",
  404 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
  405 + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
  406 + "dev": true,
  407 + "license": "MIT",
  408 + "dependencies": {
  409 + "@babel/code-frame": "^7.28.6",
  410 + "@babel/parser": "^7.28.6",
  411 + "@babel/types": "^7.28.6"
  412 + },
  413 + "engines": {
  414 + "node": ">=6.9.0"
  415 + }
  416 + },
  417 + "node_modules/@babel/traverse": {
  418 + "version": "7.29.0",
  419 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
  420 + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
  421 + "dev": true,
  422 + "license": "MIT",
  423 + "dependencies": {
  424 + "@babel/code-frame": "^7.29.0",
  425 + "@babel/generator": "^7.29.0",
  426 + "@babel/helper-globals": "^7.28.0",
  427 + "@babel/parser": "^7.29.0",
  428 + "@babel/template": "^7.28.6",
  429 + "@babel/types": "^7.29.0",
  430 + "debug": "^4.3.1"
  431 + },
  432 + "engines": {
  433 + "node": ">=6.9.0"
  434 + }
  435 + },
  436 + "node_modules/@babel/types": {
  437 + "version": "7.29.0",
  438 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
  439 + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
  440 + "dev": true,
  441 + "license": "MIT",
  442 + "dependencies": {
  443 + "@babel/helper-string-parser": "^7.27.1",
  444 + "@babel/helper-validator-identifier": "^7.28.5"
  445 + },
  446 + "engines": {
  447 + "node": ">=6.9.0"
  448 + }
  449 + },
  450 + "node_modules/@csstools/color-helpers": {
  451 + "version": "5.1.0",
  452 + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
  453 + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
  454 + "dev": true,
  455 + "funding": [
  456 + {
  457 + "type": "github",
  458 + "url": "https://github.com/sponsors/csstools"
  459 + },
  460 + {
  461 + "type": "opencollective",
  462 + "url": "https://opencollective.com/csstools"
  463 + }
  464 + ],
  465 + "license": "MIT-0",
  466 + "engines": {
  467 + "node": ">=18"
  468 + }
  469 + },
  470 + "node_modules/@csstools/css-calc": {
  471 + "version": "2.1.4",
  472 + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
  473 + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
  474 + "dev": true,
  475 + "funding": [
  476 + {
  477 + "type": "github",
  478 + "url": "https://github.com/sponsors/csstools"
  479 + },
  480 + {
  481 + "type": "opencollective",
  482 + "url": "https://opencollective.com/csstools"
  483 + }
  484 + ],
  485 + "license": "MIT",
  486 + "engines": {
  487 + "node": ">=18"
  488 + },
  489 + "peerDependencies": {
  490 + "@csstools/css-parser-algorithms": "^3.0.5",
  491 + "@csstools/css-tokenizer": "^3.0.4"
  492 + }
  493 + },
  494 + "node_modules/@csstools/css-color-parser": {
  495 + "version": "3.1.0",
  496 + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
  497 + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
  498 + "dev": true,
  499 + "funding": [
  500 + {
  501 + "type": "github",
  502 + "url": "https://github.com/sponsors/csstools"
  503 + },
  504 + {
  505 + "type": "opencollective",
  506 + "url": "https://opencollective.com/csstools"
  507 + }
  508 + ],
  509 + "license": "MIT",
  510 + "dependencies": {
  511 + "@csstools/color-helpers": "^5.1.0",
  512 + "@csstools/css-calc": "^2.1.4"
  513 + },
  514 + "engines": {
  515 + "node": ">=18"
  516 + },
  517 + "peerDependencies": {
  518 + "@csstools/css-parser-algorithms": "^3.0.5",
  519 + "@csstools/css-tokenizer": "^3.0.4"
  520 + }
  521 + },
  522 + "node_modules/@csstools/css-parser-algorithms": {
  523 + "version": "3.0.5",
  524 + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
  525 + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
  526 + "dev": true,
  527 + "funding": [
  528 + {
  529 + "type": "github",
  530 + "url": "https://github.com/sponsors/csstools"
  531 + },
  532 + {
  533 + "type": "opencollective",
  534 + "url": "https://opencollective.com/csstools"
  535 + }
  536 + ],
  537 + "license": "MIT",
  538 + "engines": {
  539 + "node": ">=18"
  540 + },
  541 + "peerDependencies": {
  542 + "@csstools/css-tokenizer": "^3.0.4"
  543 + }
  544 + },
  545 + "node_modules/@csstools/css-tokenizer": {
  546 + "version": "3.0.4",
  547 + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
  548 + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
  549 + "dev": true,
  550 + "funding": [
  551 + {
  552 + "type": "github",
  553 + "url": "https://github.com/sponsors/csstools"
  554 + },
  555 + {
  556 + "type": "opencollective",
  557 + "url": "https://opencollective.com/csstools"
  558 + }
  559 + ],
  560 + "license": "MIT",
  561 + "engines": {
  562 + "node": ">=18"
  563 + }
  564 + },
  565 + "node_modules/@emotion/hash": {
  566 + "version": "0.8.0",
  567 + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
  568 + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
  569 + "license": "MIT"
  570 + },
  571 + "node_modules/@emotion/unitless": {
  572 + "version": "0.7.5",
  573 + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
  574 + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==",
  575 + "license": "MIT"
  576 + },
  577 + "node_modules/@esbuild/aix-ppc64": {
  578 + "version": "0.21.5",
  579 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
  580 + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
  581 + "cpu": [
  582 + "ppc64"
  583 + ],
  584 + "dev": true,
  585 + "license": "MIT",
  586 + "optional": true,
  587 + "os": [
  588 + "aix"
  589 + ],
  590 + "engines": {
  591 + "node": ">=12"
  592 + }
  593 + },
  594 + "node_modules/@esbuild/android-arm": {
  595 + "version": "0.21.5",
  596 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
  597 + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
  598 + "cpu": [
  599 + "arm"
  600 + ],
  601 + "dev": true,
  602 + "license": "MIT",
  603 + "optional": true,
  604 + "os": [
  605 + "android"
  606 + ],
  607 + "engines": {
  608 + "node": ">=12"
  609 + }
  610 + },
  611 + "node_modules/@esbuild/android-arm64": {
  612 + "version": "0.21.5",
  613 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
  614 + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
  615 + "cpu": [
  616 + "arm64"
  617 + ],
  618 + "dev": true,
  619 + "license": "MIT",
  620 + "optional": true,
  621 + "os": [
  622 + "android"
  623 + ],
  624 + "engines": {
  625 + "node": ">=12"
  626 + }
  627 + },
  628 + "node_modules/@esbuild/android-x64": {
  629 + "version": "0.21.5",
  630 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
  631 + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
  632 + "cpu": [
  633 + "x64"
  634 + ],
  635 + "dev": true,
  636 + "license": "MIT",
  637 + "optional": true,
  638 + "os": [
  639 + "android"
  640 + ],
  641 + "engines": {
  642 + "node": ">=12"
  643 + }
  644 + },
  645 + "node_modules/@esbuild/darwin-arm64": {
  646 + "version": "0.21.5",
  647 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
  648 + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
  649 + "cpu": [
  650 + "arm64"
  651 + ],
  652 + "dev": true,
  653 + "license": "MIT",
  654 + "optional": true,
  655 + "os": [
  656 + "darwin"
  657 + ],
  658 + "engines": {
  659 + "node": ">=12"
  660 + }
  661 + },
  662 + "node_modules/@esbuild/darwin-x64": {
  663 + "version": "0.21.5",
  664 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
  665 + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
  666 + "cpu": [
  667 + "x64"
  668 + ],
  669 + "dev": true,
  670 + "license": "MIT",
  671 + "optional": true,
  672 + "os": [
  673 + "darwin"
  674 + ],
  675 + "engines": {
  676 + "node": ">=12"
  677 + }
  678 + },
  679 + "node_modules/@esbuild/freebsd-arm64": {
  680 + "version": "0.21.5",
  681 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
  682 + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
  683 + "cpu": [
  684 + "arm64"
  685 + ],
  686 + "dev": true,
  687 + "license": "MIT",
  688 + "optional": true,
  689 + "os": [
  690 + "freebsd"
  691 + ],
  692 + "engines": {
  693 + "node": ">=12"
  694 + }
  695 + },
  696 + "node_modules/@esbuild/freebsd-x64": {
  697 + "version": "0.21.5",
  698 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
  699 + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
  700 + "cpu": [
  701 + "x64"
  702 + ],
  703 + "dev": true,
  704 + "license": "MIT",
  705 + "optional": true,
  706 + "os": [
  707 + "freebsd"
  708 + ],
  709 + "engines": {
  710 + "node": ">=12"
  711 + }
  712 + },
  713 + "node_modules/@esbuild/linux-arm": {
  714 + "version": "0.21.5",
  715 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
  716 + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
  717 + "cpu": [
  718 + "arm"
  719 + ],
  720 + "dev": true,
  721 + "license": "MIT",
  722 + "optional": true,
  723 + "os": [
  724 + "linux"
  725 + ],
  726 + "engines": {
  727 + "node": ">=12"
  728 + }
  729 + },
  730 + "node_modules/@esbuild/linux-arm64": {
  731 + "version": "0.21.5",
  732 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
  733 + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
  734 + "cpu": [
  735 + "arm64"
  736 + ],
  737 + "dev": true,
  738 + "license": "MIT",
  739 + "optional": true,
  740 + "os": [
  741 + "linux"
  742 + ],
  743 + "engines": {
  744 + "node": ">=12"
  745 + }
  746 + },
  747 + "node_modules/@esbuild/linux-ia32": {
  748 + "version": "0.21.5",
  749 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
  750 + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
  751 + "cpu": [
  752 + "ia32"
  753 + ],
  754 + "dev": true,
  755 + "license": "MIT",
  756 + "optional": true,
  757 + "os": [
  758 + "linux"
  759 + ],
  760 + "engines": {
  761 + "node": ">=12"
  762 + }
  763 + },
  764 + "node_modules/@esbuild/linux-loong64": {
  765 + "version": "0.21.5",
  766 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
  767 + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
  768 + "cpu": [
  769 + "loong64"
  770 + ],
  771 + "dev": true,
  772 + "license": "MIT",
  773 + "optional": true,
  774 + "os": [
  775 + "linux"
  776 + ],
  777 + "engines": {
  778 + "node": ">=12"
  779 + }
  780 + },
  781 + "node_modules/@esbuild/linux-mips64el": {
  782 + "version": "0.21.5",
  783 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
  784 + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
  785 + "cpu": [
  786 + "mips64el"
  787 + ],
  788 + "dev": true,
  789 + "license": "MIT",
  790 + "optional": true,
  791 + "os": [
  792 + "linux"
  793 + ],
  794 + "engines": {
  795 + "node": ">=12"
  796 + }
  797 + },
  798 + "node_modules/@esbuild/linux-ppc64": {
  799 + "version": "0.21.5",
  800 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
  801 + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
  802 + "cpu": [
  803 + "ppc64"
  804 + ],
  805 + "dev": true,
  806 + "license": "MIT",
  807 + "optional": true,
  808 + "os": [
  809 + "linux"
  810 + ],
  811 + "engines": {
  812 + "node": ">=12"
  813 + }
  814 + },
  815 + "node_modules/@esbuild/linux-riscv64": {
  816 + "version": "0.21.5",
  817 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
  818 + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
  819 + "cpu": [
  820 + "riscv64"
  821 + ],
  822 + "dev": true,
  823 + "license": "MIT",
  824 + "optional": true,
  825 + "os": [
  826 + "linux"
  827 + ],
  828 + "engines": {
  829 + "node": ">=12"
  830 + }
  831 + },
  832 + "node_modules/@esbuild/linux-s390x": {
  833 + "version": "0.21.5",
  834 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
  835 + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
  836 + "cpu": [
  837 + "s390x"
  838 + ],
  839 + "dev": true,
  840 + "license": "MIT",
  841 + "optional": true,
  842 + "os": [
  843 + "linux"
  844 + ],
  845 + "engines": {
  846 + "node": ">=12"
  847 + }
  848 + },
  849 + "node_modules/@esbuild/linux-x64": {
  850 + "version": "0.21.5",
  851 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
  852 + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
  853 + "cpu": [
  854 + "x64"
  855 + ],
  856 + "dev": true,
  857 + "license": "MIT",
  858 + "optional": true,
  859 + "os": [
  860 + "linux"
  861 + ],
  862 + "engines": {
  863 + "node": ">=12"
  864 + }
  865 + },
  866 + "node_modules/@esbuild/netbsd-x64": {
  867 + "version": "0.21.5",
  868 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
  869 + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
  870 + "cpu": [
  871 + "x64"
  872 + ],
  873 + "dev": true,
  874 + "license": "MIT",
  875 + "optional": true,
  876 + "os": [
  877 + "netbsd"
  878 + ],
  879 + "engines": {
  880 + "node": ">=12"
  881 + }
  882 + },
  883 + "node_modules/@esbuild/openbsd-x64": {
  884 + "version": "0.21.5",
  885 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
  886 + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
  887 + "cpu": [
  888 + "x64"
  889 + ],
  890 + "dev": true,
  891 + "license": "MIT",
  892 + "optional": true,
  893 + "os": [
  894 + "openbsd"
  895 + ],
  896 + "engines": {
  897 + "node": ">=12"
  898 + }
  899 + },
  900 + "node_modules/@esbuild/sunos-x64": {
  901 + "version": "0.21.5",
  902 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
  903 + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
  904 + "cpu": [
  905 + "x64"
  906 + ],
  907 + "dev": true,
  908 + "license": "MIT",
  909 + "optional": true,
  910 + "os": [
  911 + "sunos"
  912 + ],
  913 + "engines": {
  914 + "node": ">=12"
  915 + }
  916 + },
  917 + "node_modules/@esbuild/win32-arm64": {
  918 + "version": "0.21.5",
  919 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
  920 + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
  921 + "cpu": [
  922 + "arm64"
  923 + ],
  924 + "dev": true,
  925 + "license": "MIT",
  926 + "optional": true,
  927 + "os": [
  928 + "win32"
  929 + ],
  930 + "engines": {
  931 + "node": ">=12"
  932 + }
  933 + },
  934 + "node_modules/@esbuild/win32-ia32": {
  935 + "version": "0.21.5",
  936 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
  937 + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
  938 + "cpu": [
  939 + "ia32"
  940 + ],
  941 + "dev": true,
  942 + "license": "MIT",
  943 + "optional": true,
  944 + "os": [
  945 + "win32"
  946 + ],
  947 + "engines": {
  948 + "node": ">=12"
  949 + }
  950 + },
  951 + "node_modules/@esbuild/win32-x64": {
  952 + "version": "0.21.5",
  953 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
  954 + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
  955 + "cpu": [
  956 + "x64"
  957 + ],
  958 + "dev": true,
  959 + "license": "MIT",
  960 + "optional": true,
  961 + "os": [
  962 + "win32"
  963 + ],
  964 + "engines": {
  965 + "node": ">=12"
  966 + }
  967 + },
  968 + "node_modules/@jest/schemas": {
  969 + "version": "29.6.3",
  970 + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
  971 + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
  972 + "dev": true,
  973 + "license": "MIT",
  974 + "dependencies": {
  975 + "@sinclair/typebox": "^0.27.8"
  976 + },
  977 + "engines": {
  978 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
  979 + }
  980 + },
  981 + "node_modules/@jridgewell/gen-mapping": {
  982 + "version": "0.3.13",
  983 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
  984 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
  985 + "dev": true,
  986 + "license": "MIT",
  987 + "dependencies": {
  988 + "@jridgewell/sourcemap-codec": "^1.5.0",
  989 + "@jridgewell/trace-mapping": "^0.3.24"
  990 + }
  991 + },
  992 + "node_modules/@jridgewell/remapping": {
  993 + "version": "2.3.5",
  994 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
  995 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
  996 + "dev": true,
  997 + "license": "MIT",
  998 + "dependencies": {
  999 + "@jridgewell/gen-mapping": "^0.3.5",
  1000 + "@jridgewell/trace-mapping": "^0.3.24"
  1001 + }
  1002 + },
  1003 + "node_modules/@jridgewell/resolve-uri": {
  1004 + "version": "3.1.2",
  1005 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
  1006 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
  1007 + "dev": true,
  1008 + "license": "MIT",
  1009 + "engines": {
  1010 + "node": ">=6.0.0"
  1011 + }
  1012 + },
  1013 + "node_modules/@jridgewell/sourcemap-codec": {
  1014 + "version": "1.5.5",
  1015 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
  1016 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
  1017 + "dev": true,
  1018 + "license": "MIT"
  1019 + },
  1020 + "node_modules/@jridgewell/trace-mapping": {
  1021 + "version": "0.3.31",
  1022 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
  1023 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
  1024 + "dev": true,
  1025 + "license": "MIT",
  1026 + "dependencies": {
  1027 + "@jridgewell/resolve-uri": "^3.1.0",
  1028 + "@jridgewell/sourcemap-codec": "^1.4.14"
  1029 + }
  1030 + },
  1031 + "node_modules/@rc-component/async-validator": {
  1032 + "version": "5.1.0",
  1033 + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.1.0.tgz",
  1034 + "integrity": "sha512-n4HcR5siNUXRX23nDizbZBQPO0ZM/5oTtmKZ6/eqL0L2bo747cklFdZGRN2f+c9qWGICwDzrhW0H7tE9PptdcA==",
  1035 + "license": "MIT",
  1036 + "dependencies": {
  1037 + "@babel/runtime": "^7.24.4"
  1038 + },
  1039 + "engines": {
  1040 + "node": ">=14.x"
  1041 + }
  1042 + },
  1043 + "node_modules/@rc-component/color-picker": {
  1044 + "version": "2.0.1",
  1045 + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz",
  1046 + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==",
  1047 + "license": "MIT",
  1048 + "dependencies": {
  1049 + "@ant-design/fast-color": "^2.0.6",
  1050 + "@babel/runtime": "^7.23.6",
  1051 + "classnames": "^2.2.6",
  1052 + "rc-util": "^5.38.1"
  1053 + },
  1054 + "peerDependencies": {
  1055 + "react": ">=16.9.0",
  1056 + "react-dom": ">=16.9.0"
  1057 + }
  1058 + },
  1059 + "node_modules/@rc-component/context": {
  1060 + "version": "1.4.0",
  1061 + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz",
  1062 + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==",
  1063 + "license": "MIT",
  1064 + "dependencies": {
  1065 + "@babel/runtime": "^7.10.1",
  1066 + "rc-util": "^5.27.0"
  1067 + },
  1068 + "peerDependencies": {
  1069 + "react": ">=16.9.0",
  1070 + "react-dom": ">=16.9.0"
  1071 + }
  1072 + },
  1073 + "node_modules/@rc-component/mini-decimal": {
  1074 + "version": "1.1.3",
  1075 + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.3.tgz",
  1076 + "integrity": "sha512-bk/FJ09fLf+NLODMAFll6CfYrHPBioTedhW6lxDBuuWucJEqFUd4l/D/5JgIi3dina6sYahB8iuPAZTNz2pMxw==",
  1077 + "license": "MIT",
  1078 + "dependencies": {
  1079 + "@babel/runtime": "^7.18.0"
  1080 + },
  1081 + "engines": {
  1082 + "node": ">=8.x"
  1083 + }
  1084 + },
  1085 + "node_modules/@rc-component/mutate-observer": {
  1086 + "version": "1.1.0",
  1087 + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz",
  1088 + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==",
  1089 + "license": "MIT",
  1090 + "dependencies": {
  1091 + "@babel/runtime": "^7.18.0",
  1092 + "classnames": "^2.3.2",
  1093 + "rc-util": "^5.24.4"
  1094 + },
  1095 + "engines": {
  1096 + "node": ">=8.x"
  1097 + },
  1098 + "peerDependencies": {
  1099 + "react": ">=16.9.0",
  1100 + "react-dom": ">=16.9.0"
  1101 + }
  1102 + },
  1103 + "node_modules/@rc-component/portal": {
  1104 + "version": "1.1.2",
  1105 + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz",
  1106 + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==",
  1107 + "license": "MIT",
  1108 + "dependencies": {
  1109 + "@babel/runtime": "^7.18.0",
  1110 + "classnames": "^2.3.2",
  1111 + "rc-util": "^5.24.4"
  1112 + },
  1113 + "engines": {
  1114 + "node": ">=8.x"
  1115 + },
  1116 + "peerDependencies": {
  1117 + "react": ">=16.9.0",
  1118 + "react-dom": ">=16.9.0"
  1119 + }
  1120 + },
  1121 + "node_modules/@rc-component/qrcode": {
  1122 + "version": "1.1.1",
  1123 + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.1.tgz",
  1124 + "integrity": "sha512-LfLGNymzKdUPjXUbRP+xOhIWY4jQ+YMj5MmWAcgcAq1Ij8XP7tRmAXqyuv96XvLUBE/5cA8hLFl9eO1JQMujrA==",
  1125 + "license": "MIT",
  1126 + "dependencies": {
  1127 + "@babel/runtime": "^7.24.7"
  1128 + },
  1129 + "engines": {
  1130 + "node": ">=8.x"
  1131 + },
  1132 + "peerDependencies": {
  1133 + "react": ">=16.9.0",
  1134 + "react-dom": ">=16.9.0"
  1135 + }
  1136 + },
  1137 + "node_modules/@rc-component/tour": {
  1138 + "version": "1.15.1",
  1139 + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz",
  1140 + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==",
  1141 + "license": "MIT",
  1142 + "dependencies": {
  1143 + "@babel/runtime": "^7.18.0",
  1144 + "@rc-component/portal": "^1.0.0-9",
  1145 + "@rc-component/trigger": "^2.0.0",
  1146 + "classnames": "^2.3.2",
  1147 + "rc-util": "^5.24.4"
  1148 + },
  1149 + "engines": {
  1150 + "node": ">=8.x"
  1151 + },
  1152 + "peerDependencies": {
  1153 + "react": ">=16.9.0",
  1154 + "react-dom": ">=16.9.0"
  1155 + }
  1156 + },
  1157 + "node_modules/@rc-component/trigger": {
  1158 + "version": "2.3.1",
  1159 + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz",
  1160 + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==",
  1161 + "license": "MIT",
  1162 + "dependencies": {
  1163 + "@babel/runtime": "^7.23.2",
  1164 + "@rc-component/portal": "^1.1.0",
  1165 + "classnames": "^2.3.2",
  1166 + "rc-motion": "^2.0.0",
  1167 + "rc-resize-observer": "^1.3.1",
  1168 + "rc-util": "^5.44.0"
  1169 + },
  1170 + "engines": {
  1171 + "node": ">=8.x"
  1172 + },
  1173 + "peerDependencies": {
  1174 + "react": ">=16.9.0",
  1175 + "react-dom": ">=16.9.0"
  1176 + }
  1177 + },
  1178 + "node_modules/@reduxjs/toolkit": {
  1179 + "version": "2.11.2",
  1180 + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
  1181 + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
  1182 + "license": "MIT",
  1183 + "dependencies": {
  1184 + "@standard-schema/spec": "^1.0.0",
  1185 + "@standard-schema/utils": "^0.3.0",
  1186 + "immer": "^11.0.0",
  1187 + "redux": "^5.0.1",
  1188 + "redux-thunk": "^3.1.0",
  1189 + "reselect": "^5.1.0"
  1190 + },
  1191 + "peerDependencies": {
  1192 + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
  1193 + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
  1194 + },
  1195 + "peerDependenciesMeta": {
  1196 + "react": {
  1197 + "optional": true
  1198 + },
  1199 + "react-redux": {
  1200 + "optional": true
  1201 + }
  1202 + }
  1203 + },
  1204 + "node_modules/@remix-run/router": {
  1205 + "version": "1.23.2",
  1206 + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz",
  1207 + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==",
  1208 + "license": "MIT",
  1209 + "engines": {
  1210 + "node": ">=14.0.0"
  1211 + }
  1212 + },
  1213 + "node_modules/@rolldown/pluginutils": {
  1214 + "version": "1.0.0-beta.27",
  1215 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
  1216 + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
  1217 + "dev": true,
  1218 + "license": "MIT"
  1219 + },
  1220 + "node_modules/@rollup/rollup-android-arm-eabi": {
  1221 + "version": "4.60.3",
  1222 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.3.tgz",
  1223 + "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==",
  1224 + "cpu": [
  1225 + "arm"
  1226 + ],
  1227 + "dev": true,
  1228 + "license": "MIT",
  1229 + "optional": true,
  1230 + "os": [
  1231 + "android"
  1232 + ]
  1233 + },
  1234 + "node_modules/@rollup/rollup-android-arm64": {
  1235 + "version": "4.60.3",
  1236 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.3.tgz",
  1237 + "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==",
  1238 + "cpu": [
  1239 + "arm64"
  1240 + ],
  1241 + "dev": true,
  1242 + "license": "MIT",
  1243 + "optional": true,
  1244 + "os": [
  1245 + "android"
  1246 + ]
  1247 + },
  1248 + "node_modules/@rollup/rollup-darwin-arm64": {
  1249 + "version": "4.60.3",
  1250 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.3.tgz",
  1251 + "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==",
  1252 + "cpu": [
  1253 + "arm64"
  1254 + ],
  1255 + "dev": true,
  1256 + "license": "MIT",
  1257 + "optional": true,
  1258 + "os": [
  1259 + "darwin"
  1260 + ]
  1261 + },
  1262 + "node_modules/@rollup/rollup-darwin-x64": {
  1263 + "version": "4.60.3",
  1264 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.3.tgz",
  1265 + "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==",
  1266 + "cpu": [
  1267 + "x64"
  1268 + ],
  1269 + "dev": true,
  1270 + "license": "MIT",
  1271 + "optional": true,
  1272 + "os": [
  1273 + "darwin"
  1274 + ]
  1275 + },
  1276 + "node_modules/@rollup/rollup-freebsd-arm64": {
  1277 + "version": "4.60.3",
  1278 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.3.tgz",
  1279 + "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==",
  1280 + "cpu": [
  1281 + "arm64"
  1282 + ],
  1283 + "dev": true,
  1284 + "license": "MIT",
  1285 + "optional": true,
  1286 + "os": [
  1287 + "freebsd"
  1288 + ]
  1289 + },
  1290 + "node_modules/@rollup/rollup-freebsd-x64": {
  1291 + "version": "4.60.3",
  1292 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.3.tgz",
  1293 + "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==",
  1294 + "cpu": [
  1295 + "x64"
  1296 + ],
  1297 + "dev": true,
  1298 + "license": "MIT",
  1299 + "optional": true,
  1300 + "os": [
  1301 + "freebsd"
  1302 + ]
  1303 + },
  1304 + "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
  1305 + "version": "4.60.3",
  1306 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.3.tgz",
  1307 + "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==",
  1308 + "cpu": [
  1309 + "arm"
  1310 + ],
  1311 + "dev": true,
  1312 + "libc": [
  1313 + "glibc"
  1314 + ],
  1315 + "license": "MIT",
  1316 + "optional": true,
  1317 + "os": [
  1318 + "linux"
  1319 + ]
  1320 + },
  1321 + "node_modules/@rollup/rollup-linux-arm-musleabihf": {
  1322 + "version": "4.60.3",
  1323 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.3.tgz",
  1324 + "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==",
  1325 + "cpu": [
  1326 + "arm"
  1327 + ],
  1328 + "dev": true,
  1329 + "libc": [
  1330 + "musl"
  1331 + ],
  1332 + "license": "MIT",
  1333 + "optional": true,
  1334 + "os": [
  1335 + "linux"
  1336 + ]
  1337 + },
  1338 + "node_modules/@rollup/rollup-linux-arm64-gnu": {
  1339 + "version": "4.60.3",
  1340 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.3.tgz",
  1341 + "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==",
  1342 + "cpu": [
  1343 + "arm64"
  1344 + ],
  1345 + "dev": true,
  1346 + "libc": [
  1347 + "glibc"
  1348 + ],
  1349 + "license": "MIT",
  1350 + "optional": true,
  1351 + "os": [
  1352 + "linux"
  1353 + ]
  1354 + },
  1355 + "node_modules/@rollup/rollup-linux-arm64-musl": {
  1356 + "version": "4.60.3",
  1357 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.3.tgz",
  1358 + "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==",
  1359 + "cpu": [
  1360 + "arm64"
  1361 + ],
  1362 + "dev": true,
  1363 + "libc": [
  1364 + "musl"
  1365 + ],
  1366 + "license": "MIT",
  1367 + "optional": true,
  1368 + "os": [
  1369 + "linux"
  1370 + ]
  1371 + },
  1372 + "node_modules/@rollup/rollup-linux-loong64-gnu": {
  1373 + "version": "4.60.3",
  1374 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.3.tgz",
  1375 + "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==",
  1376 + "cpu": [
  1377 + "loong64"
  1378 + ],
  1379 + "dev": true,
  1380 + "libc": [
  1381 + "glibc"
  1382 + ],
  1383 + "license": "MIT",
  1384 + "optional": true,
  1385 + "os": [
  1386 + "linux"
  1387 + ]
  1388 + },
  1389 + "node_modules/@rollup/rollup-linux-loong64-musl": {
  1390 + "version": "4.60.3",
  1391 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.3.tgz",
  1392 + "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==",
  1393 + "cpu": [
  1394 + "loong64"
  1395 + ],
  1396 + "dev": true,
  1397 + "libc": [
  1398 + "musl"
  1399 + ],
  1400 + "license": "MIT",
  1401 + "optional": true,
  1402 + "os": [
  1403 + "linux"
  1404 + ]
  1405 + },
  1406 + "node_modules/@rollup/rollup-linux-ppc64-gnu": {
  1407 + "version": "4.60.3",
  1408 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.3.tgz",
  1409 + "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==",
  1410 + "cpu": [
  1411 + "ppc64"
  1412 + ],
  1413 + "dev": true,
  1414 + "libc": [
  1415 + "glibc"
  1416 + ],
  1417 + "license": "MIT",
  1418 + "optional": true,
  1419 + "os": [
  1420 + "linux"
  1421 + ]
  1422 + },
  1423 + "node_modules/@rollup/rollup-linux-ppc64-musl": {
  1424 + "version": "4.60.3",
  1425 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.3.tgz",
  1426 + "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==",
  1427 + "cpu": [
  1428 + "ppc64"
  1429 + ],
  1430 + "dev": true,
  1431 + "libc": [
  1432 + "musl"
  1433 + ],
  1434 + "license": "MIT",
  1435 + "optional": true,
  1436 + "os": [
  1437 + "linux"
  1438 + ]
  1439 + },
  1440 + "node_modules/@rollup/rollup-linux-riscv64-gnu": {
  1441 + "version": "4.60.3",
  1442 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.3.tgz",
  1443 + "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==",
  1444 + "cpu": [
  1445 + "riscv64"
  1446 + ],
  1447 + "dev": true,
  1448 + "libc": [
  1449 + "glibc"
  1450 + ],
  1451 + "license": "MIT",
  1452 + "optional": true,
  1453 + "os": [
  1454 + "linux"
  1455 + ]
  1456 + },
  1457 + "node_modules/@rollup/rollup-linux-riscv64-musl": {
  1458 + "version": "4.60.3",
  1459 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.3.tgz",
  1460 + "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==",
  1461 + "cpu": [
  1462 + "riscv64"
  1463 + ],
  1464 + "dev": true,
  1465 + "libc": [
  1466 + "musl"
  1467 + ],
  1468 + "license": "MIT",
  1469 + "optional": true,
  1470 + "os": [
  1471 + "linux"
  1472 + ]
  1473 + },
  1474 + "node_modules/@rollup/rollup-linux-s390x-gnu": {
  1475 + "version": "4.60.3",
  1476 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.3.tgz",
  1477 + "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==",
  1478 + "cpu": [
  1479 + "s390x"
  1480 + ],
  1481 + "dev": true,
  1482 + "libc": [
  1483 + "glibc"
  1484 + ],
  1485 + "license": "MIT",
  1486 + "optional": true,
  1487 + "os": [
  1488 + "linux"
  1489 + ]
  1490 + },
  1491 + "node_modules/@rollup/rollup-linux-x64-gnu": {
  1492 + "version": "4.60.3",
  1493 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.3.tgz",
  1494 + "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==",
  1495 + "cpu": [
  1496 + "x64"
  1497 + ],
  1498 + "dev": true,
  1499 + "libc": [
  1500 + "glibc"
  1501 + ],
  1502 + "license": "MIT",
  1503 + "optional": true,
  1504 + "os": [
  1505 + "linux"
  1506 + ]
  1507 + },
  1508 + "node_modules/@rollup/rollup-linux-x64-musl": {
  1509 + "version": "4.60.3",
  1510 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.3.tgz",
  1511 + "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==",
  1512 + "cpu": [
  1513 + "x64"
  1514 + ],
  1515 + "dev": true,
  1516 + "libc": [
  1517 + "musl"
  1518 + ],
  1519 + "license": "MIT",
  1520 + "optional": true,
  1521 + "os": [
  1522 + "linux"
  1523 + ]
  1524 + },
  1525 + "node_modules/@rollup/rollup-openbsd-x64": {
  1526 + "version": "4.60.3",
  1527 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.3.tgz",
  1528 + "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==",
  1529 + "cpu": [
  1530 + "x64"
  1531 + ],
  1532 + "dev": true,
  1533 + "license": "MIT",
  1534 + "optional": true,
  1535 + "os": [
  1536 + "openbsd"
  1537 + ]
  1538 + },
  1539 + "node_modules/@rollup/rollup-openharmony-arm64": {
  1540 + "version": "4.60.3",
  1541 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.3.tgz",
  1542 + "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==",
  1543 + "cpu": [
  1544 + "arm64"
  1545 + ],
  1546 + "dev": true,
  1547 + "license": "MIT",
  1548 + "optional": true,
  1549 + "os": [
  1550 + "openharmony"
  1551 + ]
  1552 + },
  1553 + "node_modules/@rollup/rollup-win32-arm64-msvc": {
  1554 + "version": "4.60.3",
  1555 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.3.tgz",
  1556 + "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==",
  1557 + "cpu": [
  1558 + "arm64"
  1559 + ],
  1560 + "dev": true,
  1561 + "license": "MIT",
  1562 + "optional": true,
  1563 + "os": [
  1564 + "win32"
  1565 + ]
  1566 + },
  1567 + "node_modules/@rollup/rollup-win32-ia32-msvc": {
  1568 + "version": "4.60.3",
  1569 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.3.tgz",
  1570 + "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==",
  1571 + "cpu": [
  1572 + "ia32"
  1573 + ],
  1574 + "dev": true,
  1575 + "license": "MIT",
  1576 + "optional": true,
  1577 + "os": [
  1578 + "win32"
  1579 + ]
  1580 + },
  1581 + "node_modules/@rollup/rollup-win32-x64-gnu": {
  1582 + "version": "4.60.3",
  1583 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.3.tgz",
  1584 + "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==",
  1585 + "cpu": [
  1586 + "x64"
  1587 + ],
  1588 + "dev": true,
  1589 + "license": "MIT",
  1590 + "optional": true,
  1591 + "os": [
  1592 + "win32"
  1593 + ]
  1594 + },
  1595 + "node_modules/@rollup/rollup-win32-x64-msvc": {
  1596 + "version": "4.60.3",
  1597 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.3.tgz",
  1598 + "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==",
  1599 + "cpu": [
  1600 + "x64"
  1601 + ],
  1602 + "dev": true,
  1603 + "license": "MIT",
  1604 + "optional": true,
  1605 + "os": [
  1606 + "win32"
  1607 + ]
  1608 + },
  1609 + "node_modules/@sinclair/typebox": {
  1610 + "version": "0.27.10",
  1611 + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
  1612 + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
  1613 + "dev": true,
  1614 + "license": "MIT"
  1615 + },
  1616 + "node_modules/@standard-schema/spec": {
  1617 + "version": "1.1.0",
  1618 + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
  1619 + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
  1620 + "license": "MIT"
  1621 + },
  1622 + "node_modules/@standard-schema/utils": {
  1623 + "version": "0.3.0",
  1624 + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
  1625 + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
  1626 + "license": "MIT"
  1627 + },
  1628 + "node_modules/@testing-library/dom": {
  1629 + "version": "10.4.1",
  1630 + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
  1631 + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==",
  1632 + "dev": true,
  1633 + "license": "MIT",
  1634 + "peer": true,
  1635 + "dependencies": {
  1636 + "@babel/code-frame": "^7.10.4",
  1637 + "@babel/runtime": "^7.12.5",
  1638 + "@types/aria-query": "^5.0.1",
  1639 + "aria-query": "5.3.0",
  1640 + "dom-accessibility-api": "^0.5.9",
  1641 + "lz-string": "^1.5.0",
  1642 + "picocolors": "1.1.1",
  1643 + "pretty-format": "^27.0.2"
  1644 + },
  1645 + "engines": {
  1646 + "node": ">=18"
  1647 + }
  1648 + },
  1649 + "node_modules/@testing-library/jest-dom": {
  1650 + "version": "6.9.1",
  1651 + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
  1652 + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
  1653 + "dev": true,
  1654 + "license": "MIT",
  1655 + "dependencies": {
  1656 + "@adobe/css-tools": "^4.4.0",
  1657 + "aria-query": "^5.0.0",
  1658 + "css.escape": "^1.5.1",
  1659 + "dom-accessibility-api": "^0.6.3",
  1660 + "picocolors": "^1.1.1",
  1661 + "redent": "^3.0.0"
  1662 + },
  1663 + "engines": {
  1664 + "node": ">=14",
  1665 + "npm": ">=6",
  1666 + "yarn": ">=1"
  1667 + }
  1668 + },
  1669 + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
  1670 + "version": "0.6.3",
  1671 + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
  1672 + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
  1673 + "dev": true,
  1674 + "license": "MIT"
  1675 + },
  1676 + "node_modules/@testing-library/react": {
  1677 + "version": "16.3.2",
  1678 + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz",
  1679 + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==",
  1680 + "dev": true,
  1681 + "license": "MIT",
  1682 + "dependencies": {
  1683 + "@babel/runtime": "^7.12.5"
  1684 + },
  1685 + "engines": {
  1686 + "node": ">=18"
  1687 + },
  1688 + "peerDependencies": {
  1689 + "@testing-library/dom": "^10.0.0",
  1690 + "@types/react": "^18.0.0 || ^19.0.0",
  1691 + "@types/react-dom": "^18.0.0 || ^19.0.0",
  1692 + "react": "^18.0.0 || ^19.0.0",
  1693 + "react-dom": "^18.0.0 || ^19.0.0"
  1694 + },
  1695 + "peerDependenciesMeta": {
  1696 + "@types/react": {
  1697 + "optional": true
  1698 + },
  1699 + "@types/react-dom": {
  1700 + "optional": true
  1701 + }
  1702 + }
  1703 + },
  1704 + "node_modules/@testing-library/user-event": {
  1705 + "version": "14.6.1",
  1706 + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz",
  1707 + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==",
  1708 + "dev": true,
  1709 + "license": "MIT",
  1710 + "engines": {
  1711 + "node": ">=12",
  1712 + "npm": ">=6"
  1713 + },
  1714 + "peerDependencies": {
  1715 + "@testing-library/dom": ">=7.21.4"
  1716 + }
  1717 + },
  1718 + "node_modules/@types/aria-query": {
  1719 + "version": "5.0.4",
  1720 + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
  1721 + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
  1722 + "dev": true,
  1723 + "license": "MIT",
  1724 + "peer": true
  1725 + },
  1726 + "node_modules/@types/babel__core": {
  1727 + "version": "7.20.5",
  1728 + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
  1729 + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
  1730 + "dev": true,
  1731 + "license": "MIT",
  1732 + "dependencies": {
  1733 + "@babel/parser": "^7.20.7",
  1734 + "@babel/types": "^7.20.7",
  1735 + "@types/babel__generator": "*",
  1736 + "@types/babel__template": "*",
  1737 + "@types/babel__traverse": "*"
  1738 + }
  1739 + },
  1740 + "node_modules/@types/babel__generator": {
  1741 + "version": "7.27.0",
  1742 + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
  1743 + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
  1744 + "dev": true,
  1745 + "license": "MIT",
  1746 + "dependencies": {
  1747 + "@babel/types": "^7.0.0"
  1748 + }
  1749 + },
  1750 + "node_modules/@types/babel__template": {
  1751 + "version": "7.4.4",
  1752 + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
  1753 + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
  1754 + "dev": true,
  1755 + "license": "MIT",
  1756 + "dependencies": {
  1757 + "@babel/parser": "^7.1.0",
  1758 + "@babel/types": "^7.0.0"
  1759 + }
  1760 + },
  1761 + "node_modules/@types/babel__traverse": {
  1762 + "version": "7.28.0",
  1763 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
  1764 + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
  1765 + "dev": true,
  1766 + "license": "MIT",
  1767 + "dependencies": {
  1768 + "@babel/types": "^7.28.2"
  1769 + }
  1770 + },
  1771 + "node_modules/@types/estree": {
  1772 + "version": "1.0.8",
  1773 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
  1774 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
  1775 + "dev": true,
  1776 + "license": "MIT"
  1777 + },
  1778 + "node_modules/@types/prop-types": {
  1779 + "version": "15.7.15",
  1780 + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
  1781 + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
  1782 + "devOptional": true,
  1783 + "license": "MIT"
  1784 + },
  1785 + "node_modules/@types/react": {
  1786 + "version": "18.3.28",
  1787 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz",
  1788 + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==",
  1789 + "devOptional": true,
  1790 + "license": "MIT",
  1791 + "dependencies": {
  1792 + "@types/prop-types": "*",
  1793 + "csstype": "^3.2.2"
  1794 + }
  1795 + },
  1796 + "node_modules/@types/react-dom": {
  1797 + "version": "18.3.7",
  1798 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
  1799 + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
  1800 + "dev": true,
  1801 + "license": "MIT",
  1802 + "peerDependencies": {
  1803 + "@types/react": "^18.0.0"
  1804 + }
  1805 + },
  1806 + "node_modules/@types/use-sync-external-store": {
  1807 + "version": "0.0.6",
  1808 + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
  1809 + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
  1810 + "license": "MIT"
  1811 + },
  1812 + "node_modules/@vitejs/plugin-react": {
  1813 + "version": "4.7.0",
  1814 + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
  1815 + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
  1816 + "dev": true,
  1817 + "license": "MIT",
  1818 + "dependencies": {
  1819 + "@babel/core": "^7.28.0",
  1820 + "@babel/plugin-transform-react-jsx-self": "^7.27.1",
  1821 + "@babel/plugin-transform-react-jsx-source": "^7.27.1",
  1822 + "@rolldown/pluginutils": "1.0.0-beta.27",
  1823 + "@types/babel__core": "^7.20.5",
  1824 + "react-refresh": "^0.17.0"
  1825 + },
  1826 + "engines": {
  1827 + "node": "^14.18.0 || >=16.0.0"
  1828 + },
  1829 + "peerDependencies": {
  1830 + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
  1831 + }
  1832 + },
  1833 + "node_modules/@vitest/expect": {
  1834 + "version": "1.6.1",
  1835 + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz",
  1836 + "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==",
  1837 + "dev": true,
  1838 + "license": "MIT",
  1839 + "dependencies": {
  1840 + "@vitest/spy": "1.6.1",
  1841 + "@vitest/utils": "1.6.1",
  1842 + "chai": "^4.3.10"
  1843 + },
  1844 + "funding": {
  1845 + "url": "https://opencollective.com/vitest"
  1846 + }
  1847 + },
  1848 + "node_modules/@vitest/runner": {
  1849 + "version": "1.6.1",
  1850 + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz",
  1851 + "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==",
  1852 + "dev": true,
  1853 + "license": "MIT",
  1854 + "dependencies": {
  1855 + "@vitest/utils": "1.6.1",
  1856 + "p-limit": "^5.0.0",
  1857 + "pathe": "^1.1.1"
  1858 + },
  1859 + "funding": {
  1860 + "url": "https://opencollective.com/vitest"
  1861 + }
  1862 + },
  1863 + "node_modules/@vitest/snapshot": {
  1864 + "version": "1.6.1",
  1865 + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz",
  1866 + "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==",
  1867 + "dev": true,
  1868 + "license": "MIT",
  1869 + "dependencies": {
  1870 + "magic-string": "^0.30.5",
  1871 + "pathe": "^1.1.1",
  1872 + "pretty-format": "^29.7.0"
  1873 + },
  1874 + "funding": {
  1875 + "url": "https://opencollective.com/vitest"
  1876 + }
  1877 + },
  1878 + "node_modules/@vitest/snapshot/node_modules/pretty-format": {
  1879 + "version": "29.7.0",
  1880 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
  1881 + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
  1882 + "dev": true,
  1883 + "license": "MIT",
  1884 + "dependencies": {
  1885 + "@jest/schemas": "^29.6.3",
  1886 + "ansi-styles": "^5.0.0",
  1887 + "react-is": "^18.0.0"
  1888 + },
  1889 + "engines": {
  1890 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
  1891 + }
  1892 + },
  1893 + "node_modules/@vitest/snapshot/node_modules/react-is": {
  1894 + "version": "18.3.1",
  1895 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
  1896 + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
  1897 + "dev": true,
  1898 + "license": "MIT"
  1899 + },
  1900 + "node_modules/@vitest/spy": {
  1901 + "version": "1.6.1",
  1902 + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz",
  1903 + "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==",
  1904 + "dev": true,
  1905 + "license": "MIT",
  1906 + "dependencies": {
  1907 + "tinyspy": "^2.2.0"
  1908 + },
  1909 + "funding": {
  1910 + "url": "https://opencollective.com/vitest"
  1911 + }
  1912 + },
  1913 + "node_modules/@vitest/utils": {
  1914 + "version": "1.6.1",
  1915 + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz",
  1916 + "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==",
  1917 + "dev": true,
  1918 + "license": "MIT",
  1919 + "dependencies": {
  1920 + "diff-sequences": "^29.6.3",
  1921 + "estree-walker": "^3.0.3",
  1922 + "loupe": "^2.3.7",
  1923 + "pretty-format": "^29.7.0"
  1924 + },
  1925 + "funding": {
  1926 + "url": "https://opencollective.com/vitest"
  1927 + }
  1928 + },
  1929 + "node_modules/@vitest/utils/node_modules/pretty-format": {
  1930 + "version": "29.7.0",
  1931 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
  1932 + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
  1933 + "dev": true,
  1934 + "license": "MIT",
  1935 + "dependencies": {
  1936 + "@jest/schemas": "^29.6.3",
  1937 + "ansi-styles": "^5.0.0",
  1938 + "react-is": "^18.0.0"
  1939 + },
  1940 + "engines": {
  1941 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
  1942 + }
  1943 + },
  1944 + "node_modules/@vitest/utils/node_modules/react-is": {
  1945 + "version": "18.3.1",
  1946 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
  1947 + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
  1948 + "dev": true,
  1949 + "license": "MIT"
  1950 + },
  1951 + "node_modules/acorn": {
  1952 + "version": "8.16.0",
  1953 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
  1954 + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
  1955 + "dev": true,
  1956 + "license": "MIT",
  1957 + "bin": {
  1958 + "acorn": "bin/acorn"
  1959 + },
  1960 + "engines": {
  1961 + "node": ">=0.4.0"
  1962 + }
  1963 + },
  1964 + "node_modules/acorn-walk": {
  1965 + "version": "8.3.5",
  1966 + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz",
  1967 + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==",
  1968 + "dev": true,
  1969 + "license": "MIT",
  1970 + "dependencies": {
  1971 + "acorn": "^8.11.0"
  1972 + },
  1973 + "engines": {
  1974 + "node": ">=0.4.0"
  1975 + }
  1976 + },
  1977 + "node_modules/agent-base": {
  1978 + "version": "7.1.4",
  1979 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
  1980 + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
  1981 + "dev": true,
  1982 + "license": "MIT",
  1983 + "engines": {
  1984 + "node": ">= 14"
  1985 + }
  1986 + },
  1987 + "node_modules/ansi-regex": {
  1988 + "version": "5.0.1",
  1989 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
  1990 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
  1991 + "dev": true,
  1992 + "license": "MIT",
  1993 + "peer": true,
  1994 + "engines": {
  1995 + "node": ">=8"
  1996 + }
  1997 + },
  1998 + "node_modules/ansi-styles": {
  1999 + "version": "5.2.0",
  2000 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
  2001 + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
  2002 + "dev": true,
  2003 + "license": "MIT",
  2004 + "engines": {
  2005 + "node": ">=10"
  2006 + },
  2007 + "funding": {
  2008 + "url": "https://github.com/chalk/ansi-styles?sponsor=1"
  2009 + }
  2010 + },
  2011 + "node_modules/antd": {
  2012 + "version": "5.29.3",
  2013 + "resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz",
  2014 + "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==",
  2015 + "license": "MIT",
  2016 + "dependencies": {
  2017 + "@ant-design/colors": "^7.2.1",
  2018 + "@ant-design/cssinjs": "^1.23.0",
  2019 + "@ant-design/cssinjs-utils": "^1.1.3",
  2020 + "@ant-design/fast-color": "^2.0.6",
  2021 + "@ant-design/icons": "^5.6.1",
  2022 + "@ant-design/react-slick": "~1.1.2",
  2023 + "@babel/runtime": "^7.26.0",
  2024 + "@rc-component/color-picker": "~2.0.1",
  2025 + "@rc-component/mutate-observer": "^1.1.0",
  2026 + "@rc-component/qrcode": "~1.1.0",
  2027 + "@rc-component/tour": "~1.15.1",
  2028 + "@rc-component/trigger": "^2.3.0",
  2029 + "classnames": "^2.5.1",
  2030 + "copy-to-clipboard": "^3.3.3",
  2031 + "dayjs": "^1.11.11",
  2032 + "rc-cascader": "~3.34.0",
  2033 + "rc-checkbox": "~3.5.0",
  2034 + "rc-collapse": "~3.9.0",
  2035 + "rc-dialog": "~9.6.0",
  2036 + "rc-drawer": "~7.3.0",
  2037 + "rc-dropdown": "~4.2.1",
  2038 + "rc-field-form": "~2.7.1",
  2039 + "rc-image": "~7.12.0",
  2040 + "rc-input": "~1.8.0",
  2041 + "rc-input-number": "~9.5.0",
  2042 + "rc-mentions": "~2.20.0",
  2043 + "rc-menu": "~9.16.1",
  2044 + "rc-motion": "^2.9.5",
  2045 + "rc-notification": "~5.6.4",
  2046 + "rc-pagination": "~5.1.0",
  2047 + "rc-picker": "~4.11.3",
  2048 + "rc-progress": "~4.0.0",
  2049 + "rc-rate": "~2.13.1",
  2050 + "rc-resize-observer": "^1.4.3",
  2051 + "rc-segmented": "~2.7.0",
  2052 + "rc-select": "~14.16.8",
  2053 + "rc-slider": "~11.1.9",
  2054 + "rc-steps": "~6.0.1",
  2055 + "rc-switch": "~4.1.0",
  2056 + "rc-table": "~7.54.0",
  2057 + "rc-tabs": "~15.7.0",
  2058 + "rc-textarea": "~1.10.2",
  2059 + "rc-tooltip": "~6.4.0",
  2060 + "rc-tree": "~5.13.1",
  2061 + "rc-tree-select": "~5.27.0",
  2062 + "rc-upload": "~4.11.0",
  2063 + "rc-util": "^5.44.4",
  2064 + "scroll-into-view-if-needed": "^3.1.0",
  2065 + "throttle-debounce": "^5.0.2"
  2066 + },
  2067 + "funding": {
  2068 + "type": "opencollective",
  2069 + "url": "https://opencollective.com/ant-design"
  2070 + },
  2071 + "peerDependencies": {
  2072 + "react": ">=16.9.0",
  2073 + "react-dom": ">=16.9.0"
  2074 + }
  2075 + },
  2076 + "node_modules/aria-query": {
  2077 + "version": "5.3.0",
  2078 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
  2079 + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
  2080 + "dev": true,
  2081 + "license": "Apache-2.0",
  2082 + "dependencies": {
  2083 + "dequal": "^2.0.3"
  2084 + }
  2085 + },
  2086 + "node_modules/assertion-error": {
  2087 + "version": "1.1.0",
  2088 + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
  2089 + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
  2090 + "dev": true,
  2091 + "license": "MIT",
  2092 + "engines": {
  2093 + "node": "*"
  2094 + }
  2095 + },
  2096 + "node_modules/asynckit": {
  2097 + "version": "0.4.0",
  2098 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
  2099 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
  2100 + "license": "MIT"
  2101 + },
  2102 + "node_modules/axios": {
  2103 + "version": "1.16.0",
  2104 + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz",
  2105 + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==",
  2106 + "license": "MIT",
  2107 + "dependencies": {
  2108 + "follow-redirects": "^1.16.0",
  2109 + "form-data": "^4.0.5",
  2110 + "proxy-from-env": "^2.1.0"
  2111 + }
  2112 + },
  2113 + "node_modules/baseline-browser-mapping": {
  2114 + "version": "2.10.27",
  2115 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.27.tgz",
  2116 + "integrity": "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA==",
  2117 + "dev": true,
  2118 + "license": "Apache-2.0",
  2119 + "bin": {
  2120 + "baseline-browser-mapping": "dist/cli.cjs"
  2121 + },
  2122 + "engines": {
  2123 + "node": ">=6.0.0"
  2124 + }
  2125 + },
  2126 + "node_modules/browserslist": {
  2127 + "version": "4.28.2",
  2128 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
  2129 + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
  2130 + "dev": true,
  2131 + "funding": [
  2132 + {
  2133 + "type": "opencollective",
  2134 + "url": "https://opencollective.com/browserslist"
  2135 + },
  2136 + {
  2137 + "type": "tidelift",
  2138 + "url": "https://tidelift.com/funding/github/npm/browserslist"
  2139 + },
  2140 + {
  2141 + "type": "github",
  2142 + "url": "https://github.com/sponsors/ai"
  2143 + }
  2144 + ],
  2145 + "license": "MIT",
  2146 + "dependencies": {
  2147 + "baseline-browser-mapping": "^2.10.12",
  2148 + "caniuse-lite": "^1.0.30001782",
  2149 + "electron-to-chromium": "^1.5.328",
  2150 + "node-releases": "^2.0.36",
  2151 + "update-browserslist-db": "^1.2.3"
  2152 + },
  2153 + "bin": {
  2154 + "browserslist": "cli.js"
  2155 + },
  2156 + "engines": {
  2157 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
  2158 + }
  2159 + },
  2160 + "node_modules/cac": {
  2161 + "version": "6.7.14",
  2162 + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
  2163 + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
  2164 + "dev": true,
  2165 + "license": "MIT",
  2166 + "engines": {
  2167 + "node": ">=8"
  2168 + }
  2169 + },
  2170 + "node_modules/call-bind-apply-helpers": {
  2171 + "version": "1.0.2",
  2172 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  2173 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
  2174 + "license": "MIT",
  2175 + "dependencies": {
  2176 + "es-errors": "^1.3.0",
  2177 + "function-bind": "^1.1.2"
  2178 + },
  2179 + "engines": {
  2180 + "node": ">= 0.4"
  2181 + }
  2182 + },
  2183 + "node_modules/caniuse-lite": {
  2184 + "version": "1.0.30001792",
  2185 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz",
  2186 + "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==",
  2187 + "dev": true,
  2188 + "funding": [
  2189 + {
  2190 + "type": "opencollective",
  2191 + "url": "https://opencollective.com/browserslist"
  2192 + },
  2193 + {
  2194 + "type": "tidelift",
  2195 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
  2196 + },
  2197 + {
  2198 + "type": "github",
  2199 + "url": "https://github.com/sponsors/ai"
  2200 + }
  2201 + ],
  2202 + "license": "CC-BY-4.0"
  2203 + },
  2204 + "node_modules/chai": {
  2205 + "version": "4.5.0",
  2206 + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
  2207 + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
  2208 + "dev": true,
  2209 + "license": "MIT",
  2210 + "dependencies": {
  2211 + "assertion-error": "^1.1.0",
  2212 + "check-error": "^1.0.3",
  2213 + "deep-eql": "^4.1.3",
  2214 + "get-func-name": "^2.0.2",
  2215 + "loupe": "^2.3.6",
  2216 + "pathval": "^1.1.1",
  2217 + "type-detect": "^4.1.0"
  2218 + },
  2219 + "engines": {
  2220 + "node": ">=4"
  2221 + }
  2222 + },
  2223 + "node_modules/check-error": {
  2224 + "version": "1.0.3",
  2225 + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
  2226 + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
  2227 + "dev": true,
  2228 + "license": "MIT",
  2229 + "dependencies": {
  2230 + "get-func-name": "^2.0.2"
  2231 + },
  2232 + "engines": {
  2233 + "node": "*"
  2234 + }
  2235 + },
  2236 + "node_modules/classnames": {
  2237 + "version": "2.5.1",
  2238 + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
  2239 + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
  2240 + "license": "MIT"
  2241 + },
  2242 + "node_modules/combined-stream": {
  2243 + "version": "1.0.8",
  2244 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
  2245 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
  2246 + "license": "MIT",
  2247 + "dependencies": {
  2248 + "delayed-stream": "~1.0.0"
  2249 + },
  2250 + "engines": {
  2251 + "node": ">= 0.8"
  2252 + }
  2253 + },
  2254 + "node_modules/compute-scroll-into-view": {
  2255 + "version": "3.1.1",
  2256 + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
  2257 + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==",
  2258 + "license": "MIT"
  2259 + },
  2260 + "node_modules/confbox": {
  2261 + "version": "0.1.8",
  2262 + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
  2263 + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
  2264 + "dev": true,
  2265 + "license": "MIT"
  2266 + },
  2267 + "node_modules/convert-source-map": {
  2268 + "version": "2.0.0",
  2269 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
  2270 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
  2271 + "dev": true,
  2272 + "license": "MIT"
  2273 + },
  2274 + "node_modules/copy-to-clipboard": {
  2275 + "version": "3.3.3",
  2276 + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
  2277 + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
  2278 + "license": "MIT",
  2279 + "dependencies": {
  2280 + "toggle-selection": "^1.0.6"
  2281 + }
  2282 + },
  2283 + "node_modules/cross-spawn": {
  2284 + "version": "7.0.6",
  2285 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
  2286 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
  2287 + "dev": true,
  2288 + "license": "MIT",
  2289 + "dependencies": {
  2290 + "path-key": "^3.1.0",
  2291 + "shebang-command": "^2.0.0",
  2292 + "which": "^2.0.1"
  2293 + },
  2294 + "engines": {
  2295 + "node": ">= 8"
  2296 + }
  2297 + },
  2298 + "node_modules/css.escape": {
  2299 + "version": "1.5.1",
  2300 + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
  2301 + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
  2302 + "dev": true,
  2303 + "license": "MIT"
  2304 + },
  2305 + "node_modules/cssstyle": {
  2306 + "version": "4.6.0",
  2307 + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
  2308 + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
  2309 + "dev": true,
  2310 + "license": "MIT",
  2311 + "dependencies": {
  2312 + "@asamuzakjp/css-color": "^3.2.0",
  2313 + "rrweb-cssom": "^0.8.0"
  2314 + },
  2315 + "engines": {
  2316 + "node": ">=18"
  2317 + }
  2318 + },
  2319 + "node_modules/cssstyle/node_modules/rrweb-cssom": {
  2320 + "version": "0.8.0",
  2321 + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
  2322 + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
  2323 + "dev": true,
  2324 + "license": "MIT"
  2325 + },
  2326 + "node_modules/csstype": {
  2327 + "version": "3.2.3",
  2328 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
  2329 + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
  2330 + "license": "MIT"
  2331 + },
  2332 + "node_modules/data-urls": {
  2333 + "version": "5.0.0",
  2334 + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
  2335 + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
  2336 + "dev": true,
  2337 + "license": "MIT",
  2338 + "dependencies": {
  2339 + "whatwg-mimetype": "^4.0.0",
  2340 + "whatwg-url": "^14.0.0"
  2341 + },
  2342 + "engines": {
  2343 + "node": ">=18"
  2344 + }
  2345 + },
  2346 + "node_modules/dayjs": {
  2347 + "version": "1.11.20",
  2348 + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz",
  2349 + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==",
  2350 + "license": "MIT"
  2351 + },
  2352 + "node_modules/debug": {
  2353 + "version": "4.4.3",
  2354 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  2355 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  2356 + "dev": true,
  2357 + "license": "MIT",
  2358 + "dependencies": {
  2359 + "ms": "^2.1.3"
  2360 + },
  2361 + "engines": {
  2362 + "node": ">=6.0"
  2363 + },
  2364 + "peerDependenciesMeta": {
  2365 + "supports-color": {
  2366 + "optional": true
  2367 + }
  2368 + }
  2369 + },
  2370 + "node_modules/decimal.js": {
  2371 + "version": "10.6.0",
  2372 + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
  2373 + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
  2374 + "dev": true,
  2375 + "license": "MIT"
  2376 + },
  2377 + "node_modules/deep-eql": {
  2378 + "version": "4.1.4",
  2379 + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
  2380 + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
  2381 + "dev": true,
  2382 + "license": "MIT",
  2383 + "dependencies": {
  2384 + "type-detect": "^4.0.0"
  2385 + },
  2386 + "engines": {
  2387 + "node": ">=6"
  2388 + }
  2389 + },
  2390 + "node_modules/delayed-stream": {
  2391 + "version": "1.0.0",
  2392 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
  2393 + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
  2394 + "license": "MIT",
  2395 + "engines": {
  2396 + "node": ">=0.4.0"
  2397 + }
  2398 + },
  2399 + "node_modules/dequal": {
  2400 + "version": "2.0.3",
  2401 + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
  2402 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
  2403 + "dev": true,
  2404 + "license": "MIT",
  2405 + "engines": {
  2406 + "node": ">=6"
  2407 + }
  2408 + },
  2409 + "node_modules/diff-sequences": {
  2410 + "version": "29.6.3",
  2411 + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
  2412 + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
  2413 + "dev": true,
  2414 + "license": "MIT",
  2415 + "engines": {
  2416 + "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
  2417 + }
  2418 + },
  2419 + "node_modules/dom-accessibility-api": {
  2420 + "version": "0.5.16",
  2421 + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
  2422 + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
  2423 + "dev": true,
  2424 + "license": "MIT",
  2425 + "peer": true
  2426 + },
  2427 + "node_modules/dunder-proto": {
  2428 + "version": "1.0.1",
  2429 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  2430 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  2431 + "license": "MIT",
  2432 + "dependencies": {
  2433 + "call-bind-apply-helpers": "^1.0.1",
  2434 + "es-errors": "^1.3.0",
  2435 + "gopd": "^1.2.0"
  2436 + },
  2437 + "engines": {
  2438 + "node": ">= 0.4"
  2439 + }
  2440 + },
  2441 + "node_modules/electron-to-chromium": {
  2442 + "version": "1.5.352",
  2443 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.352.tgz",
  2444 + "integrity": "sha512-9wHk8x6dyuimoe18EdiDPWKExNdxYqo4fn4FwOVVper6RxT3cmpBwBkWWfSOCYJjQdIco/nPhJhNLmn4Ufg1Yg==",
  2445 + "dev": true,
  2446 + "license": "ISC"
  2447 + },
  2448 + "node_modules/entities": {
  2449 + "version": "6.0.1",
  2450 + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
  2451 + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
  2452 + "dev": true,
  2453 + "license": "BSD-2-Clause",
  2454 + "engines": {
  2455 + "node": ">=0.12"
  2456 + },
  2457 + "funding": {
  2458 + "url": "https://github.com/fb55/entities?sponsor=1"
  2459 + }
  2460 + },
  2461 + "node_modules/es-define-property": {
  2462 + "version": "1.0.1",
  2463 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  2464 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  2465 + "license": "MIT",
  2466 + "engines": {
  2467 + "node": ">= 0.4"
  2468 + }
  2469 + },
  2470 + "node_modules/es-errors": {
  2471 + "version": "1.3.0",
  2472 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  2473 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  2474 + "license": "MIT",
  2475 + "engines": {
  2476 + "node": ">= 0.4"
  2477 + }
  2478 + },
  2479 + "node_modules/es-object-atoms": {
  2480 + "version": "1.1.1",
  2481 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  2482 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  2483 + "license": "MIT",
  2484 + "dependencies": {
  2485 + "es-errors": "^1.3.0"
  2486 + },
  2487 + "engines": {
  2488 + "node": ">= 0.4"
  2489 + }
  2490 + },
  2491 + "node_modules/es-set-tostringtag": {
  2492 + "version": "2.1.0",
  2493 + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  2494 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
  2495 + "license": "MIT",
  2496 + "dependencies": {
  2497 + "es-errors": "^1.3.0",
  2498 + "get-intrinsic": "^1.2.6",
  2499 + "has-tostringtag": "^1.0.2",
  2500 + "hasown": "^2.0.2"
  2501 + },
  2502 + "engines": {
  2503 + "node": ">= 0.4"
  2504 + }
  2505 + },
  2506 + "node_modules/esbuild": {
  2507 + "version": "0.21.5",
  2508 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
  2509 + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
  2510 + "dev": true,
  2511 + "hasInstallScript": true,
  2512 + "license": "MIT",
  2513 + "bin": {
  2514 + "esbuild": "bin/esbuild"
  2515 + },
  2516 + "engines": {
  2517 + "node": ">=12"
  2518 + },
  2519 + "optionalDependencies": {
  2520 + "@esbuild/aix-ppc64": "0.21.5",
  2521 + "@esbuild/android-arm": "0.21.5",
  2522 + "@esbuild/android-arm64": "0.21.5",
  2523 + "@esbuild/android-x64": "0.21.5",
  2524 + "@esbuild/darwin-arm64": "0.21.5",
  2525 + "@esbuild/darwin-x64": "0.21.5",
  2526 + "@esbuild/freebsd-arm64": "0.21.5",
  2527 + "@esbuild/freebsd-x64": "0.21.5",
  2528 + "@esbuild/linux-arm": "0.21.5",
  2529 + "@esbuild/linux-arm64": "0.21.5",
  2530 + "@esbuild/linux-ia32": "0.21.5",
  2531 + "@esbuild/linux-loong64": "0.21.5",
  2532 + "@esbuild/linux-mips64el": "0.21.5",
  2533 + "@esbuild/linux-ppc64": "0.21.5",
  2534 + "@esbuild/linux-riscv64": "0.21.5",
  2535 + "@esbuild/linux-s390x": "0.21.5",
  2536 + "@esbuild/linux-x64": "0.21.5",
  2537 + "@esbuild/netbsd-x64": "0.21.5",
  2538 + "@esbuild/openbsd-x64": "0.21.5",
  2539 + "@esbuild/sunos-x64": "0.21.5",
  2540 + "@esbuild/win32-arm64": "0.21.5",
  2541 + "@esbuild/win32-ia32": "0.21.5",
  2542 + "@esbuild/win32-x64": "0.21.5"
  2543 + }
  2544 + },
  2545 + "node_modules/escalade": {
  2546 + "version": "3.2.0",
  2547 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
  2548 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
  2549 + "dev": true,
  2550 + "license": "MIT",
  2551 + "engines": {
  2552 + "node": ">=6"
  2553 + }
  2554 + },
  2555 + "node_modules/estree-walker": {
  2556 + "version": "3.0.3",
  2557 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
  2558 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
  2559 + "dev": true,
  2560 + "license": "MIT",
  2561 + "dependencies": {
  2562 + "@types/estree": "^1.0.0"
  2563 + }
  2564 + },
  2565 + "node_modules/execa": {
  2566 + "version": "8.0.1",
  2567 + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
  2568 + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
  2569 + "dev": true,
  2570 + "license": "MIT",
  2571 + "dependencies": {
  2572 + "cross-spawn": "^7.0.3",
  2573 + "get-stream": "^8.0.1",
  2574 + "human-signals": "^5.0.0",
  2575 + "is-stream": "^3.0.0",
  2576 + "merge-stream": "^2.0.0",
  2577 + "npm-run-path": "^5.1.0",
  2578 + "onetime": "^6.0.0",
  2579 + "signal-exit": "^4.1.0",
  2580 + "strip-final-newline": "^3.0.0"
  2581 + },
  2582 + "engines": {
  2583 + "node": ">=16.17"
  2584 + },
  2585 + "funding": {
  2586 + "url": "https://github.com/sindresorhus/execa?sponsor=1"
  2587 + }
  2588 + },
  2589 + "node_modules/follow-redirects": {
  2590 + "version": "1.16.0",
  2591 + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
  2592 + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
  2593 + "funding": [
  2594 + {
  2595 + "type": "individual",
  2596 + "url": "https://github.com/sponsors/RubenVerborgh"
  2597 + }
  2598 + ],
  2599 + "license": "MIT",
  2600 + "engines": {
  2601 + "node": ">=4.0"
  2602 + },
  2603 + "peerDependenciesMeta": {
  2604 + "debug": {
  2605 + "optional": true
  2606 + }
  2607 + }
  2608 + },
  2609 + "node_modules/form-data": {
  2610 + "version": "4.0.5",
  2611 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
  2612 + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
  2613 + "license": "MIT",
  2614 + "dependencies": {
  2615 + "asynckit": "^0.4.0",
  2616 + "combined-stream": "^1.0.8",
  2617 + "es-set-tostringtag": "^2.1.0",
  2618 + "hasown": "^2.0.2",
  2619 + "mime-types": "^2.1.12"
  2620 + },
  2621 + "engines": {
  2622 + "node": ">= 6"
  2623 + }
  2624 + },
  2625 + "node_modules/fsevents": {
  2626 + "version": "2.3.3",
  2627 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
  2628 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
  2629 + "dev": true,
  2630 + "hasInstallScript": true,
  2631 + "license": "MIT",
  2632 + "optional": true,
  2633 + "os": [
  2634 + "darwin"
  2635 + ],
  2636 + "engines": {
  2637 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
  2638 + }
  2639 + },
  2640 + "node_modules/function-bind": {
  2641 + "version": "1.1.2",
  2642 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  2643 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  2644 + "license": "MIT",
  2645 + "funding": {
  2646 + "url": "https://github.com/sponsors/ljharb"
  2647 + }
  2648 + },
  2649 + "node_modules/gensync": {
  2650 + "version": "1.0.0-beta.2",
  2651 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
  2652 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
  2653 + "dev": true,
  2654 + "license": "MIT",
  2655 + "engines": {
  2656 + "node": ">=6.9.0"
  2657 + }
  2658 + },
  2659 + "node_modules/get-func-name": {
  2660 + "version": "2.0.2",
  2661 + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
  2662 + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
  2663 + "dev": true,
  2664 + "license": "MIT",
  2665 + "engines": {
  2666 + "node": "*"
  2667 + }
  2668 + },
  2669 + "node_modules/get-intrinsic": {
  2670 + "version": "1.3.0",
  2671 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  2672 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  2673 + "license": "MIT",
  2674 + "dependencies": {
  2675 + "call-bind-apply-helpers": "^1.0.2",
  2676 + "es-define-property": "^1.0.1",
  2677 + "es-errors": "^1.3.0",
  2678 + "es-object-atoms": "^1.1.1",
  2679 + "function-bind": "^1.1.2",
  2680 + "get-proto": "^1.0.1",
  2681 + "gopd": "^1.2.0",
  2682 + "has-symbols": "^1.1.0",
  2683 + "hasown": "^2.0.2",
  2684 + "math-intrinsics": "^1.1.0"
  2685 + },
  2686 + "engines": {
  2687 + "node": ">= 0.4"
  2688 + },
  2689 + "funding": {
  2690 + "url": "https://github.com/sponsors/ljharb"
  2691 + }
  2692 + },
  2693 + "node_modules/get-proto": {
  2694 + "version": "1.0.1",
  2695 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  2696 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  2697 + "license": "MIT",
  2698 + "dependencies": {
  2699 + "dunder-proto": "^1.0.1",
  2700 + "es-object-atoms": "^1.0.0"
  2701 + },
  2702 + "engines": {
  2703 + "node": ">= 0.4"
  2704 + }
  2705 + },
  2706 + "node_modules/get-stream": {
  2707 + "version": "8.0.1",
  2708 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
  2709 + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
  2710 + "dev": true,
  2711 + "license": "MIT",
  2712 + "engines": {
  2713 + "node": ">=16"
  2714 + },
  2715 + "funding": {
  2716 + "url": "https://github.com/sponsors/sindresorhus"
  2717 + }
  2718 + },
  2719 + "node_modules/gopd": {
  2720 + "version": "1.2.0",
  2721 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  2722 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  2723 + "license": "MIT",
  2724 + "engines": {
  2725 + "node": ">= 0.4"
  2726 + },
  2727 + "funding": {
  2728 + "url": "https://github.com/sponsors/ljharb"
  2729 + }
  2730 + },
  2731 + "node_modules/has-symbols": {
  2732 + "version": "1.1.0",
  2733 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  2734 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  2735 + "license": "MIT",
  2736 + "engines": {
  2737 + "node": ">= 0.4"
  2738 + },
  2739 + "funding": {
  2740 + "url": "https://github.com/sponsors/ljharb"
  2741 + }
  2742 + },
  2743 + "node_modules/has-tostringtag": {
  2744 + "version": "1.0.2",
  2745 + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  2746 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
  2747 + "license": "MIT",
  2748 + "dependencies": {
  2749 + "has-symbols": "^1.0.3"
  2750 + },
  2751 + "engines": {
  2752 + "node": ">= 0.4"
  2753 + },
  2754 + "funding": {
  2755 + "url": "https://github.com/sponsors/ljharb"
  2756 + }
  2757 + },
  2758 + "node_modules/hasown": {
  2759 + "version": "2.0.3",
  2760 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
  2761 + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
  2762 + "license": "MIT",
  2763 + "dependencies": {
  2764 + "function-bind": "^1.1.2"
  2765 + },
  2766 + "engines": {
  2767 + "node": ">= 0.4"
  2768 + }
  2769 + },
  2770 + "node_modules/html-encoding-sniffer": {
  2771 + "version": "4.0.0",
  2772 + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
  2773 + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
  2774 + "dev": true,
  2775 + "license": "MIT",
  2776 + "dependencies": {
  2777 + "whatwg-encoding": "^3.1.1"
  2778 + },
  2779 + "engines": {
  2780 + "node": ">=18"
  2781 + }
  2782 + },
  2783 + "node_modules/http-proxy-agent": {
  2784 + "version": "7.0.2",
  2785 + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
  2786 + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
  2787 + "dev": true,
  2788 + "license": "MIT",
  2789 + "dependencies": {
  2790 + "agent-base": "^7.1.0",
  2791 + "debug": "^4.3.4"
  2792 + },
  2793 + "engines": {
  2794 + "node": ">= 14"
  2795 + }
  2796 + },
  2797 + "node_modules/https-proxy-agent": {
  2798 + "version": "7.0.6",
  2799 + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  2800 + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
  2801 + "dev": true,
  2802 + "license": "MIT",
  2803 + "dependencies": {
  2804 + "agent-base": "^7.1.2",
  2805 + "debug": "4"
  2806 + },
  2807 + "engines": {
  2808 + "node": ">= 14"
  2809 + }
  2810 + },
  2811 + "node_modules/human-signals": {
  2812 + "version": "5.0.0",
  2813 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
  2814 + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
  2815 + "dev": true,
  2816 + "license": "Apache-2.0",
  2817 + "engines": {
  2818 + "node": ">=16.17.0"
  2819 + }
  2820 + },
  2821 + "node_modules/iconv-lite": {
  2822 + "version": "0.6.3",
  2823 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
  2824 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
  2825 + "dev": true,
  2826 + "license": "MIT",
  2827 + "dependencies": {
  2828 + "safer-buffer": ">= 2.1.2 < 3.0.0"
  2829 + },
  2830 + "engines": {
  2831 + "node": ">=0.10.0"
  2832 + }
  2833 + },
  2834 + "node_modules/immer": {
  2835 + "version": "11.1.7",
  2836 + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.7.tgz",
  2837 + "integrity": "sha512-LFVFtAROHcDy1er5UI6nodRFnZ2SgdCXhfNSI+DpObO8N7Pur/muBGsjzH5wpnFHCYhYVQxZskCkV4koQ//3/Q==",
  2838 + "license": "MIT",
  2839 + "funding": {
  2840 + "type": "opencollective",
  2841 + "url": "https://opencollective.com/immer"
  2842 + }
  2843 + },
  2844 + "node_modules/indent-string": {
  2845 + "version": "4.0.0",
  2846 + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
  2847 + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
  2848 + "dev": true,
  2849 + "license": "MIT",
  2850 + "engines": {
  2851 + "node": ">=8"
  2852 + }
  2853 + },
  2854 + "node_modules/is-potential-custom-element-name": {
  2855 + "version": "1.0.1",
  2856 + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
  2857 + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
  2858 + "dev": true,
  2859 + "license": "MIT"
  2860 + },
  2861 + "node_modules/is-stream": {
  2862 + "version": "3.0.0",
  2863 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
  2864 + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
  2865 + "dev": true,
  2866 + "license": "MIT",
  2867 + "engines": {
  2868 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
  2869 + },
  2870 + "funding": {
  2871 + "url": "https://github.com/sponsors/sindresorhus"
  2872 + }
  2873 + },
  2874 + "node_modules/isexe": {
  2875 + "version": "2.0.0",
  2876 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
  2877 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
  2878 + "dev": true,
  2879 + "license": "ISC"
  2880 + },
  2881 + "node_modules/js-tokens": {
  2882 + "version": "4.0.0",
  2883 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
  2884 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
  2885 + "license": "MIT"
  2886 + },
  2887 + "node_modules/jsdom": {
  2888 + "version": "24.1.3",
  2889 + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz",
  2890 + "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==",
  2891 + "dev": true,
  2892 + "license": "MIT",
  2893 + "dependencies": {
  2894 + "cssstyle": "^4.0.1",
  2895 + "data-urls": "^5.0.0",
  2896 + "decimal.js": "^10.4.3",
  2897 + "form-data": "^4.0.0",
  2898 + "html-encoding-sniffer": "^4.0.0",
  2899 + "http-proxy-agent": "^7.0.2",
  2900 + "https-proxy-agent": "^7.0.5",
  2901 + "is-potential-custom-element-name": "^1.0.1",
  2902 + "nwsapi": "^2.2.12",
  2903 + "parse5": "^7.1.2",
  2904 + "rrweb-cssom": "^0.7.1",
  2905 + "saxes": "^6.0.0",
  2906 + "symbol-tree": "^3.2.4",
  2907 + "tough-cookie": "^4.1.4",
  2908 + "w3c-xmlserializer": "^5.0.0",
  2909 + "webidl-conversions": "^7.0.0",
  2910 + "whatwg-encoding": "^3.1.1",
  2911 + "whatwg-mimetype": "^4.0.0",
  2912 + "whatwg-url": "^14.0.0",
  2913 + "ws": "^8.18.0",
  2914 + "xml-name-validator": "^5.0.0"
  2915 + },
  2916 + "engines": {
  2917 + "node": ">=18"
  2918 + },
  2919 + "peerDependencies": {
  2920 + "canvas": "^2.11.2"
  2921 + },
  2922 + "peerDependenciesMeta": {
  2923 + "canvas": {
  2924 + "optional": true
  2925 + }
  2926 + }
  2927 + },
  2928 + "node_modules/jsesc": {
  2929 + "version": "3.1.0",
  2930 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
  2931 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
  2932 + "dev": true,
  2933 + "license": "MIT",
  2934 + "bin": {
  2935 + "jsesc": "bin/jsesc"
  2936 + },
  2937 + "engines": {
  2938 + "node": ">=6"
  2939 + }
  2940 + },
  2941 + "node_modules/json2mq": {
  2942 + "version": "0.2.0",
  2943 + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
  2944 + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
  2945 + "license": "MIT",
  2946 + "dependencies": {
  2947 + "string-convert": "^0.2.0"
  2948 + }
  2949 + },
  2950 + "node_modules/json5": {
  2951 + "version": "2.2.3",
  2952 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
  2953 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
  2954 + "dev": true,
  2955 + "license": "MIT",
  2956 + "bin": {
  2957 + "json5": "lib/cli.js"
  2958 + },
  2959 + "engines": {
  2960 + "node": ">=6"
  2961 + }
  2962 + },
  2963 + "node_modules/local-pkg": {
  2964 + "version": "0.5.1",
  2965 + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
  2966 + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
  2967 + "dev": true,
  2968 + "license": "MIT",
  2969 + "dependencies": {
  2970 + "mlly": "^1.7.3",
  2971 + "pkg-types": "^1.2.1"
  2972 + },
  2973 + "engines": {
  2974 + "node": ">=14"
  2975 + },
  2976 + "funding": {
  2977 + "url": "https://github.com/sponsors/antfu"
  2978 + }
  2979 + },
  2980 + "node_modules/loose-envify": {
  2981 + "version": "1.4.0",
  2982 + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
  2983 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
  2984 + "license": "MIT",
  2985 + "dependencies": {
  2986 + "js-tokens": "^3.0.0 || ^4.0.0"
  2987 + },
  2988 + "bin": {
  2989 + "loose-envify": "cli.js"
  2990 + }
  2991 + },
  2992 + "node_modules/loupe": {
  2993 + "version": "2.3.7",
  2994 + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
  2995 + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
  2996 + "dev": true,
  2997 + "license": "MIT",
  2998 + "dependencies": {
  2999 + "get-func-name": "^2.0.1"
  3000 + }
  3001 + },
  3002 + "node_modules/lru-cache": {
  3003 + "version": "5.1.1",
  3004 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
  3005 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
  3006 + "dev": true,
  3007 + "license": "ISC",
  3008 + "dependencies": {
  3009 + "yallist": "^3.0.2"
  3010 + }
  3011 + },
  3012 + "node_modules/lz-string": {
  3013 + "version": "1.5.0",
  3014 + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
  3015 + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
  3016 + "dev": true,
  3017 + "license": "MIT",
  3018 + "peer": true,
  3019 + "bin": {
  3020 + "lz-string": "bin/bin.js"
  3021 + }
  3022 + },
  3023 + "node_modules/magic-string": {
  3024 + "version": "0.30.21",
  3025 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
  3026 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
  3027 + "dev": true,
  3028 + "license": "MIT",
  3029 + "dependencies": {
  3030 + "@jridgewell/sourcemap-codec": "^1.5.5"
  3031 + }
  3032 + },
  3033 + "node_modules/math-intrinsics": {
  3034 + "version": "1.1.0",
  3035 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  3036 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  3037 + "license": "MIT",
  3038 + "engines": {
  3039 + "node": ">= 0.4"
  3040 + }
  3041 + },
  3042 + "node_modules/merge-stream": {
  3043 + "version": "2.0.0",
  3044 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
  3045 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
  3046 + "dev": true,
  3047 + "license": "MIT"
  3048 + },
  3049 + "node_modules/mime-db": {
  3050 + "version": "1.52.0",
  3051 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
  3052 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
  3053 + "license": "MIT",
  3054 + "engines": {
  3055 + "node": ">= 0.6"
  3056 + }
  3057 + },
  3058 + "node_modules/mime-types": {
  3059 + "version": "2.1.35",
  3060 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
  3061 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
  3062 + "license": "MIT",
  3063 + "dependencies": {
  3064 + "mime-db": "1.52.0"
  3065 + },
  3066 + "engines": {
  3067 + "node": ">= 0.6"
  3068 + }
  3069 + },
  3070 + "node_modules/mimic-fn": {
  3071 + "version": "4.0.0",
  3072 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
  3073 + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
  3074 + "dev": true,
  3075 + "license": "MIT",
  3076 + "engines": {
  3077 + "node": ">=12"
  3078 + },
  3079 + "funding": {
  3080 + "url": "https://github.com/sponsors/sindresorhus"
  3081 + }
  3082 + },
  3083 + "node_modules/min-indent": {
  3084 + "version": "1.0.1",
  3085 + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
  3086 + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
  3087 + "dev": true,
  3088 + "license": "MIT",
  3089 + "engines": {
  3090 + "node": ">=4"
  3091 + }
  3092 + },
  3093 + "node_modules/mlly": {
  3094 + "version": "1.8.2",
  3095 + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz",
  3096 + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==",
  3097 + "dev": true,
  3098 + "license": "MIT",
  3099 + "dependencies": {
  3100 + "acorn": "^8.16.0",
  3101 + "pathe": "^2.0.3",
  3102 + "pkg-types": "^1.3.1",
  3103 + "ufo": "^1.6.3"
  3104 + }
  3105 + },
  3106 + "node_modules/mlly/node_modules/pathe": {
  3107 + "version": "2.0.3",
  3108 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
  3109 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
  3110 + "dev": true,
  3111 + "license": "MIT"
  3112 + },
  3113 + "node_modules/ms": {
  3114 + "version": "2.1.3",
  3115 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  3116 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
  3117 + "dev": true,
  3118 + "license": "MIT"
  3119 + },
  3120 + "node_modules/nanoid": {
  3121 + "version": "3.3.12",
  3122 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
  3123 + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
  3124 + "dev": true,
  3125 + "funding": [
  3126 + {
  3127 + "type": "github",
  3128 + "url": "https://github.com/sponsors/ai"
  3129 + }
  3130 + ],
  3131 + "license": "MIT",
  3132 + "bin": {
  3133 + "nanoid": "bin/nanoid.cjs"
  3134 + },
  3135 + "engines": {
  3136 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
  3137 + }
  3138 + },
  3139 + "node_modules/node-releases": {
  3140 + "version": "2.0.38",
  3141 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz",
  3142 + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==",
  3143 + "dev": true,
  3144 + "license": "MIT"
  3145 + },
  3146 + "node_modules/npm-run-path": {
  3147 + "version": "5.3.0",
  3148 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
  3149 + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
  3150 + "dev": true,
  3151 + "license": "MIT",
  3152 + "dependencies": {
  3153 + "path-key": "^4.0.0"
  3154 + },
  3155 + "engines": {
  3156 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
  3157 + },
  3158 + "funding": {
  3159 + "url": "https://github.com/sponsors/sindresorhus"
  3160 + }
  3161 + },
  3162 + "node_modules/npm-run-path/node_modules/path-key": {
  3163 + "version": "4.0.0",
  3164 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
  3165 + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
  3166 + "dev": true,
  3167 + "license": "MIT",
  3168 + "engines": {
  3169 + "node": ">=12"
  3170 + },
  3171 + "funding": {
  3172 + "url": "https://github.com/sponsors/sindresorhus"
  3173 + }
  3174 + },
  3175 + "node_modules/nwsapi": {
  3176 + "version": "2.2.23",
  3177 + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
  3178 + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
  3179 + "dev": true,
  3180 + "license": "MIT"
  3181 + },
  3182 + "node_modules/onetime": {
  3183 + "version": "6.0.0",
  3184 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
  3185 + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
  3186 + "dev": true,
  3187 + "license": "MIT",
  3188 + "dependencies": {
  3189 + "mimic-fn": "^4.0.0"
  3190 + },
  3191 + "engines": {
  3192 + "node": ">=12"
  3193 + },
  3194 + "funding": {
  3195 + "url": "https://github.com/sponsors/sindresorhus"
  3196 + }
  3197 + },
  3198 + "node_modules/p-limit": {
  3199 + "version": "5.0.0",
  3200 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
  3201 + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
  3202 + "dev": true,
  3203 + "license": "MIT",
  3204 + "dependencies": {
  3205 + "yocto-queue": "^1.0.0"
  3206 + },
  3207 + "engines": {
  3208 + "node": ">=18"
  3209 + },
  3210 + "funding": {
  3211 + "url": "https://github.com/sponsors/sindresorhus"
  3212 + }
  3213 + },
  3214 + "node_modules/parse5": {
  3215 + "version": "7.3.0",
  3216 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
  3217 + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
  3218 + "dev": true,
  3219 + "license": "MIT",
  3220 + "dependencies": {
  3221 + "entities": "^6.0.0"
  3222 + },
  3223 + "funding": {
  3224 + "url": "https://github.com/inikulin/parse5?sponsor=1"
  3225 + }
  3226 + },
  3227 + "node_modules/path-key": {
  3228 + "version": "3.1.1",
  3229 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
  3230 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
  3231 + "dev": true,
  3232 + "license": "MIT",
  3233 + "engines": {
  3234 + "node": ">=8"
  3235 + }
  3236 + },
  3237 + "node_modules/pathe": {
  3238 + "version": "1.1.2",
  3239 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
  3240 + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
  3241 + "dev": true,
  3242 + "license": "MIT"
  3243 + },
  3244 + "node_modules/pathval": {
  3245 + "version": "1.1.1",
  3246 + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
  3247 + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
  3248 + "dev": true,
  3249 + "license": "MIT",
  3250 + "engines": {
  3251 + "node": "*"
  3252 + }
  3253 + },
  3254 + "node_modules/picocolors": {
  3255 + "version": "1.1.1",
  3256 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
  3257 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
  3258 + "dev": true,
  3259 + "license": "ISC"
  3260 + },
  3261 + "node_modules/pkg-types": {
  3262 + "version": "1.3.1",
  3263 + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
  3264 + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
  3265 + "dev": true,
  3266 + "license": "MIT",
  3267 + "dependencies": {
  3268 + "confbox": "^0.1.8",
  3269 + "mlly": "^1.7.4",
  3270 + "pathe": "^2.0.1"
  3271 + }
  3272 + },
  3273 + "node_modules/pkg-types/node_modules/pathe": {
  3274 + "version": "2.0.3",
  3275 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
  3276 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
  3277 + "dev": true,
  3278 + "license": "MIT"
  3279 + },
  3280 + "node_modules/postcss": {
  3281 + "version": "8.5.14",
  3282 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
  3283 + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
  3284 + "dev": true,
  3285 + "funding": [
  3286 + {
  3287 + "type": "opencollective",
  3288 + "url": "https://opencollective.com/postcss/"
  3289 + },
  3290 + {
  3291 + "type": "tidelift",
  3292 + "url": "https://tidelift.com/funding/github/npm/postcss"
  3293 + },
  3294 + {
  3295 + "type": "github",
  3296 + "url": "https://github.com/sponsors/ai"
  3297 + }
  3298 + ],
  3299 + "license": "MIT",
  3300 + "dependencies": {
  3301 + "nanoid": "^3.3.11",
  3302 + "picocolors": "^1.1.1",
  3303 + "source-map-js": "^1.2.1"
  3304 + },
  3305 + "engines": {
  3306 + "node": "^10 || ^12 || >=14"
  3307 + }
  3308 + },
  3309 + "node_modules/pretty-format": {
  3310 + "version": "27.5.1",
  3311 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
  3312 + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
  3313 + "dev": true,
  3314 + "license": "MIT",
  3315 + "peer": true,
  3316 + "dependencies": {
  3317 + "ansi-regex": "^5.0.1",
  3318 + "ansi-styles": "^5.0.0",
  3319 + "react-is": "^17.0.1"
  3320 + },
  3321 + "engines": {
  3322 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
  3323 + }
  3324 + },
  3325 + "node_modules/proxy-from-env": {
  3326 + "version": "2.1.0",
  3327 + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
  3328 + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
  3329 + "license": "MIT",
  3330 + "engines": {
  3331 + "node": ">=10"
  3332 + }
  3333 + },
  3334 + "node_modules/psl": {
  3335 + "version": "1.15.0",
  3336 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
  3337 + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
  3338 + "dev": true,
  3339 + "license": "MIT",
  3340 + "dependencies": {
  3341 + "punycode": "^2.3.1"
  3342 + },
  3343 + "funding": {
  3344 + "url": "https://github.com/sponsors/lupomontero"
  3345 + }
  3346 + },
  3347 + "node_modules/punycode": {
  3348 + "version": "2.3.1",
  3349 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
  3350 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
  3351 + "dev": true,
  3352 + "license": "MIT",
  3353 + "engines": {
  3354 + "node": ">=6"
  3355 + }
  3356 + },
  3357 + "node_modules/querystringify": {
  3358 + "version": "2.2.0",
  3359 + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
  3360 + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
  3361 + "dev": true,
  3362 + "license": "MIT"
  3363 + },
  3364 + "node_modules/rc-cascader": {
  3365 + "version": "3.34.0",
  3366 + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz",
  3367 + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==",
  3368 + "license": "MIT",
  3369 + "dependencies": {
  3370 + "@babel/runtime": "^7.25.7",
  3371 + "classnames": "^2.3.1",
  3372 + "rc-select": "~14.16.2",
  3373 + "rc-tree": "~5.13.0",
  3374 + "rc-util": "^5.43.0"
  3375 + },
  3376 + "peerDependencies": {
  3377 + "react": ">=16.9.0",
  3378 + "react-dom": ">=16.9.0"
  3379 + }
  3380 + },
  3381 + "node_modules/rc-checkbox": {
  3382 + "version": "3.5.0",
  3383 + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz",
  3384 + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==",
  3385 + "license": "MIT",
  3386 + "dependencies": {
  3387 + "@babel/runtime": "^7.10.1",
  3388 + "classnames": "^2.3.2",
  3389 + "rc-util": "^5.25.2"
  3390 + },
  3391 + "peerDependencies": {
  3392 + "react": ">=16.9.0",
  3393 + "react-dom": ">=16.9.0"
  3394 + }
  3395 + },
  3396 + "node_modules/rc-collapse": {
  3397 + "version": "3.9.0",
  3398 + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz",
  3399 + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==",
  3400 + "license": "MIT",
  3401 + "dependencies": {
  3402 + "@babel/runtime": "^7.10.1",
  3403 + "classnames": "2.x",
  3404 + "rc-motion": "^2.3.4",
  3405 + "rc-util": "^5.27.0"
  3406 + },
  3407 + "peerDependencies": {
  3408 + "react": ">=16.9.0",
  3409 + "react-dom": ">=16.9.0"
  3410 + }
  3411 + },
  3412 + "node_modules/rc-dialog": {
  3413 + "version": "9.6.0",
  3414 + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz",
  3415 + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==",
  3416 + "license": "MIT",
  3417 + "dependencies": {
  3418 + "@babel/runtime": "^7.10.1",
  3419 + "@rc-component/portal": "^1.0.0-8",
  3420 + "classnames": "^2.2.6",
  3421 + "rc-motion": "^2.3.0",
  3422 + "rc-util": "^5.21.0"
  3423 + },
  3424 + "peerDependencies": {
  3425 + "react": ">=16.9.0",
  3426 + "react-dom": ">=16.9.0"
  3427 + }
  3428 + },
  3429 + "node_modules/rc-drawer": {
  3430 + "version": "7.3.0",
  3431 + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz",
  3432 + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==",
  3433 + "license": "MIT",
  3434 + "dependencies": {
  3435 + "@babel/runtime": "^7.23.9",
  3436 + "@rc-component/portal": "^1.1.1",
  3437 + "classnames": "^2.2.6",
  3438 + "rc-motion": "^2.6.1",
  3439 + "rc-util": "^5.38.1"
  3440 + },
  3441 + "peerDependencies": {
  3442 + "react": ">=16.9.0",
  3443 + "react-dom": ">=16.9.0"
  3444 + }
  3445 + },
  3446 + "node_modules/rc-dropdown": {
  3447 + "version": "4.2.1",
  3448 + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz",
  3449 + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==",
  3450 + "license": "MIT",
  3451 + "dependencies": {
  3452 + "@babel/runtime": "^7.18.3",
  3453 + "@rc-component/trigger": "^2.0.0",
  3454 + "classnames": "^2.2.6",
  3455 + "rc-util": "^5.44.1"
  3456 + },
  3457 + "peerDependencies": {
  3458 + "react": ">=16.11.0",
  3459 + "react-dom": ">=16.11.0"
  3460 + }
  3461 + },
  3462 + "node_modules/rc-field-form": {
  3463 + "version": "2.7.1",
  3464 + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.1.tgz",
  3465 + "integrity": "sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A==",
  3466 + "license": "MIT",
  3467 + "dependencies": {
  3468 + "@babel/runtime": "^7.18.0",
  3469 + "@rc-component/async-validator": "^5.0.3",
  3470 + "rc-util": "^5.32.2"
  3471 + },
  3472 + "engines": {
  3473 + "node": ">=8.x"
  3474 + },
  3475 + "peerDependencies": {
  3476 + "react": ">=16.9.0",
  3477 + "react-dom": ">=16.9.0"
  3478 + }
  3479 + },
  3480 + "node_modules/rc-image": {
  3481 + "version": "7.12.0",
  3482 + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz",
  3483 + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==",
  3484 + "license": "MIT",
  3485 + "dependencies": {
  3486 + "@babel/runtime": "^7.11.2",
  3487 + "@rc-component/portal": "^1.0.2",
  3488 + "classnames": "^2.2.6",
  3489 + "rc-dialog": "~9.6.0",
  3490 + "rc-motion": "^2.6.2",
  3491 + "rc-util": "^5.34.1"
  3492 + },
  3493 + "peerDependencies": {
  3494 + "react": ">=16.9.0",
  3495 + "react-dom": ">=16.9.0"
  3496 + }
  3497 + },
  3498 + "node_modules/rc-input": {
  3499 + "version": "1.8.0",
  3500 + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz",
  3501 + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==",
  3502 + "license": "MIT",
  3503 + "dependencies": {
  3504 + "@babel/runtime": "^7.11.1",
  3505 + "classnames": "^2.2.1",
  3506 + "rc-util": "^5.18.1"
  3507 + },
  3508 + "peerDependencies": {
  3509 + "react": ">=16.0.0",
  3510 + "react-dom": ">=16.0.0"
  3511 + }
  3512 + },
  3513 + "node_modules/rc-input-number": {
  3514 + "version": "9.5.0",
  3515 + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz",
  3516 + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==",
  3517 + "license": "MIT",
  3518 + "dependencies": {
  3519 + "@babel/runtime": "^7.10.1",
  3520 + "@rc-component/mini-decimal": "^1.0.1",
  3521 + "classnames": "^2.2.5",
  3522 + "rc-input": "~1.8.0",
  3523 + "rc-util": "^5.40.1"
  3524 + },
  3525 + "peerDependencies": {
  3526 + "react": ">=16.9.0",
  3527 + "react-dom": ">=16.9.0"
  3528 + }
  3529 + },
  3530 + "node_modules/rc-mentions": {
  3531 + "version": "2.20.0",
  3532 + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz",
  3533 + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==",
  3534 + "license": "MIT",
  3535 + "dependencies": {
  3536 + "@babel/runtime": "^7.22.5",
  3537 + "@rc-component/trigger": "^2.0.0",
  3538 + "classnames": "^2.2.6",
  3539 + "rc-input": "~1.8.0",
  3540 + "rc-menu": "~9.16.0",
  3541 + "rc-textarea": "~1.10.0",
  3542 + "rc-util": "^5.34.1"
  3543 + },
  3544 + "peerDependencies": {
  3545 + "react": ">=16.9.0",
  3546 + "react-dom": ">=16.9.0"
  3547 + }
  3548 + },
  3549 + "node_modules/rc-menu": {
  3550 + "version": "9.16.1",
  3551 + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz",
  3552 + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==",
  3553 + "license": "MIT",
  3554 + "dependencies": {
  3555 + "@babel/runtime": "^7.10.1",
  3556 + "@rc-component/trigger": "^2.0.0",
  3557 + "classnames": "2.x",
  3558 + "rc-motion": "^2.4.3",
  3559 + "rc-overflow": "^1.3.1",
  3560 + "rc-util": "^5.27.0"
  3561 + },
  3562 + "peerDependencies": {
  3563 + "react": ">=16.9.0",
  3564 + "react-dom": ">=16.9.0"
  3565 + }
  3566 + },
  3567 + "node_modules/rc-motion": {
  3568 + "version": "2.9.5",
  3569 + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz",
  3570 + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==",
  3571 + "license": "MIT",
  3572 + "dependencies": {
  3573 + "@babel/runtime": "^7.11.1",
  3574 + "classnames": "^2.2.1",
  3575 + "rc-util": "^5.44.0"
  3576 + },
  3577 + "peerDependencies": {
  3578 + "react": ">=16.9.0",
  3579 + "react-dom": ">=16.9.0"
  3580 + }
  3581 + },
  3582 + "node_modules/rc-notification": {
  3583 + "version": "5.6.4",
  3584 + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz",
  3585 + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==",
  3586 + "license": "MIT",
  3587 + "dependencies": {
  3588 + "@babel/runtime": "^7.10.1",
  3589 + "classnames": "2.x",
  3590 + "rc-motion": "^2.9.0",
  3591 + "rc-util": "^5.20.1"
  3592 + },
  3593 + "engines": {
  3594 + "node": ">=8.x"
  3595 + },
  3596 + "peerDependencies": {
  3597 + "react": ">=16.9.0",
  3598 + "react-dom": ">=16.9.0"
  3599 + }
  3600 + },
  3601 + "node_modules/rc-overflow": {
  3602 + "version": "1.5.0",
  3603 + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz",
  3604 + "integrity": "sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==",
  3605 + "license": "MIT",
  3606 + "dependencies": {
  3607 + "@babel/runtime": "^7.11.1",
  3608 + "classnames": "^2.2.1",
  3609 + "rc-resize-observer": "^1.0.0",
  3610 + "rc-util": "^5.37.0"
  3611 + },
  3612 + "peerDependencies": {
  3613 + "react": ">=16.9.0",
  3614 + "react-dom": ">=16.9.0"
  3615 + }
  3616 + },
  3617 + "node_modules/rc-pagination": {
  3618 + "version": "5.1.0",
  3619 + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz",
  3620 + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==",
  3621 + "license": "MIT",
  3622 + "dependencies": {
  3623 + "@babel/runtime": "^7.10.1",
  3624 + "classnames": "^2.3.2",
  3625 + "rc-util": "^5.38.0"
  3626 + },
  3627 + "peerDependencies": {
  3628 + "react": ">=16.9.0",
  3629 + "react-dom": ">=16.9.0"
  3630 + }
  3631 + },
  3632 + "node_modules/rc-picker": {
  3633 + "version": "4.11.3",
  3634 + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz",
  3635 + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==",
  3636 + "license": "MIT",
  3637 + "dependencies": {
  3638 + "@babel/runtime": "^7.24.7",
  3639 + "@rc-component/trigger": "^2.0.0",
  3640 + "classnames": "^2.2.1",
  3641 + "rc-overflow": "^1.3.2",
  3642 + "rc-resize-observer": "^1.4.0",
  3643 + "rc-util": "^5.43.0"
  3644 + },
  3645 + "engines": {
  3646 + "node": ">=8.x"
  3647 + },
  3648 + "peerDependencies": {
  3649 + "date-fns": ">= 2.x",
  3650 + "dayjs": ">= 1.x",
  3651 + "luxon": ">= 3.x",
  3652 + "moment": ">= 2.x",
  3653 + "react": ">=16.9.0",
  3654 + "react-dom": ">=16.9.0"
  3655 + },
  3656 + "peerDependenciesMeta": {
  3657 + "date-fns": {
  3658 + "optional": true
  3659 + },
  3660 + "dayjs": {
  3661 + "optional": true
  3662 + },
  3663 + "luxon": {
  3664 + "optional": true
  3665 + },
  3666 + "moment": {
  3667 + "optional": true
  3668 + }
  3669 + }
  3670 + },
  3671 + "node_modules/rc-progress": {
  3672 + "version": "4.0.0",
  3673 + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz",
  3674 + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==",
  3675 + "license": "MIT",
  3676 + "dependencies": {
  3677 + "@babel/runtime": "^7.10.1",
  3678 + "classnames": "^2.2.6",
  3679 + "rc-util": "^5.16.1"
  3680 + },
  3681 + "peerDependencies": {
  3682 + "react": ">=16.9.0",
  3683 + "react-dom": ">=16.9.0"
  3684 + }
  3685 + },
  3686 + "node_modules/rc-rate": {
  3687 + "version": "2.13.1",
  3688 + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz",
  3689 + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==",
  3690 + "license": "MIT",
  3691 + "dependencies": {
  3692 + "@babel/runtime": "^7.10.1",
  3693 + "classnames": "^2.2.5",
  3694 + "rc-util": "^5.0.1"
  3695 + },
  3696 + "engines": {
  3697 + "node": ">=8.x"
  3698 + },
  3699 + "peerDependencies": {
  3700 + "react": ">=16.9.0",
  3701 + "react-dom": ">=16.9.0"
  3702 + }
  3703 + },
  3704 + "node_modules/rc-resize-observer": {
  3705 + "version": "1.4.3",
  3706 + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz",
  3707 + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==",
  3708 + "license": "MIT",
  3709 + "dependencies": {
  3710 + "@babel/runtime": "^7.20.7",
  3711 + "classnames": "^2.2.1",
  3712 + "rc-util": "^5.44.1",
  3713 + "resize-observer-polyfill": "^1.5.1"
  3714 + },
  3715 + "peerDependencies": {
  3716 + "react": ">=16.9.0",
  3717 + "react-dom": ">=16.9.0"
  3718 + }
  3719 + },
  3720 + "node_modules/rc-segmented": {
  3721 + "version": "2.7.1",
  3722 + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.1.tgz",
  3723 + "integrity": "sha512-izj1Nw/Dw2Vb7EVr+D/E9lUTkBe+kKC+SAFSU9zqr7WV2W5Ktaa9Gc7cB2jTqgk8GROJayltaec+DBlYKc6d+g==",
  3724 + "license": "MIT",
  3725 + "dependencies": {
  3726 + "@babel/runtime": "^7.11.1",
  3727 + "classnames": "^2.2.1",
  3728 + "rc-motion": "^2.4.4",
  3729 + "rc-util": "^5.17.0"
  3730 + },
  3731 + "peerDependencies": {
  3732 + "react": ">=16.0.0",
  3733 + "react-dom": ">=16.0.0"
  3734 + }
  3735 + },
  3736 + "node_modules/rc-select": {
  3737 + "version": "14.16.8",
  3738 + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz",
  3739 + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==",
  3740 + "license": "MIT",
  3741 + "dependencies": {
  3742 + "@babel/runtime": "^7.10.1",
  3743 + "@rc-component/trigger": "^2.1.1",
  3744 + "classnames": "2.x",
  3745 + "rc-motion": "^2.0.1",
  3746 + "rc-overflow": "^1.3.1",
  3747 + "rc-util": "^5.16.1",
  3748 + "rc-virtual-list": "^3.5.2"
  3749 + },
  3750 + "engines": {
  3751 + "node": ">=8.x"
  3752 + },
  3753 + "peerDependencies": {
  3754 + "react": "*",
  3755 + "react-dom": "*"
  3756 + }
  3757 + },
  3758 + "node_modules/rc-slider": {
  3759 + "version": "11.1.9",
  3760 + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz",
  3761 + "integrity": "sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==",
  3762 + "license": "MIT",
  3763 + "dependencies": {
  3764 + "@babel/runtime": "^7.10.1",
  3765 + "classnames": "^2.2.5",
  3766 + "rc-util": "^5.36.0"
  3767 + },
  3768 + "engines": {
  3769 + "node": ">=8.x"
  3770 + },
  3771 + "peerDependencies": {
  3772 + "react": ">=16.9.0",
  3773 + "react-dom": ">=16.9.0"
  3774 + }
  3775 + },
  3776 + "node_modules/rc-steps": {
  3777 + "version": "6.0.1",
  3778 + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz",
  3779 + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==",
  3780 + "license": "MIT",
  3781 + "dependencies": {
  3782 + "@babel/runtime": "^7.16.7",
  3783 + "classnames": "^2.2.3",
  3784 + "rc-util": "^5.16.1"
  3785 + },
  3786 + "engines": {
  3787 + "node": ">=8.x"
  3788 + },
  3789 + "peerDependencies": {
  3790 + "react": ">=16.9.0",
  3791 + "react-dom": ">=16.9.0"
  3792 + }
  3793 + },
  3794 + "node_modules/rc-switch": {
  3795 + "version": "4.1.0",
  3796 + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz",
  3797 + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==",
  3798 + "license": "MIT",
  3799 + "dependencies": {
  3800 + "@babel/runtime": "^7.21.0",
  3801 + "classnames": "^2.2.1",
  3802 + "rc-util": "^5.30.0"
  3803 + },
  3804 + "peerDependencies": {
  3805 + "react": ">=16.9.0",
  3806 + "react-dom": ">=16.9.0"
  3807 + }
  3808 + },
  3809 + "node_modules/rc-table": {
  3810 + "version": "7.54.0",
  3811 + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.54.0.tgz",
  3812 + "integrity": "sha512-/wDTkki6wBTjwylwAGjpLKYklKo9YgjZwAU77+7ME5mBoS32Q4nAwoqhA2lSge6fobLW3Tap6uc5xfwaL2p0Sw==",
  3813 + "license": "MIT",
  3814 + "dependencies": {
  3815 + "@babel/runtime": "^7.10.1",
  3816 + "@rc-component/context": "^1.4.0",
  3817 + "classnames": "^2.2.5",
  3818 + "rc-resize-observer": "^1.1.0",
  3819 + "rc-util": "^5.44.3",
  3820 + "rc-virtual-list": "^3.14.2"
  3821 + },
  3822 + "engines": {
  3823 + "node": ">=8.x"
  3824 + },
  3825 + "peerDependencies": {
  3826 + "react": ">=16.9.0",
  3827 + "react-dom": ">=16.9.0"
  3828 + }
  3829 + },
  3830 + "node_modules/rc-tabs": {
  3831 + "version": "15.7.0",
  3832 + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz",
  3833 + "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==",
  3834 + "license": "MIT",
  3835 + "dependencies": {
  3836 + "@babel/runtime": "^7.11.2",
  3837 + "classnames": "2.x",
  3838 + "rc-dropdown": "~4.2.0",
  3839 + "rc-menu": "~9.16.0",
  3840 + "rc-motion": "^2.6.2",
  3841 + "rc-resize-observer": "^1.0.0",
  3842 + "rc-util": "^5.34.1"
  3843 + },
  3844 + "engines": {
  3845 + "node": ">=8.x"
  3846 + },
  3847 + "peerDependencies": {
  3848 + "react": ">=16.9.0",
  3849 + "react-dom": ">=16.9.0"
  3850 + }
  3851 + },
  3852 + "node_modules/rc-textarea": {
  3853 + "version": "1.10.2",
  3854 + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz",
  3855 + "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==",
  3856 + "license": "MIT",
  3857 + "dependencies": {
  3858 + "@babel/runtime": "^7.10.1",
  3859 + "classnames": "^2.2.1",
  3860 + "rc-input": "~1.8.0",
  3861 + "rc-resize-observer": "^1.0.0",
  3862 + "rc-util": "^5.27.0"
  3863 + },
  3864 + "peerDependencies": {
  3865 + "react": ">=16.9.0",
  3866 + "react-dom": ">=16.9.0"
  3867 + }
  3868 + },
  3869 + "node_modules/rc-tooltip": {
  3870 + "version": "6.4.0",
  3871 + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz",
  3872 + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==",
  3873 + "license": "MIT",
  3874 + "dependencies": {
  3875 + "@babel/runtime": "^7.11.2",
  3876 + "@rc-component/trigger": "^2.0.0",
  3877 + "classnames": "^2.3.1",
  3878 + "rc-util": "^5.44.3"
  3879 + },
  3880 + "peerDependencies": {
  3881 + "react": ">=16.9.0",
  3882 + "react-dom": ">=16.9.0"
  3883 + }
  3884 + },
  3885 + "node_modules/rc-tree": {
  3886 + "version": "5.13.1",
  3887 + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz",
  3888 + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==",
  3889 + "license": "MIT",
  3890 + "dependencies": {
  3891 + "@babel/runtime": "^7.10.1",
  3892 + "classnames": "2.x",
  3893 + "rc-motion": "^2.0.1",
  3894 + "rc-util": "^5.16.1",
  3895 + "rc-virtual-list": "^3.5.1"
  3896 + },
  3897 + "engines": {
  3898 + "node": ">=10.x"
  3899 + },
  3900 + "peerDependencies": {
  3901 + "react": "*",
  3902 + "react-dom": "*"
  3903 + }
  3904 + },
  3905 + "node_modules/rc-tree-select": {
  3906 + "version": "5.27.0",
  3907 + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz",
  3908 + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==",
  3909 + "license": "MIT",
  3910 + "dependencies": {
  3911 + "@babel/runtime": "^7.25.7",
  3912 + "classnames": "2.x",
  3913 + "rc-select": "~14.16.2",
  3914 + "rc-tree": "~5.13.0",
  3915 + "rc-util": "^5.43.0"
  3916 + },
  3917 + "peerDependencies": {
  3918 + "react": "*",
  3919 + "react-dom": "*"
  3920 + }
  3921 + },
  3922 + "node_modules/rc-upload": {
  3923 + "version": "4.11.0",
  3924 + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.11.0.tgz",
  3925 + "integrity": "sha512-ZUyT//2JAehfHzjWowqROcwYJKnZkIUGWaTE/VogVrepSl7AFNbQf4+zGfX4zl9Vrj/Jm8scLO0R6UlPDKK4wA==",
  3926 + "license": "MIT",
  3927 + "dependencies": {
  3928 + "@babel/runtime": "^7.18.3",
  3929 + "classnames": "^2.2.5",
  3930 + "rc-util": "^5.2.0"
  3931 + },
  3932 + "peerDependencies": {
  3933 + "react": ">=16.9.0",
  3934 + "react-dom": ">=16.9.0"
  3935 + }
  3936 + },
  3937 + "node_modules/rc-util": {
  3938 + "version": "5.44.4",
  3939 + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz",
  3940 + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==",
  3941 + "license": "MIT",
  3942 + "dependencies": {
  3943 + "@babel/runtime": "^7.18.3",
  3944 + "react-is": "^18.2.0"
  3945 + },
  3946 + "peerDependencies": {
  3947 + "react": ">=16.9.0",
  3948 + "react-dom": ">=16.9.0"
  3949 + }
  3950 + },
  3951 + "node_modules/rc-util/node_modules/react-is": {
  3952 + "version": "18.3.1",
  3953 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
  3954 + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
  3955 + "license": "MIT"
  3956 + },
  3957 + "node_modules/rc-virtual-list": {
  3958 + "version": "3.19.2",
  3959 + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz",
  3960 + "integrity": "sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==",
  3961 + "license": "MIT",
  3962 + "dependencies": {
  3963 + "@babel/runtime": "^7.20.0",
  3964 + "classnames": "^2.2.6",
  3965 + "rc-resize-observer": "^1.0.0",
  3966 + "rc-util": "^5.36.0"
  3967 + },
  3968 + "engines": {
  3969 + "node": ">=8.x"
  3970 + },
  3971 + "peerDependencies": {
  3972 + "react": ">=16.9.0",
  3973 + "react-dom": ">=16.9.0"
  3974 + }
  3975 + },
  3976 + "node_modules/react": {
  3977 + "version": "18.3.1",
  3978 + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
  3979 + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
  3980 + "license": "MIT",
  3981 + "dependencies": {
  3982 + "loose-envify": "^1.1.0"
  3983 + },
  3984 + "engines": {
  3985 + "node": ">=0.10.0"
  3986 + }
  3987 + },
  3988 + "node_modules/react-dom": {
  3989 + "version": "18.3.1",
  3990 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
  3991 + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
  3992 + "license": "MIT",
  3993 + "dependencies": {
  3994 + "loose-envify": "^1.1.0",
  3995 + "scheduler": "^0.23.2"
  3996 + },
  3997 + "peerDependencies": {
  3998 + "react": "^18.3.1"
  3999 + }
  4000 + },
  4001 + "node_modules/react-is": {
  4002 + "version": "17.0.2",
  4003 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
  4004 + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
  4005 + "dev": true,
  4006 + "license": "MIT",
  4007 + "peer": true
  4008 + },
  4009 + "node_modules/react-redux": {
  4010 + "version": "9.2.0",
  4011 + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
  4012 + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
  4013 + "license": "MIT",
  4014 + "dependencies": {
  4015 + "@types/use-sync-external-store": "^0.0.6",
  4016 + "use-sync-external-store": "^1.4.0"
  4017 + },
  4018 + "peerDependencies": {
  4019 + "@types/react": "^18.2.25 || ^19",
  4020 + "react": "^18.0 || ^19",
  4021 + "redux": "^5.0.0"
  4022 + },
  4023 + "peerDependenciesMeta": {
  4024 + "@types/react": {
  4025 + "optional": true
  4026 + },
  4027 + "redux": {
  4028 + "optional": true
  4029 + }
  4030 + }
  4031 + },
  4032 + "node_modules/react-refresh": {
  4033 + "version": "0.17.0",
  4034 + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
  4035 + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
  4036 + "dev": true,
  4037 + "license": "MIT",
  4038 + "engines": {
  4039 + "node": ">=0.10.0"
  4040 + }
  4041 + },
  4042 + "node_modules/react-router": {
  4043 + "version": "6.30.3",
  4044 + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz",
  4045 + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==",
  4046 + "license": "MIT",
  4047 + "dependencies": {
  4048 + "@remix-run/router": "1.23.2"
  4049 + },
  4050 + "engines": {
  4051 + "node": ">=14.0.0"
  4052 + },
  4053 + "peerDependencies": {
  4054 + "react": ">=16.8"
  4055 + }
  4056 + },
  4057 + "node_modules/react-router-dom": {
  4058 + "version": "6.30.3",
  4059 + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz",
  4060 + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==",
  4061 + "license": "MIT",
  4062 + "dependencies": {
  4063 + "@remix-run/router": "1.23.2",
  4064 + "react-router": "6.30.3"
  4065 + },
  4066 + "engines": {
  4067 + "node": ">=14.0.0"
  4068 + },
  4069 + "peerDependencies": {
  4070 + "react": ">=16.8",
  4071 + "react-dom": ">=16.8"
  4072 + }
  4073 + },
  4074 + "node_modules/redent": {
  4075 + "version": "3.0.0",
  4076 + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
  4077 + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
  4078 + "dev": true,
  4079 + "license": "MIT",
  4080 + "dependencies": {
  4081 + "indent-string": "^4.0.0",
  4082 + "strip-indent": "^3.0.0"
  4083 + },
  4084 + "engines": {
  4085 + "node": ">=8"
  4086 + }
  4087 + },
  4088 + "node_modules/redux": {
  4089 + "version": "5.0.1",
  4090 + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
  4091 + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
  4092 + "license": "MIT"
  4093 + },
  4094 + "node_modules/redux-thunk": {
  4095 + "version": "3.1.0",
  4096 + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
  4097 + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
  4098 + "license": "MIT",
  4099 + "peerDependencies": {
  4100 + "redux": "^5.0.0"
  4101 + }
  4102 + },
  4103 + "node_modules/requires-port": {
  4104 + "version": "1.0.0",
  4105 + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
  4106 + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
  4107 + "dev": true,
  4108 + "license": "MIT"
  4109 + },
  4110 + "node_modules/reselect": {
  4111 + "version": "5.1.1",
  4112 + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
  4113 + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
  4114 + "license": "MIT"
  4115 + },
  4116 + "node_modules/resize-observer-polyfill": {
  4117 + "version": "1.5.1",
  4118 + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
  4119 + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
  4120 + "license": "MIT"
  4121 + },
  4122 + "node_modules/rollup": {
  4123 + "version": "4.60.3",
  4124 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz",
  4125 + "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==",
  4126 + "dev": true,
  4127 + "license": "MIT",
  4128 + "dependencies": {
  4129 + "@types/estree": "1.0.8"
  4130 + },
  4131 + "bin": {
  4132 + "rollup": "dist/bin/rollup"
  4133 + },
  4134 + "engines": {
  4135 + "node": ">=18.0.0",
  4136 + "npm": ">=8.0.0"
  4137 + },
  4138 + "optionalDependencies": {
  4139 + "@rollup/rollup-android-arm-eabi": "4.60.3",
  4140 + "@rollup/rollup-android-arm64": "4.60.3",
  4141 + "@rollup/rollup-darwin-arm64": "4.60.3",
  4142 + "@rollup/rollup-darwin-x64": "4.60.3",
  4143 + "@rollup/rollup-freebsd-arm64": "4.60.3",
  4144 + "@rollup/rollup-freebsd-x64": "4.60.3",
  4145 + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3",
  4146 + "@rollup/rollup-linux-arm-musleabihf": "4.60.3",
  4147 + "@rollup/rollup-linux-arm64-gnu": "4.60.3",
  4148 + "@rollup/rollup-linux-arm64-musl": "4.60.3",
  4149 + "@rollup/rollup-linux-loong64-gnu": "4.60.3",
  4150 + "@rollup/rollup-linux-loong64-musl": "4.60.3",
  4151 + "@rollup/rollup-linux-ppc64-gnu": "4.60.3",
  4152 + "@rollup/rollup-linux-ppc64-musl": "4.60.3",
  4153 + "@rollup/rollup-linux-riscv64-gnu": "4.60.3",
  4154 + "@rollup/rollup-linux-riscv64-musl": "4.60.3",
  4155 + "@rollup/rollup-linux-s390x-gnu": "4.60.3",
  4156 + "@rollup/rollup-linux-x64-gnu": "4.60.3",
  4157 + "@rollup/rollup-linux-x64-musl": "4.60.3",
  4158 + "@rollup/rollup-openbsd-x64": "4.60.3",
  4159 + "@rollup/rollup-openharmony-arm64": "4.60.3",
  4160 + "@rollup/rollup-win32-arm64-msvc": "4.60.3",
  4161 + "@rollup/rollup-win32-ia32-msvc": "4.60.3",
  4162 + "@rollup/rollup-win32-x64-gnu": "4.60.3",
  4163 + "@rollup/rollup-win32-x64-msvc": "4.60.3",
  4164 + "fsevents": "~2.3.2"
  4165 + }
  4166 + },
  4167 + "node_modules/rrweb-cssom": {
  4168 + "version": "0.7.1",
  4169 + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
  4170 + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==",
  4171 + "dev": true,
  4172 + "license": "MIT"
  4173 + },
  4174 + "node_modules/safer-buffer": {
  4175 + "version": "2.1.2",
  4176 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
  4177 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
  4178 + "dev": true,
  4179 + "license": "MIT"
  4180 + },
  4181 + "node_modules/saxes": {
  4182 + "version": "6.0.0",
  4183 + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
  4184 + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
  4185 + "dev": true,
  4186 + "license": "ISC",
  4187 + "dependencies": {
  4188 + "xmlchars": "^2.2.0"
  4189 + },
  4190 + "engines": {
  4191 + "node": ">=v12.22.7"
  4192 + }
  4193 + },
  4194 + "node_modules/scheduler": {
  4195 + "version": "0.23.2",
  4196 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
  4197 + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
  4198 + "license": "MIT",
  4199 + "dependencies": {
  4200 + "loose-envify": "^1.1.0"
  4201 + }
  4202 + },
  4203 + "node_modules/scroll-into-view-if-needed": {
  4204 + "version": "3.1.0",
  4205 + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
  4206 + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
  4207 + "license": "MIT",
  4208 + "dependencies": {
  4209 + "compute-scroll-into-view": "^3.0.2"
  4210 + }
  4211 + },
  4212 + "node_modules/semver": {
  4213 + "version": "6.3.1",
  4214 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
  4215 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
  4216 + "dev": true,
  4217 + "license": "ISC",
  4218 + "bin": {
  4219 + "semver": "bin/semver.js"
  4220 + }
  4221 + },
  4222 + "node_modules/shebang-command": {
  4223 + "version": "2.0.0",
  4224 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
  4225 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
  4226 + "dev": true,
  4227 + "license": "MIT",
  4228 + "dependencies": {
  4229 + "shebang-regex": "^3.0.0"
  4230 + },
  4231 + "engines": {
  4232 + "node": ">=8"
  4233 + }
  4234 + },
  4235 + "node_modules/shebang-regex": {
  4236 + "version": "3.0.0",
  4237 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
  4238 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
  4239 + "dev": true,
  4240 + "license": "MIT",
  4241 + "engines": {
  4242 + "node": ">=8"
  4243 + }
  4244 + },
  4245 + "node_modules/siginfo": {
  4246 + "version": "2.0.0",
  4247 + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
  4248 + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
  4249 + "dev": true,
  4250 + "license": "ISC"
  4251 + },
  4252 + "node_modules/signal-exit": {
  4253 + "version": "4.1.0",
  4254 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
  4255 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
  4256 + "dev": true,
  4257 + "license": "ISC",
  4258 + "engines": {
  4259 + "node": ">=14"
  4260 + },
  4261 + "funding": {
  4262 + "url": "https://github.com/sponsors/isaacs"
  4263 + }
  4264 + },
  4265 + "node_modules/source-map-js": {
  4266 + "version": "1.2.1",
  4267 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
  4268 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
  4269 + "dev": true,
  4270 + "license": "BSD-3-Clause",
  4271 + "engines": {
  4272 + "node": ">=0.10.0"
  4273 + }
  4274 + },
  4275 + "node_modules/stackback": {
  4276 + "version": "0.0.2",
  4277 + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
  4278 + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
  4279 + "dev": true,
  4280 + "license": "MIT"
  4281 + },
  4282 + "node_modules/std-env": {
  4283 + "version": "3.10.0",
  4284 + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
  4285 + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
  4286 + "dev": true,
  4287 + "license": "MIT"
  4288 + },
  4289 + "node_modules/string-convert": {
  4290 + "version": "0.2.1",
  4291 + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
  4292 + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==",
  4293 + "license": "MIT"
  4294 + },
  4295 + "node_modules/strip-final-newline": {
  4296 + "version": "3.0.0",
  4297 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
  4298 + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
  4299 + "dev": true,
  4300 + "license": "MIT",
  4301 + "engines": {
  4302 + "node": ">=12"
  4303 + },
  4304 + "funding": {
  4305 + "url": "https://github.com/sponsors/sindresorhus"
  4306 + }
  4307 + },
  4308 + "node_modules/strip-indent": {
  4309 + "version": "3.0.0",
  4310 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
  4311 + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
  4312 + "dev": true,
  4313 + "license": "MIT",
  4314 + "dependencies": {
  4315 + "min-indent": "^1.0.0"
  4316 + },
  4317 + "engines": {
  4318 + "node": ">=8"
  4319 + }
  4320 + },
  4321 + "node_modules/strip-literal": {
  4322 + "version": "2.1.1",
  4323 + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz",
  4324 + "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==",
  4325 + "dev": true,
  4326 + "license": "MIT",
  4327 + "dependencies": {
  4328 + "js-tokens": "^9.0.1"
  4329 + },
  4330 + "funding": {
  4331 + "url": "https://github.com/sponsors/antfu"
  4332 + }
  4333 + },
  4334 + "node_modules/strip-literal/node_modules/js-tokens": {
  4335 + "version": "9.0.1",
  4336 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
  4337 + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
  4338 + "dev": true,
  4339 + "license": "MIT"
  4340 + },
  4341 + "node_modules/stylis": {
  4342 + "version": "4.4.0",
  4343 + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz",
  4344 + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==",
  4345 + "license": "MIT"
  4346 + },
  4347 + "node_modules/symbol-tree": {
  4348 + "version": "3.2.4",
  4349 + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
  4350 + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
  4351 + "dev": true,
  4352 + "license": "MIT"
  4353 + },
  4354 + "node_modules/throttle-debounce": {
  4355 + "version": "5.0.2",
  4356 + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
  4357 + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==",
  4358 + "license": "MIT",
  4359 + "engines": {
  4360 + "node": ">=12.22"
  4361 + }
  4362 + },
  4363 + "node_modules/tinybench": {
  4364 + "version": "2.9.0",
  4365 + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
  4366 + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
  4367 + "dev": true,
  4368 + "license": "MIT"
  4369 + },
  4370 + "node_modules/tinypool": {
  4371 + "version": "0.8.4",
  4372 + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz",
  4373 + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==",
  4374 + "dev": true,
  4375 + "license": "MIT",
  4376 + "engines": {
  4377 + "node": ">=14.0.0"
  4378 + }
  4379 + },
  4380 + "node_modules/tinyspy": {
  4381 + "version": "2.2.1",
  4382 + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
  4383 + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
  4384 + "dev": true,
  4385 + "license": "MIT",
  4386 + "engines": {
  4387 + "node": ">=14.0.0"
  4388 + }
  4389 + },
  4390 + "node_modules/toggle-selection": {
  4391 + "version": "1.0.6",
  4392 + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
  4393 + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==",
  4394 + "license": "MIT"
  4395 + },
  4396 + "node_modules/tough-cookie": {
  4397 + "version": "4.1.4",
  4398 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
  4399 + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
  4400 + "dev": true,
  4401 + "license": "BSD-3-Clause",
  4402 + "dependencies": {
  4403 + "psl": "^1.1.33",
  4404 + "punycode": "^2.1.1",
  4405 + "universalify": "^0.2.0",
  4406 + "url-parse": "^1.5.3"
  4407 + },
  4408 + "engines": {
  4409 + "node": ">=6"
  4410 + }
  4411 + },
  4412 + "node_modules/tr46": {
  4413 + "version": "5.1.1",
  4414 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
  4415 + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
  4416 + "dev": true,
  4417 + "license": "MIT",
  4418 + "dependencies": {
  4419 + "punycode": "^2.3.1"
  4420 + },
  4421 + "engines": {
  4422 + "node": ">=18"
  4423 + }
  4424 + },
  4425 + "node_modules/type-detect": {
  4426 + "version": "4.1.0",
  4427 + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
  4428 + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
  4429 + "dev": true,
  4430 + "license": "MIT",
  4431 + "engines": {
  4432 + "node": ">=4"
  4433 + }
  4434 + },
  4435 + "node_modules/typescript": {
  4436 + "version": "5.9.3",
  4437 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
  4438 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
  4439 + "dev": true,
  4440 + "license": "Apache-2.0",
  4441 + "bin": {
  4442 + "tsc": "bin/tsc",
  4443 + "tsserver": "bin/tsserver"
  4444 + },
  4445 + "engines": {
  4446 + "node": ">=14.17"
  4447 + }
  4448 + },
  4449 + "node_modules/ufo": {
  4450 + "version": "1.6.4",
  4451 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz",
  4452 + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==",
  4453 + "dev": true,
  4454 + "license": "MIT"
  4455 + },
  4456 + "node_modules/universalify": {
  4457 + "version": "0.2.0",
  4458 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
  4459 + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
  4460 + "dev": true,
  4461 + "license": "MIT",
  4462 + "engines": {
  4463 + "node": ">= 4.0.0"
  4464 + }
  4465 + },
  4466 + "node_modules/update-browserslist-db": {
  4467 + "version": "1.2.3",
  4468 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
  4469 + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
  4470 + "dev": true,
  4471 + "funding": [
  4472 + {
  4473 + "type": "opencollective",
  4474 + "url": "https://opencollective.com/browserslist"
  4475 + },
  4476 + {
  4477 + "type": "tidelift",
  4478 + "url": "https://tidelift.com/funding/github/npm/browserslist"
  4479 + },
  4480 + {
  4481 + "type": "github",
  4482 + "url": "https://github.com/sponsors/ai"
  4483 + }
  4484 + ],
  4485 + "license": "MIT",
  4486 + "dependencies": {
  4487 + "escalade": "^3.2.0",
  4488 + "picocolors": "^1.1.1"
  4489 + },
  4490 + "bin": {
  4491 + "update-browserslist-db": "cli.js"
  4492 + },
  4493 + "peerDependencies": {
  4494 + "browserslist": ">= 4.21.0"
  4495 + }
  4496 + },
  4497 + "node_modules/url-parse": {
  4498 + "version": "1.5.10",
  4499 + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
  4500 + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
  4501 + "dev": true,
  4502 + "license": "MIT",
  4503 + "dependencies": {
  4504 + "querystringify": "^2.1.1",
  4505 + "requires-port": "^1.0.0"
  4506 + }
  4507 + },
  4508 + "node_modules/use-sync-external-store": {
  4509 + "version": "1.6.0",
  4510 + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
  4511 + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
  4512 + "license": "MIT",
  4513 + "peerDependencies": {
  4514 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
  4515 + }
  4516 + },
  4517 + "node_modules/vite": {
  4518 + "version": "5.4.21",
  4519 + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
  4520 + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
  4521 + "dev": true,
  4522 + "license": "MIT",
  4523 + "dependencies": {
  4524 + "esbuild": "^0.21.3",
  4525 + "postcss": "^8.4.43",
  4526 + "rollup": "^4.20.0"
  4527 + },
  4528 + "bin": {
  4529 + "vite": "bin/vite.js"
  4530 + },
  4531 + "engines": {
  4532 + "node": "^18.0.0 || >=20.0.0"
  4533 + },
  4534 + "funding": {
  4535 + "url": "https://github.com/vitejs/vite?sponsor=1"
  4536 + },
  4537 + "optionalDependencies": {
  4538 + "fsevents": "~2.3.3"
  4539 + },
  4540 + "peerDependencies": {
  4541 + "@types/node": "^18.0.0 || >=20.0.0",
  4542 + "less": "*",
  4543 + "lightningcss": "^1.21.0",
  4544 + "sass": "*",
  4545 + "sass-embedded": "*",
  4546 + "stylus": "*",
  4547 + "sugarss": "*",
  4548 + "terser": "^5.4.0"
  4549 + },
  4550 + "peerDependenciesMeta": {
  4551 + "@types/node": {
  4552 + "optional": true
  4553 + },
  4554 + "less": {
  4555 + "optional": true
  4556 + },
  4557 + "lightningcss": {
  4558 + "optional": true
  4559 + },
  4560 + "sass": {
  4561 + "optional": true
  4562 + },
  4563 + "sass-embedded": {
  4564 + "optional": true
  4565 + },
  4566 + "stylus": {
  4567 + "optional": true
  4568 + },
  4569 + "sugarss": {
  4570 + "optional": true
  4571 + },
  4572 + "terser": {
  4573 + "optional": true
  4574 + }
  4575 + }
  4576 + },
  4577 + "node_modules/vite-node": {
  4578 + "version": "1.6.1",
  4579 + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz",
  4580 + "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==",
  4581 + "dev": true,
  4582 + "license": "MIT",
  4583 + "dependencies": {
  4584 + "cac": "^6.7.14",
  4585 + "debug": "^4.3.4",
  4586 + "pathe": "^1.1.1",
  4587 + "picocolors": "^1.0.0",
  4588 + "vite": "^5.0.0"
  4589 + },
  4590 + "bin": {
  4591 + "vite-node": "vite-node.mjs"
  4592 + },
  4593 + "engines": {
  4594 + "node": "^18.0.0 || >=20.0.0"
  4595 + },
  4596 + "funding": {
  4597 + "url": "https://opencollective.com/vitest"
  4598 + }
  4599 + },
  4600 + "node_modules/vitest": {
  4601 + "version": "1.6.1",
  4602 + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz",
  4603 + "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==",
  4604 + "dev": true,
  4605 + "license": "MIT",
  4606 + "dependencies": {
  4607 + "@vitest/expect": "1.6.1",
  4608 + "@vitest/runner": "1.6.1",
  4609 + "@vitest/snapshot": "1.6.1",
  4610 + "@vitest/spy": "1.6.1",
  4611 + "@vitest/utils": "1.6.1",
  4612 + "acorn-walk": "^8.3.2",
  4613 + "chai": "^4.3.10",
  4614 + "debug": "^4.3.4",
  4615 + "execa": "^8.0.1",
  4616 + "local-pkg": "^0.5.0",
  4617 + "magic-string": "^0.30.5",
  4618 + "pathe": "^1.1.1",
  4619 + "picocolors": "^1.0.0",
  4620 + "std-env": "^3.5.0",
  4621 + "strip-literal": "^2.0.0",
  4622 + "tinybench": "^2.5.1",
  4623 + "tinypool": "^0.8.3",
  4624 + "vite": "^5.0.0",
  4625 + "vite-node": "1.6.1",
  4626 + "why-is-node-running": "^2.2.2"
  4627 + },
  4628 + "bin": {
  4629 + "vitest": "vitest.mjs"
  4630 + },
  4631 + "engines": {
  4632 + "node": "^18.0.0 || >=20.0.0"
  4633 + },
  4634 + "funding": {
  4635 + "url": "https://opencollective.com/vitest"
  4636 + },
  4637 + "peerDependencies": {
  4638 + "@edge-runtime/vm": "*",
  4639 + "@types/node": "^18.0.0 || >=20.0.0",
  4640 + "@vitest/browser": "1.6.1",
  4641 + "@vitest/ui": "1.6.1",
  4642 + "happy-dom": "*",
  4643 + "jsdom": "*"
  4644 + },
  4645 + "peerDependenciesMeta": {
  4646 + "@edge-runtime/vm": {
  4647 + "optional": true
  4648 + },
  4649 + "@types/node": {
  4650 + "optional": true
  4651 + },
  4652 + "@vitest/browser": {
  4653 + "optional": true
  4654 + },
  4655 + "@vitest/ui": {
  4656 + "optional": true
  4657 + },
  4658 + "happy-dom": {
  4659 + "optional": true
  4660 + },
  4661 + "jsdom": {
  4662 + "optional": true
  4663 + }
  4664 + }
  4665 + },
  4666 + "node_modules/w3c-xmlserializer": {
  4667 + "version": "5.0.0",
  4668 + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
  4669 + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
  4670 + "dev": true,
  4671 + "license": "MIT",
  4672 + "dependencies": {
  4673 + "xml-name-validator": "^5.0.0"
  4674 + },
  4675 + "engines": {
  4676 + "node": ">=18"
  4677 + }
  4678 + },
  4679 + "node_modules/webidl-conversions": {
  4680 + "version": "7.0.0",
  4681 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
  4682 + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
  4683 + "dev": true,
  4684 + "license": "BSD-2-Clause",
  4685 + "engines": {
  4686 + "node": ">=12"
  4687 + }
  4688 + },
  4689 + "node_modules/whatwg-encoding": {
  4690 + "version": "3.1.1",
  4691 + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
  4692 + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
  4693 + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation",
  4694 + "dev": true,
  4695 + "license": "MIT",
  4696 + "dependencies": {
  4697 + "iconv-lite": "0.6.3"
  4698 + },
  4699 + "engines": {
  4700 + "node": ">=18"
  4701 + }
  4702 + },
  4703 + "node_modules/whatwg-mimetype": {
  4704 + "version": "4.0.0",
  4705 + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
  4706 + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
  4707 + "dev": true,
  4708 + "license": "MIT",
  4709 + "engines": {
  4710 + "node": ">=18"
  4711 + }
  4712 + },
  4713 + "node_modules/whatwg-url": {
  4714 + "version": "14.2.0",
  4715 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
  4716 + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
  4717 + "dev": true,
  4718 + "license": "MIT",
  4719 + "dependencies": {
  4720 + "tr46": "^5.1.0",
  4721 + "webidl-conversions": "^7.0.0"
  4722 + },
  4723 + "engines": {
  4724 + "node": ">=18"
  4725 + }
  4726 + },
  4727 + "node_modules/which": {
  4728 + "version": "2.0.2",
  4729 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  4730 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
  4731 + "dev": true,
  4732 + "license": "ISC",
  4733 + "dependencies": {
  4734 + "isexe": "^2.0.0"
  4735 + },
  4736 + "bin": {
  4737 + "node-which": "bin/node-which"
  4738 + },
  4739 + "engines": {
  4740 + "node": ">= 8"
  4741 + }
  4742 + },
  4743 + "node_modules/why-is-node-running": {
  4744 + "version": "2.3.0",
  4745 + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
  4746 + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
  4747 + "dev": true,
  4748 + "license": "MIT",
  4749 + "dependencies": {
  4750 + "siginfo": "^2.0.0",
  4751 + "stackback": "0.0.2"
  4752 + },
  4753 + "bin": {
  4754 + "why-is-node-running": "cli.js"
  4755 + },
  4756 + "engines": {
  4757 + "node": ">=8"
  4758 + }
  4759 + },
  4760 + "node_modules/ws": {
  4761 + "version": "8.20.0",
  4762 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
  4763 + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
  4764 + "dev": true,
  4765 + "license": "MIT",
  4766 + "engines": {
  4767 + "node": ">=10.0.0"
  4768 + },
  4769 + "peerDependencies": {
  4770 + "bufferutil": "^4.0.1",
  4771 + "utf-8-validate": ">=5.0.2"
  4772 + },
  4773 + "peerDependenciesMeta": {
  4774 + "bufferutil": {
  4775 + "optional": true
  4776 + },
  4777 + "utf-8-validate": {
  4778 + "optional": true
  4779 + }
  4780 + }
  4781 + },
  4782 + "node_modules/xml-name-validator": {
  4783 + "version": "5.0.0",
  4784 + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
  4785 + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
  4786 + "dev": true,
  4787 + "license": "Apache-2.0",
  4788 + "engines": {
  4789 + "node": ">=18"
  4790 + }
  4791 + },
  4792 + "node_modules/xmlchars": {
  4793 + "version": "2.2.0",
  4794 + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
  4795 + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
  4796 + "dev": true,
  4797 + "license": "MIT"
  4798 + },
  4799 + "node_modules/yallist": {
  4800 + "version": "3.1.1",
  4801 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
  4802 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
  4803 + "dev": true,
  4804 + "license": "ISC"
  4805 + },
  4806 + "node_modules/yocto-queue": {
  4807 + "version": "1.2.2",
  4808 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
  4809 + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
  4810 + "dev": true,
  4811 + "license": "MIT",
  4812 + "engines": {
  4813 + "node": ">=12.20"
  4814 + },
  4815 + "funding": {
  4816 + "url": "https://github.com/sponsors/sindresorhus"
  4817 + }
  4818 + }
  4819 + }
  4820 +}
... ...
frontend/package.json 0 → 100644
  1 +{
  2 + "name": "erp-frontend",
  3 + "private": true,
  4 + "version": "0.0.1",
  5 + "type": "module",
  6 + "scripts": {
  7 + "dev": "vite",
  8 + "build": "tsc && vite build",
  9 + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
  10 + "preview": "vite preview",
  11 + "test": "vitest"
  12 + },
  13 + "dependencies": {
  14 + "@ant-design/icons": "^5.3.7",
  15 + "@reduxjs/toolkit": "^2.2.5",
  16 + "antd": "^5.18.0",
  17 + "axios": "^1.7.2",
  18 + "dayjs": "^1.11.11",
  19 + "react": "^18.3.1",
  20 + "react-dom": "^18.3.1",
  21 + "react-redux": "^9.1.2",
  22 + "react-router-dom": "^6.23.1"
  23 + },
  24 + "devDependencies": {
  25 + "@testing-library/jest-dom": "^6.4.6",
  26 + "@testing-library/react": "^16.0.0",
  27 + "@testing-library/user-event": "^14.5.2",
  28 + "@types/react": "^18.3.3",
  29 + "@types/react-dom": "^18.3.0",
  30 + "@vitejs/plugin-react": "^4.3.1",
  31 + "jsdom": "^24.1.0",
  32 + "typescript": "^5.4.5",
  33 + "vite": "^5.3.1",
  34 + "vitest": "^1.6.0"
  35 + }
  36 +}
... ...
frontend/src/App.tsx 0 → 100644
  1 +import { Navigate, Route, Routes } from 'react-router-dom'
  2 +import { useAppSelector } from './store/hooks'
  3 +import LoginPage from './pages/usr/LoginPage'
  4 +
  5 +function PrivateRoute({ children }: { children: React.ReactNode }) {
  6 + const accessToken = useAppSelector(s => s.auth.accessToken)
  7 + return accessToken ? <>{children}</> : <Navigate to="/login" replace />
  8 +}
  9 +
  10 +export default function App() {
  11 + return (
  12 + <Routes>
  13 + <Route path="/login" element={<LoginPage />} />
  14 + <Route path="/" element={<PrivateRoute><div>主页(待实现)</div></PrivateRoute>} />
  15 + <Route path="*" element={<Navigate to="/" replace />} />
  16 + </Routes>
  17 + )
  18 +}
... ...
frontend/src/api/auth.ts 0 → 100644
  1 +import { UserInfoVO } from '../store/slices/authSlice'
  2 +import request from './request'
  3 +
  4 +export interface BrandVO {
  5 + sNo: string
  6 + sName: string
  7 +}
  8 +
  9 +export interface LoginVO {
  10 + accessToken: string
  11 + refreshToken: string
  12 + expiresIn: number
  13 + userInfo: UserInfoVO
  14 +}
  15 +
  16 +export function login(params: { brandNo: string; username: string; password: string }): Promise<LoginVO> {
  17 + return request.post('/auth/login', params)
  18 +}
  19 +
  20 +export function refresh(refreshToken: string): Promise<{ accessToken: string }> {
  21 + return request.post('/auth/refresh', { refreshToken })
  22 +}
  23 +
  24 +export function getBrands(): Promise<BrandVO[]> {
  25 + return request.get('/auth/brands')
  26 +}
... ...
frontend/src/api/request.ts 0 → 100644
  1 +import axios, { AxiosInstance, AxiosResponse } from 'axios'
  2 +import { store } from '../store'
  3 +import { clearCredentials, setCredentials } from '../store/slices/authSlice'
  4 +
  5 +let isRefreshing = false
  6 +let pendingQueue: Array<(token: string) => void> = []
  7 +
  8 +const instance: AxiosInstance = axios.create({
  9 + baseURL: '/api',
  10 + timeout: 10000
  11 +})
  12 +
  13 +instance.interceptors.request.use(config => {
  14 + const token = store.getState().auth.accessToken
  15 + if (token) {
  16 + config.headers.Authorization = `Bearer ${token}`
  17 + }
  18 + return config
  19 +})
  20 +
  21 +instance.interceptors.response.use(
  22 + (response: AxiosResponse) => {
  23 + const data = response.data
  24 + if (data.code !== undefined && data.code !== 200) {
  25 + return Promise.reject(new Error(data.message || '请求失败'))
  26 + }
  27 + return data.data
  28 + },
  29 + async error => {
  30 + const originalRequest = error.config
  31 + if (error.response?.status === 401 && !originalRequest._retry) {
  32 + originalRequest._retry = true
  33 + const refreshToken = store.getState().auth.refreshToken
  34 + if (!refreshToken) {
  35 + store.dispatch(clearCredentials())
  36 + window.location.href = '/login'
  37 + return Promise.reject(error)
  38 + }
  39 + if (isRefreshing) {
  40 + return new Promise(resolve => {
  41 + pendingQueue.push((token: string) => {
  42 + originalRequest.headers.Authorization = `Bearer ${token}`
  43 + resolve(instance(originalRequest))
  44 + })
  45 + })
  46 + }
  47 + isRefreshing = true
  48 + try {
  49 + const res = await axios.post('/api/auth/refresh', { refreshToken })
  50 + const newToken = res.data.data.accessToken
  51 + store.dispatch(setCredentials({
  52 + accessToken: newToken,
  53 + refreshToken,
  54 + userInfo: store.getState().auth.userInfo!
  55 + }))
  56 + pendingQueue.forEach(cb => cb(newToken))
  57 + pendingQueue = []
  58 + originalRequest.headers.Authorization = `Bearer ${newToken}`
  59 + return instance(originalRequest)
  60 + } catch {
  61 + store.dispatch(clearCredentials())
  62 + window.location.href = '/login'
  63 + return Promise.reject(error)
  64 + } finally {
  65 + isRefreshing = false
  66 + }
  67 + }
  68 + return Promise.reject(error)
  69 + }
  70 +)
  71 +
  72 +export default instance
... ...
frontend/src/main.tsx 0 → 100644
  1 +import React from 'react'
  2 +import ReactDOM from 'react-dom/client'
  3 +import { Provider } from 'react-redux'
  4 +import { BrowserRouter } from 'react-router-dom'
  5 +import App from './App'
  6 +import { store } from './store'
  7 +import './styles/tokens.css'
  8 +
  9 +ReactDOM.createRoot(document.getElementById('root')!).render(
  10 + <React.StrictMode>
  11 + <Provider store={store}>
  12 + <BrowserRouter>
  13 + <App />
  14 + </BrowserRouter>
  15 + </Provider>
  16 + </React.StrictMode>
  17 +)
... ...
frontend/src/pages/usr/LoginPage.tsx 0 → 100644
  1 +import { useEffect, useState } from 'react'
  2 +import { useNavigate } from 'react-router-dom'
  3 +import { Button, Form, Input, message, Select } from 'antd'
  4 +import { getBrands, login, BrandVO } from '../../api/auth'
  5 +import { setCredentials } from '../../store/slices/authSlice'
  6 +import { useAppDispatch } from '../../store/hooks'
  7 +
  8 +export default function LoginPage() {
  9 + const [brandOptions, setBrandOptions] = useState<BrandVO[]>([])
  10 + const [loading, setLoading] = useState(false)
  11 + const [form] = Form.useForm()
  12 + const dispatch = useAppDispatch()
  13 + const navigate = useNavigate()
  14 +
  15 + useEffect(() => {
  16 + getBrands().then(brands => {
  17 + setBrandOptions(brands)
  18 + const std = brands.find(b => b.sName === '标准版')
  19 + const defaultNo = std ? std.sNo : brands[0]?.sNo
  20 + if (defaultNo) form.setFieldValue('brandNo', defaultNo)
  21 + }).catch(() => {})
  22 + }, [])
  23 +
  24 + const onFinish = async (values: { brandNo: string; username: string; password: string }) => {
  25 + setLoading(true)
  26 + try {
  27 + const result = await login(values)
  28 + dispatch(setCredentials({
  29 + accessToken: result.accessToken,
  30 + refreshToken: result.refreshToken,
  31 + userInfo: result.userInfo
  32 + }))
  33 + navigate('/')
  34 + } catch (e: unknown) {
  35 + message.error(e instanceof Error ? e.message : '登录失败')
  36 + } finally {
  37 + setLoading(false)
  38 + }
  39 + }
  40 +
  41 + return (
  42 + <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '100vh' }}>
  43 + <div style={{ width: 360 }}>
  44 + <h2 style={{ textAlign: 'center', marginBottom: 24 }}>小羚羊 ERP</h2>
  45 + <Form form={form} layout="vertical" onFinish={onFinish}>
  46 + <Form.Item label="公司/版本" name="brandNo" rules={[{ required: true, message: '请选择公司/版本' }]}>
  47 + <Select
  48 + options={brandOptions.map(b => ({ value: b.sNo, label: b.sName }))}
  49 + placeholder="请选择公司/版本"
  50 + />
  51 + </Form.Item>
  52 + <Form.Item label="用户名" name="username" rules={[{ required: true, message: '请输入用户名' }]}>
  53 + <Input placeholder="请输入用户名" />
  54 + </Form.Item>
  55 + <Form.Item label="密码" name="password" rules={[{ required: true, message: '请输入密码' }]}>
  56 + <Input.Password placeholder="请输入密码" />
  57 + </Form.Item>
  58 + <Form.Item>
  59 + <Button type="primary" htmlType="submit" loading={loading} block>
  60 + 登录
  61 + </Button>
  62 + </Form.Item>
  63 + </Form>
  64 + </div>
  65 + </div>
  66 + )
  67 +}
... ...
frontend/src/store/hooks.ts 0 → 100644
  1 +import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
  2 +import type { RootState, AppDispatch } from './index'
  3 +
  4 +export const useAppDispatch = () => useDispatch<AppDispatch>()
  5 +export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
... ...
frontend/src/store/index.ts 0 → 100644
  1 +import { configureStore } from '@reduxjs/toolkit'
  2 +import authReducer from './slices/authSlice'
  3 +
  4 +export const store = configureStore({
  5 + reducer: {
  6 + auth: authReducer
  7 + }
  8 +})
  9 +
  10 +export type RootState = ReturnType<typeof store.getState>
  11 +export type AppDispatch = typeof store.dispatch
... ...
frontend/src/store/slices/authSlice.ts 0 → 100644
  1 +import { createSlice, PayloadAction } from '@reduxjs/toolkit'
  2 +
  3 +export interface UserInfoVO {
  4 + userId: string
  5 + username: string
  6 + userType: string
  7 + language: string
  8 + brandId: string
  9 +}
  10 +
  11 +interface AuthState {
  12 + accessToken: string | null
  13 + refreshToken: string | null
  14 + userInfo: UserInfoVO | null
  15 +}
  16 +
  17 +const initialState: AuthState = {
  18 + accessToken: null,
  19 + refreshToken: null,
  20 + userInfo: null
  21 +}
  22 +
  23 +const authSlice = createSlice({
  24 + name: 'auth',
  25 + initialState,
  26 + reducers: {
  27 + setCredentials(state, action: PayloadAction<{ accessToken: string; refreshToken: string; userInfo: UserInfoVO }>) {
  28 + state.accessToken = action.payload.accessToken
  29 + state.refreshToken = action.payload.refreshToken
  30 + state.userInfo = action.payload.userInfo
  31 + },
  32 + clearCredentials(state) {
  33 + state.accessToken = null
  34 + state.refreshToken = null
  35 + state.userInfo = null
  36 + }
  37 + }
  38 +})
  39 +
  40 +export const { setCredentials, clearCredentials } = authSlice.actions
  41 +export default authSlice.reducer
... ...
frontend/src/styles/tokens.css 0 → 100644
  1 +/*
  2 + * src/styles/tokens.css — Design Tokens
  3 + * 命名规范见 docs/04-技术规范.md § 2.5
  4 + * 色值锁定见 docs/06-UI交互规范.md § 四
  5 + *
  6 + * 命名格式:--color-<scope>-<role>-<state>
  7 + * <scope> 组件域:form / table-row / table-header / ...
  8 + * <role> 作用:bg(背景)/ fg(前景/字体)/ border
  9 + * <state> 状态:edit / readonly / hover / selected(无状态时省略)
  10 + *
  11 + * 约束:
  12 + * - 组件样式中只用 var(--color-xxx),禁止硬编码 hex / rgba
  13 + * - 修改色值只改本文件,不允许在组件级覆盖
  14 + * - 新增 token 须先登记到 docs/06 § 4.1 / 4.2,再补到此处
  15 + */
  16 +
  17 +:root {
  18 + /* === 1. 全局调色板(与 Ant Design 主题对齐) === */
  19 + --color-primary: #1890ff;
  20 + --color-success: #52c41a;
  21 + --color-warning: #faad14;
  22 + --color-error: #ff4d4f;
  23 + --color-text: rgba(0, 0, 0, 0.85);
  24 + --color-text-secondary: rgba(0, 0, 0, 0.45);
  25 + --color-border: #d9d9d9;
  26 + --color-bg-base: #f0f2f5;
  27 +
  28 + /* === 2. 组件级状态色(与 docs/06 § 4.2 一一对应) === */
  29 +
  30 + /* form:输入框 / 备注框 / 时间框 / 下拉框共用 */
  31 + --color-form-bg-edit: #ffffff;
  32 + --color-form-bg-readonly: #f1f2f8;
  33 + --color-form-bg-hover: #f5f5f5; /* 仅下拉框使用 */
  34 + --color-form-fg: #000000;
  35 +
  36 + /* table */
  37 + --color-table-row-bg-selected: #86d5fb;
  38 + --color-table-row-bg-hover: #fff7e6;
  39 + --color-table-row-bg-readonly: #f1f2f8; /* = rgb(241, 242, 248) */
  40 + --color-table-row-fg: #000000;
  41 + --color-table-header-bg: #f5f5f5;
  42 + --color-table-header-fg: rgba(0, 0, 0, 0.85); /* = #000000D9 */
  43 +}
... ...
frontend/src/test/LoginPage.test.tsx 0 → 100644
  1 +import { describe, it, expect, vi, beforeEach } from 'vitest'
  2 +import { render, screen, waitFor, act } from '@testing-library/react'
  3 +import userEvent from '@testing-library/user-event'
  4 +import { Provider } from 'react-redux'
  5 +import { MemoryRouter } from 'react-router-dom'
  6 +import { configureStore } from '@reduxjs/toolkit'
  7 +import authReducer, { UserInfoVO } from '../store/slices/authSlice'
  8 +import LoginPage from '../pages/usr/LoginPage'
  9 +import * as authApi from '../api/auth'
  10 +
  11 +vi.mock('../api/auth', () => ({
  12 + getBrands: vi.fn(),
  13 + login: vi.fn()
  14 +}))
  15 +
  16 +vi.mock('../api/request', () => ({
  17 + default: { get: vi.fn(), post: vi.fn() }
  18 +}))
  19 +
  20 +function makeStore() {
  21 + return configureStore({ reducer: { auth: authReducer } })
  22 +}
  23 +
  24 +function renderLoginPage(store = makeStore()) {
  25 + return {
  26 + store,
  27 + ...render(
  28 + <Provider store={store}>
  29 + <MemoryRouter>
  30 + <LoginPage />
  31 + </MemoryRouter>
  32 + </Provider>
  33 + )
  34 + }
  35 +}
  36 +
  37 +describe('LoginPage', () => {
  38 + beforeEach(() => {
  39 + vi.mocked(authApi.getBrands).mockResolvedValue([
  40 + { sNo: 'STD', sName: '标准版' }
  41 + ])
  42 + })
  43 +
  44 + it('renders_brandSelect_username_and_password_fields', async () => {
  45 + renderLoginPage()
  46 + await waitFor(() => expect(screen.getByText('公司/版本')).toBeInTheDocument())
  47 + expect(screen.getByText('用户名')).toBeInTheDocument()
  48 + expect(screen.getByText('密码')).toBeInTheDocument()
  49 + expect(screen.getByRole('button', { name: /登\s*录/ })).toBeInTheDocument()
  50 + })
  51 +
  52 + it('submit_withValidCredentials_dispatchesSetCredentials', async () => {
  53 + const mockUserInfo: UserInfoVO = {
  54 + userId: 'u1', username: 'admin', userType: '超级管理员', language: '中文', brandId: 'b1'
  55 + }
  56 + vi.mocked(authApi.login).mockResolvedValue({
  57 + accessToken: 'at',
  58 + refreshToken: 'rt',
  59 + expiresIn: 86400,
  60 + userInfo: mockUserInfo
  61 + })
  62 +
  63 + const { store } = renderLoginPage()
  64 + // Flush getBrands().then() callback so form.setFieldValue('brandNo') runs before submit
  65 + await act(async () => { await Promise.resolve() })
  66 +
  67 + await userEvent.type(screen.getByPlaceholderText('请输入用户名'), 'admin')
  68 + await userEvent.type(screen.getByPlaceholderText('请输入密码'), '666666')
  69 + await userEvent.click(screen.getByRole('button', { name: /登\s*录/ }))
  70 +
  71 + await waitFor(() => expect(store.getState().auth.accessToken).toBe('at'))
  72 + expect(store.getState().auth.userInfo?.userId).toBe('u1')
  73 + })
  74 +})
... ...
frontend/src/test/authSlice.test.ts 0 → 100644
  1 +import { describe, it, expect } from 'vitest'
  2 +import { configureStore } from '@reduxjs/toolkit'
  3 +import authReducer, { setCredentials, clearCredentials, UserInfoVO } from '../store/slices/authSlice'
  4 +
  5 +function makeStore() {
  6 + return configureStore({ reducer: { auth: authReducer } })
  7 +}
  8 +
  9 +const sampleUserInfo: UserInfoVO = {
  10 + userId: 'u1',
  11 + username: 'admin',
  12 + userType: '普通用户',
  13 + language: '中文',
  14 + brandId: 'b1'
  15 +}
  16 +
  17 +describe('authSlice', () => {
  18 + it('setCredentials_updatesAllStateFields', () => {
  19 + const store = makeStore()
  20 + store.dispatch(setCredentials({ accessToken: 't1', refreshToken: 'r1', userInfo: sampleUserInfo }))
  21 + const state = store.getState().auth
  22 + expect(state.accessToken).toBe('t1')
  23 + expect(state.refreshToken).toBe('r1')
  24 + expect(state.userInfo?.userId).toBe('u1')
  25 + })
  26 +
  27 + it('clearCredentials_resetsToNull', () => {
  28 + const store = makeStore()
  29 + store.dispatch(setCredentials({ accessToken: 't1', refreshToken: 'r1', userInfo: sampleUserInfo }))
  30 + store.dispatch(clearCredentials())
  31 + const state = store.getState().auth
  32 + expect(state.accessToken).toBeNull()
  33 + expect(state.refreshToken).toBeNull()
  34 + expect(state.userInfo).toBeNull()
  35 + })
  36 +})
... ...
frontend/src/test/setup.ts 0 → 100644
  1 +import '@testing-library/jest-dom'
  2 +import { vi } from 'vitest'
  3 +
  4 +Object.defineProperty(window, 'matchMedia', {
  5 + writable: true,
  6 + value: vi.fn().mockImplementation(query => ({
  7 + matches: false,
  8 + media: query,
  9 + onchange: null,
  10 + addListener: vi.fn(),
  11 + removeListener: vi.fn(),
  12 + addEventListener: vi.fn(),
  13 + removeEventListener: vi.fn(),
  14 + dispatchEvent: vi.fn()
  15 + }))
  16 +})
... ...
frontend/tsconfig.json 0 → 100644
  1 +{
  2 + "compilerOptions": {
  3 + "target": "ES2020",
  4 + "useDefineForClassFields": true,
  5 + "lib": ["ES2020", "DOM", "DOM.Iterable"],
  6 + "module": "ESNext",
  7 + "skipLibCheck": true,
  8 + "moduleResolution": "bundler",
  9 + "allowImportingTsExtensions": true,
  10 + "resolveJsonModule": true,
  11 + "isolatedModules": true,
  12 + "noEmit": true,
  13 + "jsx": "react-jsx",
  14 + "strict": true,
  15 + "noUnusedLocals": false,
  16 + "noUnusedParameters": false,
  17 + "noFallthroughCasesInSwitch": true
  18 + },
  19 + "include": ["src"],
  20 + "references": [{ "path": "./tsconfig.node.json" }]
  21 +}
... ...
frontend/tsconfig.node.json 0 → 100644
  1 +{
  2 + "compilerOptions": {
  3 + "composite": true,
  4 + "skipLibCheck": true,
  5 + "module": "ESNext",
  6 + "moduleResolution": "bundler",
  7 + "allowSyntheticDefaultImports": true
  8 + },
  9 + "include": ["vite.config.ts"]
  10 +}
... ...
frontend/vite.config.ts 0 → 100644
  1 +import { defineConfig } from 'vite'
  2 +import react from '@vitejs/plugin-react'
  3 +
  4 +export default defineConfig({
  5 + plugins: [react()],
  6 + server: {
  7 + proxy: {
  8 + '/api': {
  9 + target: 'http://localhost:8080',
  10 + changeOrigin: true
  11 + }
  12 + }
  13 + },
  14 + test: {
  15 + environment: 'jsdom',
  16 + globals: true,
  17 + setupFiles: './src/test/setup.ts'
  18 + }
  19 +})
... ...