nsarrazin commited on
Commit
a1d66d2
·
unverified ·
1 Parent(s): 0735697

feat(test): add support for testing svelte components in isolation (#1692)

Browse files

* feat(test): add support for testing svelte components in isolation

* refactor: use `vitest-browser-svelte` for tests, fix markdownRenderer tests

* test: remove todos on tests that pass

* fix: deps & tests

package-lock.json CHANGED
@@ -56,6 +56,7 @@
56
  "tailwind-scrollbar": "^3.0.0",
57
  "tailwindcss": "^3.4.0",
58
  "uuid": "^10.0.0",
 
59
  "zod": "^3.22.3"
60
  },
61
  "devDependencies": {
@@ -134,7 +135,6 @@
134
  "version": "2.3.0",
135
  "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
136
  "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
137
- "dev": true,
138
  "dependencies": {
139
  "@jridgewell/gen-mapping": "^0.3.5",
140
  "@jridgewell/trace-mapping": "^0.3.24"
@@ -1327,6 +1327,31 @@
1327
  "tslib": "^2.3.1"
1328
  }
1329
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1330
  "node_modules/@babel/runtime": {
1331
  "version": "7.27.0",
1332
  "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz",
@@ -1461,7 +1486,6 @@
1461
  "cpu": [
1462
  "ppc64"
1463
  ],
1464
- "dev": true,
1465
  "license": "MIT",
1466
  "optional": true,
1467
  "os": [
@@ -1478,7 +1502,6 @@
1478
  "cpu": [
1479
  "arm"
1480
  ],
1481
- "dev": true,
1482
  "license": "MIT",
1483
  "optional": true,
1484
  "os": [
@@ -1495,7 +1518,6 @@
1495
  "cpu": [
1496
  "arm64"
1497
  ],
1498
- "dev": true,
1499
  "license": "MIT",
1500
  "optional": true,
1501
  "os": [
@@ -1512,7 +1534,6 @@
1512
  "cpu": [
1513
  "x64"
1514
  ],
1515
- "dev": true,
1516
  "license": "MIT",
1517
  "optional": true,
1518
  "os": [
@@ -1529,7 +1550,6 @@
1529
  "cpu": [
1530
  "arm64"
1531
  ],
1532
- "dev": true,
1533
  "license": "MIT",
1534
  "optional": true,
1535
  "os": [
@@ -1546,7 +1566,6 @@
1546
  "cpu": [
1547
  "x64"
1548
  ],
1549
- "dev": true,
1550
  "license": "MIT",
1551
  "optional": true,
1552
  "os": [
@@ -1563,7 +1582,6 @@
1563
  "cpu": [
1564
  "arm64"
1565
  ],
1566
- "dev": true,
1567
  "license": "MIT",
1568
  "optional": true,
1569
  "os": [
@@ -1580,7 +1598,6 @@
1580
  "cpu": [
1581
  "x64"
1582
  ],
1583
- "dev": true,
1584
  "license": "MIT",
1585
  "optional": true,
1586
  "os": [
@@ -1597,7 +1614,6 @@
1597
  "cpu": [
1598
  "arm"
1599
  ],
1600
- "dev": true,
1601
  "license": "MIT",
1602
  "optional": true,
1603
  "os": [
@@ -1614,7 +1630,6 @@
1614
  "cpu": [
1615
  "arm64"
1616
  ],
1617
- "dev": true,
1618
  "license": "MIT",
1619
  "optional": true,
1620
  "os": [
@@ -1631,7 +1646,6 @@
1631
  "cpu": [
1632
  "ia32"
1633
  ],
1634
- "dev": true,
1635
  "license": "MIT",
1636
  "optional": true,
1637
  "os": [
@@ -1648,7 +1662,6 @@
1648
  "cpu": [
1649
  "loong64"
1650
  ],
1651
- "dev": true,
1652
  "license": "MIT",
1653
  "optional": true,
1654
  "os": [
@@ -1665,7 +1678,6 @@
1665
  "cpu": [
1666
  "mips64el"
1667
  ],
1668
- "dev": true,
1669
  "license": "MIT",
1670
  "optional": true,
1671
  "os": [
@@ -1682,7 +1694,6 @@
1682
  "cpu": [
1683
  "ppc64"
1684
  ],
1685
- "dev": true,
1686
  "license": "MIT",
1687
  "optional": true,
1688
  "os": [
@@ -1699,7 +1710,6 @@
1699
  "cpu": [
1700
  "riscv64"
1701
  ],
1702
- "dev": true,
1703
  "license": "MIT",
1704
  "optional": true,
1705
  "os": [
@@ -1716,7 +1726,6 @@
1716
  "cpu": [
1717
  "s390x"
1718
  ],
1719
- "dev": true,
1720
  "license": "MIT",
1721
  "optional": true,
1722
  "os": [
@@ -1733,7 +1742,6 @@
1733
  "cpu": [
1734
  "x64"
1735
  ],
1736
- "dev": true,
1737
  "license": "MIT",
1738
  "optional": true,
1739
  "os": [
@@ -1750,7 +1758,6 @@
1750
  "cpu": [
1751
  "arm64"
1752
  ],
1753
- "dev": true,
1754
  "license": "MIT",
1755
  "optional": true,
1756
  "os": [
@@ -1767,7 +1774,6 @@
1767
  "cpu": [
1768
  "x64"
1769
  ],
1770
- "dev": true,
1771
  "license": "MIT",
1772
  "optional": true,
1773
  "os": [
@@ -1784,7 +1790,6 @@
1784
  "cpu": [
1785
  "arm64"
1786
  ],
1787
- "dev": true,
1788
  "license": "MIT",
1789
  "optional": true,
1790
  "os": [
@@ -1801,7 +1806,6 @@
1801
  "cpu": [
1802
  "x64"
1803
  ],
1804
- "dev": true,
1805
  "license": "MIT",
1806
  "optional": true,
1807
  "os": [
@@ -1818,7 +1822,6 @@
1818
  "cpu": [
1819
  "x64"
1820
  ],
1821
- "dev": true,
1822
  "license": "MIT",
1823
  "optional": true,
1824
  "os": [
@@ -1835,7 +1838,6 @@
1835
  "cpu": [
1836
  "arm64"
1837
  ],
1838
- "dev": true,
1839
  "license": "MIT",
1840
  "optional": true,
1841
  "os": [
@@ -1852,7 +1854,6 @@
1852
  "cpu": [
1853
  "ia32"
1854
  ],
1855
- "dev": true,
1856
  "license": "MIT",
1857
  "optional": true,
1858
  "os": [
@@ -1869,7 +1870,6 @@
1869
  "cpu": [
1870
  "x64"
1871
  ],
1872
- "dev": true,
1873
  "license": "MIT",
1874
  "optional": true,
1875
  "os": [
@@ -3825,8 +3825,7 @@
3825
  "node_modules/@polka/url": {
3826
  "version": "1.0.0-next.28",
3827
  "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
3828
- "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
3829
- "dev": true
3830
  },
3831
  "node_modules/@protobufjs/aspromise": {
3832
  "version": "1.1.2",
@@ -4270,7 +4269,6 @@
4270
  "cpu": [
4271
  "arm"
4272
  ],
4273
- "dev": true,
4274
  "license": "MIT",
4275
  "optional": true,
4276
  "os": [
@@ -4284,7 +4282,6 @@
4284
  "cpu": [
4285
  "arm64"
4286
  ],
4287
- "dev": true,
4288
  "license": "MIT",
4289
  "optional": true,
4290
  "os": [
@@ -4298,7 +4295,6 @@
4298
  "cpu": [
4299
  "arm64"
4300
  ],
4301
- "dev": true,
4302
  "license": "MIT",
4303
  "optional": true,
4304
  "os": [
@@ -4312,7 +4308,6 @@
4312
  "cpu": [
4313
  "x64"
4314
  ],
4315
- "dev": true,
4316
  "license": "MIT",
4317
  "optional": true,
4318
  "os": [
@@ -4326,7 +4321,6 @@
4326
  "cpu": [
4327
  "arm64"
4328
  ],
4329
- "dev": true,
4330
  "license": "MIT",
4331
  "optional": true,
4332
  "os": [
@@ -4340,7 +4334,6 @@
4340
  "cpu": [
4341
  "x64"
4342
  ],
4343
- "dev": true,
4344
  "license": "MIT",
4345
  "optional": true,
4346
  "os": [
@@ -4354,7 +4347,6 @@
4354
  "cpu": [
4355
  "arm"
4356
  ],
4357
- "dev": true,
4358
  "license": "MIT",
4359
  "optional": true,
4360
  "os": [
@@ -4368,7 +4360,6 @@
4368
  "cpu": [
4369
  "arm"
4370
  ],
4371
- "dev": true,
4372
  "license": "MIT",
4373
  "optional": true,
4374
  "os": [
@@ -4382,7 +4373,6 @@
4382
  "cpu": [
4383
  "arm64"
4384
  ],
4385
- "dev": true,
4386
  "license": "MIT",
4387
  "optional": true,
4388
  "os": [
@@ -4396,7 +4386,6 @@
4396
  "cpu": [
4397
  "arm64"
4398
  ],
4399
- "dev": true,
4400
  "license": "MIT",
4401
  "optional": true,
4402
  "os": [
@@ -4410,7 +4399,6 @@
4410
  "cpu": [
4411
  "loong64"
4412
  ],
4413
- "dev": true,
4414
  "license": "MIT",
4415
  "optional": true,
4416
  "os": [
@@ -4424,7 +4412,6 @@
4424
  "cpu": [
4425
  "ppc64"
4426
  ],
4427
- "dev": true,
4428
  "license": "MIT",
4429
  "optional": true,
4430
  "os": [
@@ -4438,7 +4425,6 @@
4438
  "cpu": [
4439
  "riscv64"
4440
  ],
4441
- "dev": true,
4442
  "license": "MIT",
4443
  "optional": true,
4444
  "os": [
@@ -4452,7 +4438,6 @@
4452
  "cpu": [
4453
  "riscv64"
4454
  ],
4455
- "dev": true,
4456
  "license": "MIT",
4457
  "optional": true,
4458
  "os": [
@@ -4466,7 +4451,6 @@
4466
  "cpu": [
4467
  "s390x"
4468
  ],
4469
- "dev": true,
4470
  "license": "MIT",
4471
  "optional": true,
4472
  "os": [
@@ -4480,7 +4464,6 @@
4480
  "cpu": [
4481
  "x64"
4482
  ],
4483
- "dev": true,
4484
  "license": "MIT",
4485
  "optional": true,
4486
  "os": [
@@ -4494,7 +4477,6 @@
4494
  "cpu": [
4495
  "x64"
4496
  ],
4497
- "dev": true,
4498
  "license": "MIT",
4499
  "optional": true,
4500
  "os": [
@@ -4508,7 +4490,6 @@
4508
  "cpu": [
4509
  "arm64"
4510
  ],
4511
- "dev": true,
4512
  "license": "MIT",
4513
  "optional": true,
4514
  "os": [
@@ -4522,7 +4503,6 @@
4522
  "cpu": [
4523
  "ia32"
4524
  ],
4525
- "dev": true,
4526
  "license": "MIT",
4527
  "optional": true,
4528
  "os": [
@@ -4536,7 +4516,6 @@
4536
  "cpu": [
4537
  "x64"
4538
  ],
4539
- "dev": true,
4540
  "license": "MIT",
4541
  "optional": true,
4542
  "os": [
@@ -5174,7 +5153,6 @@
5174
  "version": "1.0.5",
5175
  "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz",
5176
  "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==",
5177
- "dev": true,
5178
  "license": "MIT",
5179
  "peerDependencies": {
5180
  "acorn": "^8.9.0"
@@ -5300,6 +5278,50 @@
5300
  "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20"
5301
  }
5302
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5303
  "node_modules/@tinyhttp/content-disposition": {
5304
  "version": "2.2.2",
5305
  "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.2.tgz",
@@ -5351,6 +5373,13 @@
5351
  "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
5352
  "devOptional": true
5353
  },
 
 
 
 
 
 
 
5354
  "node_modules/@types/aws-lambda": {
5355
  "version": "8.10.148",
5356
  "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.148.tgz",
@@ -5405,7 +5434,6 @@
5405
  "version": "1.0.7",
5406
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
5407
  "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
5408
- "dev": true,
5409
  "license": "MIT"
5410
  },
5411
  "node_modules/@types/eventsource": {
@@ -5866,15 +5894,50 @@
5866
  "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
5867
  "dev": true
5868
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5869
  "node_modules/@vitest/expect": {
5870
- "version": "3.0.9",
5871
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz",
5872
- "integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==",
5873
- "dev": true,
5874
  "license": "MIT",
5875
  "dependencies": {
5876
- "@vitest/spy": "3.0.9",
5877
- "@vitest/utils": "3.0.9",
5878
  "chai": "^5.2.0",
5879
  "tinyrainbow": "^2.0.0"
5880
  },
@@ -5883,13 +5946,12 @@
5883
  }
5884
  },
5885
  "node_modules/@vitest/mocker": {
5886
- "version": "3.0.9",
5887
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz",
5888
- "integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==",
5889
- "dev": true,
5890
  "license": "MIT",
5891
  "dependencies": {
5892
- "@vitest/spy": "3.0.9",
5893
  "estree-walker": "^3.0.3",
5894
  "magic-string": "^0.30.17"
5895
  },
@@ -5913,17 +5975,15 @@
5913
  "version": "3.0.3",
5914
  "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
5915
  "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
5916
- "dev": true,
5917
  "license": "MIT",
5918
  "dependencies": {
5919
  "@types/estree": "^1.0.0"
5920
  }
5921
  },
5922
  "node_modules/@vitest/pretty-format": {
5923
- "version": "3.0.9",
5924
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz",
5925
- "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==",
5926
- "dev": true,
5927
  "license": "MIT",
5928
  "dependencies": {
5929
  "tinyrainbow": "^2.0.0"
@@ -5933,13 +5993,12 @@
5933
  }
5934
  },
5935
  "node_modules/@vitest/runner": {
5936
- "version": "3.0.9",
5937
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz",
5938
- "integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==",
5939
- "dev": true,
5940
  "license": "MIT",
5941
  "dependencies": {
5942
- "@vitest/utils": "3.0.9",
5943
  "pathe": "^2.0.3"
5944
  },
5945
  "funding": {
@@ -5950,17 +6009,15 @@
5950
  "version": "2.0.3",
5951
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
5952
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
5953
- "dev": true,
5954
  "license": "MIT"
5955
  },
5956
  "node_modules/@vitest/snapshot": {
5957
- "version": "3.0.9",
5958
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz",
5959
- "integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==",
5960
- "dev": true,
5961
  "license": "MIT",
5962
  "dependencies": {
5963
- "@vitest/pretty-format": "3.0.9",
5964
  "magic-string": "^0.30.17",
5965
  "pathe": "^2.0.3"
5966
  },
@@ -5972,14 +6029,12 @@
5972
  "version": "2.0.3",
5973
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
5974
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
5975
- "dev": true,
5976
  "license": "MIT"
5977
  },
5978
  "node_modules/@vitest/spy": {
5979
- "version": "3.0.9",
5980
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz",
5981
- "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==",
5982
- "dev": true,
5983
  "license": "MIT",
5984
  "dependencies": {
5985
  "tinyspy": "^3.0.2"
@@ -5989,13 +6044,12 @@
5989
  }
5990
  },
5991
  "node_modules/@vitest/utils": {
5992
- "version": "3.0.9",
5993
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz",
5994
- "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==",
5995
- "dev": true,
5996
  "license": "MIT",
5997
  "dependencies": {
5998
- "@vitest/pretty-format": "3.0.9",
5999
  "loupe": "^3.1.3",
6000
  "tinyrainbow": "^2.0.0"
6001
  },
@@ -6036,7 +6090,6 @@
6036
  "version": "8.12.1",
6037
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
6038
  "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
6039
- "devOptional": true,
6040
  "bin": {
6041
  "acorn": "bin/acorn"
6042
  },
@@ -6209,7 +6262,6 @@
6209
  "version": "5.3.2",
6210
  "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
6211
  "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
6212
- "dev": true,
6213
  "license": "Apache-2.0",
6214
  "engines": {
6215
  "node": ">= 0.4"
@@ -6233,7 +6285,6 @@
6233
  "version": "2.0.1",
6234
  "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
6235
  "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
6236
- "dev": true,
6237
  "license": "MIT",
6238
  "engines": {
6239
  "node": ">=12"
@@ -6367,7 +6418,6 @@
6367
  "version": "4.1.0",
6368
  "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
6369
  "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
6370
- "dev": true,
6371
  "engines": {
6372
  "node": ">= 0.4"
6373
  }
@@ -6629,7 +6679,6 @@
6629
  "version": "6.7.14",
6630
  "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
6631
  "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
6632
- "dev": true,
6633
  "engines": {
6634
  "node": ">=8"
6635
  }
@@ -6725,7 +6774,6 @@
6725
  "version": "5.2.0",
6726
  "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
6727
  "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
6728
- "dev": true,
6729
  "license": "MIT",
6730
  "dependencies": {
6731
  "assertion-error": "^2.0.1",
@@ -6757,7 +6805,6 @@
6757
  "version": "2.1.1",
6758
  "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
6759
  "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
6760
- "dev": true,
6761
  "license": "MIT",
6762
  "engines": {
6763
  "node": ">= 16"
@@ -6980,7 +7027,6 @@
6980
  "version": "2.1.1",
6981
  "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
6982
  "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
6983
- "dev": true,
6984
  "license": "MIT",
6985
  "engines": {
6986
  "node": ">=6"
@@ -7410,7 +7456,6 @@
7410
  "version": "5.0.2",
7411
  "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
7412
  "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
7413
- "dev": true,
7414
  "license": "MIT",
7415
  "engines": {
7416
  "node": ">=6"
@@ -7462,6 +7507,16 @@
7462
  "node": ">= 0.8"
7463
  }
7464
  },
 
 
 
 
 
 
 
 
 
 
7465
  "node_modules/destroy": {
7466
  "version": "1.2.0",
7467
  "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -7528,6 +7583,13 @@
7528
  "node": ">=6.0.0"
7529
  }
7530
  },
 
 
 
 
 
 
 
7531
  "node_modules/dom-serializer": {
7532
  "version": "2.0.0",
7533
  "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
@@ -7722,10 +7784,9 @@
7722
  }
7723
  },
7724
  "node_modules/es-module-lexer": {
7725
- "version": "1.6.0",
7726
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
7727
- "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
7728
- "dev": true,
7729
  "license": "MIT"
7730
  },
7731
  "node_modules/es-object-atoms": {
@@ -7744,7 +7805,6 @@
7744
  "version": "0.25.1",
7745
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
7746
  "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
7747
- "dev": true,
7748
  "hasInstallScript": true,
7749
  "license": "MIT",
7750
  "bin": {
@@ -8077,7 +8137,6 @@
8077
  "version": "1.2.2",
8078
  "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
8079
  "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
8080
- "dev": true,
8081
  "license": "MIT"
8082
  },
8083
  "node_modules/espree": {
@@ -8125,7 +8184,6 @@
8125
  "version": "1.4.6",
8126
  "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.6.tgz",
8127
  "integrity": "sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==",
8128
- "dev": true,
8129
  "license": "MIT",
8130
  "dependencies": {
8131
  "@jridgewell/sourcemap-codec": "^1.4.15"
@@ -8257,10 +8315,9 @@
8257
  }
8258
  },
8259
  "node_modules/expect-type": {
8260
- "version": "1.1.0",
8261
- "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
8262
- "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
8263
- "dev": true,
8264
  "license": "Apache-2.0",
8265
  "engines": {
8266
  "node": ">=12.0.0"
@@ -10079,6 +10136,13 @@
10079
  "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==",
10080
  "optional": true
10081
  },
 
 
 
 
 
 
 
10082
  "node_modules/js-yaml": {
10083
  "version": "4.1.0",
10084
  "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -10502,8 +10566,7 @@
10502
  "node_modules/locate-character": {
10503
  "version": "3.0.0",
10504
  "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
10505
- "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
10506
- "dev": true
10507
  },
10508
  "node_modules/locate-path": {
10509
  "version": "6.0.0",
@@ -10687,7 +10750,6 @@
10687
  "version": "3.1.3",
10688
  "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
10689
  "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
10690
- "dev": true,
10691
  "license": "MIT"
10692
  },
10693
  "node_modules/lowdb": {
@@ -10717,6 +10779,16 @@
10717
  "node": ">=10"
10718
  }
10719
  },
 
 
 
 
 
 
 
 
 
 
10720
  "node_modules/lzo": {
10721
  "version": "0.4.11",
10722
  "resolved": "https://registry.npmjs.org/lzo/-/lzo-0.4.11.tgz",
@@ -10731,7 +10803,6 @@
10731
  "version": "0.30.17",
10732
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
10733
  "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
10734
- "dev": true,
10735
  "license": "MIT",
10736
  "dependencies": {
10737
  "@jridgewell/sourcemap-codec": "^1.5.0"
@@ -11300,7 +11371,6 @@
11300
  "version": "2.0.0",
11301
  "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
11302
  "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
11303
- "dev": true,
11304
  "engines": {
11305
  "node": ">=10"
11306
  }
@@ -12355,7 +12425,6 @@
12355
  "version": "2.0.0",
12356
  "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
12357
  "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
12358
- "dev": true,
12359
  "license": "MIT",
12360
  "engines": {
12361
  "node": ">= 14.16"
@@ -12960,6 +13029,34 @@
12960
  "url": "https://github.com/sponsors/sindresorhus"
12961
  }
12962
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12963
  "node_modules/pretty-ms": {
12964
  "version": "9.2.0",
12965
  "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz",
@@ -13213,6 +13310,13 @@
13213
  "node": ">=0.10.0"
13214
  }
13215
  },
 
 
 
 
 
 
 
13216
  "node_modules/read-cache": {
13217
  "version": "1.0.0",
13218
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -13414,7 +13518,6 @@
13414
  "version": "4.40.1",
13415
  "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz",
13416
  "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==",
13417
- "dev": true,
13418
  "license": "MIT",
13419
  "dependencies": {
13420
  "@types/estree": "1.0.7"
@@ -13876,8 +13979,7 @@
13876
  "node_modules/siginfo": {
13877
  "version": "2.0.0",
13878
  "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
13879
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
13880
- "dev": true
13881
  },
13882
  "node_modules/signal-exit": {
13883
  "version": "4.1.0",
@@ -13915,10 +14017,10 @@
13915
  }
13916
  },
13917
  "node_modules/sirv": {
13918
- "version": "3.0.0",
13919
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz",
13920
- "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==",
13921
- "dev": true,
13922
  "dependencies": {
13923
  "@polka/url": "^1.0.0-next.24",
13924
  "mrmime": "^2.0.0",
@@ -14045,8 +14147,7 @@
14045
  "node_modules/stackback": {
14046
  "version": "0.0.2",
14047
  "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
14048
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
14049
- "dev": true
14050
  },
14051
  "node_modules/static-eval": {
14052
  "version": "2.0.2",
@@ -14065,10 +14166,9 @@
14065
  }
14066
  },
14067
  "node_modules/std-env": {
14068
- "version": "3.8.0",
14069
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
14070
- "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
14071
- "dev": true,
14072
  "license": "MIT"
14073
  },
14074
  "node_modules/stdin-discarder": {
@@ -14422,7 +14522,6 @@
14422
  "version": "5.27.0",
14423
  "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.27.0.tgz",
14424
  "integrity": "sha512-Uai13Ydt1ZE+bUHme6b9U38PCYVNCqBRoBMkUKbFbKiD7kHWjdUUrklYAQZJxyKK81qII4mrBwe/YmvEMSlC9w==",
14425
- "dev": true,
14426
  "license": "MIT",
14427
  "dependencies": {
14428
  "@ampproject/remapping": "^2.3.0",
@@ -14567,7 +14666,6 @@
14567
  "version": "3.0.3",
14568
  "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
14569
  "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
14570
- "dev": true,
14571
  "license": "MIT",
14572
  "dependencies": {
14573
  "@types/estree": "^1.0.6"
@@ -14826,21 +14924,18 @@
14826
  "node_modules/tinybench": {
14827
  "version": "2.9.0",
14828
  "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
14829
- "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
14830
- "dev": true
14831
  },
14832
  "node_modules/tinyexec": {
14833
  "version": "0.3.2",
14834
  "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
14835
  "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
14836
- "dev": true,
14837
  "license": "MIT"
14838
  },
14839
  "node_modules/tinyglobby": {
14840
  "version": "0.2.13",
14841
  "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
14842
  "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
14843
- "dev": true,
14844
  "license": "MIT",
14845
  "dependencies": {
14846
  "fdir": "^6.4.4",
@@ -14857,7 +14952,6 @@
14857
  "version": "6.4.4",
14858
  "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
14859
  "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
14860
- "dev": true,
14861
  "license": "MIT",
14862
  "peerDependencies": {
14863
  "picomatch": "^3 || ^4"
@@ -14872,7 +14966,6 @@
14872
  "version": "4.0.2",
14873
  "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
14874
  "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
14875
- "dev": true,
14876
  "license": "MIT",
14877
  "engines": {
14878
  "node": ">=12"
@@ -14885,7 +14978,6 @@
14885
  "version": "1.0.2",
14886
  "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
14887
  "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
14888
- "dev": true,
14889
  "license": "MIT",
14890
  "engines": {
14891
  "node": "^18.0.0 || >=20.0.0"
@@ -14895,7 +14987,6 @@
14895
  "version": "2.0.0",
14896
  "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
14897
  "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
14898
- "dev": true,
14899
  "license": "MIT",
14900
  "engines": {
14901
  "node": ">=14.0.0"
@@ -14905,7 +14996,6 @@
14905
  "version": "3.0.2",
14906
  "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
14907
  "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
14908
- "dev": true,
14909
  "license": "MIT",
14910
  "engines": {
14911
  "node": ">=14.0.0"
@@ -14975,7 +15065,6 @@
14975
  "version": "3.0.1",
14976
  "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
14977
  "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
14978
- "dev": true,
14979
  "engines": {
14980
  "node": ">=6"
14981
  }
@@ -15393,7 +15482,6 @@
15393
  "version": "6.3.4",
15394
  "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz",
15395
  "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==",
15396
- "dev": true,
15397
  "license": "MIT",
15398
  "dependencies": {
15399
  "esbuild": "^0.25.0",
@@ -15465,15 +15553,14 @@
15465
  }
15466
  },
15467
  "node_modules/vite-node": {
15468
- "version": "3.0.9",
15469
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz",
15470
- "integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==",
15471
- "dev": true,
15472
  "license": "MIT",
15473
  "dependencies": {
15474
  "cac": "^6.7.14",
15475
  "debug": "^4.4.0",
15476
- "es-module-lexer": "^1.6.0",
15477
  "pathe": "^2.0.3",
15478
  "vite": "^5.0.0 || ^6.0.0"
15479
  },
@@ -15491,7 +15578,6 @@
15491
  "version": "4.4.0",
15492
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
15493
  "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
15494
- "dev": true,
15495
  "license": "MIT",
15496
  "dependencies": {
15497
  "ms": "^2.1.3"
@@ -15509,14 +15595,12 @@
15509
  "version": "2.0.3",
15510
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
15511
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
15512
- "dev": true,
15513
  "license": "MIT"
15514
  },
15515
  "node_modules/vite/node_modules/fdir": {
15516
  "version": "6.4.4",
15517
  "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
15518
  "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
15519
- "dev": true,
15520
  "license": "MIT",
15521
  "peerDependencies": {
15522
  "picomatch": "^3 || ^4"
@@ -15531,7 +15615,6 @@
15531
  "version": "2.3.3",
15532
  "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
15533
  "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
15534
- "dev": true,
15535
  "hasInstallScript": true,
15536
  "optional": true,
15537
  "os": [
@@ -15545,7 +15628,6 @@
15545
  "version": "4.0.2",
15546
  "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
15547
  "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
15548
- "dev": true,
15549
  "license": "MIT",
15550
  "engines": {
15551
  "node": ">=12"
@@ -15574,31 +15656,31 @@
15574
  }
15575
  },
15576
  "node_modules/vitest": {
15577
- "version": "3.0.9",
15578
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz",
15579
- "integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==",
15580
- "dev": true,
15581
  "license": "MIT",
15582
  "dependencies": {
15583
- "@vitest/expect": "3.0.9",
15584
- "@vitest/mocker": "3.0.9",
15585
- "@vitest/pretty-format": "^3.0.9",
15586
- "@vitest/runner": "3.0.9",
15587
- "@vitest/snapshot": "3.0.9",
15588
- "@vitest/spy": "3.0.9",
15589
- "@vitest/utils": "3.0.9",
15590
  "chai": "^5.2.0",
15591
  "debug": "^4.4.0",
15592
- "expect-type": "^1.1.0",
15593
  "magic-string": "^0.30.17",
15594
  "pathe": "^2.0.3",
15595
- "std-env": "^3.8.0",
15596
  "tinybench": "^2.9.0",
15597
  "tinyexec": "^0.3.2",
 
15598
  "tinypool": "^1.0.2",
15599
  "tinyrainbow": "^2.0.0",
15600
  "vite": "^5.0.0 || ^6.0.0",
15601
- "vite-node": "3.0.9",
15602
  "why-is-node-running": "^2.3.0"
15603
  },
15604
  "bin": {
@@ -15614,8 +15696,8 @@
15614
  "@edge-runtime/vm": "*",
15615
  "@types/debug": "^4.1.12",
15616
  "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
15617
- "@vitest/browser": "3.0.9",
15618
- "@vitest/ui": "3.0.9",
15619
  "happy-dom": "*",
15620
  "jsdom": "*"
15621
  },
@@ -15643,11 +15725,27 @@
15643
  }
15644
  }
15645
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15646
  "node_modules/vitest/node_modules/debug": {
15647
  "version": "4.4.0",
15648
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
15649
  "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
15650
- "dev": true,
15651
  "license": "MIT",
15652
  "dependencies": {
15653
  "ms": "^2.1.3"
@@ -15665,7 +15763,6 @@
15665
  "version": "2.0.3",
15666
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
15667
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
15668
- "dev": true,
15669
  "license": "MIT"
15670
  },
15671
  "node_modules/w3c-xmlserializer": {
@@ -15762,7 +15859,6 @@
15762
  "version": "2.3.0",
15763
  "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
15764
  "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
15765
- "dev": true,
15766
  "dependencies": {
15767
  "siginfo": "^2.0.0",
15768
  "stackback": "0.0.2"
@@ -15930,9 +16026,10 @@
15930
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
15931
  },
15932
  "node_modules/ws": {
15933
- "version": "8.18.0",
15934
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
15935
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
 
15936
  "engines": {
15937
  "node": ">=10.0.0"
15938
  },
@@ -16116,7 +16213,6 @@
16116
  "version": "1.1.2",
16117
  "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz",
16118
  "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==",
16119
- "dev": true,
16120
  "license": "MIT"
16121
  },
16122
  "node_modules/zod": {
 
56
  "tailwind-scrollbar": "^3.0.0",
57
  "tailwindcss": "^3.4.0",
58
  "uuid": "^10.0.0",
59
+ "vitest-browser-svelte": "^0.1.0",
60
  "zod": "^3.22.3"
61
  },
62
  "devDependencies": {
 
135
  "version": "2.3.0",
136
  "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
137
  "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
 
138
  "dependencies": {
139
  "@jridgewell/gen-mapping": "^0.3.5",
140
  "@jridgewell/trace-mapping": "^0.3.24"
 
1327
  "tslib": "^2.3.1"
1328
  }
1329
  },
1330
+ "node_modules/@babel/code-frame": {
1331
+ "version": "7.27.1",
1332
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
1333
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
1334
+ "license": "MIT",
1335
+ "peer": true,
1336
+ "dependencies": {
1337
+ "@babel/helper-validator-identifier": "^7.27.1",
1338
+ "js-tokens": "^4.0.0",
1339
+ "picocolors": "^1.1.1"
1340
+ },
1341
+ "engines": {
1342
+ "node": ">=6.9.0"
1343
+ }
1344
+ },
1345
+ "node_modules/@babel/helper-validator-identifier": {
1346
+ "version": "7.27.1",
1347
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
1348
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
1349
+ "license": "MIT",
1350
+ "peer": true,
1351
+ "engines": {
1352
+ "node": ">=6.9.0"
1353
+ }
1354
+ },
1355
  "node_modules/@babel/runtime": {
1356
  "version": "7.27.0",
1357
  "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz",
 
1486
  "cpu": [
1487
  "ppc64"
1488
  ],
 
1489
  "license": "MIT",
1490
  "optional": true,
1491
  "os": [
 
1502
  "cpu": [
1503
  "arm"
1504
  ],
 
1505
  "license": "MIT",
1506
  "optional": true,
1507
  "os": [
 
1518
  "cpu": [
1519
  "arm64"
1520
  ],
 
1521
  "license": "MIT",
1522
  "optional": true,
1523
  "os": [
 
1534
  "cpu": [
1535
  "x64"
1536
  ],
 
1537
  "license": "MIT",
1538
  "optional": true,
1539
  "os": [
 
1550
  "cpu": [
1551
  "arm64"
1552
  ],
 
1553
  "license": "MIT",
1554
  "optional": true,
1555
  "os": [
 
1566
  "cpu": [
1567
  "x64"
1568
  ],
 
1569
  "license": "MIT",
1570
  "optional": true,
1571
  "os": [
 
1582
  "cpu": [
1583
  "arm64"
1584
  ],
 
1585
  "license": "MIT",
1586
  "optional": true,
1587
  "os": [
 
1598
  "cpu": [
1599
  "x64"
1600
  ],
 
1601
  "license": "MIT",
1602
  "optional": true,
1603
  "os": [
 
1614
  "cpu": [
1615
  "arm"
1616
  ],
 
1617
  "license": "MIT",
1618
  "optional": true,
1619
  "os": [
 
1630
  "cpu": [
1631
  "arm64"
1632
  ],
 
1633
  "license": "MIT",
1634
  "optional": true,
1635
  "os": [
 
1646
  "cpu": [
1647
  "ia32"
1648
  ],
 
1649
  "license": "MIT",
1650
  "optional": true,
1651
  "os": [
 
1662
  "cpu": [
1663
  "loong64"
1664
  ],
 
1665
  "license": "MIT",
1666
  "optional": true,
1667
  "os": [
 
1678
  "cpu": [
1679
  "mips64el"
1680
  ],
 
1681
  "license": "MIT",
1682
  "optional": true,
1683
  "os": [
 
1694
  "cpu": [
1695
  "ppc64"
1696
  ],
 
1697
  "license": "MIT",
1698
  "optional": true,
1699
  "os": [
 
1710
  "cpu": [
1711
  "riscv64"
1712
  ],
 
1713
  "license": "MIT",
1714
  "optional": true,
1715
  "os": [
 
1726
  "cpu": [
1727
  "s390x"
1728
  ],
 
1729
  "license": "MIT",
1730
  "optional": true,
1731
  "os": [
 
1742
  "cpu": [
1743
  "x64"
1744
  ],
 
1745
  "license": "MIT",
1746
  "optional": true,
1747
  "os": [
 
1758
  "cpu": [
1759
  "arm64"
1760
  ],
 
1761
  "license": "MIT",
1762
  "optional": true,
1763
  "os": [
 
1774
  "cpu": [
1775
  "x64"
1776
  ],
 
1777
  "license": "MIT",
1778
  "optional": true,
1779
  "os": [
 
1790
  "cpu": [
1791
  "arm64"
1792
  ],
 
1793
  "license": "MIT",
1794
  "optional": true,
1795
  "os": [
 
1806
  "cpu": [
1807
  "x64"
1808
  ],
 
1809
  "license": "MIT",
1810
  "optional": true,
1811
  "os": [
 
1822
  "cpu": [
1823
  "x64"
1824
  ],
 
1825
  "license": "MIT",
1826
  "optional": true,
1827
  "os": [
 
1838
  "cpu": [
1839
  "arm64"
1840
  ],
 
1841
  "license": "MIT",
1842
  "optional": true,
1843
  "os": [
 
1854
  "cpu": [
1855
  "ia32"
1856
  ],
 
1857
  "license": "MIT",
1858
  "optional": true,
1859
  "os": [
 
1870
  "cpu": [
1871
  "x64"
1872
  ],
 
1873
  "license": "MIT",
1874
  "optional": true,
1875
  "os": [
 
3825
  "node_modules/@polka/url": {
3826
  "version": "1.0.0-next.28",
3827
  "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
3828
+ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw=="
 
3829
  },
3830
  "node_modules/@protobufjs/aspromise": {
3831
  "version": "1.1.2",
 
4269
  "cpu": [
4270
  "arm"
4271
  ],
 
4272
  "license": "MIT",
4273
  "optional": true,
4274
  "os": [
 
4282
  "cpu": [
4283
  "arm64"
4284
  ],
 
4285
  "license": "MIT",
4286
  "optional": true,
4287
  "os": [
 
4295
  "cpu": [
4296
  "arm64"
4297
  ],
 
4298
  "license": "MIT",
4299
  "optional": true,
4300
  "os": [
 
4308
  "cpu": [
4309
  "x64"
4310
  ],
 
4311
  "license": "MIT",
4312
  "optional": true,
4313
  "os": [
 
4321
  "cpu": [
4322
  "arm64"
4323
  ],
 
4324
  "license": "MIT",
4325
  "optional": true,
4326
  "os": [
 
4334
  "cpu": [
4335
  "x64"
4336
  ],
 
4337
  "license": "MIT",
4338
  "optional": true,
4339
  "os": [
 
4347
  "cpu": [
4348
  "arm"
4349
  ],
 
4350
  "license": "MIT",
4351
  "optional": true,
4352
  "os": [
 
4360
  "cpu": [
4361
  "arm"
4362
  ],
 
4363
  "license": "MIT",
4364
  "optional": true,
4365
  "os": [
 
4373
  "cpu": [
4374
  "arm64"
4375
  ],
 
4376
  "license": "MIT",
4377
  "optional": true,
4378
  "os": [
 
4386
  "cpu": [
4387
  "arm64"
4388
  ],
 
4389
  "license": "MIT",
4390
  "optional": true,
4391
  "os": [
 
4399
  "cpu": [
4400
  "loong64"
4401
  ],
 
4402
  "license": "MIT",
4403
  "optional": true,
4404
  "os": [
 
4412
  "cpu": [
4413
  "ppc64"
4414
  ],
 
4415
  "license": "MIT",
4416
  "optional": true,
4417
  "os": [
 
4425
  "cpu": [
4426
  "riscv64"
4427
  ],
 
4428
  "license": "MIT",
4429
  "optional": true,
4430
  "os": [
 
4438
  "cpu": [
4439
  "riscv64"
4440
  ],
 
4441
  "license": "MIT",
4442
  "optional": true,
4443
  "os": [
 
4451
  "cpu": [
4452
  "s390x"
4453
  ],
 
4454
  "license": "MIT",
4455
  "optional": true,
4456
  "os": [
 
4464
  "cpu": [
4465
  "x64"
4466
  ],
 
4467
  "license": "MIT",
4468
  "optional": true,
4469
  "os": [
 
4477
  "cpu": [
4478
  "x64"
4479
  ],
 
4480
  "license": "MIT",
4481
  "optional": true,
4482
  "os": [
 
4490
  "cpu": [
4491
  "arm64"
4492
  ],
 
4493
  "license": "MIT",
4494
  "optional": true,
4495
  "os": [
 
4503
  "cpu": [
4504
  "ia32"
4505
  ],
 
4506
  "license": "MIT",
4507
  "optional": true,
4508
  "os": [
 
4516
  "cpu": [
4517
  "x64"
4518
  ],
 
4519
  "license": "MIT",
4520
  "optional": true,
4521
  "os": [
 
5153
  "version": "1.0.5",
5154
  "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz",
5155
  "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==",
 
5156
  "license": "MIT",
5157
  "peerDependencies": {
5158
  "acorn": "^8.9.0"
 
5278
  "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20"
5279
  }
5280
  },
5281
+ "node_modules/@testing-library/dom": {
5282
+ "version": "10.4.0",
5283
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
5284
+ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
5285
+ "license": "MIT",
5286
+ "peer": true,
5287
+ "dependencies": {
5288
+ "@babel/code-frame": "^7.10.4",
5289
+ "@babel/runtime": "^7.12.5",
5290
+ "@types/aria-query": "^5.0.1",
5291
+ "aria-query": "5.3.0",
5292
+ "chalk": "^4.1.0",
5293
+ "dom-accessibility-api": "^0.5.9",
5294
+ "lz-string": "^1.5.0",
5295
+ "pretty-format": "^27.0.2"
5296
+ },
5297
+ "engines": {
5298
+ "node": ">=18"
5299
+ }
5300
+ },
5301
+ "node_modules/@testing-library/dom/node_modules/aria-query": {
5302
+ "version": "5.3.0",
5303
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
5304
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
5305
+ "license": "Apache-2.0",
5306
+ "peer": true,
5307
+ "dependencies": {
5308
+ "dequal": "^2.0.3"
5309
+ }
5310
+ },
5311
+ "node_modules/@testing-library/user-event": {
5312
+ "version": "14.6.1",
5313
+ "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz",
5314
+ "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==",
5315
+ "license": "MIT",
5316
+ "peer": true,
5317
+ "engines": {
5318
+ "node": ">=12",
5319
+ "npm": ">=6"
5320
+ },
5321
+ "peerDependencies": {
5322
+ "@testing-library/dom": ">=7.21.4"
5323
+ }
5324
+ },
5325
  "node_modules/@tinyhttp/content-disposition": {
5326
  "version": "2.2.2",
5327
  "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.2.tgz",
 
5373
  "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
5374
  "devOptional": true
5375
  },
5376
+ "node_modules/@types/aria-query": {
5377
+ "version": "5.0.4",
5378
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
5379
+ "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
5380
+ "license": "MIT",
5381
+ "peer": true
5382
+ },
5383
  "node_modules/@types/aws-lambda": {
5384
  "version": "8.10.148",
5385
  "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.148.tgz",
 
5434
  "version": "1.0.7",
5435
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
5436
  "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
 
5437
  "license": "MIT"
5438
  },
5439
  "node_modules/@types/eventsource": {
 
5894
  "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
5895
  "dev": true
5896
  },
5897
+ "node_modules/@vitest/browser": {
5898
+ "version": "3.1.4",
5899
+ "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.1.4.tgz",
5900
+ "integrity": "sha512-2L4vR/tuUZBxKU72Qe+unIp1P8lZ0T5nlqPegkXxyZFR5gWqItV8VPPR261GOzl49Zw2AhzMABzMMHJagQ0a2g==",
5901
+ "license": "MIT",
5902
+ "peer": true,
5903
+ "dependencies": {
5904
+ "@testing-library/dom": "^10.4.0",
5905
+ "@testing-library/user-event": "^14.6.1",
5906
+ "@vitest/mocker": "3.1.4",
5907
+ "@vitest/utils": "3.1.4",
5908
+ "magic-string": "^0.30.17",
5909
+ "sirv": "^3.0.1",
5910
+ "tinyrainbow": "^2.0.0",
5911
+ "ws": "^8.18.1"
5912
+ },
5913
+ "funding": {
5914
+ "url": "https://opencollective.com/vitest"
5915
+ },
5916
+ "peerDependencies": {
5917
+ "playwright": "*",
5918
+ "vitest": "3.1.4",
5919
+ "webdriverio": "^7.0.0 || ^8.0.0 || ^9.0.0"
5920
+ },
5921
+ "peerDependenciesMeta": {
5922
+ "playwright": {
5923
+ "optional": true
5924
+ },
5925
+ "safaridriver": {
5926
+ "optional": true
5927
+ },
5928
+ "webdriverio": {
5929
+ "optional": true
5930
+ }
5931
+ }
5932
+ },
5933
  "node_modules/@vitest/expect": {
5934
+ "version": "3.1.4",
5935
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.4.tgz",
5936
+ "integrity": "sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==",
 
5937
  "license": "MIT",
5938
  "dependencies": {
5939
+ "@vitest/spy": "3.1.4",
5940
+ "@vitest/utils": "3.1.4",
5941
  "chai": "^5.2.0",
5942
  "tinyrainbow": "^2.0.0"
5943
  },
 
5946
  }
5947
  },
5948
  "node_modules/@vitest/mocker": {
5949
+ "version": "3.1.4",
5950
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.4.tgz",
5951
+ "integrity": "sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==",
 
5952
  "license": "MIT",
5953
  "dependencies": {
5954
+ "@vitest/spy": "3.1.4",
5955
  "estree-walker": "^3.0.3",
5956
  "magic-string": "^0.30.17"
5957
  },
 
5975
  "version": "3.0.3",
5976
  "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
5977
  "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
 
5978
  "license": "MIT",
5979
  "dependencies": {
5980
  "@types/estree": "^1.0.0"
5981
  }
5982
  },
5983
  "node_modules/@vitest/pretty-format": {
5984
+ "version": "3.1.4",
5985
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.4.tgz",
5986
+ "integrity": "sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==",
 
5987
  "license": "MIT",
5988
  "dependencies": {
5989
  "tinyrainbow": "^2.0.0"
 
5993
  }
5994
  },
5995
  "node_modules/@vitest/runner": {
5996
+ "version": "3.1.4",
5997
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.4.tgz",
5998
+ "integrity": "sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==",
 
5999
  "license": "MIT",
6000
  "dependencies": {
6001
+ "@vitest/utils": "3.1.4",
6002
  "pathe": "^2.0.3"
6003
  },
6004
  "funding": {
 
6009
  "version": "2.0.3",
6010
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
6011
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
 
6012
  "license": "MIT"
6013
  },
6014
  "node_modules/@vitest/snapshot": {
6015
+ "version": "3.1.4",
6016
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.4.tgz",
6017
+ "integrity": "sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==",
 
6018
  "license": "MIT",
6019
  "dependencies": {
6020
+ "@vitest/pretty-format": "3.1.4",
6021
  "magic-string": "^0.30.17",
6022
  "pathe": "^2.0.3"
6023
  },
 
6029
  "version": "2.0.3",
6030
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
6031
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
 
6032
  "license": "MIT"
6033
  },
6034
  "node_modules/@vitest/spy": {
6035
+ "version": "3.1.4",
6036
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.4.tgz",
6037
+ "integrity": "sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==",
 
6038
  "license": "MIT",
6039
  "dependencies": {
6040
  "tinyspy": "^3.0.2"
 
6044
  }
6045
  },
6046
  "node_modules/@vitest/utils": {
6047
+ "version": "3.1.4",
6048
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.4.tgz",
6049
+ "integrity": "sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==",
 
6050
  "license": "MIT",
6051
  "dependencies": {
6052
+ "@vitest/pretty-format": "3.1.4",
6053
  "loupe": "^3.1.3",
6054
  "tinyrainbow": "^2.0.0"
6055
  },
 
6090
  "version": "8.12.1",
6091
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
6092
  "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
 
6093
  "bin": {
6094
  "acorn": "bin/acorn"
6095
  },
 
6262
  "version": "5.3.2",
6263
  "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
6264
  "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
 
6265
  "license": "Apache-2.0",
6266
  "engines": {
6267
  "node": ">= 0.4"
 
6285
  "version": "2.0.1",
6286
  "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
6287
  "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
 
6288
  "license": "MIT",
6289
  "engines": {
6290
  "node": ">=12"
 
6418
  "version": "4.1.0",
6419
  "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
6420
  "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
 
6421
  "engines": {
6422
  "node": ">= 0.4"
6423
  }
 
6679
  "version": "6.7.14",
6680
  "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
6681
  "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
 
6682
  "engines": {
6683
  "node": ">=8"
6684
  }
 
6774
  "version": "5.2.0",
6775
  "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
6776
  "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
 
6777
  "license": "MIT",
6778
  "dependencies": {
6779
  "assertion-error": "^2.0.1",
 
6805
  "version": "2.1.1",
6806
  "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
6807
  "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
 
6808
  "license": "MIT",
6809
  "engines": {
6810
  "node": ">= 16"
 
7027
  "version": "2.1.1",
7028
  "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
7029
  "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
 
7030
  "license": "MIT",
7031
  "engines": {
7032
  "node": ">=6"
 
7456
  "version": "5.0.2",
7457
  "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
7458
  "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
 
7459
  "license": "MIT",
7460
  "engines": {
7461
  "node": ">=6"
 
7507
  "node": ">= 0.8"
7508
  }
7509
  },
7510
+ "node_modules/dequal": {
7511
+ "version": "2.0.3",
7512
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
7513
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
7514
+ "license": "MIT",
7515
+ "peer": true,
7516
+ "engines": {
7517
+ "node": ">=6"
7518
+ }
7519
+ },
7520
  "node_modules/destroy": {
7521
  "version": "1.2.0",
7522
  "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
 
7583
  "node": ">=6.0.0"
7584
  }
7585
  },
7586
+ "node_modules/dom-accessibility-api": {
7587
+ "version": "0.5.16",
7588
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
7589
+ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
7590
+ "license": "MIT",
7591
+ "peer": true
7592
+ },
7593
  "node_modules/dom-serializer": {
7594
  "version": "2.0.0",
7595
  "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
 
7784
  }
7785
  },
7786
  "node_modules/es-module-lexer": {
7787
+ "version": "1.7.0",
7788
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
7789
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
 
7790
  "license": "MIT"
7791
  },
7792
  "node_modules/es-object-atoms": {
 
7805
  "version": "0.25.1",
7806
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
7807
  "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
 
7808
  "hasInstallScript": true,
7809
  "license": "MIT",
7810
  "bin": {
 
8137
  "version": "1.2.2",
8138
  "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
8139
  "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
 
8140
  "license": "MIT"
8141
  },
8142
  "node_modules/espree": {
 
8184
  "version": "1.4.6",
8185
  "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.6.tgz",
8186
  "integrity": "sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==",
 
8187
  "license": "MIT",
8188
  "dependencies": {
8189
  "@jridgewell/sourcemap-codec": "^1.4.15"
 
8315
  }
8316
  },
8317
  "node_modules/expect-type": {
8318
+ "version": "1.2.1",
8319
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz",
8320
+ "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==",
 
8321
  "license": "Apache-2.0",
8322
  "engines": {
8323
  "node": ">=12.0.0"
 
10136
  "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==",
10137
  "optional": true
10138
  },
10139
+ "node_modules/js-tokens": {
10140
+ "version": "4.0.0",
10141
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
10142
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
10143
+ "license": "MIT",
10144
+ "peer": true
10145
+ },
10146
  "node_modules/js-yaml": {
10147
  "version": "4.1.0",
10148
  "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
 
10566
  "node_modules/locate-character": {
10567
  "version": "3.0.0",
10568
  "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
10569
+ "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
 
10570
  },
10571
  "node_modules/locate-path": {
10572
  "version": "6.0.0",
 
10750
  "version": "3.1.3",
10751
  "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
10752
  "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
 
10753
  "license": "MIT"
10754
  },
10755
  "node_modules/lowdb": {
 
10779
  "node": ">=10"
10780
  }
10781
  },
10782
+ "node_modules/lz-string": {
10783
+ "version": "1.5.0",
10784
+ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
10785
+ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
10786
+ "license": "MIT",
10787
+ "peer": true,
10788
+ "bin": {
10789
+ "lz-string": "bin/bin.js"
10790
+ }
10791
+ },
10792
  "node_modules/lzo": {
10793
  "version": "0.4.11",
10794
  "resolved": "https://registry.npmjs.org/lzo/-/lzo-0.4.11.tgz",
 
10803
  "version": "0.30.17",
10804
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
10805
  "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
 
10806
  "license": "MIT",
10807
  "dependencies": {
10808
  "@jridgewell/sourcemap-codec": "^1.5.0"
 
11371
  "version": "2.0.0",
11372
  "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
11373
  "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
 
11374
  "engines": {
11375
  "node": ">=10"
11376
  }
 
12425
  "version": "2.0.0",
12426
  "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
12427
  "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
 
12428
  "license": "MIT",
12429
  "engines": {
12430
  "node": ">= 14.16"
 
13029
  "url": "https://github.com/sponsors/sindresorhus"
13030
  }
13031
  },
13032
+ "node_modules/pretty-format": {
13033
+ "version": "27.5.1",
13034
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
13035
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
13036
+ "license": "MIT",
13037
+ "peer": true,
13038
+ "dependencies": {
13039
+ "ansi-regex": "^5.0.1",
13040
+ "ansi-styles": "^5.0.0",
13041
+ "react-is": "^17.0.1"
13042
+ },
13043
+ "engines": {
13044
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
13045
+ }
13046
+ },
13047
+ "node_modules/pretty-format/node_modules/ansi-styles": {
13048
+ "version": "5.2.0",
13049
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
13050
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
13051
+ "license": "MIT",
13052
+ "peer": true,
13053
+ "engines": {
13054
+ "node": ">=10"
13055
+ },
13056
+ "funding": {
13057
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
13058
+ }
13059
+ },
13060
  "node_modules/pretty-ms": {
13061
  "version": "9.2.0",
13062
  "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz",
 
13310
  "node": ">=0.10.0"
13311
  }
13312
  },
13313
+ "node_modules/react-is": {
13314
+ "version": "17.0.2",
13315
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
13316
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
13317
+ "license": "MIT",
13318
+ "peer": true
13319
+ },
13320
  "node_modules/read-cache": {
13321
  "version": "1.0.0",
13322
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
 
13518
  "version": "4.40.1",
13519
  "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz",
13520
  "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==",
 
13521
  "license": "MIT",
13522
  "dependencies": {
13523
  "@types/estree": "1.0.7"
 
13979
  "node_modules/siginfo": {
13980
  "version": "2.0.0",
13981
  "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
13982
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="
 
13983
  },
13984
  "node_modules/signal-exit": {
13985
  "version": "4.1.0",
 
14017
  }
14018
  },
14019
  "node_modules/sirv": {
14020
+ "version": "3.0.1",
14021
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz",
14022
+ "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==",
14023
+ "license": "MIT",
14024
  "dependencies": {
14025
  "@polka/url": "^1.0.0-next.24",
14026
  "mrmime": "^2.0.0",
 
14147
  "node_modules/stackback": {
14148
  "version": "0.0.2",
14149
  "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
14150
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="
 
14151
  },
14152
  "node_modules/static-eval": {
14153
  "version": "2.0.2",
 
14166
  }
14167
  },
14168
  "node_modules/std-env": {
14169
+ "version": "3.9.0",
14170
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
14171
+ "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
 
14172
  "license": "MIT"
14173
  },
14174
  "node_modules/stdin-discarder": {
 
14522
  "version": "5.27.0",
14523
  "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.27.0.tgz",
14524
  "integrity": "sha512-Uai13Ydt1ZE+bUHme6b9U38PCYVNCqBRoBMkUKbFbKiD7kHWjdUUrklYAQZJxyKK81qII4mrBwe/YmvEMSlC9w==",
 
14525
  "license": "MIT",
14526
  "dependencies": {
14527
  "@ampproject/remapping": "^2.3.0",
 
14666
  "version": "3.0.3",
14667
  "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
14668
  "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
 
14669
  "license": "MIT",
14670
  "dependencies": {
14671
  "@types/estree": "^1.0.6"
 
14924
  "node_modules/tinybench": {
14925
  "version": "2.9.0",
14926
  "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
14927
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="
 
14928
  },
14929
  "node_modules/tinyexec": {
14930
  "version": "0.3.2",
14931
  "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
14932
  "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
 
14933
  "license": "MIT"
14934
  },
14935
  "node_modules/tinyglobby": {
14936
  "version": "0.2.13",
14937
  "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
14938
  "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
 
14939
  "license": "MIT",
14940
  "dependencies": {
14941
  "fdir": "^6.4.4",
 
14952
  "version": "6.4.4",
14953
  "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
14954
  "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
 
14955
  "license": "MIT",
14956
  "peerDependencies": {
14957
  "picomatch": "^3 || ^4"
 
14966
  "version": "4.0.2",
14967
  "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
14968
  "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
 
14969
  "license": "MIT",
14970
  "engines": {
14971
  "node": ">=12"
 
14978
  "version": "1.0.2",
14979
  "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
14980
  "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
 
14981
  "license": "MIT",
14982
  "engines": {
14983
  "node": "^18.0.0 || >=20.0.0"
 
14987
  "version": "2.0.0",
14988
  "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
14989
  "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
 
14990
  "license": "MIT",
14991
  "engines": {
14992
  "node": ">=14.0.0"
 
14996
  "version": "3.0.2",
14997
  "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
14998
  "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
 
14999
  "license": "MIT",
15000
  "engines": {
15001
  "node": ">=14.0.0"
 
15065
  "version": "3.0.1",
15066
  "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
15067
  "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
 
15068
  "engines": {
15069
  "node": ">=6"
15070
  }
 
15482
  "version": "6.3.4",
15483
  "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz",
15484
  "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==",
 
15485
  "license": "MIT",
15486
  "dependencies": {
15487
  "esbuild": "^0.25.0",
 
15553
  }
15554
  },
15555
  "node_modules/vite-node": {
15556
+ "version": "3.1.4",
15557
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.4.tgz",
15558
+ "integrity": "sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==",
 
15559
  "license": "MIT",
15560
  "dependencies": {
15561
  "cac": "^6.7.14",
15562
  "debug": "^4.4.0",
15563
+ "es-module-lexer": "^1.7.0",
15564
  "pathe": "^2.0.3",
15565
  "vite": "^5.0.0 || ^6.0.0"
15566
  },
 
15578
  "version": "4.4.0",
15579
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
15580
  "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
 
15581
  "license": "MIT",
15582
  "dependencies": {
15583
  "ms": "^2.1.3"
 
15595
  "version": "2.0.3",
15596
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
15597
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
 
15598
  "license": "MIT"
15599
  },
15600
  "node_modules/vite/node_modules/fdir": {
15601
  "version": "6.4.4",
15602
  "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
15603
  "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
 
15604
  "license": "MIT",
15605
  "peerDependencies": {
15606
  "picomatch": "^3 || ^4"
 
15615
  "version": "2.3.3",
15616
  "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
15617
  "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
 
15618
  "hasInstallScript": true,
15619
  "optional": true,
15620
  "os": [
 
15628
  "version": "4.0.2",
15629
  "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
15630
  "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
 
15631
  "license": "MIT",
15632
  "engines": {
15633
  "node": ">=12"
 
15656
  }
15657
  },
15658
  "node_modules/vitest": {
15659
+ "version": "3.1.4",
15660
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.4.tgz",
15661
+ "integrity": "sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==",
 
15662
  "license": "MIT",
15663
  "dependencies": {
15664
+ "@vitest/expect": "3.1.4",
15665
+ "@vitest/mocker": "3.1.4",
15666
+ "@vitest/pretty-format": "^3.1.4",
15667
+ "@vitest/runner": "3.1.4",
15668
+ "@vitest/snapshot": "3.1.4",
15669
+ "@vitest/spy": "3.1.4",
15670
+ "@vitest/utils": "3.1.4",
15671
  "chai": "^5.2.0",
15672
  "debug": "^4.4.0",
15673
+ "expect-type": "^1.2.1",
15674
  "magic-string": "^0.30.17",
15675
  "pathe": "^2.0.3",
15676
+ "std-env": "^3.9.0",
15677
  "tinybench": "^2.9.0",
15678
  "tinyexec": "^0.3.2",
15679
+ "tinyglobby": "^0.2.13",
15680
  "tinypool": "^1.0.2",
15681
  "tinyrainbow": "^2.0.0",
15682
  "vite": "^5.0.0 || ^6.0.0",
15683
+ "vite-node": "3.1.4",
15684
  "why-is-node-running": "^2.3.0"
15685
  },
15686
  "bin": {
 
15696
  "@edge-runtime/vm": "*",
15697
  "@types/debug": "^4.1.12",
15698
  "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
15699
+ "@vitest/browser": "3.1.4",
15700
+ "@vitest/ui": "3.1.4",
15701
  "happy-dom": "*",
15702
  "jsdom": "*"
15703
  },
 
15725
  }
15726
  }
15727
  },
15728
+ "node_modules/vitest-browser-svelte": {
15729
+ "version": "0.1.0",
15730
+ "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-0.1.0.tgz",
15731
+ "integrity": "sha512-YB6ZUZZQNqU1T9NzvTEDpwpPv35Ng1NZMPBh81zDrLEdOgROGE6nJb79NWb1Eu/a8VkHifqArpOZfJfALge6xQ==",
15732
+ "license": "MIT",
15733
+ "engines": {
15734
+ "node": "^18.0.0 || >=20.0.0"
15735
+ },
15736
+ "funding": {
15737
+ "url": "https://opencollective.com/vitest"
15738
+ },
15739
+ "peerDependencies": {
15740
+ "@vitest/browser": "^2.1.0 || ^3.0.0-0",
15741
+ "svelte": ">3.0.0",
15742
+ "vitest": "^2.1.0 || ^3.0.0-0"
15743
+ }
15744
+ },
15745
  "node_modules/vitest/node_modules/debug": {
15746
  "version": "4.4.0",
15747
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
15748
  "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
 
15749
  "license": "MIT",
15750
  "dependencies": {
15751
  "ms": "^2.1.3"
 
15763
  "version": "2.0.3",
15764
  "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
15765
  "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
 
15766
  "license": "MIT"
15767
  },
15768
  "node_modules/w3c-xmlserializer": {
 
15859
  "version": "2.3.0",
15860
  "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
15861
  "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
 
15862
  "dependencies": {
15863
  "siginfo": "^2.0.0",
15864
  "stackback": "0.0.2"
 
16026
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
16027
  },
16028
  "node_modules/ws": {
16029
+ "version": "8.18.2",
16030
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz",
16031
+ "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==",
16032
+ "license": "MIT",
16033
  "engines": {
16034
  "node": ">=10.0.0"
16035
  },
 
16213
  "version": "1.1.2",
16214
  "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz",
16215
  "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==",
 
16216
  "license": "MIT"
16217
  },
16218
  "node_modules/zod": {
package.json CHANGED
@@ -117,6 +117,7 @@
117
  "tailwind-scrollbar": "^3.0.0",
118
  "tailwindcss": "^3.4.0",
119
  "uuid": "^10.0.0",
 
120
  "zod": "^3.22.3"
121
  },
122
  "optionalDependencies": {
 
117
  "tailwind-scrollbar": "^3.0.0",
118
  "tailwindcss": "^3.4.0",
119
  "uuid": "^10.0.0",
120
+ "vitest-browser-svelte": "^0.1.0",
121
  "zod": "^3.22.3"
122
  },
123
  "optionalDependencies": {
scripts/setups/vitest-setup-client.ts ADDED
File without changes
scripts/{setupTest.ts → setups/vitest-setup-server.ts} RENAMED
@@ -6,7 +6,7 @@ import { MongoMemoryServer } from "mongodb-memory-server";
6
 
7
  let mongoServer: MongoMemoryServer;
8
  // Load the .env file
9
- const envPath = resolve(__dirname, "../.env");
10
  dotenv.config({ path: envPath });
11
 
12
  // Read the .env file content
 
6
 
7
  let mongoServer: MongoMemoryServer;
8
  // Load the .env file
9
+ const envPath = resolve(__dirname, "../../.env");
10
  dotenv.config({ path: envPath });
11
 
12
  // Read the .env file content
scripts/updateLocalEnv.ts CHANGED
@@ -11,7 +11,17 @@ let PUBLIC_CONFIG = "";
11
 
12
  Object.entries(vars)
13
  // filter keys used in prod with the proxy
14
- .filter(([key]) => !["XFF_DEPTH", "ADDRESS_HEADER"].includes(key))
 
 
 
 
 
 
 
 
 
 
15
  .forEach(([key, value]) => {
16
  PUBLIC_CONFIG += `${key}=\`${value}\`\n`;
17
  });
 
11
 
12
  Object.entries(vars)
13
  // filter keys used in prod with the proxy
14
+ .filter(
15
+ ([key]) =>
16
+ ![
17
+ "XFF_DEPTH",
18
+ "ADDRESS_HEADER",
19
+ "APP_BASE",
20
+ "PUBLIC_ORIGIN",
21
+ "PUBLIC_SHARE_PREFIX",
22
+ "ADMIN_CLI_LOGIN",
23
+ ].includes(key)
24
+ )
25
  .forEach(([key, value]) => {
26
  PUBLIC_CONFIG += `${key}=\`${value}\`\n`;
27
  });
src/lib/components/chat/MarkdownRenderer.svelte.test.ts ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import MarkdownRenderer from "./MarkdownRenderer.svelte";
2
+ import { render } from "vitest-browser-svelte";
3
+ import { page } from "@vitest/browser/context";
4
+
5
+ import { describe, expect, it } from "vitest";
6
+
7
+ describe("MarkdownRenderer", () => {
8
+ it("renders", () => {
9
+ render(MarkdownRenderer, { content: "Hello, world!" });
10
+ expect(page.getByText("Hello, world!")).toBeInTheDocument();
11
+ });
12
+ it("renders headings", () => {
13
+ render(MarkdownRenderer, { content: "# Hello, world!" });
14
+ expect(page.getByRole("heading", { level: 1 })).toBeInTheDocument();
15
+ });
16
+ it("renders links", () => {
17
+ render(MarkdownRenderer, { content: "[Hello, world!](https://example.com)" });
18
+ const link = page.getByRole("link", { name: "Hello, world!" });
19
+ expect(link).toBeInTheDocument();
20
+ expect(link).toHaveAttribute("href", "https://example.com");
21
+ expect(link).toHaveAttribute("target", "_blank");
22
+ expect(link).toHaveAttribute("rel", "noreferrer");
23
+ });
24
+ it("renders inline codespans", () => {
25
+ render(MarkdownRenderer, { content: "`foobar`" });
26
+ expect(page.getByRole("code")).toHaveTextContent("foobar");
27
+ });
28
+ it("renders block codes", () => {
29
+ render(MarkdownRenderer, { content: "```foobar```" });
30
+ expect(page.getByRole("code")).toHaveTextContent("foobar");
31
+ });
32
+ it("renders sources correctly", () => {
33
+ const props = {
34
+ content: "Hello there [1]",
35
+ sources: [
36
+ {
37
+ title: "foo",
38
+ link: "https://example.com",
39
+ },
40
+ ],
41
+ };
42
+ render(MarkdownRenderer, props);
43
+
44
+ const link = page.getByRole("link");
45
+ expect(link).toBeInTheDocument();
46
+ expect(link).toHaveAttribute("href", "https://example.com");
47
+ expect(link).toHaveAttribute("target", "_blank");
48
+ expect(link).toHaveAttribute("rel", "noreferrer");
49
+ });
50
+ it("handles groups of sources", () => {
51
+ render(MarkdownRenderer, {
52
+ content: "Hello there [1], [2], [3]",
53
+ sources: [
54
+ {
55
+ title: "foo",
56
+ link: "https://foo.com",
57
+ },
58
+ {
59
+ title: "bar",
60
+ link: "https://bar.com",
61
+ },
62
+ {
63
+ title: "baz",
64
+ link: "https://baz.com",
65
+ },
66
+ ],
67
+ });
68
+ expect(page.getByRole("link").all()).toHaveLength(3);
69
+ expect(page.getByRole("link").nth(0)).toHaveAttribute("href", "https://foo.com");
70
+ expect(page.getByRole("link").nth(1)).toHaveAttribute("href", "https://bar.com");
71
+ expect(page.getByRole("link").nth(2)).toHaveAttribute("href", "https://baz.com");
72
+ });
73
+ it("does not render sources in code blocks", () => {
74
+ render(MarkdownRenderer, {
75
+ content: "```\narray[1]\n```",
76
+ sources: [
77
+ {
78
+ title: "foo",
79
+ link: "https://example.com",
80
+ },
81
+ ],
82
+ });
83
+ const linkSelector = page.getByRole("link");
84
+ expect(linkSelector.elements).toHaveLength(0);
85
+ });
86
+ it("doesnt render raw html directly", () => {
87
+ render(MarkdownRenderer, { content: "<button>Click me</button>" });
88
+ expect(page.getByRole("button").elements).toHaveLength(0);
89
+ expect(page.getByRole("paragraph")).toHaveTextContent("<button>Click me</button>");
90
+ });
91
+ it("renders latex", () => {
92
+ const { baseElement } = render(MarkdownRenderer, { content: "$(oo)^2$" });
93
+ expect(baseElement.querySelectorAll(".katex")).toHaveLength(1);
94
+ });
95
+ it("does not render latex in code blocks", () => {
96
+ const { baseElement } = render(MarkdownRenderer, { content: "```\n$(oo)^2$\n```" });
97
+ expect(baseElement.querySelectorAll(".katex")).toHaveLength(0);
98
+ });
99
+ it("does not render latex in inline codes", () => {
100
+ const { baseElement } = render(MarkdownRenderer, { content: "`$oo` and `$bar`" });
101
+ expect(baseElement.querySelectorAll(".katex")).toHaveLength(0);
102
+ });
103
+ it("does not render latex across multiple lines", () => {
104
+ const { baseElement } = render(MarkdownRenderer, { content: "* $oo \n* $aa" });
105
+ expect(baseElement.querySelectorAll(".katex")).toHaveLength(0);
106
+ });
107
+ it("renders latex with some < and > symbols", () => {
108
+ const { baseElement } = render(MarkdownRenderer, { content: "$foo < bar > baz$" });
109
+ expect(baseElement.querySelectorAll(".katex")).toHaveLength(1);
110
+ });
111
+ });
vite.config.ts CHANGED
@@ -94,13 +94,44 @@ export default defineConfig({
94
  optimizeDeps: {
95
  include: ["uuid", "@huggingface/transformers", "sharp", "@gradio/client", "clsx"],
96
  },
97
- server: {
98
- open: "/",
99
- },
100
  test: {
101
- setupFiles: ["./scripts/setupTest.ts"],
102
- deps: { inline: ["@sveltejs/kit"] },
103
- globals: true,
104
- testTimeout: 10000,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  },
106
  });
 
94
  optimizeDeps: {
95
  include: ["uuid", "@huggingface/transformers", "sharp", "@gradio/client", "clsx"],
96
  },
 
 
 
97
  test: {
98
+ workspace: [
99
+ {
100
+ // Client-side tests (Svelte components)
101
+ extends: "./vite.config.ts",
102
+ test: {
103
+ name: "client",
104
+ environment: "browser",
105
+ browser: {
106
+ enabled: true,
107
+ provider: "playwright",
108
+ instances: [{ browser: "chromium", headless: true }],
109
+ },
110
+ include: ["src/**/*.svelte.{test,spec}.{js,ts}"],
111
+ exclude: ["src/lib/server/**", "src/**/*.ssr.{test,spec}.{js,ts}"],
112
+ setupFiles: ["./scripts/setups/vitest-setup-client.ts"],
113
+ },
114
+ },
115
+ {
116
+ // SSR tests (Server-side rendering)
117
+ extends: "./vite.config.ts",
118
+ test: {
119
+ name: "ssr",
120
+ environment: "node",
121
+ include: ["src/**/*.ssr.{test,spec}.{js,ts}"],
122
+ },
123
+ },
124
+ {
125
+ // Server-side tests (Node.js utilities)
126
+ extends: "./vite.config.ts",
127
+ test: {
128
+ name: "server",
129
+ environment: "node",
130
+ include: ["src/**/*.{test,spec}.{js,ts}"],
131
+ exclude: ["src/**/*.svelte.{test,spec}.{js,ts}", "src/**/*.ssr.{test,spec}.{js,ts}"],
132
+ setupFiles: ["./scripts/setups/vitest-setup-server.ts"],
133
+ },
134
+ },
135
+ ],
136
  },
137
  });