@learnpack/learnpack 5.0.355 → 5.0.357

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/lib/commands/serve.d.ts +0 -17
  2. package/lib/commands/serve.js +159 -129
  3. package/lib/creatorDist/assets/{index-DnthLsvb.js → index-D6pmbMe9.js} +14030 -13903
  4. package/lib/creatorDist/assets/index-zrPponAn.css +1701 -0
  5. package/lib/creatorDist/index.html +2 -2
  6. package/lib/models/creator.d.ts +1 -1
  7. package/lib/services/ingest/adapters/gcsCourseStorage.d.ts +13 -0
  8. package/lib/services/ingest/adapters/gcsCourseStorage.js +58 -0
  9. package/lib/services/ingest/adapters/rigoUserTokenAuth.d.ts +15 -0
  10. package/lib/services/ingest/adapters/rigoUserTokenAuth.js +46 -0
  11. package/lib/services/ingest/adapters/rigobotPackageRegistry.d.ts +7 -0
  12. package/lib/services/ingest/adapters/rigobotPackageRegistry.js +119 -0
  13. package/lib/services/ingest/core/buildIngestConfig.d.ts +27 -0
  14. package/lib/services/ingest/core/buildIngestConfig.js +40 -0
  15. package/lib/services/ingest/core/buildInitialSyllabus.d.ts +24 -0
  16. package/lib/services/ingest/core/buildInitialSyllabus.js +104 -0
  17. package/lib/services/ingest/core/buildSidebar.d.ts +13 -0
  18. package/lib/services/ingest/core/buildSidebar.js +28 -0
  19. package/lib/services/ingest/core/coursePaths.d.ts +31 -0
  20. package/lib/services/ingest/core/coursePaths.js +50 -0
  21. package/lib/services/ingest/core/ingestCoursePackage.d.ts +52 -0
  22. package/lib/services/ingest/core/ingestCoursePackage.js +217 -0
  23. package/lib/services/ingest/core/normalizeLearnJson.d.ts +25 -0
  24. package/lib/services/ingest/core/normalizeLearnJson.js +29 -0
  25. package/lib/services/ingest/core/pairLessons.d.ts +29 -0
  26. package/lib/services/ingest/core/pairLessons.js +102 -0
  27. package/lib/services/ingest/core/planWrites.d.ts +44 -0
  28. package/lib/services/ingest/core/planWrites.js +59 -0
  29. package/lib/services/ingest/core/resolveSlug.d.ts +53 -0
  30. package/lib/services/ingest/core/resolveSlug.js +93 -0
  31. package/lib/services/ingest/core/types.d.ts +53 -0
  32. package/lib/services/ingest/core/types.js +2 -0
  33. package/lib/services/ingest/core/validatePackage.d.ts +38 -0
  34. package/lib/services/ingest/core/validatePackage.js +97 -0
  35. package/lib/services/ingest/createIngestService.d.ts +34 -0
  36. package/lib/services/ingest/createIngestService.js +38 -0
  37. package/lib/services/ingest/errors.d.ts +22 -0
  38. package/lib/services/ingest/errors.js +34 -0
  39. package/lib/services/ingest/http/errorMapping.d.ts +8 -0
  40. package/lib/services/ingest/http/errorMapping.js +40 -0
  41. package/lib/services/ingest/http/router.d.ts +32 -0
  42. package/lib/services/ingest/http/router.js +124 -0
  43. package/lib/services/ingest/http/zipPackageReader.d.ts +26 -0
  44. package/lib/services/ingest/http/zipPackageReader.js +62 -0
  45. package/lib/services/ingest/ports/courseStorage.d.ts +25 -0
  46. package/lib/services/ingest/ports/courseStorage.js +2 -0
  47. package/lib/services/ingest/ports/packageRegistry.d.ts +58 -0
  48. package/lib/services/ingest/ports/packageRegistry.js +2 -0
  49. package/lib/services/ingest/ports/requestAuthenticator.d.ts +25 -0
  50. package/lib/services/ingest/ports/requestAuthenticator.js +2 -0
  51. package/lib/utils/coursePackage/bucketIo.d.ts +23 -0
  52. package/lib/utils/coursePackage/bucketIo.js +36 -0
  53. package/lib/utils/coursePackage/learnJson.d.ts +26 -0
  54. package/lib/utils/coursePackage/learnJson.js +36 -0
  55. package/lib/utils/coursePackage/sidebar.d.ts +15 -0
  56. package/lib/utils/coursePackage/sidebar.js +26 -0
  57. package/lib/utils/creatorSocket.js +15 -21
  58. package/lib/utils/gcpCredentials.d.ts +18 -0
  59. package/lib/utils/gcpCredentials.js +27 -0
  60. package/lib/utils/rigoActions.d.ts +16 -0
  61. package/lib/utils/rigoActions.js +102 -1
  62. package/lib/utils/socketRegistry.d.ts +46 -0
  63. package/lib/utils/socketRegistry.js +83 -0
  64. package/package.json +1 -1
  65. package/src/commands/serve.ts +162 -114
  66. package/src/creator/README.md +63 -51
  67. package/src/creator/package-lock.json +1188 -8
  68. package/src/creator/package.json +5 -1
  69. package/src/creator/src/App.tsx +120 -54
  70. package/src/creator/src/components/FileUploader.tsx +1 -12
  71. package/src/creator/src/components/NotificationListener.tsx +1 -8
  72. package/src/creator/src/components/syllabus/SyllabusEditor.tsx +101 -36
  73. package/src/creator/src/locales/en.json +8 -0
  74. package/src/creator/src/locales/es.json +8 -0
  75. package/src/creator/src/utils/completionResult.test.ts +144 -0
  76. package/src/creator/src/utils/completionResult.ts +154 -0
  77. package/src/creator/src/utils/constants.ts +17 -4
  78. package/src/creator/src/utils/socket.test.ts +113 -0
  79. package/src/creator/src/utils/socket.ts +60 -37
  80. package/src/creator/src/utils/store.ts +84 -67
  81. package/src/creator/src/utils/useCompletionWatchdog.test.ts +99 -0
  82. package/src/creator/src/utils/useCompletionWatchdog.ts +37 -0
  83. package/src/creator/vitest.config.ts +16 -0
  84. package/src/creatorDist/assets/{index-DnthLsvb.js → index-D6pmbMe9.js} +14030 -13903
  85. package/src/creatorDist/assets/index-zrPponAn.css +1701 -0
  86. package/src/creatorDist/index.html +2 -2
  87. package/src/models/creator.ts +1 -1
  88. package/src/services/ingest/adapters/gcsCourseStorage.ts +70 -0
  89. package/src/services/ingest/adapters/rigoUserTokenAuth.ts +65 -0
  90. package/src/services/ingest/adapters/rigobotPackageRegistry.ts +161 -0
  91. package/src/services/ingest/core/buildIngestConfig.ts +51 -0
  92. package/src/services/ingest/core/buildInitialSyllabus.ts +122 -0
  93. package/src/services/ingest/core/buildSidebar.ts +32 -0
  94. package/src/services/ingest/core/coursePaths.ts +59 -0
  95. package/src/services/ingest/core/ingestCoursePackage.ts +343 -0
  96. package/src/services/ingest/core/normalizeLearnJson.ts +47 -0
  97. package/src/services/ingest/core/pairLessons.ts +132 -0
  98. package/src/services/ingest/core/planWrites.ts +91 -0
  99. package/src/services/ingest/core/resolveSlug.ts +119 -0
  100. package/src/services/ingest/core/types.ts +57 -0
  101. package/src/services/ingest/core/validatePackage.ts +132 -0
  102. package/src/services/ingest/createIngestService.ts +66 -0
  103. package/src/services/ingest/errors.ts +45 -0
  104. package/src/services/ingest/http/errorMapping.ts +49 -0
  105. package/src/services/ingest/http/router.ts +156 -0
  106. package/src/services/ingest/http/zipPackageReader.ts +81 -0
  107. package/src/services/ingest/ports/courseStorage.ts +25 -0
  108. package/src/services/ingest/ports/packageRegistry.ts +60 -0
  109. package/src/services/ingest/ports/requestAuthenticator.ts +28 -0
  110. package/src/ui/_app/app.js +325 -325
  111. package/src/ui/app.tar.gz +0 -0
  112. package/src/utils/coursePackage/bucketIo.ts +46 -0
  113. package/src/utils/coursePackage/learnJson.ts +37 -0
  114. package/src/utils/coursePackage/sidebar.ts +28 -0
  115. package/src/utils/creatorSocket.ts +16 -22
  116. package/src/utils/gcpCredentials.ts +38 -0
  117. package/src/utils/rigoActions.ts +163 -0
  118. package/src/utils/socketRegistry.ts +85 -0
  119. package/lib/creatorDist/assets/index-CjddKHB_.css +0 -1
  120. package/src/creatorDist/assets/index-CjddKHB_.css +0 -1
@@ -38,6 +38,7 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^9.21.0",
41
+ "@testing-library/react": "^16.3.2",
41
42
  "@types/react": "^19.0.10",
42
43
  "@types/react-dom": "^19.0.4",
43
44
  "@vitejs/plugin-react-swc": "^3.8.0",
@@ -46,11 +47,91 @@
46
47
  "eslint-plugin-react-hooks": "^5.1.0",
47
48
  "eslint-plugin-react-refresh": "^0.4.19",
48
49
  "globals": "^15.15.0",
50
+ "jsdom": "^29.1.1",
49
51
  "postcss": "^8.5.3",
50
52
  "tailwindcss": "^4.1.3",
51
53
  "typescript": "~5.7.2",
52
54
  "typescript-eslint": "^8.24.1",
53
- "vite": "^6.2.0"
55
+ "vite": "^6.2.0",
56
+ "vitest": "^4.1.11"
57
+ }
58
+ },
59
+ "node_modules/@asamuzakjp/css-color": {
60
+ "version": "5.1.11",
61
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz",
62
+ "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==",
63
+ "dev": true,
64
+ "license": "MIT",
65
+ "dependencies": {
66
+ "@asamuzakjp/generational-cache": "^1.0.1",
67
+ "@csstools/css-calc": "^3.2.0",
68
+ "@csstools/css-color-parser": "^4.1.0",
69
+ "@csstools/css-parser-algorithms": "^4.0.0",
70
+ "@csstools/css-tokenizer": "^4.0.0"
71
+ },
72
+ "engines": {
73
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
74
+ }
75
+ },
76
+ "node_modules/@asamuzakjp/dom-selector": {
77
+ "version": "7.1.1",
78
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz",
79
+ "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==",
80
+ "dev": true,
81
+ "license": "MIT",
82
+ "dependencies": {
83
+ "@asamuzakjp/generational-cache": "^1.0.1",
84
+ "@asamuzakjp/nwsapi": "^2.3.9",
85
+ "bidi-js": "^1.0.3",
86
+ "css-tree": "^3.2.1",
87
+ "is-potential-custom-element-name": "^1.0.1"
88
+ },
89
+ "engines": {
90
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
91
+ }
92
+ },
93
+ "node_modules/@asamuzakjp/generational-cache": {
94
+ "version": "1.0.1",
95
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz",
96
+ "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==",
97
+ "dev": true,
98
+ "license": "MIT",
99
+ "engines": {
100
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
101
+ }
102
+ },
103
+ "node_modules/@asamuzakjp/nwsapi": {
104
+ "version": "2.3.9",
105
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
106
+ "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
107
+ "dev": true,
108
+ "license": "MIT"
109
+ },
110
+ "node_modules/@babel/code-frame": {
111
+ "version": "7.29.7",
112
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
113
+ "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
114
+ "dev": true,
115
+ "license": "MIT",
116
+ "peer": true,
117
+ "dependencies": {
118
+ "@babel/helper-validator-identifier": "^7.29.7",
119
+ "js-tokens": "^4.0.0",
120
+ "picocolors": "^1.1.1"
121
+ },
122
+ "engines": {
123
+ "node": ">=6.9.0"
124
+ }
125
+ },
126
+ "node_modules/@babel/helper-validator-identifier": {
127
+ "version": "7.29.7",
128
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
129
+ "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
130
+ "dev": true,
131
+ "license": "MIT",
132
+ "peer": true,
133
+ "engines": {
134
+ "node": ">=6.9.0"
54
135
  }
55
136
  },
56
137
  "node_modules/@babel/runtime": {
@@ -62,6 +143,159 @@
62
143
  "node": ">=6.9.0"
63
144
  }
64
145
  },
146
+ "node_modules/@bramus/specificity": {
147
+ "version": "2.4.2",
148
+ "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz",
149
+ "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==",
150
+ "dev": true,
151
+ "license": "MIT",
152
+ "dependencies": {
153
+ "css-tree": "^3.0.0"
154
+ },
155
+ "bin": {
156
+ "specificity": "bin/cli.js"
157
+ }
158
+ },
159
+ "node_modules/@csstools/color-helpers": {
160
+ "version": "6.1.1",
161
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.1.tgz",
162
+ "integrity": "sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w==",
163
+ "dev": true,
164
+ "funding": [
165
+ {
166
+ "type": "github",
167
+ "url": "https://github.com/sponsors/csstools"
168
+ },
169
+ {
170
+ "type": "opencollective",
171
+ "url": "https://opencollective.com/csstools"
172
+ }
173
+ ],
174
+ "license": "MIT-0",
175
+ "engines": {
176
+ "node": ">=20.19.0"
177
+ }
178
+ },
179
+ "node_modules/@csstools/css-calc": {
180
+ "version": "3.3.0",
181
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz",
182
+ "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==",
183
+ "dev": true,
184
+ "funding": [
185
+ {
186
+ "type": "github",
187
+ "url": "https://github.com/sponsors/csstools"
188
+ },
189
+ {
190
+ "type": "opencollective",
191
+ "url": "https://opencollective.com/csstools"
192
+ }
193
+ ],
194
+ "license": "MIT",
195
+ "engines": {
196
+ "node": ">=20.19.0"
197
+ },
198
+ "peerDependencies": {
199
+ "@csstools/css-parser-algorithms": "^4.0.0",
200
+ "@csstools/css-tokenizer": "^4.0.0"
201
+ }
202
+ },
203
+ "node_modules/@csstools/css-color-parser": {
204
+ "version": "4.2.1",
205
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.1.tgz",
206
+ "integrity": "sha512-YpAJZhaHplYQkG8ib+/Fx5Y0eF2lVWi3tIvMJA6i39TLyUNp2439cifzW8VMjhlqrBjHzK5hVGugRRm2zTKI/A==",
207
+ "dev": true,
208
+ "funding": [
209
+ {
210
+ "type": "github",
211
+ "url": "https://github.com/sponsors/csstools"
212
+ },
213
+ {
214
+ "type": "opencollective",
215
+ "url": "https://opencollective.com/csstools"
216
+ }
217
+ ],
218
+ "license": "MIT",
219
+ "dependencies": {
220
+ "@csstools/color-helpers": "^6.1.1",
221
+ "@csstools/css-calc": "^3.3.0"
222
+ },
223
+ "engines": {
224
+ "node": ">=20.19.0"
225
+ },
226
+ "peerDependencies": {
227
+ "@csstools/css-parser-algorithms": "^4.0.0",
228
+ "@csstools/css-tokenizer": "^4.0.0"
229
+ }
230
+ },
231
+ "node_modules/@csstools/css-parser-algorithms": {
232
+ "version": "4.0.0",
233
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz",
234
+ "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==",
235
+ "dev": true,
236
+ "funding": [
237
+ {
238
+ "type": "github",
239
+ "url": "https://github.com/sponsors/csstools"
240
+ },
241
+ {
242
+ "type": "opencollective",
243
+ "url": "https://opencollective.com/csstools"
244
+ }
245
+ ],
246
+ "license": "MIT",
247
+ "engines": {
248
+ "node": ">=20.19.0"
249
+ },
250
+ "peerDependencies": {
251
+ "@csstools/css-tokenizer": "^4.0.0"
252
+ }
253
+ },
254
+ "node_modules/@csstools/css-syntax-patches-for-csstree": {
255
+ "version": "1.1.9",
256
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.9.tgz",
257
+ "integrity": "sha512-iGGw4OsAYsS6pD29MdJ2bX/nJx65a04ZZiw6x+VwWlP2DdXf6f++Zmuv/OzALpdyfVhjbduIIF2cXM7HWBIe9A==",
258
+ "dev": true,
259
+ "funding": [
260
+ {
261
+ "type": "github",
262
+ "url": "https://github.com/sponsors/csstools"
263
+ },
264
+ {
265
+ "type": "opencollective",
266
+ "url": "https://opencollective.com/csstools"
267
+ }
268
+ ],
269
+ "license": "MIT-0",
270
+ "peerDependencies": {
271
+ "css-tree": "^3.2.1"
272
+ },
273
+ "peerDependenciesMeta": {
274
+ "css-tree": {
275
+ "optional": true
276
+ }
277
+ }
278
+ },
279
+ "node_modules/@csstools/css-tokenizer": {
280
+ "version": "4.0.0",
281
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz",
282
+ "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==",
283
+ "dev": true,
284
+ "funding": [
285
+ {
286
+ "type": "github",
287
+ "url": "https://github.com/sponsors/csstools"
288
+ },
289
+ {
290
+ "type": "opencollective",
291
+ "url": "https://opencollective.com/csstools"
292
+ }
293
+ ],
294
+ "license": "MIT",
295
+ "engines": {
296
+ "node": ">=20.19.0"
297
+ }
298
+ },
65
299
  "node_modules/@esbuild/aix-ppc64": {
66
300
  "version": "0.25.2",
67
301
  "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
@@ -626,6 +860,24 @@
626
860
  "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
627
861
  }
628
862
  },
863
+ "node_modules/@exodus/bytes": {
864
+ "version": "1.15.1",
865
+ "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz",
866
+ "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==",
867
+ "dev": true,
868
+ "license": "MIT",
869
+ "engines": {
870
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
871
+ },
872
+ "peerDependencies": {
873
+ "@noble/hashes": "^1.8.0 || ^2.0.0"
874
+ },
875
+ "peerDependenciesMeta": {
876
+ "@noble/hashes": {
877
+ "optional": true
878
+ }
879
+ }
880
+ },
629
881
  "node_modules/@floating-ui/core": {
630
882
  "version": "1.7.3",
631
883
  "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
@@ -787,6 +1039,13 @@
787
1039
  "url": "https://github.com/sponsors/nzakas"
788
1040
  }
789
1041
  },
1042
+ "node_modules/@jridgewell/sourcemap-codec": {
1043
+ "version": "1.5.5",
1044
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
1045
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
1046
+ "dev": true,
1047
+ "license": "MIT"
1048
+ },
790
1049
  "node_modules/@napi-rs/canvas": {
791
1050
  "version": "0.1.69",
792
1051
  "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.69.tgz",
@@ -1682,6 +1941,13 @@
1682
1941
  "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
1683
1942
  "license": "MIT"
1684
1943
  },
1944
+ "node_modules/@standard-schema/spec": {
1945
+ "version": "1.1.0",
1946
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
1947
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
1948
+ "dev": true,
1949
+ "license": "MIT"
1950
+ },
1685
1951
  "node_modules/@swc/core": {
1686
1952
  "version": "1.11.18",
1687
1953
  "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.18.tgz",
@@ -2132,6 +2398,55 @@
2132
2398
  "vite": "^5.2.0 || ^6"
2133
2399
  }
2134
2400
  },
2401
+ "node_modules/@testing-library/dom": {
2402
+ "version": "10.4.1",
2403
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
2404
+ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==",
2405
+ "dev": true,
2406
+ "license": "MIT",
2407
+ "peer": true,
2408
+ "dependencies": {
2409
+ "@babel/code-frame": "^7.10.4",
2410
+ "@babel/runtime": "^7.12.5",
2411
+ "@types/aria-query": "^5.0.1",
2412
+ "aria-query": "5.3.0",
2413
+ "dom-accessibility-api": "^0.5.9",
2414
+ "lz-string": "^1.5.0",
2415
+ "picocolors": "1.1.1",
2416
+ "pretty-format": "^27.0.2"
2417
+ },
2418
+ "engines": {
2419
+ "node": ">=18"
2420
+ }
2421
+ },
2422
+ "node_modules/@testing-library/react": {
2423
+ "version": "16.3.2",
2424
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz",
2425
+ "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==",
2426
+ "dev": true,
2427
+ "license": "MIT",
2428
+ "dependencies": {
2429
+ "@babel/runtime": "^7.12.5"
2430
+ },
2431
+ "engines": {
2432
+ "node": ">=18"
2433
+ },
2434
+ "peerDependencies": {
2435
+ "@testing-library/dom": "^10.0.0",
2436
+ "@types/react": "^18.0.0 || ^19.0.0",
2437
+ "@types/react-dom": "^18.0.0 || ^19.0.0",
2438
+ "react": "^18.0.0 || ^19.0.0",
2439
+ "react-dom": "^18.0.0 || ^19.0.0"
2440
+ },
2441
+ "peerDependenciesMeta": {
2442
+ "@types/react": {
2443
+ "optional": true
2444
+ },
2445
+ "@types/react-dom": {
2446
+ "optional": true
2447
+ }
2448
+ }
2449
+ },
2135
2450
  "node_modules/@tootallnate/once": {
2136
2451
  "version": "2.0.0",
2137
2452
  "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -2141,12 +2456,31 @@
2141
2456
  "node": ">= 10"
2142
2457
  }
2143
2458
  },
2459
+ "node_modules/@types/aria-query": {
2460
+ "version": "5.0.4",
2461
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
2462
+ "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
2463
+ "dev": true,
2464
+ "license": "MIT",
2465
+ "peer": true
2466
+ },
2144
2467
  "node_modules/@types/caseless": {
2145
2468
  "version": "0.12.5",
2146
2469
  "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz",
2147
2470
  "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==",
2148
2471
  "license": "MIT"
2149
2472
  },
2473
+ "node_modules/@types/chai": {
2474
+ "version": "5.2.3",
2475
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
2476
+ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
2477
+ "dev": true,
2478
+ "license": "MIT",
2479
+ "dependencies": {
2480
+ "@types/deep-eql": "*",
2481
+ "assertion-error": "^2.0.1"
2482
+ }
2483
+ },
2150
2484
  "node_modules/@types/cookie": {
2151
2485
  "version": "0.6.0",
2152
2486
  "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
@@ -2162,6 +2496,13 @@
2162
2496
  "@types/ms": "*"
2163
2497
  }
2164
2498
  },
2499
+ "node_modules/@types/deep-eql": {
2500
+ "version": "4.0.2",
2501
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
2502
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
2503
+ "dev": true,
2504
+ "license": "MIT"
2505
+ },
2165
2506
  "node_modules/@types/estree": {
2166
2507
  "version": "1.0.7",
2167
2508
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
@@ -2507,6 +2848,119 @@
2507
2848
  "vite": "^4 || ^5 || ^6"
2508
2849
  }
2509
2850
  },
2851
+ "node_modules/@vitest/expect": {
2852
+ "version": "4.1.11",
2853
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz",
2854
+ "integrity": "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==",
2855
+ "dev": true,
2856
+ "license": "MIT",
2857
+ "dependencies": {
2858
+ "@standard-schema/spec": "^1.1.0",
2859
+ "@types/chai": "^5.2.2",
2860
+ "@vitest/spy": "4.1.11",
2861
+ "@vitest/utils": "4.1.11",
2862
+ "chai": "^6.2.2",
2863
+ "tinyrainbow": "^3.1.0"
2864
+ },
2865
+ "funding": {
2866
+ "url": "https://opencollective.com/vitest"
2867
+ }
2868
+ },
2869
+ "node_modules/@vitest/mocker": {
2870
+ "version": "4.1.11",
2871
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.11.tgz",
2872
+ "integrity": "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==",
2873
+ "dev": true,
2874
+ "license": "MIT",
2875
+ "dependencies": {
2876
+ "@vitest/spy": "4.1.11",
2877
+ "estree-walker": "^3.0.3",
2878
+ "magic-string": "^0.30.21"
2879
+ },
2880
+ "funding": {
2881
+ "url": "https://opencollective.com/vitest"
2882
+ },
2883
+ "peerDependencies": {
2884
+ "msw": "^2.4.9",
2885
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
2886
+ },
2887
+ "peerDependenciesMeta": {
2888
+ "msw": {
2889
+ "optional": true
2890
+ },
2891
+ "vite": {
2892
+ "optional": true
2893
+ }
2894
+ }
2895
+ },
2896
+ "node_modules/@vitest/pretty-format": {
2897
+ "version": "4.1.11",
2898
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.11.tgz",
2899
+ "integrity": "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==",
2900
+ "dev": true,
2901
+ "license": "MIT",
2902
+ "dependencies": {
2903
+ "tinyrainbow": "^3.1.0"
2904
+ },
2905
+ "funding": {
2906
+ "url": "https://opencollective.com/vitest"
2907
+ }
2908
+ },
2909
+ "node_modules/@vitest/runner": {
2910
+ "version": "4.1.11",
2911
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.11.tgz",
2912
+ "integrity": "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==",
2913
+ "dev": true,
2914
+ "license": "MIT",
2915
+ "dependencies": {
2916
+ "@vitest/utils": "4.1.11",
2917
+ "pathe": "^2.0.3"
2918
+ },
2919
+ "funding": {
2920
+ "url": "https://opencollective.com/vitest"
2921
+ }
2922
+ },
2923
+ "node_modules/@vitest/snapshot": {
2924
+ "version": "4.1.11",
2925
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.11.tgz",
2926
+ "integrity": "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==",
2927
+ "dev": true,
2928
+ "license": "MIT",
2929
+ "dependencies": {
2930
+ "@vitest/pretty-format": "4.1.11",
2931
+ "@vitest/utils": "4.1.11",
2932
+ "magic-string": "^0.30.21",
2933
+ "pathe": "^2.0.3"
2934
+ },
2935
+ "funding": {
2936
+ "url": "https://opencollective.com/vitest"
2937
+ }
2938
+ },
2939
+ "node_modules/@vitest/spy": {
2940
+ "version": "4.1.11",
2941
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.11.tgz",
2942
+ "integrity": "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==",
2943
+ "dev": true,
2944
+ "license": "MIT",
2945
+ "funding": {
2946
+ "url": "https://opencollective.com/vitest"
2947
+ }
2948
+ },
2949
+ "node_modules/@vitest/utils": {
2950
+ "version": "4.1.11",
2951
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.11.tgz",
2952
+ "integrity": "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==",
2953
+ "dev": true,
2954
+ "license": "MIT",
2955
+ "dependencies": {
2956
+ "@vitest/pretty-format": "4.1.11",
2957
+ "convert-source-map": "^2.0.0",
2958
+ "tinyrainbow": "^3.1.0"
2959
+ },
2960
+ "funding": {
2961
+ "url": "https://opencollective.com/vitest"
2962
+ }
2963
+ },
2510
2964
  "node_modules/@xmldom/xmldom": {
2511
2965
  "version": "0.8.10",
2512
2966
  "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
@@ -2577,6 +3031,17 @@
2577
3031
  "url": "https://github.com/sponsors/epoberezkin"
2578
3032
  }
2579
3033
  },
3034
+ "node_modules/ansi-regex": {
3035
+ "version": "5.0.1",
3036
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3037
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3038
+ "dev": true,
3039
+ "license": "MIT",
3040
+ "peer": true,
3041
+ "engines": {
3042
+ "node": ">=8"
3043
+ }
3044
+ },
2580
3045
  "node_modules/ansi-styles": {
2581
3046
  "version": "4.3.0",
2582
3047
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -2599,6 +3064,17 @@
2599
3064
  "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
2600
3065
  "license": "Python-2.0"
2601
3066
  },
3067
+ "node_modules/aria-query": {
3068
+ "version": "5.3.0",
3069
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
3070
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
3071
+ "dev": true,
3072
+ "license": "Apache-2.0",
3073
+ "peer": true,
3074
+ "dependencies": {
3075
+ "dequal": "^2.0.3"
3076
+ }
3077
+ },
2602
3078
  "node_modules/arrify": {
2603
3079
  "version": "2.0.1",
2604
3080
  "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
@@ -2608,6 +3084,16 @@
2608
3084
  "node": ">=8"
2609
3085
  }
2610
3086
  },
3087
+ "node_modules/assertion-error": {
3088
+ "version": "2.0.1",
3089
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
3090
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
3091
+ "dev": true,
3092
+ "license": "MIT",
3093
+ "engines": {
3094
+ "node": ">=12"
3095
+ }
3096
+ },
2611
3097
  "node_modules/async-retry": {
2612
3098
  "version": "1.3.3",
2613
3099
  "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
@@ -2718,6 +3204,16 @@
2718
3204
  ],
2719
3205
  "license": "MIT"
2720
3206
  },
3207
+ "node_modules/bidi-js": {
3208
+ "version": "1.0.3",
3209
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
3210
+ "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
3211
+ "dev": true,
3212
+ "license": "MIT",
3213
+ "dependencies": {
3214
+ "require-from-string": "^2.0.2"
3215
+ }
3216
+ },
2721
3217
  "node_modules/bignumber.js": {
2722
3218
  "version": "9.2.1",
2723
3219
  "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.2.1.tgz",
@@ -2850,6 +3346,16 @@
2850
3346
  "url": "https://github.com/sponsors/wooorm"
2851
3347
  }
2852
3348
  },
3349
+ "node_modules/chai": {
3350
+ "version": "6.2.2",
3351
+ "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
3352
+ "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
3353
+ "dev": true,
3354
+ "license": "MIT",
3355
+ "engines": {
3356
+ "node": ">=18"
3357
+ }
3358
+ },
2853
3359
  "node_modules/chalk": {
2854
3360
  "version": "4.1.2",
2855
3361
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -2975,6 +3481,13 @@
2975
3481
  "dev": true,
2976
3482
  "license": "MIT"
2977
3483
  },
3484
+ "node_modules/convert-source-map": {
3485
+ "version": "2.0.0",
3486
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
3487
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
3488
+ "dev": true,
3489
+ "license": "MIT"
3490
+ },
2978
3491
  "node_modules/cookie": {
2979
3492
  "version": "1.0.2",
2980
3493
  "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
@@ -3014,12 +3527,78 @@
3014
3527
  "utrie": "^1.0.2"
3015
3528
  }
3016
3529
  },
3530
+ "node_modules/css-tree": {
3531
+ "version": "3.2.1",
3532
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
3533
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
3534
+ "dev": true,
3535
+ "license": "MIT",
3536
+ "dependencies": {
3537
+ "mdn-data": "2.27.1",
3538
+ "source-map-js": "^1.2.1"
3539
+ },
3540
+ "engines": {
3541
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
3542
+ }
3543
+ },
3017
3544
  "node_modules/csstype": {
3018
3545
  "version": "3.1.3",
3019
3546
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
3020
3547
  "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
3021
3548
  "license": "MIT"
3022
3549
  },
3550
+ "node_modules/data-urls": {
3551
+ "version": "7.0.0",
3552
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz",
3553
+ "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==",
3554
+ "dev": true,
3555
+ "license": "MIT",
3556
+ "dependencies": {
3557
+ "whatwg-mimetype": "^5.0.0",
3558
+ "whatwg-url": "^16.0.0"
3559
+ },
3560
+ "engines": {
3561
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
3562
+ }
3563
+ },
3564
+ "node_modules/data-urls/node_modules/tr46": {
3565
+ "version": "6.0.0",
3566
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
3567
+ "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
3568
+ "dev": true,
3569
+ "license": "MIT",
3570
+ "dependencies": {
3571
+ "punycode": "^2.3.1"
3572
+ },
3573
+ "engines": {
3574
+ "node": ">=20"
3575
+ }
3576
+ },
3577
+ "node_modules/data-urls/node_modules/webidl-conversions": {
3578
+ "version": "8.0.1",
3579
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz",
3580
+ "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==",
3581
+ "dev": true,
3582
+ "license": "BSD-2-Clause",
3583
+ "engines": {
3584
+ "node": ">=20"
3585
+ }
3586
+ },
3587
+ "node_modules/data-urls/node_modules/whatwg-url": {
3588
+ "version": "16.0.1",
3589
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz",
3590
+ "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==",
3591
+ "dev": true,
3592
+ "license": "MIT",
3593
+ "dependencies": {
3594
+ "@exodus/bytes": "^1.11.0",
3595
+ "tr46": "^6.0.0",
3596
+ "webidl-conversions": "^8.0.1"
3597
+ },
3598
+ "engines": {
3599
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
3600
+ }
3601
+ },
3023
3602
  "node_modules/debug": {
3024
3603
  "version": "4.4.0",
3025
3604
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
@@ -3037,6 +3616,13 @@
3037
3616
  }
3038
3617
  }
3039
3618
  },
3619
+ "node_modules/decimal.js": {
3620
+ "version": "10.6.0",
3621
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
3622
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
3623
+ "dev": true,
3624
+ "license": "MIT"
3625
+ },
3040
3626
  "node_modules/decode-named-character-reference": {
3041
3627
  "version": "1.1.0",
3042
3628
  "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz",
@@ -3103,6 +3689,14 @@
3103
3689
  "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==",
3104
3690
  "license": "BSD-2-Clause"
3105
3691
  },
3692
+ "node_modules/dom-accessibility-api": {
3693
+ "version": "0.5.16",
3694
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
3695
+ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
3696
+ "dev": true,
3697
+ "license": "MIT",
3698
+ "peer": true
3699
+ },
3106
3700
  "node_modules/duck": {
3107
3701
  "version": "0.1.12",
3108
3702
  "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz",
@@ -3215,6 +3809,19 @@
3215
3809
  "node": ">=10.13.0"
3216
3810
  }
3217
3811
  },
3812
+ "node_modules/entities": {
3813
+ "version": "8.0.0",
3814
+ "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz",
3815
+ "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==",
3816
+ "dev": true,
3817
+ "license": "BSD-2-Clause",
3818
+ "engines": {
3819
+ "node": ">=20.19.0"
3820
+ },
3821
+ "funding": {
3822
+ "url": "https://github.com/fb55/entities?sponsor=1"
3823
+ }
3824
+ },
3218
3825
  "node_modules/es-define-property": {
3219
3826
  "version": "1.0.1",
3220
3827
  "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
@@ -3233,6 +3840,13 @@
3233
3840
  "node": ">= 0.4"
3234
3841
  }
3235
3842
  },
3843
+ "node_modules/es-module-lexer": {
3844
+ "version": "2.3.2",
3845
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz",
3846
+ "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==",
3847
+ "dev": true,
3848
+ "license": "MIT"
3849
+ },
3236
3850
  "node_modules/es-object-atoms": {
3237
3851
  "version": "1.1.1",
3238
3852
  "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
@@ -3514,6 +4128,16 @@
3514
4128
  "url": "https://opencollective.com/unified"
3515
4129
  }
3516
4130
  },
4131
+ "node_modules/estree-walker": {
4132
+ "version": "3.0.3",
4133
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
4134
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
4135
+ "dev": true,
4136
+ "license": "MIT",
4137
+ "dependencies": {
4138
+ "@types/estree": "^1.0.0"
4139
+ }
4140
+ },
3517
4141
  "node_modules/esutils": {
3518
4142
  "version": "2.0.3",
3519
4143
  "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -3533,6 +4157,16 @@
3533
4157
  "node": ">=6"
3534
4158
  }
3535
4159
  },
4160
+ "node_modules/expect-type": {
4161
+ "version": "1.4.0",
4162
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz",
4163
+ "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==",
4164
+ "dev": true,
4165
+ "license": "Apache-2.0",
4166
+ "engines": {
4167
+ "node": ">=12.0.0"
4168
+ }
4169
+ },
3536
4170
  "node_modules/extend": {
3537
4171
  "version": "3.0.2",
3538
4172
  "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -4093,6 +4727,19 @@
4093
4727
  "url": "https://opencollective.com/unified"
4094
4728
  }
4095
4729
  },
4730
+ "node_modules/html-encoding-sniffer": {
4731
+ "version": "6.0.0",
4732
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz",
4733
+ "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==",
4734
+ "dev": true,
4735
+ "license": "MIT",
4736
+ "dependencies": {
4737
+ "@exodus/bytes": "^1.6.0"
4738
+ },
4739
+ "engines": {
4740
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
4741
+ }
4742
+ },
4096
4743
  "node_modules/html-entities": {
4097
4744
  "version": "2.6.0",
4098
4745
  "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
@@ -4364,6 +5011,13 @@
4364
5011
  "url": "https://github.com/sponsors/sindresorhus"
4365
5012
  }
4366
5013
  },
5014
+ "node_modules/is-potential-custom-element-name": {
5015
+ "version": "1.0.1",
5016
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
5017
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
5018
+ "dev": true,
5019
+ "license": "MIT"
5020
+ },
4367
5021
  "node_modules/is-stream": {
4368
5022
  "version": "2.0.1",
4369
5023
  "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
@@ -4398,16 +5052,103 @@
4398
5052
  "jiti": "lib/jiti-cli.mjs"
4399
5053
  }
4400
5054
  },
4401
- "node_modules/js-yaml": {
4402
- "version": "4.1.0",
4403
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
4404
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
5055
+ "node_modules/js-tokens": {
5056
+ "version": "4.0.0",
5057
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
5058
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
5059
+ "dev": true,
5060
+ "license": "MIT",
5061
+ "peer": true
5062
+ },
5063
+ "node_modules/js-yaml": {
5064
+ "version": "4.1.0",
5065
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
5066
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
5067
+ "license": "MIT",
5068
+ "dependencies": {
5069
+ "argparse": "^2.0.1"
5070
+ },
5071
+ "bin": {
5072
+ "js-yaml": "bin/js-yaml.js"
5073
+ }
5074
+ },
5075
+ "node_modules/jsdom": {
5076
+ "version": "29.1.1",
5077
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz",
5078
+ "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==",
5079
+ "dev": true,
5080
+ "license": "MIT",
5081
+ "dependencies": {
5082
+ "@asamuzakjp/css-color": "^5.1.11",
5083
+ "@asamuzakjp/dom-selector": "^7.1.1",
5084
+ "@bramus/specificity": "^2.4.2",
5085
+ "@csstools/css-syntax-patches-for-csstree": "^1.1.3",
5086
+ "@exodus/bytes": "^1.15.0",
5087
+ "css-tree": "^3.2.1",
5088
+ "data-urls": "^7.0.0",
5089
+ "decimal.js": "^10.6.0",
5090
+ "html-encoding-sniffer": "^6.0.0",
5091
+ "is-potential-custom-element-name": "^1.0.1",
5092
+ "lru-cache": "^11.3.5",
5093
+ "parse5": "^8.0.1",
5094
+ "saxes": "^6.0.0",
5095
+ "symbol-tree": "^3.2.4",
5096
+ "tough-cookie": "^6.0.1",
5097
+ "undici": "^7.25.0",
5098
+ "w3c-xmlserializer": "^5.0.0",
5099
+ "webidl-conversions": "^8.0.1",
5100
+ "whatwg-mimetype": "^5.0.0",
5101
+ "whatwg-url": "^16.0.1",
5102
+ "xml-name-validator": "^5.0.0"
5103
+ },
5104
+ "engines": {
5105
+ "node": "^20.19.0 || ^22.13.0 || >=24.0.0"
5106
+ },
5107
+ "peerDependencies": {
5108
+ "canvas": "^3.0.0"
5109
+ },
5110
+ "peerDependenciesMeta": {
5111
+ "canvas": {
5112
+ "optional": true
5113
+ }
5114
+ }
5115
+ },
5116
+ "node_modules/jsdom/node_modules/tr46": {
5117
+ "version": "6.0.0",
5118
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
5119
+ "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
5120
+ "dev": true,
5121
+ "license": "MIT",
5122
+ "dependencies": {
5123
+ "punycode": "^2.3.1"
5124
+ },
5125
+ "engines": {
5126
+ "node": ">=20"
5127
+ }
5128
+ },
5129
+ "node_modules/jsdom/node_modules/webidl-conversions": {
5130
+ "version": "8.0.1",
5131
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz",
5132
+ "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==",
5133
+ "dev": true,
5134
+ "license": "BSD-2-Clause",
5135
+ "engines": {
5136
+ "node": ">=20"
5137
+ }
5138
+ },
5139
+ "node_modules/jsdom/node_modules/whatwg-url": {
5140
+ "version": "16.0.1",
5141
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz",
5142
+ "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==",
5143
+ "dev": true,
4405
5144
  "license": "MIT",
4406
5145
  "dependencies": {
4407
- "argparse": "^2.0.1"
5146
+ "@exodus/bytes": "^1.11.0",
5147
+ "tr46": "^6.0.0",
5148
+ "webidl-conversions": "^8.0.1"
4408
5149
  },
4409
- "bin": {
4410
- "js-yaml": "bin/js-yaml.js"
5150
+ "engines": {
5151
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
4411
5152
  }
4412
5153
  },
4413
5154
  "node_modules/json-bigint": {
@@ -4808,6 +5549,16 @@
4808
5549
  "underscore": "^1.13.1"
4809
5550
  }
4810
5551
  },
5552
+ "node_modules/lru-cache": {
5553
+ "version": "11.5.2",
5554
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
5555
+ "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
5556
+ "dev": true,
5557
+ "license": "BlueOak-1.0.0",
5558
+ "engines": {
5559
+ "node": "20 || >=22"
5560
+ }
5561
+ },
4811
5562
  "node_modules/lucide-react": {
4812
5563
  "version": "0.545.0",
4813
5564
  "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.545.0.tgz",
@@ -4817,6 +5568,27 @@
4817
5568
  "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
4818
5569
  }
4819
5570
  },
5571
+ "node_modules/lz-string": {
5572
+ "version": "1.5.0",
5573
+ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
5574
+ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
5575
+ "dev": true,
5576
+ "license": "MIT",
5577
+ "peer": true,
5578
+ "bin": {
5579
+ "lz-string": "bin/bin.js"
5580
+ }
5581
+ },
5582
+ "node_modules/magic-string": {
5583
+ "version": "0.30.21",
5584
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
5585
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
5586
+ "dev": true,
5587
+ "license": "MIT",
5588
+ "dependencies": {
5589
+ "@jridgewell/sourcemap-codec": "^1.5.5"
5590
+ }
5591
+ },
4820
5592
  "node_modules/mammoth": {
4821
5593
  "version": "1.9.0",
4822
5594
  "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.9.0.tgz",
@@ -5012,6 +5784,13 @@
5012
5784
  "url": "https://opencollective.com/unified"
5013
5785
  }
5014
5786
  },
5787
+ "node_modules/mdn-data": {
5788
+ "version": "2.27.1",
5789
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
5790
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
5791
+ "dev": true,
5792
+ "license": "CC0-1.0"
5793
+ },
5015
5794
  "node_modules/merge2": {
5016
5795
  "version": "1.4.1",
5017
5796
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -5629,6 +6408,20 @@
5629
6408
  "integrity": "sha512-fARPRdTwmrQDLYhmeh7j/eZwrCP6WzxD6uKOdK/hT/uKACAE9AG2Bc2dgqOZLkfmmctHpfcJ9w3AQnfLgg3GYg==",
5630
6409
  "license": "MIT"
5631
6410
  },
6411
+ "node_modules/obug": {
6412
+ "version": "2.1.4",
6413
+ "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz",
6414
+ "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==",
6415
+ "dev": true,
6416
+ "funding": [
6417
+ "https://github.com/sponsors/sxzz",
6418
+ "https://opencollective.com/debug"
6419
+ ],
6420
+ "license": "MIT",
6421
+ "engines": {
6422
+ "node": ">=12.20.0"
6423
+ }
6424
+ },
5632
6425
  "node_modules/once": {
5633
6426
  "version": "1.4.0",
5634
6427
  "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -5737,6 +6530,19 @@
5737
6530
  "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
5738
6531
  "license": "MIT"
5739
6532
  },
6533
+ "node_modules/parse5": {
6534
+ "version": "8.0.1",
6535
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz",
6536
+ "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==",
6537
+ "dev": true,
6538
+ "license": "MIT",
6539
+ "dependencies": {
6540
+ "entities": "^8.0.0"
6541
+ },
6542
+ "funding": {
6543
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
6544
+ }
6545
+ },
5740
6546
  "node_modules/path-exists": {
5741
6547
  "version": "4.0.0",
5742
6548
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -5766,6 +6572,13 @@
5766
6572
  "node": ">=8"
5767
6573
  }
5768
6574
  },
6575
+ "node_modules/pathe": {
6576
+ "version": "2.0.3",
6577
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
6578
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
6579
+ "dev": true,
6580
+ "license": "MIT"
6581
+ },
5769
6582
  "node_modules/pdfjs-dist": {
5770
6583
  "version": "5.1.91",
5771
6584
  "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.1.91.tgz",
@@ -5851,6 +6664,36 @@
5851
6664
  "node": ">= 0.8.0"
5852
6665
  }
5853
6666
  },
6667
+ "node_modules/pretty-format": {
6668
+ "version": "27.5.1",
6669
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
6670
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
6671
+ "dev": true,
6672
+ "license": "MIT",
6673
+ "peer": true,
6674
+ "dependencies": {
6675
+ "ansi-regex": "^5.0.1",
6676
+ "ansi-styles": "^5.0.0",
6677
+ "react-is": "^17.0.1"
6678
+ },
6679
+ "engines": {
6680
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
6681
+ }
6682
+ },
6683
+ "node_modules/pretty-format/node_modules/ansi-styles": {
6684
+ "version": "5.2.0",
6685
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
6686
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
6687
+ "dev": true,
6688
+ "license": "MIT",
6689
+ "peer": true,
6690
+ "engines": {
6691
+ "node": ">=10"
6692
+ },
6693
+ "funding": {
6694
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
6695
+ }
6696
+ },
5854
6697
  "node_modules/process-nextick-args": {
5855
6698
  "version": "2.0.1",
5856
6699
  "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -5968,6 +6811,14 @@
5968
6811
  }
5969
6812
  }
5970
6813
  },
6814
+ "node_modules/react-is": {
6815
+ "version": "17.0.2",
6816
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
6817
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
6818
+ "dev": true,
6819
+ "license": "MIT",
6820
+ "peer": true
6821
+ },
5971
6822
  "node_modules/react-markdown": {
5972
6823
  "version": "10.1.0",
5973
6824
  "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz",
@@ -6066,6 +6917,16 @@
6066
6917
  "url": "https://opencollective.com/unified"
6067
6918
  }
6068
6919
  },
6920
+ "node_modules/require-from-string": {
6921
+ "version": "2.0.2",
6922
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
6923
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
6924
+ "dev": true,
6925
+ "license": "MIT",
6926
+ "engines": {
6927
+ "node": ">=0.10.0"
6928
+ }
6929
+ },
6069
6930
  "node_modules/resolve-from": {
6070
6931
  "version": "4.0.0",
6071
6932
  "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -6193,6 +7054,19 @@
6193
7054
  ],
6194
7055
  "license": "MIT"
6195
7056
  },
7057
+ "node_modules/saxes": {
7058
+ "version": "6.0.0",
7059
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
7060
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
7061
+ "dev": true,
7062
+ "license": "ISC",
7063
+ "dependencies": {
7064
+ "xmlchars": "^2.2.0"
7065
+ },
7066
+ "engines": {
7067
+ "node": ">=v12.22.7"
7068
+ }
7069
+ },
6196
7070
  "node_modules/scheduler": {
6197
7071
  "version": "0.26.0",
6198
7072
  "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
@@ -6247,6 +7121,13 @@
6247
7121
  "node": ">=8"
6248
7122
  }
6249
7123
  },
7124
+ "node_modules/siginfo": {
7125
+ "version": "2.0.0",
7126
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
7127
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
7128
+ "dev": true,
7129
+ "license": "ISC"
7130
+ },
6250
7131
  "node_modules/socket.io-client": {
6251
7132
  "version": "4.8.1",
6252
7133
  "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz",
@@ -6334,6 +7215,20 @@
6334
7215
  "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
6335
7216
  "license": "BSD-3-Clause"
6336
7217
  },
7218
+ "node_modules/stackback": {
7219
+ "version": "0.0.2",
7220
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
7221
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
7222
+ "dev": true,
7223
+ "license": "MIT"
7224
+ },
7225
+ "node_modules/std-env": {
7226
+ "version": "4.2.0",
7227
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz",
7228
+ "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==",
7229
+ "dev": true,
7230
+ "license": "MIT"
7231
+ },
6337
7232
  "node_modules/stream-events": {
6338
7233
  "version": "1.0.5",
6339
7234
  "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
@@ -6452,6 +7347,13 @@
6452
7347
  "url": "https://github.com/sponsors/wooorm"
6453
7348
  }
6454
7349
  },
7350
+ "node_modules/symbol-tree": {
7351
+ "version": "3.2.4",
7352
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
7353
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
7354
+ "dev": true,
7355
+ "license": "MIT"
7356
+ },
6455
7357
  "node_modules/tailwind-merge": {
6456
7358
  "version": "3.3.1",
6457
7359
  "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
@@ -6540,6 +7442,101 @@
6540
7442
  "utrie": "^1.0.2"
6541
7443
  }
6542
7444
  },
7445
+ "node_modules/tinybench": {
7446
+ "version": "2.9.0",
7447
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
7448
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
7449
+ "dev": true,
7450
+ "license": "MIT"
7451
+ },
7452
+ "node_modules/tinyexec": {
7453
+ "version": "1.3.0",
7454
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz",
7455
+ "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==",
7456
+ "dev": true,
7457
+ "license": "MIT",
7458
+ "engines": {
7459
+ "node": ">=18"
7460
+ }
7461
+ },
7462
+ "node_modules/tinyglobby": {
7463
+ "version": "0.2.17",
7464
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
7465
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
7466
+ "dev": true,
7467
+ "license": "MIT",
7468
+ "dependencies": {
7469
+ "fdir": "^6.5.0",
7470
+ "picomatch": "^4.0.4"
7471
+ },
7472
+ "engines": {
7473
+ "node": ">=12.0.0"
7474
+ },
7475
+ "funding": {
7476
+ "url": "https://github.com/sponsors/SuperchupuDev"
7477
+ }
7478
+ },
7479
+ "node_modules/tinyglobby/node_modules/fdir": {
7480
+ "version": "6.5.0",
7481
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
7482
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
7483
+ "dev": true,
7484
+ "license": "MIT",
7485
+ "engines": {
7486
+ "node": ">=12.0.0"
7487
+ },
7488
+ "peerDependencies": {
7489
+ "picomatch": "^3 || ^4"
7490
+ },
7491
+ "peerDependenciesMeta": {
7492
+ "picomatch": {
7493
+ "optional": true
7494
+ }
7495
+ }
7496
+ },
7497
+ "node_modules/tinyglobby/node_modules/picomatch": {
7498
+ "version": "4.0.7",
7499
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
7500
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
7501
+ "dev": true,
7502
+ "license": "MIT",
7503
+ "engines": {
7504
+ "node": ">=12"
7505
+ },
7506
+ "funding": {
7507
+ "url": "https://github.com/sponsors/jonschlinkert"
7508
+ }
7509
+ },
7510
+ "node_modules/tinyrainbow": {
7511
+ "version": "3.1.1",
7512
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz",
7513
+ "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==",
7514
+ "dev": true,
7515
+ "license": "MIT",
7516
+ "engines": {
7517
+ "node": ">=14.0.0"
7518
+ }
7519
+ },
7520
+ "node_modules/tldts": {
7521
+ "version": "7.4.11",
7522
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.11.tgz",
7523
+ "integrity": "sha512-aBiNayCfTQxuIJBm06M+xR14cYaYlDlSXZbgsnKzKNxDKUVq7KFwTjwBSsb7m9Y5xO8WfPnBc63WaYFMTGlvqw==",
7524
+ "dev": true,
7525
+ "license": "MIT",
7526
+ "dependencies": {
7527
+ "tldts-core": "^7.4.11"
7528
+ },
7529
+ "bin": {
7530
+ "tldts": "bin/cli.js"
7531
+ }
7532
+ },
7533
+ "node_modules/tldts-core": {
7534
+ "version": "7.4.11",
7535
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.11.tgz",
7536
+ "integrity": "sha512-CW3WN2rIIE/Of21mulhgnGOwoDyEFNygyIBOONSdyAuSATgMMUCpLeUlB+E8sAwA5xRV9hYPl+kyZ9citHCaKg==",
7537
+ "dev": true,
7538
+ "license": "MIT"
7539
+ },
6543
7540
  "node_modules/to-regex-range": {
6544
7541
  "version": "5.0.1",
6545
7542
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -6553,6 +7550,19 @@
6553
7550
  "node": ">=8.0"
6554
7551
  }
6555
7552
  },
7553
+ "node_modules/tough-cookie": {
7554
+ "version": "6.0.2",
7555
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz",
7556
+ "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==",
7557
+ "dev": true,
7558
+ "license": "BSD-3-Clause",
7559
+ "dependencies": {
7560
+ "tldts": "^7.0.5"
7561
+ },
7562
+ "engines": {
7563
+ "node": ">=16"
7564
+ }
7565
+ },
6556
7566
  "node_modules/tr46": {
6557
7567
  "version": "0.0.3",
6558
7568
  "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
@@ -6674,6 +7684,16 @@
6674
7684
  "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
6675
7685
  "license": "MIT"
6676
7686
  },
7687
+ "node_modules/undici": {
7688
+ "version": "7.29.0",
7689
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz",
7690
+ "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==",
7691
+ "dev": true,
7692
+ "license": "MIT",
7693
+ "engines": {
7694
+ "node": ">=20.18.1"
7695
+ }
7696
+ },
6677
7697
  "node_modules/undici-types": {
6678
7698
  "version": "6.21.0",
6679
7699
  "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
@@ -6931,6 +7951,109 @@
6931
7951
  }
6932
7952
  }
6933
7953
  },
7954
+ "node_modules/vitest": {
7955
+ "version": "4.1.11",
7956
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.11.tgz",
7957
+ "integrity": "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==",
7958
+ "dev": true,
7959
+ "license": "MIT",
7960
+ "dependencies": {
7961
+ "@vitest/expect": "4.1.11",
7962
+ "@vitest/mocker": "4.1.11",
7963
+ "@vitest/pretty-format": "4.1.11",
7964
+ "@vitest/runner": "4.1.11",
7965
+ "@vitest/snapshot": "4.1.11",
7966
+ "@vitest/spy": "4.1.11",
7967
+ "@vitest/utils": "4.1.11",
7968
+ "es-module-lexer": "^2.0.0",
7969
+ "expect-type": "^1.3.0",
7970
+ "magic-string": "^0.30.21",
7971
+ "obug": "^2.1.1",
7972
+ "pathe": "^2.0.3",
7973
+ "picomatch": "^4.0.3",
7974
+ "std-env": "^4.0.0-rc.1",
7975
+ "tinybench": "^2.9.0",
7976
+ "tinyexec": "^1.0.2",
7977
+ "tinyglobby": "^0.2.15",
7978
+ "tinyrainbow": "^3.1.0",
7979
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0",
7980
+ "why-is-node-running": "^2.3.0"
7981
+ },
7982
+ "bin": {
7983
+ "vitest": "vitest.mjs"
7984
+ },
7985
+ "engines": {
7986
+ "node": "^20.0.0 || ^22.0.0 || >=24.0.0"
7987
+ },
7988
+ "funding": {
7989
+ "url": "https://opencollective.com/vitest"
7990
+ },
7991
+ "peerDependencies": {
7992
+ "@edge-runtime/vm": "*",
7993
+ "@opentelemetry/api": "^1.9.0",
7994
+ "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
7995
+ "@vitest/browser-playwright": "4.1.11",
7996
+ "@vitest/browser-preview": "4.1.11",
7997
+ "@vitest/browser-webdriverio": "4.1.11",
7998
+ "@vitest/coverage-istanbul": "4.1.11",
7999
+ "@vitest/coverage-v8": "4.1.11",
8000
+ "@vitest/ui": "4.1.11",
8001
+ "happy-dom": "*",
8002
+ "jsdom": "*",
8003
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
8004
+ },
8005
+ "peerDependenciesMeta": {
8006
+ "@edge-runtime/vm": {
8007
+ "optional": true
8008
+ },
8009
+ "@opentelemetry/api": {
8010
+ "optional": true
8011
+ },
8012
+ "@types/node": {
8013
+ "optional": true
8014
+ },
8015
+ "@vitest/browser-playwright": {
8016
+ "optional": true
8017
+ },
8018
+ "@vitest/browser-preview": {
8019
+ "optional": true
8020
+ },
8021
+ "@vitest/browser-webdriverio": {
8022
+ "optional": true
8023
+ },
8024
+ "@vitest/coverage-istanbul": {
8025
+ "optional": true
8026
+ },
8027
+ "@vitest/coverage-v8": {
8028
+ "optional": true
8029
+ },
8030
+ "@vitest/ui": {
8031
+ "optional": true
8032
+ },
8033
+ "happy-dom": {
8034
+ "optional": true
8035
+ },
8036
+ "jsdom": {
8037
+ "optional": true
8038
+ },
8039
+ "vite": {
8040
+ "optional": false
8041
+ }
8042
+ }
8043
+ },
8044
+ "node_modules/vitest/node_modules/picomatch": {
8045
+ "version": "4.0.7",
8046
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
8047
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
8048
+ "dev": true,
8049
+ "license": "MIT",
8050
+ "engines": {
8051
+ "node": ">=12"
8052
+ },
8053
+ "funding": {
8054
+ "url": "https://github.com/sponsors/jonschlinkert"
8055
+ }
8056
+ },
6934
8057
  "node_modules/void-elements": {
6935
8058
  "version": "3.1.0",
6936
8059
  "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
@@ -6940,12 +8063,35 @@
6940
8063
  "node": ">=0.10.0"
6941
8064
  }
6942
8065
  },
8066
+ "node_modules/w3c-xmlserializer": {
8067
+ "version": "5.0.0",
8068
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
8069
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
8070
+ "dev": true,
8071
+ "license": "MIT",
8072
+ "dependencies": {
8073
+ "xml-name-validator": "^5.0.0"
8074
+ },
8075
+ "engines": {
8076
+ "node": ">=18"
8077
+ }
8078
+ },
6943
8079
  "node_modules/webidl-conversions": {
6944
8080
  "version": "3.0.1",
6945
8081
  "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
6946
8082
  "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
6947
8083
  "license": "BSD-2-Clause"
6948
8084
  },
8085
+ "node_modules/whatwg-mimetype": {
8086
+ "version": "5.0.0",
8087
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz",
8088
+ "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==",
8089
+ "dev": true,
8090
+ "license": "MIT",
8091
+ "engines": {
8092
+ "node": ">=20"
8093
+ }
8094
+ },
6949
8095
  "node_modules/whatwg-url": {
6950
8096
  "version": "5.0.0",
6951
8097
  "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
@@ -6972,6 +8118,23 @@
6972
8118
  "node": ">= 8"
6973
8119
  }
6974
8120
  },
8121
+ "node_modules/why-is-node-running": {
8122
+ "version": "2.3.0",
8123
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
8124
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
8125
+ "dev": true,
8126
+ "license": "MIT",
8127
+ "dependencies": {
8128
+ "siginfo": "^2.0.0",
8129
+ "stackback": "0.0.2"
8130
+ },
8131
+ "bin": {
8132
+ "why-is-node-running": "cli.js"
8133
+ },
8134
+ "engines": {
8135
+ "node": ">=8"
8136
+ }
8137
+ },
6975
8138
  "node_modules/word-wrap": {
6976
8139
  "version": "1.2.5",
6977
8140
  "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -7009,6 +8172,16 @@
7009
8172
  }
7010
8173
  }
7011
8174
  },
8175
+ "node_modules/xml-name-validator": {
8176
+ "version": "5.0.0",
8177
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
8178
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
8179
+ "dev": true,
8180
+ "license": "Apache-2.0",
8181
+ "engines": {
8182
+ "node": ">=18"
8183
+ }
8184
+ },
7012
8185
  "node_modules/xmlbuilder": {
7013
8186
  "version": "10.1.1",
7014
8187
  "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz",
@@ -7018,6 +8191,13 @@
7018
8191
  "node": ">=4.0"
7019
8192
  }
7020
8193
  },
8194
+ "node_modules/xmlchars": {
8195
+ "version": "2.2.0",
8196
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
8197
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
8198
+ "dev": true,
8199
+ "license": "MIT"
8200
+ },
7021
8201
  "node_modules/xmlhttprequest-ssl": {
7022
8202
  "version": "2.1.2",
7023
8203
  "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz",