detached 812ae7a

chore: update project configuration and add font assets with caching headers

commit
812ae7a683dd2f752c6d4c4e910ef06d01a39522
author
Kit · · 2025-07-03 19:56 UTC
parent
03de79c
signature
SSH UnverifiedSHA256:H91DFuEG4jpk5edzLA4aUKkpv4zv9Q339ipRmkph6Tk The key is unknown
25 files · +987 -4
M .gitignore +3 -1
@@ -22,4 +22,6 @@ Thumbs.db
2222 vite.config.js.timestamp-*
2323 vite.config.ts.timestamp-*
2424
25-docs/⏎̸
25+docs/
26+
27+.serena/⏎̸
@@ -22,4 +22,6 @@ Thumbs.db
22 vite.config.js.timestamp-*22 vite.config.js.timestamp-*
23 vite.config.ts.timestamp-*23 vite.config.ts.timestamp-*
24 24
25-docs/⏎̸25+docs/
26+
27+.serena/⏎̸
M package.json +10 -1
@@ -19,6 +19,7 @@
1919 "test": "npm run test:unit -- --run",
2020 "db:generate": "npx drizzle-kit generate",
2121 "db:push": "npx drizzle-kit push",
22+ "db:push-prod": "TURSO_DATABASE_URL=\"$TURSO_DATABASE_URL_PROD\" TURSO_AUTH_TOKEN=\"$TURSO_AUTH_TOKEN_PROD\" npx drizzle-kit push",
2223 "db:flush": "tsx utils/db-flush.ts"
2324 },
2425 "devDependencies": {
@@ -37,6 +38,7 @@
3738 "eslint-config-prettier": "^10.0.1",
3839 "eslint-plugin-svelte": "^2.46.1",
3940 "globals": "^15.15.0",
41+ "jsdom": "^26.1.0",
4042 "prettier": "^3.5.1",
4143 "prettier-plugin-svelte": "^3.3.3",
4244 "prettier-plugin-tailwindcss": "^0.6.11",
@@ -56,7 +58,14 @@
5658 "drizzle-orm": "^0.39.3",
5759 "pino": "^9.6.0",
5860 "pino-pretty": "^13.0.0",
61+ "rehype": "^13.0.2",
62+ "rehype-sanitize": "^6.0.0",
63+ "rehype-stringify": "^10.0.1",
64+ "remark-parse": "^11.0.0",
65+ "remark-rehype": "^11.1.2",
66+ "unified": "^11.0.5",
5967 "uuid": "^11.0.5",
60- "xp.css": "^0.2.6"
68+ "xp.css": "^0.2.6",
69+ "zod": "^3.25.67"
6170 }
6271 }
@@ -19,6 +19,7 @@
19 "test": "npm run test:unit -- --run",19 "test": "npm run test:unit -- --run",
20 "db:generate": "npx drizzle-kit generate",20 "db:generate": "npx drizzle-kit generate",
21 "db:push": "npx drizzle-kit push",21 "db:push": "npx drizzle-kit push",
22+ "db:push-prod": "TURSO_DATABASE_URL=\"$TURSO_DATABASE_URL_PROD\" TURSO_AUTH_TOKEN=\"$TURSO_AUTH_TOKEN_PROD\" npx drizzle-kit push",
22 "db:flush": "tsx utils/db-flush.ts"23 "db:flush": "tsx utils/db-flush.ts"
23 },24 },
24 "devDependencies": {25 "devDependencies": {
@@ -37,6 +38,7 @@
37 "eslint-config-prettier": "^10.0.1",38 "eslint-config-prettier": "^10.0.1",
38 "eslint-plugin-svelte": "^2.46.1",39 "eslint-plugin-svelte": "^2.46.1",
39 "globals": "^15.15.0",40 "globals": "^15.15.0",
41+ "jsdom": "^26.1.0",
40 "prettier": "^3.5.1",42 "prettier": "^3.5.1",
41 "prettier-plugin-svelte": "^3.3.3",43 "prettier-plugin-svelte": "^3.3.3",
42 "prettier-plugin-tailwindcss": "^0.6.11",44 "prettier-plugin-tailwindcss": "^0.6.11",
@@ -56,7 +58,14 @@
56 "drizzle-orm": "^0.39.3",58 "drizzle-orm": "^0.39.3",
57 "pino": "^9.6.0",59 "pino": "^9.6.0",
58 "pino-pretty": "^13.0.0",60 "pino-pretty": "^13.0.0",
61+ "rehype": "^13.0.2",
62+ "rehype-sanitize": "^6.0.0",
63+ "rehype-stringify": "^10.0.1",
64+ "remark-parse": "^11.0.0",
65+ "remark-rehype": "^11.1.2",
66+ "unified": "^11.0.5",
59 "uuid": "^11.0.5",67 "uuid": "^11.0.5",
60- "xp.css": "^0.2.6"68+ "xp.css": "^0.2.6",
69+ "zod": "^3.25.67"
61 }70 }
62 }71 }
M pnpm-lock.yaml +907 -2
@@ -23,12 +23,33 @@ importers:
2323 pino-pretty:
2424 specifier: ^13.0.0
2525 version: 13.0.0
26+ rehype:
27+ specifier: ^13.0.2
28+ version: 13.0.2
29+ rehype-sanitize:
30+ specifier: ^6.0.0
31+ version: 6.0.0
32+ rehype-stringify:
33+ specifier: ^10.0.1
34+ version: 10.0.1
35+ remark-parse:
36+ specifier: ^11.0.0
37+ version: 11.0.0
38+ remark-rehype:
39+ specifier: ^11.1.2
40+ version: 11.1.2
41+ unified:
42+ specifier: ^11.0.5
43+ version: 11.0.5
2644 uuid:
2745 specifier: ^11.0.5
2846 version: 11.0.5
2947 xp.css:
3048 specifier: ^0.2.6
3149 version: 0.2.6
50+ zod:
51+ specifier: ^3.25.67
52+ version: 3.25.67
3253 devDependencies:
3354 '@eslint/compat':
3455 specifier: ^1.2.6
@@ -75,6 +96,9 @@ importers:
7596 globals:
7697 specifier: ^15.15.0
7798 version: 15.15.0
99+ jsdom:
100+ specifier: ^26.1.0
101+ version: 26.1.0
78102 prettier:
79103 specifier: ^3.5.1
80104 version: 3.5.1
@@ -110,7 +134,7 @@ importers:
110134 version: 6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
111135 vitest:
112136 specifier: ^3.0.5
113- version: 3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
137+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(jiti@1.21.7)(jsdom@26.1.0)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
114138
115139 packages:
116140
@@ -122,6 +146,9 @@ packages:
122146 resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
123147 engines: {node: '>=6.0.0'}
124148
149+ '@asamuzakjp/css-color@3.2.0':
150+ resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
151+
125152 '@cloudflare/kv-asset-handler@0.3.4':
126153 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==}
127154 engines: {node: '>=16.13'}
@@ -163,6 +190,34 @@ packages:
163190 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
164191 engines: {node: '>=12'}
165192
193+ '@csstools/color-helpers@5.0.2':
194+ resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
195+ engines: {node: '>=18'}
196+
197+ '@csstools/css-calc@2.1.4':
198+ resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==}
199+ engines: {node: '>=18'}
200+ peerDependencies:
201+ '@csstools/css-parser-algorithms': ^3.0.5
202+ '@csstools/css-tokenizer': ^3.0.4
203+
204+ '@csstools/css-color-parser@3.0.10':
205+ resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==}
206+ engines: {node: '>=18'}
207+ peerDependencies:
208+ '@csstools/css-parser-algorithms': ^3.0.5
209+ '@csstools/css-tokenizer': ^3.0.4
210+
211+ '@csstools/css-parser-algorithms@3.0.5':
212+ resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==}
213+ engines: {node: '>=18'}
214+ peerDependencies:
215+ '@csstools/css-tokenizer': ^3.0.4
216+
217+ '@csstools/css-tokenizer@3.0.4':
218+ resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==}
219+ engines: {node: '>=18'}
220+
166221 '@drizzle-team/brocli@0.10.2':
167222 resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
168223
@@ -1195,15 +1250,30 @@ packages:
11951250 '@types/cookie@0.6.0':
11961251 resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
11971252
1253+ '@types/debug@4.1.12':
1254+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
1255+
11981256 '@types/estree@1.0.6':
11991257 resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
12001258
1259+ '@types/hast@3.0.4':
1260+ resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
1261+
12011262 '@types/json-schema@7.0.15':
12021263 resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
12031264
1265+ '@types/mdast@4.0.4':
1266+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
1267+
1268+ '@types/ms@2.1.0':
1269+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
1270+
12041271 '@types/node@22.13.4':
12051272 resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}
12061273
1274+ '@types/unist@3.0.3':
1275+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
1276+
12071277 '@types/ws@8.5.14':
12081278 resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==}
12091279
@@ -1254,6 +1324,9 @@ packages:
12541324 resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==}
12551325 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
12561326
1327+ '@ungap/structured-clone@1.3.0':
1328+ resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
1329+
12571330 '@vitest/expect@3.0.5':
12581331 resolution: {integrity: sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==}
12591332
@@ -1302,6 +1375,10 @@ packages:
13021375 engines: {node: '>=0.4.0'}
13031376 hasBin: true
13041377
1378+ agent-base@7.1.3:
1379+ resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
1380+ engines: {node: '>= 14'}
1381+
13051382 ajv@6.12.6:
13061383 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
13071384
@@ -1360,6 +1437,9 @@ packages:
13601437 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
13611438 engines: {node: '>= 0.4'}
13621439
1440+ bail@2.0.2:
1441+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
1442+
13631443 balanced-match@1.0.2:
13641444 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
13651445
@@ -1403,6 +1483,9 @@ packages:
14031483 caniuse-lite@1.0.30001700:
14041484 resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
14051485
1486+ ccount@2.0.1:
1487+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
1488+
14061489 chai@5.2.0:
14071490 resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
14081491 engines: {node: '>=12'}
@@ -1411,6 +1494,15 @@ packages:
14111494 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
14121495 engines: {node: '>=10'}
14131496
1497+ character-entities-html4@2.1.0:
1498+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
1499+
1500+ character-entities-legacy@3.0.0:
1501+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
1502+
1503+ character-entities@2.0.2:
1504+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
1505+
14141506 check-error@2.1.1:
14151507 resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
14161508 engines: {node: '>= 16'}
@@ -1437,6 +1529,9 @@ packages:
14371529 colorette@2.0.20:
14381530 resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
14391531
1532+ comma-separated-tokens@2.0.3:
1533+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
1534+
14401535 commander@2.20.3:
14411536 resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
14421537
@@ -1467,6 +1562,10 @@ packages:
14671562 engines: {node: '>=4'}
14681563 hasBin: true
14691564
1565+ cssstyle@4.6.0:
1566+ resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
1567+ engines: {node: '>=18'}
1568+
14701569 data-uri-to-buffer@2.0.2:
14711570 resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
14721571
@@ -1474,6 +1573,10 @@ packages:
14741573 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
14751574 engines: {node: '>= 12'}
14761575
1576+ data-urls@5.0.0:
1577+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
1578+ engines: {node: '>=18'}
1579+
14771580 dateformat@4.6.3:
14781581 resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
14791582
@@ -1486,6 +1589,12 @@ packages:
14861589 supports-color:
14871590 optional: true
14881591
1592+ decimal.js@10.5.0:
1593+ resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==}
1594+
1595+ decode-named-character-reference@1.2.0:
1596+ resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
1597+
14891598 deep-eql@5.0.2:
14901599 resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
14911600 engines: {node: '>=6'}
@@ -1500,6 +1609,10 @@ packages:
15001609 defu@6.1.4:
15011610 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
15021611
1612+ dequal@2.0.3:
1613+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
1614+ engines: {node: '>=6'}
1615+
15031616 detect-libc@2.0.2:
15041617 resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
15051618 engines: {node: '>=8'}
@@ -1507,6 +1620,9 @@ packages:
15071620 devalue@5.1.1:
15081621 resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==}
15091622
1623+ devlop@1.1.0:
1624+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
1625+
15101626 didyoumean@1.2.2:
15111627 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
15121628
@@ -1622,6 +1738,10 @@ packages:
16221738 end-of-stream@1.4.4:
16231739 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
16241740
1741+ entities@6.0.1:
1742+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
1743+ engines: {node: '>=0.12'}
1744+
16251745 es-module-lexer@1.6.0:
16261746 resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
16271747
@@ -1755,6 +1875,9 @@ packages:
17551875 resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
17561876 engines: {node: '>=12.0.0'}
17571877
1878+ extend@3.0.2:
1879+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
1880+
17581881 fast-copy@3.0.2:
17591882 resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}
17601883
@@ -1871,9 +1994,49 @@ packages:
18711994 resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
18721995 engines: {node: '>= 0.4'}
18731996
1997+ hast-util-from-html@2.0.3:
1998+ resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
1999+
2000+ hast-util-from-parse5@8.0.3:
2001+ resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
2002+
2003+ hast-util-parse-selector@4.0.0:
2004+ resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
2005+
2006+ hast-util-sanitize@5.0.2:
2007+ resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==}
2008+
2009+ hast-util-to-html@9.0.5:
2010+ resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
2011+
2012+ hast-util-whitespace@3.0.0:
2013+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
2014+
2015+ hastscript@9.0.1:
2016+ resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
2017+
18742018 help-me@5.0.0:
18752019 resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==}
18762020
2021+ html-encoding-sniffer@4.0.0:
2022+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
2023+ engines: {node: '>=18'}
2024+
2025+ html-void-elements@3.0.0:
2026+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
2027+
2028+ http-proxy-agent@7.0.2:
2029+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
2030+ engines: {node: '>= 14'}
2031+
2032+ https-proxy-agent@7.0.6:
2033+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
2034+ engines: {node: '>= 14'}
2035+
2036+ iconv-lite@0.6.3:
2037+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
2038+ engines: {node: '>=0.10.0'}
2039+
18772040 ignore@5.3.2:
18782041 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
18792042 engines: {node: '>= 4'}
@@ -1913,6 +2076,13 @@ packages:
19132076 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
19142077 engines: {node: '>=0.12.0'}
19152078
2079+ is-plain-obj@4.1.0:
2080+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
2081+ engines: {node: '>=12'}
2082+
2083+ is-potential-custom-element-name@1.0.1:
2084+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
2085+
19162086 is-reference@3.0.3:
19172087 resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
19182088
@@ -1937,6 +2107,15 @@ packages:
19372107 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
19382108 hasBin: true
19392109
2110+ jsdom@26.1.0:
2111+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
2112+ engines: {node: '>=18'}
2113+ peerDependencies:
2114+ canvas: ^3.0.0
2115+ peerDependenciesMeta:
2116+ canvas:
2117+ optional: true
2118+
19402119 json-buffer@3.0.1:
19412120 resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
19422121
@@ -2004,10 +2183,82 @@ packages:
20042183 magic-string@0.30.17:
20052184 resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
20062185
2186+ mdast-util-from-markdown@2.0.2:
2187+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
2188+
2189+ mdast-util-to-hast@13.2.0:
2190+ resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
2191+
2192+ mdast-util-to-string@4.0.0:
2193+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
2194+
20072195 merge2@1.4.1:
20082196 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
20092197 engines: {node: '>= 8'}
20102198
2199+ micromark-core-commonmark@2.0.3:
2200+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
2201+
2202+ micromark-factory-destination@2.0.1:
2203+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
2204+
2205+ micromark-factory-label@2.0.1:
2206+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
2207+
2208+ micromark-factory-space@2.0.1:
2209+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
2210+
2211+ micromark-factory-title@2.0.1:
2212+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
2213+
2214+ micromark-factory-whitespace@2.0.1:
2215+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
2216+
2217+ micromark-util-character@2.1.1:
2218+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
2219+
2220+ micromark-util-chunked@2.0.1:
2221+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
2222+
2223+ micromark-util-classify-character@2.0.1:
2224+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
2225+
2226+ micromark-util-combine-extensions@2.0.1:
2227+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
2228+
2229+ micromark-util-decode-numeric-character-reference@2.0.2:
2230+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
2231+
2232+ micromark-util-decode-string@2.0.1:
2233+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
2234+
2235+ micromark-util-encode@2.0.1:
2236+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
2237+
2238+ micromark-util-html-tag-name@2.0.1:
2239+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
2240+
2241+ micromark-util-normalize-identifier@2.0.1:
2242+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
2243+
2244+ micromark-util-resolve-all@2.0.1:
2245+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
2246+
2247+ micromark-util-sanitize-uri@2.0.1:
2248+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
2249+
2250+ micromark-util-subtokenize@2.1.0:
2251+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
2252+
2253+ micromark-util-symbol@2.0.1:
2254+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
2255+
2256+ micromark-util-types@2.0.2:
2257+ resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
2258+
2259+ micromark@4.0.2:
2260+ resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
2261+
20112262 micromatch@4.0.8:
20122263 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
20132264 engines: {node: '>=8.6'}
@@ -2088,6 +2339,9 @@ packages:
20882339 resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
20892340 engines: {node: '>=0.10.0'}
20902341
2342+ nwsapi@2.2.20:
2343+ resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==}
2344+
20912345 object-assign@4.1.1:
20922346 resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
20932347 engines: {node: '>=0.10.0'}
@@ -2125,6 +2379,9 @@ packages:
21252379 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
21262380 engines: {node: '>=6'}
21272381
2382+ parse5@7.3.0:
2383+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
2384+
21282385 path-exists@4.0.0:
21292386 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
21302387 engines: {node: '>=8'}
@@ -2333,6 +2590,9 @@ packages:
23332590 promise-limit@2.7.0:
23342591 resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}
23352592
2593+ property-information@7.1.0:
2594+ resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
2595+
23362596 pump@3.0.2:
23372597 resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
23382598
@@ -2365,6 +2625,24 @@ packages:
23652625 resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==}
23662626 engines: {node: '>=8'}
23672627
2628+ rehype-parse@9.0.1:
2629+ resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
2630+
2631+ rehype-sanitize@6.0.0:
2632+ resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==}
2633+
2634+ rehype-stringify@10.0.1:
2635+ resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
2636+
2637+ rehype@13.0.2:
2638+ resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==}
2639+
2640+ remark-parse@11.0.0:
2641+ resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
2642+
2643+ remark-rehype@11.1.2:
2644+ resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
2645+
23682646 resolve-from@4.0.0:
23692647 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
23702648 engines: {node: '>=4'}
@@ -2396,6 +2674,9 @@ packages:
23962674 engines: {node: '>=18.0.0', npm: '>=8.0.0'}
23972675 hasBin: true
23982676
2677+ rrweb-cssom@0.8.0:
2678+ resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
2679+
23992680 run-parallel@1.2.0:
24002681 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
24012682
@@ -2407,6 +2688,13 @@ packages:
24072688 resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
24082689 engines: {node: '>=10'}
24092690
2691+ safer-buffer@2.1.2:
2692+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
2693+
2694+ saxes@6.0.0:
2695+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
2696+ engines: {node: '>=v12.22.7'}
2697+
24102698 secure-json-parse@2.7.0:
24112699 resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
24122700
@@ -2455,6 +2743,9 @@ packages:
24552743 resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
24562744 deprecated: Please use @jridgewell/sourcemap-codec instead
24572745
2746+ space-separated-tokens@2.0.2:
2747+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
2748+
24582749 split2@4.2.0:
24592750 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
24602751 engines: {node: '>= 10.x'}
@@ -2480,6 +2771,9 @@ packages:
24802771 resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
24812772 engines: {node: '>=12'}
24822773
2774+ stringify-entities@4.0.4:
2775+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
2776+
24832777 strip-ansi@6.0.1:
24842778 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
24852779 engines: {node: '>=8'}
@@ -2526,6 +2820,9 @@ packages:
25262820 resolution: {integrity: sha512-aCARru2WTdzJl55Ws8SK27+kvQwd8tijl4kY7NoDUXUHtTHhxMa8Lf6QNZKmU7cuPu3jjFloDO1j5HgYJNIIWg==}
25272821 engines: {node: '>=18'}
25282822
2823+ symbol-tree@3.2.4:
2824+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
2825+
25292826 tailwindcss@3.4.17:
25302827 resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
25312828 engines: {node: '>=14.0.0'}
@@ -2564,6 +2861,13 @@ packages:
25642861 resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
25652862 engines: {node: '>=14.0.0'}
25662863
2864+ tldts-core@6.1.86:
2865+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
2866+
2867+ tldts@6.1.86:
2868+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
2869+ hasBin: true
2870+
25672871 to-regex-range@5.0.1:
25682872 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
25692873 engines: {node: '>=8.0'}
@@ -2572,6 +2876,20 @@ packages:
25722876 resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
25732877 engines: {node: '>=6'}
25742878
2879+ tough-cookie@5.1.2:
2880+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
2881+ engines: {node: '>=16'}
2882+
2883+ tr46@5.1.1:
2884+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
2885+ engines: {node: '>=18'}
2886+
2887+ trim-lines@3.0.1:
2888+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
2889+
2890+ trough@2.2.0:
2891+ resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
2892+
25752893 ts-api-utils@2.0.1:
25762894 resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
25772895 engines: {node: '>=18.12'}
@@ -2615,6 +2933,24 @@ packages:
26152933 unenv@2.0.0-rc.1:
26162934 resolution: {integrity: sha512-PU5fb40H8X149s117aB4ytbORcCvlASdtF97tfls4BPIyj4PeVxvpSuy1jAptqYHqB0vb2w2sHvzM0XWcp2OKg==}
26172935
2936+ unified@11.0.5:
2937+ resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
2938+
2939+ unist-util-is@6.0.0:
2940+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
2941+
2942+ unist-util-position@5.0.0:
2943+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
2944+
2945+ unist-util-stringify-position@4.0.0:
2946+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
2947+
2948+ unist-util-visit-parents@6.0.1:
2949+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
2950+
2951+ unist-util-visit@5.0.0:
2952+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
2953+
26182954 update-browserslist-db@1.1.2:
26192955 resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
26202956 hasBin: true
@@ -2631,6 +2967,15 @@ packages:
26312967 resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==}
26322968 hasBin: true
26332969
2970+ vfile-location@5.0.3:
2971+ resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
2972+
2973+ vfile-message@4.0.2:
2974+ resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
2975+
2976+ vfile@6.0.3:
2977+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
2978+
26342979 vite-node@3.0.5:
26352980 resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==}
26362981 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
@@ -2712,10 +3057,33 @@ packages:
27123057 jsdom:
27133058 optional: true
27143059
3060+ w3c-xmlserializer@5.0.0:
3061+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
3062+ engines: {node: '>=18'}
3063+
3064+ web-namespaces@2.0.1:
3065+ resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
3066+
27153067 web-streams-polyfill@3.3.3:
27163068 resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
27173069 engines: {node: '>= 8'}
27183070
3071+ webidl-conversions@7.0.0:
3072+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
3073+ engines: {node: '>=12'}
3074+
3075+ whatwg-encoding@3.1.1:
3076+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
3077+ engines: {node: '>=18'}
3078+
3079+ whatwg-mimetype@4.0.0:
3080+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
3081+ engines: {node: '>=18'}
3082+
3083+ whatwg-url@14.2.0:
3084+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
3085+ engines: {node: '>=18'}
3086+
27193087 which@2.0.2:
27203088 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
27213089 engines: {node: '>= 8'}
@@ -2772,6 +3140,13 @@ packages:
27723140 utf-8-validate:
27733141 optional: true
27743142
3143+ xml-name-validator@5.0.0:
3144+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
3145+ engines: {node: '>=18'}
3146+
3147+ xmlchars@2.2.0:
3148+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
3149+
27753150 xp.css@0.2.6:
27763151 resolution: {integrity: sha512-v0qUB4wOvyXIMLNid5bIpm+0n5aL4i8wE5dqJH8LNVxE04PxUUxjwf2rNzengegUIK03XC4vbfLVCPAfMLtuqA==}
27773152
@@ -2797,6 +3172,12 @@ packages:
27973172 zod@3.24.2:
27983173 resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
27993174
3175+ zod@3.25.67:
3176+ resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==}
3177+
3178+ zwitch@2.0.4:
3179+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
3180+
28003181 snapshots:
28013182
28023183 '@alloc/quick-lru@5.2.0': {}
@@ -2806,6 +3187,14 @@ snapshots:
28063187 '@jridgewell/gen-mapping': 0.3.8
28073188 '@jridgewell/trace-mapping': 0.3.25
28083189
3190+ '@asamuzakjp/css-color@3.2.0':
3191+ dependencies:
3192+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
3193+ '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
3194+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
3195+ '@csstools/css-tokenizer': 3.0.4
3196+ lru-cache: 10.4.3
3197+
28093198 '@cloudflare/kv-asset-handler@0.3.4':
28103199 dependencies:
28113200 mime: 3.0.0
@@ -2831,6 +3220,26 @@ snapshots:
28313220 dependencies:
28323221 '@jridgewell/trace-mapping': 0.3.9
28333222
3223+ '@csstools/color-helpers@5.0.2': {}
3224+
3225+ '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
3226+ dependencies:
3227+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
3228+ '@csstools/css-tokenizer': 3.0.4
3229+
3230+ '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
3231+ dependencies:
3232+ '@csstools/color-helpers': 5.0.2
3233+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
3234+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
3235+ '@csstools/css-tokenizer': 3.0.4
3236+
3237+ '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)':
3238+ dependencies:
3239+ '@csstools/css-tokenizer': 3.0.4
3240+
3241+ '@csstools/css-tokenizer@3.0.4': {}
3242+
28343243 '@drizzle-team/brocli@0.10.2': {}
28353244
28363245 '@esbuild-kit/core-utils@3.3.2':
@@ -3500,14 +3909,30 @@ snapshots:
35003909
35013910 '@types/cookie@0.6.0': {}
35023911
3912+ '@types/debug@4.1.12':
3913+ dependencies:
3914+ '@types/ms': 2.1.0
3915+
35033916 '@types/estree@1.0.6': {}
35043917
3918+ '@types/hast@3.0.4':
3919+ dependencies:
3920+ '@types/unist': 3.0.3
3921+
35053922 '@types/json-schema@7.0.15': {}
35063923
3924+ '@types/mdast@4.0.4':
3925+ dependencies:
3926+ '@types/unist': 3.0.3
3927+
3928+ '@types/ms@2.1.0': {}
3929+
35073930 '@types/node@22.13.4':
35083931 dependencies:
35093932 undici-types: 6.20.0
35103933
3934+ '@types/unist@3.0.3': {}
3935+
35113936 '@types/ws@8.5.14':
35123937 dependencies:
35133938 '@types/node': 22.13.4
@@ -3589,6 +4014,8 @@ snapshots:
35894014 '@typescript-eslint/types': 8.24.0
35904015 eslint-visitor-keys: 4.2.0
35914016
4017+ '@ungap/structured-clone@1.3.0': {}
4018+
35924019 '@vitest/expect@3.0.5':
35934020 dependencies:
35944021 '@vitest/spy': 3.0.5
@@ -3643,6 +4070,8 @@ snapshots:
36434070
36444071 acorn@8.14.0: {}
36454072
4073+ agent-base@7.1.3: {}
4074+
36464075 ajv@6.12.6:
36474076 dependencies:
36484077 fast-deep-equal: 3.1.3
@@ -3693,6 +4122,8 @@ snapshots:
36934122
36944123 axobject-query@4.1.0: {}
36954124
4125+ bail@2.0.2: {}
4126+
36964127 balanced-match@1.0.2: {}
36974128
36984129 binary-extensions@2.3.0: {}
@@ -3729,6 +4160,8 @@ snapshots:
37294160
37304161 caniuse-lite@1.0.30001700: {}
37314162
4163+ ccount@2.0.1: {}
4164+
37324165 chai@5.2.0:
37334166 dependencies:
37344167 assertion-error: 2.0.1
@@ -3742,6 +4175,12 @@ snapshots:
37424175 ansi-styles: 4.3.0
37434176 supports-color: 7.2.0
37444177
4178+ character-entities-html4@2.1.0: {}
4179+
4180+ character-entities-legacy@3.0.0: {}
4181+
4182+ character-entities@2.0.2: {}
4183+
37454184 check-error@2.1.1: {}
37464185
37474186 chokidar@3.6.0:
@@ -3770,6 +4209,8 @@ snapshots:
37704209
37714210 colorette@2.0.20: {}
37724211
4212+ comma-separated-tokens@2.0.3: {}
4213+
37734214 commander@2.20.3: {}
37744215
37754216 commander@4.1.1: {}
@@ -3790,16 +4231,32 @@ snapshots:
37904231
37914232 cssesc@3.0.0: {}
37924233
4234+ cssstyle@4.6.0:
4235+ dependencies:
4236+ '@asamuzakjp/css-color': 3.2.0
4237+ rrweb-cssom: 0.8.0
4238+
37934239 data-uri-to-buffer@2.0.2: {}
37944240
37954241 data-uri-to-buffer@4.0.1: {}
37964242
4243+ data-urls@5.0.0:
4244+ dependencies:
4245+ whatwg-mimetype: 4.0.0
4246+ whatwg-url: 14.2.0
4247+
37974248 dateformat@4.6.3: {}
37984249
37994250 debug@4.4.0:
38004251 dependencies:
38014252 ms: 2.1.3
38024253
4254+ decimal.js@10.5.0: {}
4255+
4256+ decode-named-character-reference@1.2.0:
4257+ dependencies:
4258+ character-entities: 2.0.2
4259+
38034260 deep-eql@5.0.2: {}
38044261
38054262 deep-is@0.1.4: {}
@@ -3808,10 +4265,16 @@ snapshots:
38084265
38094266 defu@6.1.4: {}
38104267
4268+ dequal@2.0.3: {}
4269+
38114270 detect-libc@2.0.2: {}
38124271
38134272 devalue@5.1.1: {}
38144273
4274+ devlop@1.1.0:
4275+ dependencies:
4276+ dequal: 2.0.3
4277+
38154278 didyoumean@1.2.2: {}
38164279
38174280 dlv@1.1.3: {}
@@ -3844,6 +4307,8 @@ snapshots:
38444307 dependencies:
38454308 once: 1.4.0
38464309
4310+ entities@6.0.1: {}
4311+
38474312 es-module-lexer@1.6.0: {}
38484313
38494314 esbuild-register@3.6.0(esbuild@0.19.12):
@@ -4111,6 +4576,8 @@ snapshots:
41114576
41124577 expect-type@1.1.0: {}
41134578
4579+ extend@3.0.2: {}
4580+
41144581 fast-copy@3.0.2: {}
41154582
41164583 fast-deep-equal@3.1.3: {}
@@ -4218,8 +4685,88 @@ snapshots:
42184685 dependencies:
42194686 function-bind: 1.1.2
42204687
4688+ hast-util-from-html@2.0.3:
4689+ dependencies:
4690+ '@types/hast': 3.0.4
4691+ devlop: 1.1.0
4692+ hast-util-from-parse5: 8.0.3
4693+ parse5: 7.3.0
4694+ vfile: 6.0.3
4695+ vfile-message: 4.0.2
4696+
4697+ hast-util-from-parse5@8.0.3:
4698+ dependencies:
4699+ '@types/hast': 3.0.4
4700+ '@types/unist': 3.0.3
4701+ devlop: 1.1.0
4702+ hastscript: 9.0.1
4703+ property-information: 7.1.0
4704+ vfile: 6.0.3
4705+ vfile-location: 5.0.3
4706+ web-namespaces: 2.0.1
4707+
4708+ hast-util-parse-selector@4.0.0:
4709+ dependencies:
4710+ '@types/hast': 3.0.4
4711+
4712+ hast-util-sanitize@5.0.2:
4713+ dependencies:
4714+ '@types/hast': 3.0.4
4715+ '@ungap/structured-clone': 1.3.0
4716+ unist-util-position: 5.0.0
4717+
4718+ hast-util-to-html@9.0.5:
4719+ dependencies:
4720+ '@types/hast': 3.0.4
4721+ '@types/unist': 3.0.3
4722+ ccount: 2.0.1
4723+ comma-separated-tokens: 2.0.3
4724+ hast-util-whitespace: 3.0.0
4725+ html-void-elements: 3.0.0
4726+ mdast-util-to-hast: 13.2.0
4727+ property-information: 7.1.0
4728+ space-separated-tokens: 2.0.2
4729+ stringify-entities: 4.0.4
4730+ zwitch: 2.0.4
4731+
4732+ hast-util-whitespace@3.0.0:
4733+ dependencies:
4734+ '@types/hast': 3.0.4
4735+
4736+ hastscript@9.0.1:
4737+ dependencies:
4738+ '@types/hast': 3.0.4
4739+ comma-separated-tokens: 2.0.3
4740+ hast-util-parse-selector: 4.0.0
4741+ property-information: 7.1.0
4742+ space-separated-tokens: 2.0.2
4743+
42214744 help-me@5.0.0: {}
42224745
4746+ html-encoding-sniffer@4.0.0:
4747+ dependencies:
4748+ whatwg-encoding: 3.1.1
4749+
4750+ html-void-elements@3.0.0: {}
4751+
4752+ http-proxy-agent@7.0.2:
4753+ dependencies:
4754+ agent-base: 7.1.3
4755+ debug: 4.4.0
4756+ transitivePeerDependencies:
4757+ - supports-color
4758+
4759+ https-proxy-agent@7.0.6:
4760+ dependencies:
4761+ agent-base: 7.1.3
4762+ debug: 4.4.0
4763+ transitivePeerDependencies:
4764+ - supports-color
4765+
4766+ iconv-lite@0.6.3:
4767+ dependencies:
4768+ safer-buffer: 2.1.2
4769+
42234770 ignore@5.3.2: {}
42244771
42254772 import-fresh@3.3.1:
@@ -4249,6 +4796,10 @@ snapshots:
42494796
42504797 is-number@7.0.0: {}
42514798
4799+ is-plain-obj@4.1.0: {}
4800+
4801+ is-potential-custom-element-name@1.0.1: {}
4802+
42524803 is-reference@3.0.3:
42534804 dependencies:
42544805 '@types/estree': 1.0.6
@@ -4271,6 +4822,33 @@ snapshots:
42714822 dependencies:
42724823 argparse: 2.0.1
42734824
4825+ jsdom@26.1.0:
4826+ dependencies:
4827+ cssstyle: 4.6.0
4828+ data-urls: 5.0.0
4829+ decimal.js: 10.5.0
4830+ html-encoding-sniffer: 4.0.0
4831+ http-proxy-agent: 7.0.2
4832+ https-proxy-agent: 7.0.6
4833+ is-potential-custom-element-name: 1.0.1
4834+ nwsapi: 2.2.20
4835+ parse5: 7.3.0
4836+ rrweb-cssom: 0.8.0
4837+ saxes: 6.0.0
4838+ symbol-tree: 3.2.4
4839+ tough-cookie: 5.1.2
4840+ w3c-xmlserializer: 5.0.0
4841+ webidl-conversions: 7.0.0
4842+ whatwg-encoding: 3.1.1
4843+ whatwg-mimetype: 4.0.0
4844+ whatwg-url: 14.2.0
4845+ ws: 8.18.0
4846+ xml-name-validator: 5.0.0
4847+ transitivePeerDependencies:
4848+ - bufferutil
4849+ - supports-color
4850+ - utf-8-validate
4851+
42744852 json-buffer@3.0.1: {}
42754853
42764854 json-schema-traverse@0.4.1: {}
@@ -4333,8 +4911,174 @@ snapshots:
43334911 dependencies:
43344912 '@jridgewell/sourcemap-codec': 1.5.0
43354913
4914+ mdast-util-from-markdown@2.0.2:
4915+ dependencies:
4916+ '@types/mdast': 4.0.4
4917+ '@types/unist': 3.0.3
4918+ decode-named-character-reference: 1.2.0
4919+ devlop: 1.1.0
4920+ mdast-util-to-string: 4.0.0
4921+ micromark: 4.0.2
4922+ micromark-util-decode-numeric-character-reference: 2.0.2
4923+ micromark-util-decode-string: 2.0.1
4924+ micromark-util-normalize-identifier: 2.0.1
4925+ micromark-util-symbol: 2.0.1
4926+ micromark-util-types: 2.0.2
4927+ unist-util-stringify-position: 4.0.0
4928+ transitivePeerDependencies:
4929+ - supports-color
4930+
4931+ mdast-util-to-hast@13.2.0:
4932+ dependencies:
4933+ '@types/hast': 3.0.4
4934+ '@types/mdast': 4.0.4
4935+ '@ungap/structured-clone': 1.3.0
4936+ devlop: 1.1.0
4937+ micromark-util-sanitize-uri: 2.0.1
4938+ trim-lines: 3.0.1
4939+ unist-util-position: 5.0.0
4940+ unist-util-visit: 5.0.0
4941+ vfile: 6.0.3
4942+
4943+ mdast-util-to-string@4.0.0:
4944+ dependencies:
4945+ '@types/mdast': 4.0.4
4946+
43364947 merge2@1.4.1: {}
43374948
4949+ micromark-core-commonmark@2.0.3:
4950+ dependencies:
4951+ decode-named-character-reference: 1.2.0
4952+ devlop: 1.1.0
4953+ micromark-factory-destination: 2.0.1
4954+ micromark-factory-label: 2.0.1
4955+ micromark-factory-space: 2.0.1
4956+ micromark-factory-title: 2.0.1
4957+ micromark-factory-whitespace: 2.0.1
4958+ micromark-util-character: 2.1.1
4959+ micromark-util-chunked: 2.0.1
4960+ micromark-util-classify-character: 2.0.1
4961+ micromark-util-html-tag-name: 2.0.1
4962+ micromark-util-normalize-identifier: 2.0.1
4963+ micromark-util-resolve-all: 2.0.1
4964+ micromark-util-subtokenize: 2.1.0
4965+ micromark-util-symbol: 2.0.1
4966+ micromark-util-types: 2.0.2
4967+
4968+ micromark-factory-destination@2.0.1:
4969+ dependencies:
4970+ micromark-util-character: 2.1.1
4971+ micromark-util-symbol: 2.0.1
4972+ micromark-util-types: 2.0.2
4973+
4974+ micromark-factory-label@2.0.1:
4975+ dependencies:
4976+ devlop: 1.1.0
4977+ micromark-util-character: 2.1.1
4978+ micromark-util-symbol: 2.0.1
4979+ micromark-util-types: 2.0.2
4980+
4981+ micromark-factory-space@2.0.1:
4982+ dependencies:
4983+ micromark-util-character: 2.1.1
4984+ micromark-util-types: 2.0.2
4985+
4986+ micromark-factory-title@2.0.1:
4987+ dependencies:
4988+ micromark-factory-space: 2.0.1
4989+ micromark-util-character: 2.1.1
4990+ micromark-util-symbol: 2.0.1
4991+ micromark-util-types: 2.0.2
4992+
4993+ micromark-factory-whitespace@2.0.1:
4994+ dependencies:
4995+ micromark-factory-space: 2.0.1
4996+ micromark-util-character: 2.1.1
4997+ micromark-util-symbol: 2.0.1
4998+ micromark-util-types: 2.0.2
4999+
5000+ micromark-util-character@2.1.1:
5001+ dependencies:
5002+ micromark-util-symbol: 2.0.1
5003+ micromark-util-types: 2.0.2
5004+
5005+ micromark-util-chunked@2.0.1:
5006+ dependencies:
5007+ micromark-util-symbol: 2.0.1
5008+
5009+ micromark-util-classify-character@2.0.1:
5010+ dependencies:
5011+ micromark-util-character: 2.1.1
5012+ micromark-util-symbol: 2.0.1
5013+ micromark-util-types: 2.0.2
5014+
5015+ micromark-util-combine-extensions@2.0.1:
5016+ dependencies:
5017+ micromark-util-chunked: 2.0.1
5018+ micromark-util-types: 2.0.2
5019+
5020+ micromark-util-decode-numeric-character-reference@2.0.2:
5021+ dependencies:
5022+ micromark-util-symbol: 2.0.1
5023+
5024+ micromark-util-decode-string@2.0.1:
5025+ dependencies:
5026+ decode-named-character-reference: 1.2.0
5027+ micromark-util-character: 2.1.1
5028+ micromark-util-decode-numeric-character-reference: 2.0.2
5029+ micromark-util-symbol: 2.0.1
5030+
5031+ micromark-util-encode@2.0.1: {}
5032+
5033+ micromark-util-html-tag-name@2.0.1: {}
5034+
5035+ micromark-util-normalize-identifier@2.0.1:
5036+ dependencies:
5037+ micromark-util-symbol: 2.0.1
5038+
5039+ micromark-util-resolve-all@2.0.1:
5040+ dependencies:
5041+ micromark-util-types: 2.0.2
5042+
5043+ micromark-util-sanitize-uri@2.0.1:
5044+ dependencies:
5045+ micromark-util-character: 2.1.1
5046+ micromark-util-encode: 2.0.1
5047+ micromark-util-symbol: 2.0.1
5048+
5049+ micromark-util-subtokenize@2.1.0:
5050+ dependencies:
5051+ devlop: 1.1.0
5052+ micromark-util-chunked: 2.0.1
5053+ micromark-util-symbol: 2.0.1
5054+ micromark-util-types: 2.0.2
5055+
5056+ micromark-util-symbol@2.0.1: {}
5057+
5058+ micromark-util-types@2.0.2: {}
5059+
5060+ micromark@4.0.2:
5061+ dependencies:
5062+ '@types/debug': 4.1.12
5063+ debug: 4.4.0
5064+ decode-named-character-reference: 1.2.0
5065+ devlop: 1.1.0
5066+ micromark-core-commonmark: 2.0.3
5067+ micromark-factory-space: 2.0.1
5068+ micromark-util-character: 2.1.1
5069+ micromark-util-chunked: 2.0.1
5070+ micromark-util-combine-extensions: 2.0.1
5071+ micromark-util-decode-numeric-character-reference: 2.0.2
5072+ micromark-util-encode: 2.0.1
5073+ micromark-util-normalize-identifier: 2.0.1
5074+ micromark-util-resolve-all: 2.0.1
5075+ micromark-util-sanitize-uri: 2.0.1
5076+ micromark-util-subtokenize: 2.1.0
5077+ micromark-util-symbol: 2.0.1
5078+ micromark-util-types: 2.0.2
5079+ transitivePeerDependencies:
5080+ - supports-color
5081+
43385082 micromatch@4.0.8:
43395083 dependencies:
43405084 braces: 3.0.3
@@ -4412,6 +5156,8 @@ snapshots:
44125156
44135157 normalize-range@0.1.2: {}
44145158
5159+ nwsapi@2.2.20: {}
5160+
44155161 object-assign@4.1.1: {}
44165162
44175163 object-hash@3.0.0: {}
@@ -4447,6 +5193,10 @@ snapshots:
44475193 dependencies:
44485194 callsites: 3.1.0
44495195
5196+ parse5@7.3.0:
5197+ dependencies:
5198+ entities: 6.0.1
5199+
44505200 path-exists@4.0.0: {}
44515201
44525202 path-key@3.1.1: {}
@@ -4594,6 +5344,8 @@ snapshots:
45945344
45955345 promise-limit@2.7.0: {}
45965346
5347+ property-information@7.1.0: {}
5348+
45975349 pump@3.0.2:
45985350 dependencies:
45995351 end-of-stream: 1.4.4
@@ -4619,6 +5371,47 @@ snapshots:
46195371
46205372 regexparam@3.0.0: {}
46215373
5374+ rehype-parse@9.0.1:
5375+ dependencies:
5376+ '@types/hast': 3.0.4
5377+ hast-util-from-html: 2.0.3
5378+ unified: 11.0.5
5379+
5380+ rehype-sanitize@6.0.0:
5381+ dependencies:
5382+ '@types/hast': 3.0.4
5383+ hast-util-sanitize: 5.0.2
5384+
5385+ rehype-stringify@10.0.1:
5386+ dependencies:
5387+ '@types/hast': 3.0.4
5388+ hast-util-to-html: 9.0.5
5389+ unified: 11.0.5
5390+
5391+ rehype@13.0.2:
5392+ dependencies:
5393+ '@types/hast': 3.0.4
5394+ rehype-parse: 9.0.1
5395+ rehype-stringify: 10.0.1
5396+ unified: 11.0.5
5397+
5398+ remark-parse@11.0.0:
5399+ dependencies:
5400+ '@types/mdast': 4.0.4
5401+ mdast-util-from-markdown: 2.0.2
5402+ micromark-util-types: 2.0.2
5403+ unified: 11.0.5
5404+ transitivePeerDependencies:
5405+ - supports-color
5406+
5407+ remark-rehype@11.1.2:
5408+ dependencies:
5409+ '@types/hast': 3.0.4
5410+ '@types/mdast': 4.0.4
5411+ mdast-util-to-hast: 13.2.0
5412+ unified: 11.0.5
5413+ vfile: 6.0.3
5414+
46225415 resolve-from@4.0.0: {}
46235416
46245417 resolve-pkg-maps@1.0.0: {}
@@ -4670,6 +5463,8 @@ snapshots:
46705463 '@rollup/rollup-win32-x64-msvc': 4.34.8
46715464 fsevents: 2.3.3
46725465
5466+ rrweb-cssom@0.8.0: {}
5467+
46735468 run-parallel@1.2.0:
46745469 dependencies:
46755470 queue-microtask: 1.2.3
@@ -4680,6 +5475,12 @@ snapshots:
46805475
46815476 safe-stable-stringify@2.5.0: {}
46825477
5478+ safer-buffer@2.1.2: {}
5479+
5480+ saxes@6.0.0:
5481+ dependencies:
5482+ xmlchars: 2.2.0
5483+
46835484 secure-json-parse@2.7.0: {}
46845485
46855486 semver@7.7.1: {}
@@ -4717,6 +5518,8 @@ snapshots:
47175518
47185519 sourcemap-codec@1.4.8: {}
47195520
5521+ space-separated-tokens@2.0.2: {}
5522+
47205523 split2@4.2.0: {}
47215524
47225525 stackback@0.0.2: {}
@@ -4742,6 +5545,11 @@ snapshots:
47425545 emoji-regex: 9.2.2
47435546 strip-ansi: 7.1.0
47445547
5548+ stringify-entities@4.0.4:
5549+ dependencies:
5550+ character-entities-html4: 2.1.0
5551+ character-entities-legacy: 3.0.0
5552+
47455553 strip-ansi@6.0.1:
47465554 dependencies:
47475555 ansi-regex: 5.0.1
@@ -4807,6 +5615,8 @@ snapshots:
48075615 magic-string: 0.30.17
48085616 zimmerframe: 1.1.2
48095617
5618+ symbol-tree@3.2.4: {}
5619+
48105620 tailwindcss@3.4.17:
48115621 dependencies:
48125622 '@alloc/quick-lru': 5.2.0
@@ -4863,12 +5673,30 @@ snapshots:
48635673
48645674 tinyspy@3.0.2: {}
48655675
5676+ tldts-core@6.1.86: {}
5677+
5678+ tldts@6.1.86:
5679+ dependencies:
5680+ tldts-core: 6.1.86
5681+
48665682 to-regex-range@5.0.1:
48675683 dependencies:
48685684 is-number: 7.0.0
48695685
48705686 totalist@3.0.1: {}
48715687
5688+ tough-cookie@5.1.2:
5689+ dependencies:
5690+ tldts: 6.1.86
5691+
5692+ tr46@5.1.1:
5693+ dependencies:
5694+ punycode: 2.3.1
5695+
5696+ trim-lines@3.0.1: {}
5697+
5698+ trough@2.2.0: {}
5699+
48725700 ts-api-utils@2.0.1(typescript@5.7.3):
48735701 dependencies:
48745702 typescript: 5.7.3
@@ -4914,6 +5742,39 @@ snapshots:
49145742 pathe: 1.1.2
49155743 ufo: 1.5.4
49165744
5745+ unified@11.0.5:
5746+ dependencies:
5747+ '@types/unist': 3.0.3
5748+ bail: 2.0.2
5749+ devlop: 1.1.0
5750+ extend: 3.0.2
5751+ is-plain-obj: 4.1.0
5752+ trough: 2.2.0
5753+ vfile: 6.0.3
5754+
5755+ unist-util-is@6.0.0:
5756+ dependencies:
5757+ '@types/unist': 3.0.3
5758+
5759+ unist-util-position@5.0.0:
5760+ dependencies:
5761+ '@types/unist': 3.0.3
5762+
5763+ unist-util-stringify-position@4.0.0:
5764+ dependencies:
5765+ '@types/unist': 3.0.3
5766+
5767+ unist-util-visit-parents@6.0.1:
5768+ dependencies:
5769+ '@types/unist': 3.0.3
5770+ unist-util-is: 6.0.0
5771+
5772+ unist-util-visit@5.0.0:
5773+ dependencies:
5774+ '@types/unist': 3.0.3
5775+ unist-util-is: 6.0.0
5776+ unist-util-visit-parents: 6.0.1
5777+
49175778 update-browserslist-db@1.1.2(browserslist@4.24.4):
49185779 dependencies:
49195780 browserslist: 4.24.4
@@ -4928,6 +5789,21 @@ snapshots:
49285789
49295790 uuid@11.0.5: {}
49305791
5792+ vfile-location@5.0.3:
5793+ dependencies:
5794+ '@types/unist': 3.0.3
5795+ vfile: 6.0.3
5796+
5797+ vfile-message@4.0.2:
5798+ dependencies:
5799+ '@types/unist': 3.0.3
5800+ unist-util-stringify-position: 4.0.0
5801+
5802+ vfile@6.0.3:
5803+ dependencies:
5804+ '@types/unist': 3.0.3
5805+ vfile-message: 4.0.2
5806+
49315807 vite-node@3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):
49325808 dependencies:
49335809 cac: 6.7.14
@@ -4966,7 +5842,7 @@ snapshots:
49665842 optionalDependencies:
49675843 vite: 6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
49685844
4969- vitest@3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):
5845+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(jiti@1.21.7)(jsdom@26.1.0)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):
49705846 dependencies:
49715847 '@vitest/expect': 3.0.5
49725848 '@vitest/mocker': 3.0.5(vite@6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))
@@ -4989,7 +5865,9 @@ snapshots:
49895865 vite-node: 3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
49905866 why-is-node-running: 2.3.0
49915867 optionalDependencies:
5868+ '@types/debug': 4.1.12
49925869 '@types/node': 22.13.4
5870+ jsdom: 26.1.0
49935871 transitivePeerDependencies:
49945872 - jiti
49955873 - less
@@ -5004,8 +5882,27 @@ snapshots:
50045882 - tsx
50055883 - yaml
50065884
5885+ w3c-xmlserializer@5.0.0:
5886+ dependencies:
5887+ xml-name-validator: 5.0.0
5888+
5889+ web-namespaces@2.0.1: {}
5890+
50075891 web-streams-polyfill@3.3.3: {}
50085892
5893+ webidl-conversions@7.0.0: {}
5894+
5895+ whatwg-encoding@3.1.1:
5896+ dependencies:
5897+ iconv-lite: 0.6.3
5898+
5899+ whatwg-mimetype@4.0.0: {}
5900+
5901+ whatwg-url@14.2.0:
5902+ dependencies:
5903+ tr46: 5.1.1
5904+ webidl-conversions: 7.0.0
5905+
50095906 which@2.0.2:
50105907 dependencies:
50115908 isexe: 2.0.0
@@ -5064,6 +5961,10 @@ snapshots:
50645961
50655962 ws@8.18.0: {}
50665963
5964+ xml-name-validator@5.0.0: {}
5965+
5966+ xmlchars@2.2.0: {}
5967+
50675968 xp.css@0.2.6: {}
50685969
50695970 yaml@1.10.2: {}
@@ -5081,3 +5982,7 @@ snapshots:
50815982 zimmerframe@1.1.2: {}
50825983
50835984 zod@3.24.2: {}
5985+
5986+ zod@3.25.67: {}
5987+
5988+ zwitch@2.0.4: {}
@@ -23,12 +23,33 @@ importers:
23 pino-pretty:23 pino-pretty:
24 specifier: ^13.0.024 specifier: ^13.0.0
25 version: 13.0.025 version: 13.0.0
26+ rehype:
27+ specifier: ^13.0.2
28+ version: 13.0.2
29+ rehype-sanitize:
30+ specifier: ^6.0.0
31+ version: 6.0.0
32+ rehype-stringify:
33+ specifier: ^10.0.1
34+ version: 10.0.1
35+ remark-parse:
36+ specifier: ^11.0.0
37+ version: 11.0.0
38+ remark-rehype:
39+ specifier: ^11.1.2
40+ version: 11.1.2
41+ unified:
42+ specifier: ^11.0.5
43+ version: 11.0.5
26 uuid:44 uuid:
27 specifier: ^11.0.545 specifier: ^11.0.5
28 version: 11.0.546 version: 11.0.5
29 xp.css:47 xp.css:
30 specifier: ^0.2.648 specifier: ^0.2.6
31 version: 0.2.649 version: 0.2.6
50+ zod:
51+ specifier: ^3.25.67
52+ version: 3.25.67
32 devDependencies:53 devDependencies:
33 '@eslint/compat':54 '@eslint/compat':
34 specifier: ^1.2.655 specifier: ^1.2.6
@@ -75,6 +96,9 @@ importers:
75 globals:96 globals:
76 specifier: ^15.15.097 specifier: ^15.15.0
77 version: 15.15.098 version: 15.15.0
99+ jsdom:
100+ specifier: ^26.1.0
101+ version: 26.1.0
78 prettier:102 prettier:
79 specifier: ^3.5.1103 specifier: ^3.5.1
80 version: 3.5.1104 version: 3.5.1
@@ -110,7 +134,7 @@ importers:
110 version: 6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)134 version: 6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
111 vitest:135 vitest:
112 specifier: ^3.0.5136 specifier: ^3.0.5
113- version: 3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)137+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(jiti@1.21.7)(jsdom@26.1.0)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
114 138
115 packages:139 packages:
116 140
@@ -122,6 +146,9 @@ packages:
122 resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}146 resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
123 engines: {node: '>=6.0.0'}147 engines: {node: '>=6.0.0'}
124 148
149+ '@asamuzakjp/css-color@3.2.0':
150+ resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
151+
125 '@cloudflare/kv-asset-handler@0.3.4':152 '@cloudflare/kv-asset-handler@0.3.4':
126 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==}153 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==}
127 engines: {node: '>=16.13'}154 engines: {node: '>=16.13'}
@@ -163,6 +190,34 @@ packages:
163 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}190 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
164 engines: {node: '>=12'}191 engines: {node: '>=12'}
165 192
193+ '@csstools/color-helpers@5.0.2':
194+ resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
195+ engines: {node: '>=18'}
196+
197+ '@csstools/css-calc@2.1.4':
198+ resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==}
199+ engines: {node: '>=18'}
200+ peerDependencies:
201+ '@csstools/css-parser-algorithms': ^3.0.5
202+ '@csstools/css-tokenizer': ^3.0.4
203+
204+ '@csstools/css-color-parser@3.0.10':
205+ resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==}
206+ engines: {node: '>=18'}
207+ peerDependencies:
208+ '@csstools/css-parser-algorithms': ^3.0.5
209+ '@csstools/css-tokenizer': ^3.0.4
210+
211+ '@csstools/css-parser-algorithms@3.0.5':
212+ resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==}
213+ engines: {node: '>=18'}
214+ peerDependencies:
215+ '@csstools/css-tokenizer': ^3.0.4
216+
217+ '@csstools/css-tokenizer@3.0.4':
218+ resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==}
219+ engines: {node: '>=18'}
220+
166 '@drizzle-team/brocli@0.10.2':221 '@drizzle-team/brocli@0.10.2':
167 resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}222 resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
168 223
@@ -1195,15 +1250,30 @@ packages:
1195 '@types/cookie@0.6.0':1250 '@types/cookie@0.6.0':
1196 resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}1251 resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
1197 1252
1253+ '@types/debug@4.1.12':
1254+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
1255+
1198 '@types/estree@1.0.6':1256 '@types/estree@1.0.6':
1199 resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}1257 resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
1200 1258
1259+ '@types/hast@3.0.4':
1260+ resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
1261+
1201 '@types/json-schema@7.0.15':1262 '@types/json-schema@7.0.15':
1202 resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}1263 resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
1203 1264
1265+ '@types/mdast@4.0.4':
1266+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
1267+
1268+ '@types/ms@2.1.0':
1269+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
1270+
1204 '@types/node@22.13.4':1271 '@types/node@22.13.4':
1205 resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}1272 resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}
1206 1273
1274+ '@types/unist@3.0.3':
1275+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
1276+
1207 '@types/ws@8.5.14':1277 '@types/ws@8.5.14':
1208 resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==}1278 resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==}
1209 1279
@@ -1254,6 +1324,9 @@ packages:
1254 resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==}1324 resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==}
1255 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}1325 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1256 1326
1327+ '@ungap/structured-clone@1.3.0':
1328+ resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
1329+
1257 '@vitest/expect@3.0.5':1330 '@vitest/expect@3.0.5':
1258 resolution: {integrity: sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==}1331 resolution: {integrity: sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==}
1259 1332
@@ -1302,6 +1375,10 @@ packages:
1302 engines: {node: '>=0.4.0'}1375 engines: {node: '>=0.4.0'}
1303 hasBin: true1376 hasBin: true
1304 1377
1378+ agent-base@7.1.3:
1379+ resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
1380+ engines: {node: '>= 14'}
1381+
1305 ajv@6.12.6:1382 ajv@6.12.6:
1306 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}1383 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
1307 1384
@@ -1360,6 +1437,9 @@ packages:
1360 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}1437 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
1361 engines: {node: '>= 0.4'}1438 engines: {node: '>= 0.4'}
1362 1439
1440+ bail@2.0.2:
1441+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
1442+
1363 balanced-match@1.0.2:1443 balanced-match@1.0.2:
1364 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}1444 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1365 1445
@@ -1403,6 +1483,9 @@ packages:
1403 caniuse-lite@1.0.30001700:1483 caniuse-lite@1.0.30001700:
1404 resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}1484 resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
1405 1485
1486+ ccount@2.0.1:
1487+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
1488+
1406 chai@5.2.0:1489 chai@5.2.0:
1407 resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}1490 resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
1408 engines: {node: '>=12'}1491 engines: {node: '>=12'}
@@ -1411,6 +1494,15 @@ packages:
1411 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}1494 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
1412 engines: {node: '>=10'}1495 engines: {node: '>=10'}
1413 1496
1497+ character-entities-html4@2.1.0:
1498+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
1499+
1500+ character-entities-legacy@3.0.0:
1501+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
1502+
1503+ character-entities@2.0.2:
1504+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
1505+
1414 check-error@2.1.1:1506 check-error@2.1.1:
1415 resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}1507 resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
1416 engines: {node: '>= 16'}1508 engines: {node: '>= 16'}
@@ -1437,6 +1529,9 @@ packages:
1437 colorette@2.0.20:1529 colorette@2.0.20:
1438 resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}1530 resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
1439 1531
1532+ comma-separated-tokens@2.0.3:
1533+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
1534+
1440 commander@2.20.3:1535 commander@2.20.3:
1441 resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}1536 resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
1442 1537
@@ -1467,6 +1562,10 @@ packages:
1467 engines: {node: '>=4'}1562 engines: {node: '>=4'}
1468 hasBin: true1563 hasBin: true
1469 1564
1565+ cssstyle@4.6.0:
1566+ resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
1567+ engines: {node: '>=18'}
1568+
1470 data-uri-to-buffer@2.0.2:1569 data-uri-to-buffer@2.0.2:
1471 resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}1570 resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
1472 1571
@@ -1474,6 +1573,10 @@ packages:
1474 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}1573 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
1475 engines: {node: '>= 12'}1574 engines: {node: '>= 12'}
1476 1575
1576+ data-urls@5.0.0:
1577+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
1578+ engines: {node: '>=18'}
1579+
1477 dateformat@4.6.3:1580 dateformat@4.6.3:
1478 resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}1581 resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
1479 1582
@@ -1486,6 +1589,12 @@ packages:
1486 supports-color:1589 supports-color:
1487 optional: true1590 optional: true
1488 1591
1592+ decimal.js@10.5.0:
1593+ resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==}
1594+
1595+ decode-named-character-reference@1.2.0:
1596+ resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
1597+
1489 deep-eql@5.0.2:1598 deep-eql@5.0.2:
1490 resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}1599 resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
1491 engines: {node: '>=6'}1600 engines: {node: '>=6'}
@@ -1500,6 +1609,10 @@ packages:
1500 defu@6.1.4:1609 defu@6.1.4:
1501 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}1610 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
1502 1611
1612+ dequal@2.0.3:
1613+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
1614+ engines: {node: '>=6'}
1615+
1503 detect-libc@2.0.2:1616 detect-libc@2.0.2:
1504 resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}1617 resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
1505 engines: {node: '>=8'}1618 engines: {node: '>=8'}
@@ -1507,6 +1620,9 @@ packages:
1507 devalue@5.1.1:1620 devalue@5.1.1:
1508 resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==}1621 resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==}
1509 1622
1623+ devlop@1.1.0:
1624+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
1625+
1510 didyoumean@1.2.2:1626 didyoumean@1.2.2:
1511 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}1627 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
1512 1628
@@ -1622,6 +1738,10 @@ packages:
1622 end-of-stream@1.4.4:1738 end-of-stream@1.4.4:
1623 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}1739 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
1624 1740
1741+ entities@6.0.1:
1742+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
1743+ engines: {node: '>=0.12'}
1744+
1625 es-module-lexer@1.6.0:1745 es-module-lexer@1.6.0:
1626 resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}1746 resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
1627 1747
@@ -1755,6 +1875,9 @@ packages:
1755 resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}1875 resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
1756 engines: {node: '>=12.0.0'}1876 engines: {node: '>=12.0.0'}
1757 1877
1878+ extend@3.0.2:
1879+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
1880+
1758 fast-copy@3.0.2:1881 fast-copy@3.0.2:
1759 resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}1882 resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}
1760 1883
@@ -1871,9 +1994,49 @@ packages:
1871 resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}1994 resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
1872 engines: {node: '>= 0.4'}1995 engines: {node: '>= 0.4'}
1873 1996
1997+ hast-util-from-html@2.0.3:
1998+ resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
1999+
2000+ hast-util-from-parse5@8.0.3:
2001+ resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
2002+
2003+ hast-util-parse-selector@4.0.0:
2004+ resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
2005+
2006+ hast-util-sanitize@5.0.2:
2007+ resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==}
2008+
2009+ hast-util-to-html@9.0.5:
2010+ resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
2011+
2012+ hast-util-whitespace@3.0.0:
2013+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
2014+
2015+ hastscript@9.0.1:
2016+ resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
2017+
1874 help-me@5.0.0:2018 help-me@5.0.0:
1875 resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==}2019 resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==}
1876 2020
2021+ html-encoding-sniffer@4.0.0:
2022+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
2023+ engines: {node: '>=18'}
2024+
2025+ html-void-elements@3.0.0:
2026+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
2027+
2028+ http-proxy-agent@7.0.2:
2029+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
2030+ engines: {node: '>= 14'}
2031+
2032+ https-proxy-agent@7.0.6:
2033+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
2034+ engines: {node: '>= 14'}
2035+
2036+ iconv-lite@0.6.3:
2037+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
2038+ engines: {node: '>=0.10.0'}
2039+
1877 ignore@5.3.2:2040 ignore@5.3.2:
1878 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}2041 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
1879 engines: {node: '>= 4'}2042 engines: {node: '>= 4'}
@@ -1913,6 +2076,13 @@ packages:
1913 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}2076 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1914 engines: {node: '>=0.12.0'}2077 engines: {node: '>=0.12.0'}
1915 2078
2079+ is-plain-obj@4.1.0:
2080+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
2081+ engines: {node: '>=12'}
2082+
2083+ is-potential-custom-element-name@1.0.1:
2084+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
2085+
1916 is-reference@3.0.3:2086 is-reference@3.0.3:
1917 resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}2087 resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
1918 2088
@@ -1937,6 +2107,15 @@ packages:
1937 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}2107 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1938 hasBin: true2108 hasBin: true
1939 2109
2110+ jsdom@26.1.0:
2111+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
2112+ engines: {node: '>=18'}
2113+ peerDependencies:
2114+ canvas: ^3.0.0
2115+ peerDependenciesMeta:
2116+ canvas:
2117+ optional: true
2118+
1940 json-buffer@3.0.1:2119 json-buffer@3.0.1:
1941 resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}2120 resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1942 2121
@@ -2004,10 +2183,82 @@ packages:
2004 magic-string@0.30.17:2183 magic-string@0.30.17:
2005 resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}2184 resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
2006 2185
2186+ mdast-util-from-markdown@2.0.2:
2187+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
2188+
2189+ mdast-util-to-hast@13.2.0:
2190+ resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
2191+
2192+ mdast-util-to-string@4.0.0:
2193+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
2194+
2007 merge2@1.4.1:2195 merge2@1.4.1:
2008 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}2196 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2009 engines: {node: '>= 8'}2197 engines: {node: '>= 8'}
2010 2198
2199+ micromark-core-commonmark@2.0.3:
2200+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
2201+
2202+ micromark-factory-destination@2.0.1:
2203+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
2204+
2205+ micromark-factory-label@2.0.1:
2206+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
2207+
2208+ micromark-factory-space@2.0.1:
2209+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
2210+
2211+ micromark-factory-title@2.0.1:
2212+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
2213+
2214+ micromark-factory-whitespace@2.0.1:
2215+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
2216+
2217+ micromark-util-character@2.1.1:
2218+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
2219+
2220+ micromark-util-chunked@2.0.1:
2221+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
2222+
2223+ micromark-util-classify-character@2.0.1:
2224+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
2225+
2226+ micromark-util-combine-extensions@2.0.1:
2227+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
2228+
2229+ micromark-util-decode-numeric-character-reference@2.0.2:
2230+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
2231+
2232+ micromark-util-decode-string@2.0.1:
2233+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
2234+
2235+ micromark-util-encode@2.0.1:
2236+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
2237+
2238+ micromark-util-html-tag-name@2.0.1:
2239+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
2240+
2241+ micromark-util-normalize-identifier@2.0.1:
2242+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
2243+
2244+ micromark-util-resolve-all@2.0.1:
2245+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
2246+
2247+ micromark-util-sanitize-uri@2.0.1:
2248+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
2249+
2250+ micromark-util-subtokenize@2.1.0:
2251+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
2252+
2253+ micromark-util-symbol@2.0.1:
2254+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
2255+
2256+ micromark-util-types@2.0.2:
2257+ resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
2258+
2259+ micromark@4.0.2:
2260+ resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
2261+
2011 micromatch@4.0.8:2262 micromatch@4.0.8:
2012 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}2263 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
2013 engines: {node: '>=8.6'}2264 engines: {node: '>=8.6'}
@@ -2088,6 +2339,9 @@ packages:
2088 resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}2339 resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
2089 engines: {node: '>=0.10.0'}2340 engines: {node: '>=0.10.0'}
2090 2341
2342+ nwsapi@2.2.20:
2343+ resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==}
2344+
2091 object-assign@4.1.1:2345 object-assign@4.1.1:
2092 resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}2346 resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2093 engines: {node: '>=0.10.0'}2347 engines: {node: '>=0.10.0'}
@@ -2125,6 +2379,9 @@ packages:
2125 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}2379 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2126 engines: {node: '>=6'}2380 engines: {node: '>=6'}
2127 2381
2382+ parse5@7.3.0:
2383+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
2384+
2128 path-exists@4.0.0:2385 path-exists@4.0.0:
2129 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}2386 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2130 engines: {node: '>=8'}2387 engines: {node: '>=8'}
@@ -2333,6 +2590,9 @@ packages:
2333 promise-limit@2.7.0:2590 promise-limit@2.7.0:
2334 resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}2591 resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}
2335 2592
2593+ property-information@7.1.0:
2594+ resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
2595+
2336 pump@3.0.2:2596 pump@3.0.2:
2337 resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}2597 resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
2338 2598
@@ -2365,6 +2625,24 @@ packages:
2365 resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==}2625 resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==}
2366 engines: {node: '>=8'}2626 engines: {node: '>=8'}
2367 2627
2628+ rehype-parse@9.0.1:
2629+ resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
2630+
2631+ rehype-sanitize@6.0.0:
2632+ resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==}
2633+
2634+ rehype-stringify@10.0.1:
2635+ resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
2636+
2637+ rehype@13.0.2:
2638+ resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==}
2639+
2640+ remark-parse@11.0.0:
2641+ resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
2642+
2643+ remark-rehype@11.1.2:
2644+ resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
2645+
2368 resolve-from@4.0.0:2646 resolve-from@4.0.0:
2369 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}2647 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2370 engines: {node: '>=4'}2648 engines: {node: '>=4'}
@@ -2396,6 +2674,9 @@ packages:
2396 engines: {node: '>=18.0.0', npm: '>=8.0.0'}2674 engines: {node: '>=18.0.0', npm: '>=8.0.0'}
2397 hasBin: true2675 hasBin: true
2398 2676
2677+ rrweb-cssom@0.8.0:
2678+ resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
2679+
2399 run-parallel@1.2.0:2680 run-parallel@1.2.0:
2400 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}2681 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2401 2682
@@ -2407,6 +2688,13 @@ packages:
2407 resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}2688 resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
2408 engines: {node: '>=10'}2689 engines: {node: '>=10'}
2409 2690
2691+ safer-buffer@2.1.2:
2692+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
2693+
2694+ saxes@6.0.0:
2695+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
2696+ engines: {node: '>=v12.22.7'}
2697+
2410 secure-json-parse@2.7.0:2698 secure-json-parse@2.7.0:
2411 resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}2699 resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
2412 2700
@@ -2455,6 +2743,9 @@ packages:
2455 resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}2743 resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
2456 deprecated: Please use @jridgewell/sourcemap-codec instead2744 deprecated: Please use @jridgewell/sourcemap-codec instead
2457 2745
2746+ space-separated-tokens@2.0.2:
2747+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
2748+
2458 split2@4.2.0:2749 split2@4.2.0:
2459 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}2750 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
2460 engines: {node: '>= 10.x'}2751 engines: {node: '>= 10.x'}
@@ -2480,6 +2771,9 @@ packages:
2480 resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}2771 resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
2481 engines: {node: '>=12'}2772 engines: {node: '>=12'}
2482 2773
2774+ stringify-entities@4.0.4:
2775+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
2776+
2483 strip-ansi@6.0.1:2777 strip-ansi@6.0.1:
2484 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}2778 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2485 engines: {node: '>=8'}2779 engines: {node: '>=8'}
@@ -2526,6 +2820,9 @@ packages:
2526 resolution: {integrity: sha512-aCARru2WTdzJl55Ws8SK27+kvQwd8tijl4kY7NoDUXUHtTHhxMa8Lf6QNZKmU7cuPu3jjFloDO1j5HgYJNIIWg==}2820 resolution: {integrity: sha512-aCARru2WTdzJl55Ws8SK27+kvQwd8tijl4kY7NoDUXUHtTHhxMa8Lf6QNZKmU7cuPu3jjFloDO1j5HgYJNIIWg==}
2527 engines: {node: '>=18'}2821 engines: {node: '>=18'}
2528 2822
2823+ symbol-tree@3.2.4:
2824+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
2825+
2529 tailwindcss@3.4.17:2826 tailwindcss@3.4.17:
2530 resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}2827 resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
2531 engines: {node: '>=14.0.0'}2828 engines: {node: '>=14.0.0'}
@@ -2564,6 +2861,13 @@ packages:
2564 resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}2861 resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
2565 engines: {node: '>=14.0.0'}2862 engines: {node: '>=14.0.0'}
2566 2863
2864+ tldts-core@6.1.86:
2865+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
2866+
2867+ tldts@6.1.86:
2868+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
2869+ hasBin: true
2870+
2567 to-regex-range@5.0.1:2871 to-regex-range@5.0.1:
2568 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}2872 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2569 engines: {node: '>=8.0'}2873 engines: {node: '>=8.0'}
@@ -2572,6 +2876,20 @@ packages:
2572 resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}2876 resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
2573 engines: {node: '>=6'}2877 engines: {node: '>=6'}
2574 2878
2879+ tough-cookie@5.1.2:
2880+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
2881+ engines: {node: '>=16'}
2882+
2883+ tr46@5.1.1:
2884+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
2885+ engines: {node: '>=18'}
2886+
2887+ trim-lines@3.0.1:
2888+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
2889+
2890+ trough@2.2.0:
2891+ resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
2892+
2575 ts-api-utils@2.0.1:2893 ts-api-utils@2.0.1:
2576 resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}2894 resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
2577 engines: {node: '>=18.12'}2895 engines: {node: '>=18.12'}
@@ -2615,6 +2933,24 @@ packages:
2615 unenv@2.0.0-rc.1:2933 unenv@2.0.0-rc.1:
2616 resolution: {integrity: sha512-PU5fb40H8X149s117aB4ytbORcCvlASdtF97tfls4BPIyj4PeVxvpSuy1jAptqYHqB0vb2w2sHvzM0XWcp2OKg==}2934 resolution: {integrity: sha512-PU5fb40H8X149s117aB4ytbORcCvlASdtF97tfls4BPIyj4PeVxvpSuy1jAptqYHqB0vb2w2sHvzM0XWcp2OKg==}
2617 2935
2936+ unified@11.0.5:
2937+ resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
2938+
2939+ unist-util-is@6.0.0:
2940+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
2941+
2942+ unist-util-position@5.0.0:
2943+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
2944+
2945+ unist-util-stringify-position@4.0.0:
2946+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
2947+
2948+ unist-util-visit-parents@6.0.1:
2949+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
2950+
2951+ unist-util-visit@5.0.0:
2952+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
2953+
2618 update-browserslist-db@1.1.2:2954 update-browserslist-db@1.1.2:
2619 resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}2955 resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
2620 hasBin: true2956 hasBin: true
@@ -2631,6 +2967,15 @@ packages:
2631 resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==}2967 resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==}
2632 hasBin: true2968 hasBin: true
2633 2969
2970+ vfile-location@5.0.3:
2971+ resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
2972+
2973+ vfile-message@4.0.2:
2974+ resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
2975+
2976+ vfile@6.0.3:
2977+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
2978+
2634 vite-node@3.0.5:2979 vite-node@3.0.5:
2635 resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==}2980 resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==}
2636 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}2981 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
@@ -2712,10 +3057,33 @@ packages:
2712 jsdom:3057 jsdom:
2713 optional: true3058 optional: true
2714 3059
3060+ w3c-xmlserializer@5.0.0:
3061+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
3062+ engines: {node: '>=18'}
3063+
3064+ web-namespaces@2.0.1:
3065+ resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
3066+
2715 web-streams-polyfill@3.3.3:3067 web-streams-polyfill@3.3.3:
2716 resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}3068 resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
2717 engines: {node: '>= 8'}3069 engines: {node: '>= 8'}
2718 3070
3071+ webidl-conversions@7.0.0:
3072+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
3073+ engines: {node: '>=12'}
3074+
3075+ whatwg-encoding@3.1.1:
3076+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
3077+ engines: {node: '>=18'}
3078+
3079+ whatwg-mimetype@4.0.0:
3080+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
3081+ engines: {node: '>=18'}
3082+
3083+ whatwg-url@14.2.0:
3084+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
3085+ engines: {node: '>=18'}
3086+
2719 which@2.0.2:3087 which@2.0.2:
2720 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}3088 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2721 engines: {node: '>= 8'}3089 engines: {node: '>= 8'}
@@ -2772,6 +3140,13 @@ packages:
2772 utf-8-validate:3140 utf-8-validate:
2773 optional: true3141 optional: true
2774 3142
3143+ xml-name-validator@5.0.0:
3144+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
3145+ engines: {node: '>=18'}
3146+
3147+ xmlchars@2.2.0:
3148+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
3149+
2775 xp.css@0.2.6:3150 xp.css@0.2.6:
2776 resolution: {integrity: sha512-v0qUB4wOvyXIMLNid5bIpm+0n5aL4i8wE5dqJH8LNVxE04PxUUxjwf2rNzengegUIK03XC4vbfLVCPAfMLtuqA==}3151 resolution: {integrity: sha512-v0qUB4wOvyXIMLNid5bIpm+0n5aL4i8wE5dqJH8LNVxE04PxUUxjwf2rNzengegUIK03XC4vbfLVCPAfMLtuqA==}
2777 3152
@@ -2797,6 +3172,12 @@ packages:
2797 zod@3.24.2:3172 zod@3.24.2:
2798 resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}3173 resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
2799 3174
3175+ zod@3.25.67:
3176+ resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==}
3177+
3178+ zwitch@2.0.4:
3179+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
3180+
2800 snapshots:3181 snapshots:
2801 3182
2802 '@alloc/quick-lru@5.2.0': {}3183 '@alloc/quick-lru@5.2.0': {}
@@ -2806,6 +3187,14 @@ snapshots:
2806 '@jridgewell/gen-mapping': 0.3.83187 '@jridgewell/gen-mapping': 0.3.8
2807 '@jridgewell/trace-mapping': 0.3.253188 '@jridgewell/trace-mapping': 0.3.25
2808 3189
3190+ '@asamuzakjp/css-color@3.2.0':
3191+ dependencies:
3192+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
3193+ '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
3194+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
3195+ '@csstools/css-tokenizer': 3.0.4
3196+ lru-cache: 10.4.3
3197+
2809 '@cloudflare/kv-asset-handler@0.3.4':3198 '@cloudflare/kv-asset-handler@0.3.4':
2810 dependencies:3199 dependencies:
2811 mime: 3.0.03200 mime: 3.0.0
@@ -2831,6 +3220,26 @@ snapshots:
2831 dependencies:3220 dependencies:
2832 '@jridgewell/trace-mapping': 0.3.93221 '@jridgewell/trace-mapping': 0.3.9
2833 3222
3223+ '@csstools/color-helpers@5.0.2': {}
3224+
3225+ '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
3226+ dependencies:
3227+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
3228+ '@csstools/css-tokenizer': 3.0.4
3229+
3230+ '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
3231+ dependencies:
3232+ '@csstools/color-helpers': 5.0.2
3233+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
3234+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
3235+ '@csstools/css-tokenizer': 3.0.4
3236+
3237+ '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)':
3238+ dependencies:
3239+ '@csstools/css-tokenizer': 3.0.4
3240+
3241+ '@csstools/css-tokenizer@3.0.4': {}
3242+
2834 '@drizzle-team/brocli@0.10.2': {}3243 '@drizzle-team/brocli@0.10.2': {}
2835 3244
2836 '@esbuild-kit/core-utils@3.3.2':3245 '@esbuild-kit/core-utils@3.3.2':
@@ -3500,14 +3909,30 @@ snapshots:
3500 3909
3501 '@types/cookie@0.6.0': {}3910 '@types/cookie@0.6.0': {}
3502 3911
3912+ '@types/debug@4.1.12':
3913+ dependencies:
3914+ '@types/ms': 2.1.0
3915+
3503 '@types/estree@1.0.6': {}3916 '@types/estree@1.0.6': {}
3504 3917
3918+ '@types/hast@3.0.4':
3919+ dependencies:
3920+ '@types/unist': 3.0.3
3921+
3505 '@types/json-schema@7.0.15': {}3922 '@types/json-schema@7.0.15': {}
3506 3923
3924+ '@types/mdast@4.0.4':
3925+ dependencies:
3926+ '@types/unist': 3.0.3
3927+
3928+ '@types/ms@2.1.0': {}
3929+
3507 '@types/node@22.13.4':3930 '@types/node@22.13.4':
3508 dependencies:3931 dependencies:
3509 undici-types: 6.20.03932 undici-types: 6.20.0
3510 3933
3934+ '@types/unist@3.0.3': {}
3935+
3511 '@types/ws@8.5.14':3936 '@types/ws@8.5.14':
3512 dependencies:3937 dependencies:
3513 '@types/node': 22.13.43938 '@types/node': 22.13.4
@@ -3589,6 +4014,8 @@ snapshots:
3589 '@typescript-eslint/types': 8.24.04014 '@typescript-eslint/types': 8.24.0
3590 eslint-visitor-keys: 4.2.04015 eslint-visitor-keys: 4.2.0
3591 4016
4017+ '@ungap/structured-clone@1.3.0': {}
4018+
3592 '@vitest/expect@3.0.5':4019 '@vitest/expect@3.0.5':
3593 dependencies:4020 dependencies:
3594 '@vitest/spy': 3.0.54021 '@vitest/spy': 3.0.5
@@ -3643,6 +4070,8 @@ snapshots:
3643 4070
3644 acorn@8.14.0: {}4071 acorn@8.14.0: {}
3645 4072
4073+ agent-base@7.1.3: {}
4074+
3646 ajv@6.12.6:4075 ajv@6.12.6:
3647 dependencies:4076 dependencies:
3648 fast-deep-equal: 3.1.34077 fast-deep-equal: 3.1.3
@@ -3693,6 +4122,8 @@ snapshots:
3693 4122
3694 axobject-query@4.1.0: {}4123 axobject-query@4.1.0: {}
3695 4124
4125+ bail@2.0.2: {}
4126+
3696 balanced-match@1.0.2: {}4127 balanced-match@1.0.2: {}
3697 4128
3698 binary-extensions@2.3.0: {}4129 binary-extensions@2.3.0: {}
@@ -3729,6 +4160,8 @@ snapshots:
3729 4160
3730 caniuse-lite@1.0.30001700: {}4161 caniuse-lite@1.0.30001700: {}
3731 4162
4163+ ccount@2.0.1: {}
4164+
3732 chai@5.2.0:4165 chai@5.2.0:
3733 dependencies:4166 dependencies:
3734 assertion-error: 2.0.14167 assertion-error: 2.0.1
@@ -3742,6 +4175,12 @@ snapshots:
3742 ansi-styles: 4.3.04175 ansi-styles: 4.3.0
3743 supports-color: 7.2.04176 supports-color: 7.2.0
3744 4177
4178+ character-entities-html4@2.1.0: {}
4179+
4180+ character-entities-legacy@3.0.0: {}
4181+
4182+ character-entities@2.0.2: {}
4183+
3745 check-error@2.1.1: {}4184 check-error@2.1.1: {}
3746 4185
3747 chokidar@3.6.0:4186 chokidar@3.6.0:
@@ -3770,6 +4209,8 @@ snapshots:
3770 4209
3771 colorette@2.0.20: {}4210 colorette@2.0.20: {}
3772 4211
4212+ comma-separated-tokens@2.0.3: {}
4213+
3773 commander@2.20.3: {}4214 commander@2.20.3: {}
3774 4215
3775 commander@4.1.1: {}4216 commander@4.1.1: {}
@@ -3790,16 +4231,32 @@ snapshots:
3790 4231
3791 cssesc@3.0.0: {}4232 cssesc@3.0.0: {}
3792 4233
4234+ cssstyle@4.6.0:
4235+ dependencies:
4236+ '@asamuzakjp/css-color': 3.2.0
4237+ rrweb-cssom: 0.8.0
4238+
3793 data-uri-to-buffer@2.0.2: {}4239 data-uri-to-buffer@2.0.2: {}
3794 4240
3795 data-uri-to-buffer@4.0.1: {}4241 data-uri-to-buffer@4.0.1: {}
3796 4242
4243+ data-urls@5.0.0:
4244+ dependencies:
4245+ whatwg-mimetype: 4.0.0
4246+ whatwg-url: 14.2.0
4247+
3797 dateformat@4.6.3: {}4248 dateformat@4.6.3: {}
3798 4249
3799 debug@4.4.0:4250 debug@4.4.0:
3800 dependencies:4251 dependencies:
3801 ms: 2.1.34252 ms: 2.1.3
3802 4253
4254+ decimal.js@10.5.0: {}
4255+
4256+ decode-named-character-reference@1.2.0:
4257+ dependencies:
4258+ character-entities: 2.0.2
4259+
3803 deep-eql@5.0.2: {}4260 deep-eql@5.0.2: {}
3804 4261
3805 deep-is@0.1.4: {}4262 deep-is@0.1.4: {}
@@ -3808,10 +4265,16 @@ snapshots:
3808 4265
3809 defu@6.1.4: {}4266 defu@6.1.4: {}
3810 4267
4268+ dequal@2.0.3: {}
4269+
3811 detect-libc@2.0.2: {}4270 detect-libc@2.0.2: {}
3812 4271
3813 devalue@5.1.1: {}4272 devalue@5.1.1: {}
3814 4273
4274+ devlop@1.1.0:
4275+ dependencies:
4276+ dequal: 2.0.3
4277+
3815 didyoumean@1.2.2: {}4278 didyoumean@1.2.2: {}
3816 4279
3817 dlv@1.1.3: {}4280 dlv@1.1.3: {}
@@ -3844,6 +4307,8 @@ snapshots:
3844 dependencies:4307 dependencies:
3845 once: 1.4.04308 once: 1.4.0
3846 4309
4310+ entities@6.0.1: {}
4311+
3847 es-module-lexer@1.6.0: {}4312 es-module-lexer@1.6.0: {}
3848 4313
3849 esbuild-register@3.6.0(esbuild@0.19.12):4314 esbuild-register@3.6.0(esbuild@0.19.12):
@@ -4111,6 +4576,8 @@ snapshots:
4111 4576
4112 expect-type@1.1.0: {}4577 expect-type@1.1.0: {}
4113 4578
4579+ extend@3.0.2: {}
4580+
4114 fast-copy@3.0.2: {}4581 fast-copy@3.0.2: {}
4115 4582
4116 fast-deep-equal@3.1.3: {}4583 fast-deep-equal@3.1.3: {}
@@ -4218,8 +4685,88 @@ snapshots:
4218 dependencies:4685 dependencies:
4219 function-bind: 1.1.24686 function-bind: 1.1.2
4220 4687
4688+ hast-util-from-html@2.0.3:
4689+ dependencies:
4690+ '@types/hast': 3.0.4
4691+ devlop: 1.1.0
4692+ hast-util-from-parse5: 8.0.3
4693+ parse5: 7.3.0
4694+ vfile: 6.0.3
4695+ vfile-message: 4.0.2
4696+
4697+ hast-util-from-parse5@8.0.3:
4698+ dependencies:
4699+ '@types/hast': 3.0.4
4700+ '@types/unist': 3.0.3
4701+ devlop: 1.1.0
4702+ hastscript: 9.0.1
4703+ property-information: 7.1.0
4704+ vfile: 6.0.3
4705+ vfile-location: 5.0.3
4706+ web-namespaces: 2.0.1
4707+
4708+ hast-util-parse-selector@4.0.0:
4709+ dependencies:
4710+ '@types/hast': 3.0.4
4711+
4712+ hast-util-sanitize@5.0.2:
4713+ dependencies:
4714+ '@types/hast': 3.0.4
4715+ '@ungap/structured-clone': 1.3.0
4716+ unist-util-position: 5.0.0
4717+
4718+ hast-util-to-html@9.0.5:
4719+ dependencies:
4720+ '@types/hast': 3.0.4
4721+ '@types/unist': 3.0.3
4722+ ccount: 2.0.1
4723+ comma-separated-tokens: 2.0.3
4724+ hast-util-whitespace: 3.0.0
4725+ html-void-elements: 3.0.0
4726+ mdast-util-to-hast: 13.2.0
4727+ property-information: 7.1.0
4728+ space-separated-tokens: 2.0.2
4729+ stringify-entities: 4.0.4
4730+ zwitch: 2.0.4
4731+
4732+ hast-util-whitespace@3.0.0:
4733+ dependencies:
4734+ '@types/hast': 3.0.4
4735+
4736+ hastscript@9.0.1:
4737+ dependencies:
4738+ '@types/hast': 3.0.4
4739+ comma-separated-tokens: 2.0.3
4740+ hast-util-parse-selector: 4.0.0
4741+ property-information: 7.1.0
4742+ space-separated-tokens: 2.0.2
4743+
4221 help-me@5.0.0: {}4744 help-me@5.0.0: {}
4222 4745
4746+ html-encoding-sniffer@4.0.0:
4747+ dependencies:
4748+ whatwg-encoding: 3.1.1
4749+
4750+ html-void-elements@3.0.0: {}
4751+
4752+ http-proxy-agent@7.0.2:
4753+ dependencies:
4754+ agent-base: 7.1.3
4755+ debug: 4.4.0
4756+ transitivePeerDependencies:
4757+ - supports-color
4758+
4759+ https-proxy-agent@7.0.6:
4760+ dependencies:
4761+ agent-base: 7.1.3
4762+ debug: 4.4.0
4763+ transitivePeerDependencies:
4764+ - supports-color
4765+
4766+ iconv-lite@0.6.3:
4767+ dependencies:
4768+ safer-buffer: 2.1.2
4769+
4223 ignore@5.3.2: {}4770 ignore@5.3.2: {}
4224 4771
4225 import-fresh@3.3.1:4772 import-fresh@3.3.1:
@@ -4249,6 +4796,10 @@ snapshots:
4249 4796
4250 is-number@7.0.0: {}4797 is-number@7.0.0: {}
4251 4798
4799+ is-plain-obj@4.1.0: {}
4800+
4801+ is-potential-custom-element-name@1.0.1: {}
4802+
4252 is-reference@3.0.3:4803 is-reference@3.0.3:
4253 dependencies:4804 dependencies:
4254 '@types/estree': 1.0.64805 '@types/estree': 1.0.6
@@ -4271,6 +4822,33 @@ snapshots:
4271 dependencies:4822 dependencies:
4272 argparse: 2.0.14823 argparse: 2.0.1
4273 4824
4825+ jsdom@26.1.0:
4826+ dependencies:
4827+ cssstyle: 4.6.0
4828+ data-urls: 5.0.0
4829+ decimal.js: 10.5.0
4830+ html-encoding-sniffer: 4.0.0
4831+ http-proxy-agent: 7.0.2
4832+ https-proxy-agent: 7.0.6
4833+ is-potential-custom-element-name: 1.0.1
4834+ nwsapi: 2.2.20
4835+ parse5: 7.3.0
4836+ rrweb-cssom: 0.8.0
4837+ saxes: 6.0.0
4838+ symbol-tree: 3.2.4
4839+ tough-cookie: 5.1.2
4840+ w3c-xmlserializer: 5.0.0
4841+ webidl-conversions: 7.0.0
4842+ whatwg-encoding: 3.1.1
4843+ whatwg-mimetype: 4.0.0
4844+ whatwg-url: 14.2.0
4845+ ws: 8.18.0
4846+ xml-name-validator: 5.0.0
4847+ transitivePeerDependencies:
4848+ - bufferutil
4849+ - supports-color
4850+ - utf-8-validate
4851+
4274 json-buffer@3.0.1: {}4852 json-buffer@3.0.1: {}
4275 4853
4276 json-schema-traverse@0.4.1: {}4854 json-schema-traverse@0.4.1: {}
@@ -4333,8 +4911,174 @@ snapshots:
4333 dependencies:4911 dependencies:
4334 '@jridgewell/sourcemap-codec': 1.5.04912 '@jridgewell/sourcemap-codec': 1.5.0
4335 4913
4914+ mdast-util-from-markdown@2.0.2:
4915+ dependencies:
4916+ '@types/mdast': 4.0.4
4917+ '@types/unist': 3.0.3
4918+ decode-named-character-reference: 1.2.0
4919+ devlop: 1.1.0
4920+ mdast-util-to-string: 4.0.0
4921+ micromark: 4.0.2
4922+ micromark-util-decode-numeric-character-reference: 2.0.2
4923+ micromark-util-decode-string: 2.0.1
4924+ micromark-util-normalize-identifier: 2.0.1
4925+ micromark-util-symbol: 2.0.1
4926+ micromark-util-types: 2.0.2
4927+ unist-util-stringify-position: 4.0.0
4928+ transitivePeerDependencies:
4929+ - supports-color
4930+
4931+ mdast-util-to-hast@13.2.0:
4932+ dependencies:
4933+ '@types/hast': 3.0.4
4934+ '@types/mdast': 4.0.4
4935+ '@ungap/structured-clone': 1.3.0
4936+ devlop: 1.1.0
4937+ micromark-util-sanitize-uri: 2.0.1
4938+ trim-lines: 3.0.1
4939+ unist-util-position: 5.0.0
4940+ unist-util-visit: 5.0.0
4941+ vfile: 6.0.3
4942+
4943+ mdast-util-to-string@4.0.0:
4944+ dependencies:
4945+ '@types/mdast': 4.0.4
4946+
4336 merge2@1.4.1: {}4947 merge2@1.4.1: {}
4337 4948
4949+ micromark-core-commonmark@2.0.3:
4950+ dependencies:
4951+ decode-named-character-reference: 1.2.0
4952+ devlop: 1.1.0
4953+ micromark-factory-destination: 2.0.1
4954+ micromark-factory-label: 2.0.1
4955+ micromark-factory-space: 2.0.1
4956+ micromark-factory-title: 2.0.1
4957+ micromark-factory-whitespace: 2.0.1
4958+ micromark-util-character: 2.1.1
4959+ micromark-util-chunked: 2.0.1
4960+ micromark-util-classify-character: 2.0.1
4961+ micromark-util-html-tag-name: 2.0.1
4962+ micromark-util-normalize-identifier: 2.0.1
4963+ micromark-util-resolve-all: 2.0.1
4964+ micromark-util-subtokenize: 2.1.0
4965+ micromark-util-symbol: 2.0.1
4966+ micromark-util-types: 2.0.2
4967+
4968+ micromark-factory-destination@2.0.1:
4969+ dependencies:
4970+ micromark-util-character: 2.1.1
4971+ micromark-util-symbol: 2.0.1
4972+ micromark-util-types: 2.0.2
4973+
4974+ micromark-factory-label@2.0.1:
4975+ dependencies:
4976+ devlop: 1.1.0
4977+ micromark-util-character: 2.1.1
4978+ micromark-util-symbol: 2.0.1
4979+ micromark-util-types: 2.0.2
4980+
4981+ micromark-factory-space@2.0.1:
4982+ dependencies:
4983+ micromark-util-character: 2.1.1
4984+ micromark-util-types: 2.0.2
4985+
4986+ micromark-factory-title@2.0.1:
4987+ dependencies:
4988+ micromark-factory-space: 2.0.1
4989+ micromark-util-character: 2.1.1
4990+ micromark-util-symbol: 2.0.1
4991+ micromark-util-types: 2.0.2
4992+
4993+ micromark-factory-whitespace@2.0.1:
4994+ dependencies:
4995+ micromark-factory-space: 2.0.1
4996+ micromark-util-character: 2.1.1
4997+ micromark-util-symbol: 2.0.1
4998+ micromark-util-types: 2.0.2
4999+
5000+ micromark-util-character@2.1.1:
5001+ dependencies:
5002+ micromark-util-symbol: 2.0.1
5003+ micromark-util-types: 2.0.2
5004+
5005+ micromark-util-chunked@2.0.1:
5006+ dependencies:
5007+ micromark-util-symbol: 2.0.1
5008+
5009+ micromark-util-classify-character@2.0.1:
5010+ dependencies:
5011+ micromark-util-character: 2.1.1
5012+ micromark-util-symbol: 2.0.1
5013+ micromark-util-types: 2.0.2
5014+
5015+ micromark-util-combine-extensions@2.0.1:
5016+ dependencies:
5017+ micromark-util-chunked: 2.0.1
5018+ micromark-util-types: 2.0.2
5019+
5020+ micromark-util-decode-numeric-character-reference@2.0.2:
5021+ dependencies:
5022+ micromark-util-symbol: 2.0.1
5023+
5024+ micromark-util-decode-string@2.0.1:
5025+ dependencies:
5026+ decode-named-character-reference: 1.2.0
5027+ micromark-util-character: 2.1.1
5028+ micromark-util-decode-numeric-character-reference: 2.0.2
5029+ micromark-util-symbol: 2.0.1
5030+
5031+ micromark-util-encode@2.0.1: {}
5032+
5033+ micromark-util-html-tag-name@2.0.1: {}
5034+
5035+ micromark-util-normalize-identifier@2.0.1:
5036+ dependencies:
5037+ micromark-util-symbol: 2.0.1
5038+
5039+ micromark-util-resolve-all@2.0.1:
5040+ dependencies:
5041+ micromark-util-types: 2.0.2
5042+
5043+ micromark-util-sanitize-uri@2.0.1:
5044+ dependencies:
5045+ micromark-util-character: 2.1.1
5046+ micromark-util-encode: 2.0.1
5047+ micromark-util-symbol: 2.0.1
5048+
5049+ micromark-util-subtokenize@2.1.0:
5050+ dependencies:
5051+ devlop: 1.1.0
5052+ micromark-util-chunked: 2.0.1
5053+ micromark-util-symbol: 2.0.1
5054+ micromark-util-types: 2.0.2
5055+
5056+ micromark-util-symbol@2.0.1: {}
5057+
5058+ micromark-util-types@2.0.2: {}
5059+
5060+ micromark@4.0.2:
5061+ dependencies:
5062+ '@types/debug': 4.1.12
5063+ debug: 4.4.0
5064+ decode-named-character-reference: 1.2.0
5065+ devlop: 1.1.0
5066+ micromark-core-commonmark: 2.0.3
5067+ micromark-factory-space: 2.0.1
5068+ micromark-util-character: 2.1.1
5069+ micromark-util-chunked: 2.0.1
5070+ micromark-util-combine-extensions: 2.0.1
5071+ micromark-util-decode-numeric-character-reference: 2.0.2
5072+ micromark-util-encode: 2.0.1
5073+ micromark-util-normalize-identifier: 2.0.1
5074+ micromark-util-resolve-all: 2.0.1
5075+ micromark-util-sanitize-uri: 2.0.1
5076+ micromark-util-subtokenize: 2.1.0
5077+ micromark-util-symbol: 2.0.1
5078+ micromark-util-types: 2.0.2
5079+ transitivePeerDependencies:
5080+ - supports-color
5081+
4338 micromatch@4.0.8:5082 micromatch@4.0.8:
4339 dependencies:5083 dependencies:
4340 braces: 3.0.35084 braces: 3.0.3
@@ -4412,6 +5156,8 @@ snapshots:
4412 5156
4413 normalize-range@0.1.2: {}5157 normalize-range@0.1.2: {}
4414 5158
5159+ nwsapi@2.2.20: {}
5160+
4415 object-assign@4.1.1: {}5161 object-assign@4.1.1: {}
4416 5162
4417 object-hash@3.0.0: {}5163 object-hash@3.0.0: {}
@@ -4447,6 +5193,10 @@ snapshots:
4447 dependencies:5193 dependencies:
4448 callsites: 3.1.05194 callsites: 3.1.0
4449 5195
5196+ parse5@7.3.0:
5197+ dependencies:
5198+ entities: 6.0.1
5199+
4450 path-exists@4.0.0: {}5200 path-exists@4.0.0: {}
4451 5201
4452 path-key@3.1.1: {}5202 path-key@3.1.1: {}
@@ -4594,6 +5344,8 @@ snapshots:
4594 5344
4595 promise-limit@2.7.0: {}5345 promise-limit@2.7.0: {}
4596 5346
5347+ property-information@7.1.0: {}
5348+
4597 pump@3.0.2:5349 pump@3.0.2:
4598 dependencies:5350 dependencies:
4599 end-of-stream: 1.4.45351 end-of-stream: 1.4.4
@@ -4619,6 +5371,47 @@ snapshots:
4619 5371
4620 regexparam@3.0.0: {}5372 regexparam@3.0.0: {}
4621 5373
5374+ rehype-parse@9.0.1:
5375+ dependencies:
5376+ '@types/hast': 3.0.4
5377+ hast-util-from-html: 2.0.3
5378+ unified: 11.0.5
5379+
5380+ rehype-sanitize@6.0.0:
5381+ dependencies:
5382+ '@types/hast': 3.0.4
5383+ hast-util-sanitize: 5.0.2
5384+
5385+ rehype-stringify@10.0.1:
5386+ dependencies:
5387+ '@types/hast': 3.0.4
5388+ hast-util-to-html: 9.0.5
5389+ unified: 11.0.5
5390+
5391+ rehype@13.0.2:
5392+ dependencies:
5393+ '@types/hast': 3.0.4
5394+ rehype-parse: 9.0.1
5395+ rehype-stringify: 10.0.1
5396+ unified: 11.0.5
5397+
5398+ remark-parse@11.0.0:
5399+ dependencies:
5400+ '@types/mdast': 4.0.4
5401+ mdast-util-from-markdown: 2.0.2
5402+ micromark-util-types: 2.0.2
5403+ unified: 11.0.5
5404+ transitivePeerDependencies:
5405+ - supports-color
5406+
5407+ remark-rehype@11.1.2:
5408+ dependencies:
5409+ '@types/hast': 3.0.4
5410+ '@types/mdast': 4.0.4
5411+ mdast-util-to-hast: 13.2.0
5412+ unified: 11.0.5
5413+ vfile: 6.0.3
5414+
4622 resolve-from@4.0.0: {}5415 resolve-from@4.0.0: {}
4623 5416
4624 resolve-pkg-maps@1.0.0: {}5417 resolve-pkg-maps@1.0.0: {}
@@ -4670,6 +5463,8 @@ snapshots:
4670 '@rollup/rollup-win32-x64-msvc': 4.34.85463 '@rollup/rollup-win32-x64-msvc': 4.34.8
4671 fsevents: 2.3.35464 fsevents: 2.3.3
4672 5465
5466+ rrweb-cssom@0.8.0: {}
5467+
4673 run-parallel@1.2.0:5468 run-parallel@1.2.0:
4674 dependencies:5469 dependencies:
4675 queue-microtask: 1.2.35470 queue-microtask: 1.2.3
@@ -4680,6 +5475,12 @@ snapshots:
4680 5475
4681 safe-stable-stringify@2.5.0: {}5476 safe-stable-stringify@2.5.0: {}
4682 5477
5478+ safer-buffer@2.1.2: {}
5479+
5480+ saxes@6.0.0:
5481+ dependencies:
5482+ xmlchars: 2.2.0
5483+
4683 secure-json-parse@2.7.0: {}5484 secure-json-parse@2.7.0: {}
4684 5485
4685 semver@7.7.1: {}5486 semver@7.7.1: {}
@@ -4717,6 +5518,8 @@ snapshots:
4717 5518
4718 sourcemap-codec@1.4.8: {}5519 sourcemap-codec@1.4.8: {}
4719 5520
5521+ space-separated-tokens@2.0.2: {}
5522+
4720 split2@4.2.0: {}5523 split2@4.2.0: {}
4721 5524
4722 stackback@0.0.2: {}5525 stackback@0.0.2: {}
@@ -4742,6 +5545,11 @@ snapshots:
4742 emoji-regex: 9.2.25545 emoji-regex: 9.2.2
4743 strip-ansi: 7.1.05546 strip-ansi: 7.1.0
4744 5547
5548+ stringify-entities@4.0.4:
5549+ dependencies:
5550+ character-entities-html4: 2.1.0
5551+ character-entities-legacy: 3.0.0
5552+
4745 strip-ansi@6.0.1:5553 strip-ansi@6.0.1:
4746 dependencies:5554 dependencies:
4747 ansi-regex: 5.0.15555 ansi-regex: 5.0.1
@@ -4807,6 +5615,8 @@ snapshots:
4807 magic-string: 0.30.175615 magic-string: 0.30.17
4808 zimmerframe: 1.1.25616 zimmerframe: 1.1.2
4809 5617
5618+ symbol-tree@3.2.4: {}
5619+
4810 tailwindcss@3.4.17:5620 tailwindcss@3.4.17:
4811 dependencies:5621 dependencies:
4812 '@alloc/quick-lru': 5.2.05622 '@alloc/quick-lru': 5.2.0
@@ -4863,12 +5673,30 @@ snapshots:
4863 5673
4864 tinyspy@3.0.2: {}5674 tinyspy@3.0.2: {}
4865 5675
5676+ tldts-core@6.1.86: {}
5677+
5678+ tldts@6.1.86:
5679+ dependencies:
5680+ tldts-core: 6.1.86
5681+
4866 to-regex-range@5.0.1:5682 to-regex-range@5.0.1:
4867 dependencies:5683 dependencies:
4868 is-number: 7.0.05684 is-number: 7.0.0
4869 5685
4870 totalist@3.0.1: {}5686 totalist@3.0.1: {}
4871 5687
5688+ tough-cookie@5.1.2:
5689+ dependencies:
5690+ tldts: 6.1.86
5691+
5692+ tr46@5.1.1:
5693+ dependencies:
5694+ punycode: 2.3.1
5695+
5696+ trim-lines@3.0.1: {}
5697+
5698+ trough@2.2.0: {}
5699+
4872 ts-api-utils@2.0.1(typescript@5.7.3):5700 ts-api-utils@2.0.1(typescript@5.7.3):
4873 dependencies:5701 dependencies:
4874 typescript: 5.7.35702 typescript: 5.7.3
@@ -4914,6 +5742,39 @@ snapshots:
4914 pathe: 1.1.25742 pathe: 1.1.2
4915 ufo: 1.5.45743 ufo: 1.5.4
4916 5744
5745+ unified@11.0.5:
5746+ dependencies:
5747+ '@types/unist': 3.0.3
5748+ bail: 2.0.2
5749+ devlop: 1.1.0
5750+ extend: 3.0.2
5751+ is-plain-obj: 4.1.0
5752+ trough: 2.2.0
5753+ vfile: 6.0.3
5754+
5755+ unist-util-is@6.0.0:
5756+ dependencies:
5757+ '@types/unist': 3.0.3
5758+
5759+ unist-util-position@5.0.0:
5760+ dependencies:
5761+ '@types/unist': 3.0.3
5762+
5763+ unist-util-stringify-position@4.0.0:
5764+ dependencies:
5765+ '@types/unist': 3.0.3
5766+
5767+ unist-util-visit-parents@6.0.1:
5768+ dependencies:
5769+ '@types/unist': 3.0.3
5770+ unist-util-is: 6.0.0
5771+
5772+ unist-util-visit@5.0.0:
5773+ dependencies:
5774+ '@types/unist': 3.0.3
5775+ unist-util-is: 6.0.0
5776+ unist-util-visit-parents: 6.0.1
5777+
4917 update-browserslist-db@1.1.2(browserslist@4.24.4):5778 update-browserslist-db@1.1.2(browserslist@4.24.4):
4918 dependencies:5779 dependencies:
4919 browserslist: 4.24.45780 browserslist: 4.24.4
@@ -4928,6 +5789,21 @@ snapshots:
4928 5789
4929 uuid@11.0.5: {}5790 uuid@11.0.5: {}
4930 5791
5792+ vfile-location@5.0.3:
5793+ dependencies:
5794+ '@types/unist': 3.0.3
5795+ vfile: 6.0.3
5796+
5797+ vfile-message@4.0.2:
5798+ dependencies:
5799+ '@types/unist': 3.0.3
5800+ unist-util-stringify-position: 4.0.0
5801+
5802+ vfile@6.0.3:
5803+ dependencies:
5804+ '@types/unist': 3.0.3
5805+ vfile-message: 4.0.2
5806+
4931 vite-node@3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):5807 vite-node@3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):
4932 dependencies:5808 dependencies:
4933 cac: 6.7.145809 cac: 6.7.14
@@ -4966,7 +5842,7 @@ snapshots:
4966 optionalDependencies:5842 optionalDependencies:
4967 vite: 6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)5843 vite: 6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
4968 5844
4969- vitest@3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):5845+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(jiti@1.21.7)(jsdom@26.1.0)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0):
4970 dependencies:5846 dependencies:
4971 '@vitest/expect': 3.0.55847 '@vitest/expect': 3.0.5
4972 '@vitest/mocker': 3.0.5(vite@6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))5848 '@vitest/mocker': 3.0.5(vite@6.1.0(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))
@@ -4989,7 +5865,9 @@ snapshots:
4989 vite-node: 3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)5865 vite-node: 3.0.5(@types/node@22.13.4)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
4990 why-is-node-running: 2.3.05866 why-is-node-running: 2.3.0
4991 optionalDependencies:5867 optionalDependencies:
5868+ '@types/debug': 4.1.12
4992 '@types/node': 22.13.45869 '@types/node': 22.13.4
5870+ jsdom: 26.1.0
4993 transitivePeerDependencies:5871 transitivePeerDependencies:
4994 - jiti5872 - jiti
4995 - less5873 - less
@@ -5004,8 +5882,27 @@ snapshots:
5004 - tsx5882 - tsx
5005 - yaml5883 - yaml
5006 5884
5885+ w3c-xmlserializer@5.0.0:
5886+ dependencies:
5887+ xml-name-validator: 5.0.0
5888+
5889+ web-namespaces@2.0.1: {}
5890+
5007 web-streams-polyfill@3.3.3: {}5891 web-streams-polyfill@3.3.3: {}
5008 5892
5893+ webidl-conversions@7.0.0: {}
5894+
5895+ whatwg-encoding@3.1.1:
5896+ dependencies:
5897+ iconv-lite: 0.6.3
5898+
5899+ whatwg-mimetype@4.0.0: {}
5900+
5901+ whatwg-url@14.2.0:
5902+ dependencies:
5903+ tr46: 5.1.1
5904+ webidl-conversions: 7.0.0
5905+
5009 which@2.0.2:5906 which@2.0.2:
5010 dependencies:5907 dependencies:
5011 isexe: 2.0.05908 isexe: 2.0.0
@@ -5064,6 +5961,10 @@ snapshots:
5064 5961
5065 ws@8.18.0: {}5962 ws@8.18.0: {}
5066 5963
5964+ xml-name-validator@5.0.0: {}
5965+
5966+ xmlchars@2.2.0: {}
5967+
5067 xp.css@0.2.6: {}5968 xp.css@0.2.6: {}
5068 5969
5069 yaml@1.10.2: {}5970 yaml@1.10.2: {}
@@ -5081,3 +5982,7 @@ snapshots:
5081 zimmerframe@1.1.2: {}5982 zimmerframe@1.1.2: {}
5082 5983
5083 zod@3.24.2: {}5984 zod@3.24.2: {}
5985+
5986+ zod@3.25.67: {}
5987+
5988+ zwitch@2.0.4: {}
A static/_headers +18 -0
@@ -0,0 +1,18 @@
1+# Cache configuration for static assets
2+
3+# Font files - cache for 1 year (31536000 seconds)
4+/fonts/*
5+ Cache-Control: public, max-age=31536000, immutable
6+ Access-Control-Allow-Origin: *
7+ Cross-Origin-Resource-Policy: cross-origin
8+
9+# General static assets - cache for 1 month (2592000 seconds)
10+/favicon.png
11+ Cache-Control: public, max-age=2592000
12+
13+# Icons and images - cache for 1 month
14+/aim/*
15+ Cache-Control: public, max-age=2592000
16+
17+/desktop/*
18+ Cache-Control: public, max-age=2592000⏎̸
@@ -0,0 +1,18 @@
1+# Cache configuration for static assets
2+
3+# Font files - cache for 1 year (31536000 seconds)
4+/fonts/*
5+ Cache-Control: public, max-age=31536000, immutable
6+ Access-Control-Allow-Origin: *
7+ Cross-Origin-Resource-Policy: cross-origin
8+
9+# General static assets - cache for 1 month (2592000 seconds)
10+/favicon.png
11+ Cache-Control: public, max-age=2592000
12+
13+# Icons and images - cache for 1 month
14+/aim/*
15+ Cache-Control: public, max-age=2592000
16+
17+/desktop/*
18+ Cache-Control: public, max-age=2592000⏎̸
A static/fonts/Arial.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Arialbd.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Arialbi.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Ariali.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Comic.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Comicbd.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/LiberationMono-Bold.ttf +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/LiberationMono-BoldItalic.ttf +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/LiberationMono-Italic.ttf +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/LiberationMono-Regular.ttf +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Times.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Timesbd.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Timesbi.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Timesi.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Verdana.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Verdanab.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Verdanai.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/Verdanaz.TTF +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/tahoma.ttf +0 -0 binary file: no text diff

binary file: no text diff

A static/fonts/tahomabd.ttf +0 -0 binary file: no text diff

binary file: no text diff

A test-gradient-fixes.md +49 -0
@@ -0,0 +1,49 @@
1+# Gradient and Text Formatting Fixes Summary
2+
3+## Issues Fixed:
4+
5+### 1. Color Picker Button Gradient Preview
6+**Problem**: The color picker button wasn't showing gradient preview correctly.
7+**Fix**: Updated `displayStyle` in `color-picker-256.svelte` to use consistent `background` property instead of `background-color`.
8+
9+### 2. Text Input Gradient Display
10+**Problem**: Text input only showed the first color of a gradient.
11+**Fix**: This is by design to preserve the input background. Added a visual gradient indicator next to the input field in `chat-room.svelte` when gradient mode is active.
12+
13+### 3. Chat Messages Formatting
14+**Problem**: Messages weren't displaying with user-specific fonts, styles and colors.
15+**Fixes**:
16+- Updated `sendMessage` function to accept and pass `textStyle` parameter
17+- Added `styleData` field to `SendMessageRequest` payload type
18+- Updated server-side message handler to save `styleData` and `hasFormatting` fields
19+- Fixed `formatted-message.svelte` to properly handle gradient styles
20+- Updated text formatter to apply styles correctly to paragraph elements
21+
22+## Files Modified:
23+
24+1. `/src/lib/components/color-picker-256.svelte` - Fixed gradient preview display
25+2. `/src/lib/components/chat-room.svelte` - Added textStyle to sendMessage call and gradient indicator
26+3. `/src/lib/components/formatted-message.svelte` - Fixed style application for gradients
27+4. `/src/lib/utils/text-formatter.ts` - Fixed style application to all text elements
28+5. `/src/lib/states/chat.svelte.ts` - Added textStyle parameter to sendMessage
29+6. `/src/lib/types/payloads.ts` - Added styleData to SendMessageRequest
30+7. `/src/routes/api/chat/messages/+server.ts` - Added styleData handling in message creation
31+
32+## How It Works Now:
33+
34+1. When a user selects colors/gradients and formatting options in the toolbar, the `currentTextStyle` state is updated
35+2. When sending a message, the style data is serialized and sent along with the message content
36+3. The server saves the style data with the message in the database
37+4. When messages are displayed, the `FormattedMessage` component applies the saved styles
38+5. Gradients are rendered character-by-character for the classic AOL effect
39+6. The input field shows a gradient indicator bar when gradient mode is active
40+
41+## Testing:
42+
43+To test the fixes:
44+1. Open the chat window
45+2. Select a gradient using the color picker (add 2-3 colors)
46+3. Choose a font and adjust size
47+4. Type a message - you should see the first gradient color in the input
48+5. Send the message - it should display with the full gradient effect
49+6. Other users should see your message with your chosen formatting⏎̸
@@ -0,0 +1,49 @@
1+# Gradient and Text Formatting Fixes Summary
2+
3+## Issues Fixed:
4+
5+### 1. Color Picker Button Gradient Preview
6+**Problem**: The color picker button wasn't showing gradient preview correctly.
7+**Fix**: Updated `displayStyle` in `color-picker-256.svelte` to use consistent `background` property instead of `background-color`.
8+
9+### 2. Text Input Gradient Display
10+**Problem**: Text input only showed the first color of a gradient.
11+**Fix**: This is by design to preserve the input background. Added a visual gradient indicator next to the input field in `chat-room.svelte` when gradient mode is active.
12+
13+### 3. Chat Messages Formatting
14+**Problem**: Messages weren't displaying with user-specific fonts, styles and colors.
15+**Fixes**:
16+- Updated `sendMessage` function to accept and pass `textStyle` parameter
17+- Added `styleData` field to `SendMessageRequest` payload type
18+- Updated server-side message handler to save `styleData` and `hasFormatting` fields
19+- Fixed `formatted-message.svelte` to properly handle gradient styles
20+- Updated text formatter to apply styles correctly to paragraph elements
21+
22+## Files Modified:
23+
24+1. `/src/lib/components/color-picker-256.svelte` - Fixed gradient preview display
25+2. `/src/lib/components/chat-room.svelte` - Added textStyle to sendMessage call and gradient indicator
26+3. `/src/lib/components/formatted-message.svelte` - Fixed style application for gradients
27+4. `/src/lib/utils/text-formatter.ts` - Fixed style application to all text elements
28+5. `/src/lib/states/chat.svelte.ts` - Added textStyle parameter to sendMessage
29+6. `/src/lib/types/payloads.ts` - Added styleData to SendMessageRequest
30+7. `/src/routes/api/chat/messages/+server.ts` - Added styleData handling in message creation
31+
32+## How It Works Now:
33+
34+1. When a user selects colors/gradients and formatting options in the toolbar, the `currentTextStyle` state is updated
35+2. When sending a message, the style data is serialized and sent along with the message content
36+3. The server saves the style data with the message in the database
37+4. When messages are displayed, the `FormattedMessage` component applies the saved styles
38+5. Gradients are rendered character-by-character for the classic AOL effect
39+6. The input field shows a gradient indicator bar when gradient mode is active
40+
41+## Testing:
42+
43+To test the fixes:
44+1. Open the chat window
45+2. Select a gradient using the color picker (add 2-3 colors)
46+3. Choose a font and adjust size
47+4. Type a message - you should see the first gradient color in the input
48+5. Send the message - it should display with the full gradient effect
49+6. Other users should see your message with your chosen formatting⏎̸

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 3

Tags 9

↑↓ moveenter openesc close