+5
.changeset/six-chicken-float.md
+5
.changeset/six-chicken-float.md
+3
.github/workflows/ci.yml
+3
.github/workflows/ci.yml
+12
-2
package.json
+12
-2
package.json
···
14
14
"dist/"
15
15
],
16
16
"scripts": {
17
+
"test": "vitest run",
17
18
"build": "rollup -c ./scripts/rollup.config.mjs",
18
19
"postbuild": "tsc --noEmit ./dist/fiber-dev.d.ts",
19
20
"check": "tsc --noEmit",
20
21
"clean": "rimraf dist node_modules/.cache",
21
-
"prepublishOnly": "run-s clean build check",
22
+
"prepublishOnly": "run-s clean build check test",
22
23
"prepare": "node ./scripts/prepare.js || true",
23
24
"changeset:version": "changeset version && pnpm install --lockfile-only",
24
25
"changeset:publish": "changeset publish"
···
64
65
"rollup": "^4.32.1",
65
66
"rollup-plugin-cjs-check": "^1.0.3",
66
67
"rollup-plugin-dts": "^6.1.1",
67
-
"typescript": "^5.7.3"
68
+
"typescript": "^5.7.3",
69
+
"vitest": "^3.0.8"
68
70
},
69
71
"publishConfig": {
70
72
"access": "public",
71
73
"provenance": true
74
+
},
75
+
"pnpm": {
76
+
"ignoredBuiltDependencies": [
77
+
"esbuild"
78
+
],
79
+
"onlyBuiltDependencies": [
80
+
"esbuild"
81
+
]
72
82
}
73
83
}
+619
pnpm-lock.yaml
+619
pnpm-lock.yaml
···
62
62
typescript:
63
63
specifier: ^5.7.3
64
64
version: 5.7.3
65
+
vitest:
66
+
specifier: ^3.0.8
67
+
version: 3.0.8(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0)
65
68
66
69
packages:
67
70
···
244
247
'@changesets/write@0.4.0':
245
248
resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
246
249
250
+
'@esbuild/aix-ppc64@0.25.1':
251
+
resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
252
+
engines: {node: '>=18'}
253
+
cpu: [ppc64]
254
+
os: [aix]
255
+
256
+
'@esbuild/android-arm64@0.25.1':
257
+
resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==}
258
+
engines: {node: '>=18'}
259
+
cpu: [arm64]
260
+
os: [android]
261
+
262
+
'@esbuild/android-arm@0.25.1':
263
+
resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==}
264
+
engines: {node: '>=18'}
265
+
cpu: [arm]
266
+
os: [android]
267
+
268
+
'@esbuild/android-x64@0.25.1':
269
+
resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==}
270
+
engines: {node: '>=18'}
271
+
cpu: [x64]
272
+
os: [android]
273
+
274
+
'@esbuild/darwin-arm64@0.25.1':
275
+
resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==}
276
+
engines: {node: '>=18'}
277
+
cpu: [arm64]
278
+
os: [darwin]
279
+
280
+
'@esbuild/darwin-x64@0.25.1':
281
+
resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==}
282
+
engines: {node: '>=18'}
283
+
cpu: [x64]
284
+
os: [darwin]
285
+
286
+
'@esbuild/freebsd-arm64@0.25.1':
287
+
resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==}
288
+
engines: {node: '>=18'}
289
+
cpu: [arm64]
290
+
os: [freebsd]
291
+
292
+
'@esbuild/freebsd-x64@0.25.1':
293
+
resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==}
294
+
engines: {node: '>=18'}
295
+
cpu: [x64]
296
+
os: [freebsd]
297
+
298
+
'@esbuild/linux-arm64@0.25.1':
299
+
resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==}
300
+
engines: {node: '>=18'}
301
+
cpu: [arm64]
302
+
os: [linux]
303
+
304
+
'@esbuild/linux-arm@0.25.1':
305
+
resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==}
306
+
engines: {node: '>=18'}
307
+
cpu: [arm]
308
+
os: [linux]
309
+
310
+
'@esbuild/linux-ia32@0.25.1':
311
+
resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==}
312
+
engines: {node: '>=18'}
313
+
cpu: [ia32]
314
+
os: [linux]
315
+
316
+
'@esbuild/linux-loong64@0.25.1':
317
+
resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==}
318
+
engines: {node: '>=18'}
319
+
cpu: [loong64]
320
+
os: [linux]
321
+
322
+
'@esbuild/linux-mips64el@0.25.1':
323
+
resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==}
324
+
engines: {node: '>=18'}
325
+
cpu: [mips64el]
326
+
os: [linux]
327
+
328
+
'@esbuild/linux-ppc64@0.25.1':
329
+
resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==}
330
+
engines: {node: '>=18'}
331
+
cpu: [ppc64]
332
+
os: [linux]
333
+
334
+
'@esbuild/linux-riscv64@0.25.1':
335
+
resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==}
336
+
engines: {node: '>=18'}
337
+
cpu: [riscv64]
338
+
os: [linux]
339
+
340
+
'@esbuild/linux-s390x@0.25.1':
341
+
resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==}
342
+
engines: {node: '>=18'}
343
+
cpu: [s390x]
344
+
os: [linux]
345
+
346
+
'@esbuild/linux-x64@0.25.1':
347
+
resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==}
348
+
engines: {node: '>=18'}
349
+
cpu: [x64]
350
+
os: [linux]
351
+
352
+
'@esbuild/netbsd-arm64@0.25.1':
353
+
resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==}
354
+
engines: {node: '>=18'}
355
+
cpu: [arm64]
356
+
os: [netbsd]
357
+
358
+
'@esbuild/netbsd-x64@0.25.1':
359
+
resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==}
360
+
engines: {node: '>=18'}
361
+
cpu: [x64]
362
+
os: [netbsd]
363
+
364
+
'@esbuild/openbsd-arm64@0.25.1':
365
+
resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==}
366
+
engines: {node: '>=18'}
367
+
cpu: [arm64]
368
+
os: [openbsd]
369
+
370
+
'@esbuild/openbsd-x64@0.25.1':
371
+
resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==}
372
+
engines: {node: '>=18'}
373
+
cpu: [x64]
374
+
os: [openbsd]
375
+
376
+
'@esbuild/sunos-x64@0.25.1':
377
+
resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==}
378
+
engines: {node: '>=18'}
379
+
cpu: [x64]
380
+
os: [sunos]
381
+
382
+
'@esbuild/win32-arm64@0.25.1':
383
+
resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==}
384
+
engines: {node: '>=18'}
385
+
cpu: [arm64]
386
+
os: [win32]
387
+
388
+
'@esbuild/win32-ia32@0.25.1':
389
+
resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==}
390
+
engines: {node: '>=18'}
391
+
cpu: [ia32]
392
+
os: [win32]
393
+
394
+
'@esbuild/win32-x64@0.25.1':
395
+
resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==}
396
+
engines: {node: '>=18'}
397
+
cpu: [x64]
398
+
os: [win32]
399
+
247
400
'@isaacs/cliui@8.0.2':
248
401
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
249
402
engines: {node: '>=12'}
···
443
596
'@types/resolve@1.20.2':
444
597
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
445
598
599
+
'@vitest/expect@3.0.8':
600
+
resolution: {integrity: sha512-Xu6TTIavTvSSS6LZaA3EebWFr6tsoXPetOWNMOlc7LO88QVVBwq2oQWBoDiLCN6YTvNYsGSjqOO8CAdjom5DCQ==}
601
+
602
+
'@vitest/mocker@3.0.8':
603
+
resolution: {integrity: sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==}
604
+
peerDependencies:
605
+
msw: ^2.4.9
606
+
vite: ^5.0.0 || ^6.0.0
607
+
peerDependenciesMeta:
608
+
msw:
609
+
optional: true
610
+
vite:
611
+
optional: true
612
+
613
+
'@vitest/pretty-format@3.0.8':
614
+
resolution: {integrity: sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg==}
615
+
616
+
'@vitest/runner@3.0.8':
617
+
resolution: {integrity: sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==}
618
+
619
+
'@vitest/snapshot@3.0.8':
620
+
resolution: {integrity: sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==}
621
+
622
+
'@vitest/spy@3.0.8':
623
+
resolution: {integrity: sha512-MR+PzJa+22vFKYb934CejhR4BeRpMSoxkvNoDit68GQxRLSf11aT6CTj3XaqUU9rxgWJFnqicN/wxw6yBRkI1Q==}
624
+
625
+
'@vitest/utils@3.0.8':
626
+
resolution: {integrity: sha512-nkBC3aEhfX2PdtQI/QwAWp8qZWwzASsU4Npbcd5RdMPBSSLCpkZp52P3xku3s3uA0HIEhGvEcF8rNkBsz9dQ4Q==}
627
+
446
628
acorn@8.14.1:
447
629
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
448
630
engines: {node: '>=0.4.0'}
···
491
673
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
492
674
engines: {node: '>= 0.4'}
493
675
676
+
assertion-error@2.0.1:
677
+
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
678
+
engines: {node: '>=12'}
679
+
494
680
async-function@1.0.0:
495
681
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
496
682
engines: {node: '>= 0.4'}
···
524
710
buffer-from@1.1.2:
525
711
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
526
712
713
+
cac@6.7.14:
714
+
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
715
+
engines: {node: '>=8'}
716
+
527
717
call-bind-apply-helpers@1.0.2:
528
718
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
529
719
engines: {node: '>= 0.4'}
···
538
728
539
729
caniuse-lite@1.0.30001703:
540
730
resolution: {integrity: sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==}
731
+
732
+
chai@5.2.0:
733
+
resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
734
+
engines: {node: '>=12'}
541
735
542
736
chalk@2.4.2:
543
737
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
···
550
744
chardet@0.7.0:
551
745
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
552
746
747
+
check-error@2.1.1:
748
+
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
749
+
engines: {node: '>= 16'}
750
+
553
751
ci-info@3.9.0:
554
752
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
555
753
engines: {node: '>=8'}
···
629
827
supports-color:
630
828
optional: true
631
829
830
+
deep-eql@5.0.2:
831
+
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
832
+
engines: {node: '>=6'}
833
+
632
834
deepmerge@4.3.1:
633
835
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
634
836
engines: {node: '>=0.10.0'}
···
695
897
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
696
898
engines: {node: '>= 0.4'}
697
899
900
+
es-module-lexer@1.6.0:
901
+
resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
902
+
698
903
es-object-atoms@1.1.1:
699
904
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
700
905
engines: {node: '>= 0.4'}
···
707
912
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
708
913
engines: {node: '>= 0.4'}
709
914
915
+
esbuild@0.25.1:
916
+
resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
917
+
engines: {node: '>=18'}
918
+
hasBin: true
919
+
710
920
escalade@3.2.0:
711
921
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
712
922
engines: {node: '>=6'}
···
723
933
estree-walker@2.0.2:
724
934
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
725
935
936
+
estree-walker@3.0.3:
937
+
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
938
+
726
939
eventemitter3@5.0.1:
727
940
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
728
941
···
730
943
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
731
944
engines: {node: '>=16.17'}
732
945
946
+
expect-type@1.2.0:
947
+
resolution: {integrity: sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==}
948
+
engines: {node: '>=12.0.0'}
949
+
733
950
extendable-error@0.1.7:
734
951
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
735
952
···
1083
1300
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
1084
1301
engines: {node: '>=18'}
1085
1302
1303
+
loupe@3.1.3:
1304
+
resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
1305
+
1086
1306
lru-cache@11.0.2:
1087
1307
resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
1088
1308
engines: {node: 20 || >=22}
···
1137
1357
1138
1358
ms@2.1.3:
1139
1359
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1360
+
1361
+
nanoid@3.3.9:
1362
+
resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==}
1363
+
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1364
+
hasBin: true
1140
1365
1141
1366
nice-try@1.0.5:
1142
1367
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
···
1257
1482
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1258
1483
engines: {node: '>=8'}
1259
1484
1485
+
pathe@2.0.3:
1486
+
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1487
+
1488
+
pathval@2.0.0:
1489
+
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
1490
+
engines: {node: '>= 14.16'}
1491
+
1260
1492
picocolors@1.1.1:
1261
1493
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1262
1494
···
1290
1522
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
1291
1523
engines: {node: '>= 0.4'}
1292
1524
1525
+
postcss@8.5.3:
1526
+
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
1527
+
engines: {node: ^10 || ^12 || >=14}
1528
+
1293
1529
prettier@2.8.8:
1294
1530
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
1295
1531
engines: {node: '>=10.13.0'}
···
1456
1692
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
1457
1693
engines: {node: '>= 0.4'}
1458
1694
1695
+
siginfo@2.0.0:
1696
+
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
1697
+
1459
1698
signal-exit@4.1.0:
1460
1699
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1461
1700
engines: {node: '>=14'}
···
1474
1713
1475
1714
smob@1.5.0:
1476
1715
resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
1716
+
1717
+
source-map-js@1.2.1:
1718
+
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1719
+
engines: {node: '>=0.10.0'}
1477
1720
1478
1721
source-map-support@0.5.21:
1479
1722
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
···
1499
1742
1500
1743
sprintf-js@1.0.3:
1501
1744
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
1745
+
1746
+
stackback@0.0.2:
1747
+
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
1748
+
1749
+
std-env@3.8.1:
1750
+
resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==}
1502
1751
1503
1752
string-argv@0.3.2:
1504
1753
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
···
1565
1814
engines: {node: '>=10'}
1566
1815
hasBin: true
1567
1816
1817
+
tinybench@2.9.0:
1818
+
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
1819
+
1820
+
tinyexec@0.3.2:
1821
+
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
1822
+
1823
+
tinypool@1.0.2:
1824
+
resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
1825
+
engines: {node: ^18.0.0 || >=20.0.0}
1826
+
1827
+
tinyrainbow@2.0.0:
1828
+
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
1829
+
engines: {node: '>=14.0.0'}
1830
+
1831
+
tinyspy@3.0.2:
1832
+
resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
1833
+
engines: {node: '>=14.0.0'}
1834
+
1568
1835
tmp@0.0.33:
1569
1836
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
1570
1837
engines: {node: '>=0.6.0'}
···
1617
1884
validate-npm-package-license@3.0.4:
1618
1885
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
1619
1886
1887
+
vite-node@3.0.8:
1888
+
resolution: {integrity: sha512-6PhR4H9VGlcwXZ+KWCdMqbtG649xCPZqfI9j2PsK1FcXgEzro5bGHcVKFCTqPLaNKZES8Evqv4LwvZARsq5qlg==}
1889
+
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1890
+
hasBin: true
1891
+
1892
+
vite@6.2.1:
1893
+
resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==}
1894
+
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1895
+
hasBin: true
1896
+
peerDependencies:
1897
+
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1898
+
jiti: '>=1.21.0'
1899
+
less: '*'
1900
+
lightningcss: ^1.21.0
1901
+
sass: '*'
1902
+
sass-embedded: '*'
1903
+
stylus: '*'
1904
+
sugarss: '*'
1905
+
terser: ^5.16.0
1906
+
tsx: ^4.8.1
1907
+
yaml: ^2.4.2
1908
+
peerDependenciesMeta:
1909
+
'@types/node':
1910
+
optional: true
1911
+
jiti:
1912
+
optional: true
1913
+
less:
1914
+
optional: true
1915
+
lightningcss:
1916
+
optional: true
1917
+
sass:
1918
+
optional: true
1919
+
sass-embedded:
1920
+
optional: true
1921
+
stylus:
1922
+
optional: true
1923
+
sugarss:
1924
+
optional: true
1925
+
terser:
1926
+
optional: true
1927
+
tsx:
1928
+
optional: true
1929
+
yaml:
1930
+
optional: true
1931
+
1932
+
vitest@3.0.8:
1933
+
resolution: {integrity: sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==}
1934
+
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1935
+
hasBin: true
1936
+
peerDependencies:
1937
+
'@edge-runtime/vm': '*'
1938
+
'@types/debug': ^4.1.12
1939
+
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1940
+
'@vitest/browser': 3.0.8
1941
+
'@vitest/ui': 3.0.8
1942
+
happy-dom: '*'
1943
+
jsdom: '*'
1944
+
peerDependenciesMeta:
1945
+
'@edge-runtime/vm':
1946
+
optional: true
1947
+
'@types/debug':
1948
+
optional: true
1949
+
'@types/node':
1950
+
optional: true
1951
+
'@vitest/browser':
1952
+
optional: true
1953
+
'@vitest/ui':
1954
+
optional: true
1955
+
happy-dom:
1956
+
optional: true
1957
+
jsdom:
1958
+
optional: true
1959
+
1620
1960
webidl-conversions@3.0.1:
1621
1961
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1622
1962
···
1646
1986
which@2.0.2:
1647
1987
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1648
1988
engines: {node: '>= 8'}
1989
+
hasBin: true
1990
+
1991
+
why-is-node-running@2.3.0:
1992
+
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
1993
+
engines: {node: '>=8'}
1649
1994
hasBin: true
1650
1995
1651
1996
wrap-ansi@7.0.0:
···
1993
2338
human-id: 4.1.1
1994
2339
prettier: 2.8.8
1995
2340
2341
+
'@esbuild/aix-ppc64@0.25.1':
2342
+
optional: true
2343
+
2344
+
'@esbuild/android-arm64@0.25.1':
2345
+
optional: true
2346
+
2347
+
'@esbuild/android-arm@0.25.1':
2348
+
optional: true
2349
+
2350
+
'@esbuild/android-x64@0.25.1':
2351
+
optional: true
2352
+
2353
+
'@esbuild/darwin-arm64@0.25.1':
2354
+
optional: true
2355
+
2356
+
'@esbuild/darwin-x64@0.25.1':
2357
+
optional: true
2358
+
2359
+
'@esbuild/freebsd-arm64@0.25.1':
2360
+
optional: true
2361
+
2362
+
'@esbuild/freebsd-x64@0.25.1':
2363
+
optional: true
2364
+
2365
+
'@esbuild/linux-arm64@0.25.1':
2366
+
optional: true
2367
+
2368
+
'@esbuild/linux-arm@0.25.1':
2369
+
optional: true
2370
+
2371
+
'@esbuild/linux-ia32@0.25.1':
2372
+
optional: true
2373
+
2374
+
'@esbuild/linux-loong64@0.25.1':
2375
+
optional: true
2376
+
2377
+
'@esbuild/linux-mips64el@0.25.1':
2378
+
optional: true
2379
+
2380
+
'@esbuild/linux-ppc64@0.25.1':
2381
+
optional: true
2382
+
2383
+
'@esbuild/linux-riscv64@0.25.1':
2384
+
optional: true
2385
+
2386
+
'@esbuild/linux-s390x@0.25.1':
2387
+
optional: true
2388
+
2389
+
'@esbuild/linux-x64@0.25.1':
2390
+
optional: true
2391
+
2392
+
'@esbuild/netbsd-arm64@0.25.1':
2393
+
optional: true
2394
+
2395
+
'@esbuild/netbsd-x64@0.25.1':
2396
+
optional: true
2397
+
2398
+
'@esbuild/openbsd-arm64@0.25.1':
2399
+
optional: true
2400
+
2401
+
'@esbuild/openbsd-x64@0.25.1':
2402
+
optional: true
2403
+
2404
+
'@esbuild/sunos-x64@0.25.1':
2405
+
optional: true
2406
+
2407
+
'@esbuild/win32-arm64@0.25.1':
2408
+
optional: true
2409
+
2410
+
'@esbuild/win32-ia32@0.25.1':
2411
+
optional: true
2412
+
2413
+
'@esbuild/win32-x64@0.25.1':
2414
+
optional: true
2415
+
1996
2416
'@isaacs/cliui@8.0.2':
1997
2417
dependencies:
1998
2418
string-width: 5.1.2
···
2167
2587
2168
2588
'@types/resolve@1.20.2': {}
2169
2589
2590
+
'@vitest/expect@3.0.8':
2591
+
dependencies:
2592
+
'@vitest/spy': 3.0.8
2593
+
'@vitest/utils': 3.0.8
2594
+
chai: 5.2.0
2595
+
tinyrainbow: 2.0.0
2596
+
2597
+
'@vitest/mocker@3.0.8(vite@6.2.1(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0))':
2598
+
dependencies:
2599
+
'@vitest/spy': 3.0.8
2600
+
estree-walker: 3.0.3
2601
+
magic-string: 0.30.17
2602
+
optionalDependencies:
2603
+
vite: 6.2.1(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0)
2604
+
2605
+
'@vitest/pretty-format@3.0.8':
2606
+
dependencies:
2607
+
tinyrainbow: 2.0.0
2608
+
2609
+
'@vitest/runner@3.0.8':
2610
+
dependencies:
2611
+
'@vitest/utils': 3.0.8
2612
+
pathe: 2.0.3
2613
+
2614
+
'@vitest/snapshot@3.0.8':
2615
+
dependencies:
2616
+
'@vitest/pretty-format': 3.0.8
2617
+
magic-string: 0.30.17
2618
+
pathe: 2.0.3
2619
+
2620
+
'@vitest/spy@3.0.8':
2621
+
dependencies:
2622
+
tinyspy: 3.0.2
2623
+
2624
+
'@vitest/utils@3.0.8':
2625
+
dependencies:
2626
+
'@vitest/pretty-format': 3.0.8
2627
+
loupe: 3.1.3
2628
+
tinyrainbow: 2.0.0
2629
+
2170
2630
acorn@8.14.1: {}
2171
2631
2172
2632
ansi-colors@4.1.3: {}
···
2210
2670
get-intrinsic: 1.3.0
2211
2671
is-array-buffer: 3.0.5
2212
2672
2673
+
assertion-error@2.0.1: {}
2674
+
2213
2675
async-function@1.0.0: {}
2214
2676
2215
2677
available-typed-arrays@1.0.7:
···
2244
2706
2245
2707
buffer-from@1.1.2: {}
2246
2708
2709
+
cac@6.7.14: {}
2710
+
2247
2711
call-bind-apply-helpers@1.0.2:
2248
2712
dependencies:
2249
2713
es-errors: 1.3.0
···
2263
2727
2264
2728
caniuse-lite@1.0.30001703: {}
2265
2729
2730
+
chai@5.2.0:
2731
+
dependencies:
2732
+
assertion-error: 2.0.1
2733
+
check-error: 2.1.1
2734
+
deep-eql: 5.0.2
2735
+
loupe: 3.1.3
2736
+
pathval: 2.0.0
2737
+
2266
2738
chalk@2.4.2:
2267
2739
dependencies:
2268
2740
ansi-styles: 3.2.1
···
2272
2744
chalk@5.4.1: {}
2273
2745
2274
2746
chardet@0.7.0: {}
2747
+
2748
+
check-error@2.1.1: {}
2275
2749
2276
2750
ci-info@3.9.0: {}
2277
2751
···
2348
2822
dependencies:
2349
2823
ms: 2.1.3
2350
2824
2825
+
deep-eql@5.0.2: {}
2826
+
2351
2827
deepmerge@4.3.1: {}
2352
2828
2353
2829
define-data-property@1.1.4:
···
2455
2931
2456
2932
es-errors@1.3.0: {}
2457
2933
2934
+
es-module-lexer@1.6.0: {}
2935
+
2458
2936
es-object-atoms@1.1.1:
2459
2937
dependencies:
2460
2938
es-errors: 1.3.0
···
2472
2950
is-date-object: 1.1.0
2473
2951
is-symbol: 1.1.1
2474
2952
2953
+
esbuild@0.25.1:
2954
+
optionalDependencies:
2955
+
'@esbuild/aix-ppc64': 0.25.1
2956
+
'@esbuild/android-arm': 0.25.1
2957
+
'@esbuild/android-arm64': 0.25.1
2958
+
'@esbuild/android-x64': 0.25.1
2959
+
'@esbuild/darwin-arm64': 0.25.1
2960
+
'@esbuild/darwin-x64': 0.25.1
2961
+
'@esbuild/freebsd-arm64': 0.25.1
2962
+
'@esbuild/freebsd-x64': 0.25.1
2963
+
'@esbuild/linux-arm': 0.25.1
2964
+
'@esbuild/linux-arm64': 0.25.1
2965
+
'@esbuild/linux-ia32': 0.25.1
2966
+
'@esbuild/linux-loong64': 0.25.1
2967
+
'@esbuild/linux-mips64el': 0.25.1
2968
+
'@esbuild/linux-ppc64': 0.25.1
2969
+
'@esbuild/linux-riscv64': 0.25.1
2970
+
'@esbuild/linux-s390x': 0.25.1
2971
+
'@esbuild/linux-x64': 0.25.1
2972
+
'@esbuild/netbsd-arm64': 0.25.1
2973
+
'@esbuild/netbsd-x64': 0.25.1
2974
+
'@esbuild/openbsd-arm64': 0.25.1
2975
+
'@esbuild/openbsd-x64': 0.25.1
2976
+
'@esbuild/sunos-x64': 0.25.1
2977
+
'@esbuild/win32-arm64': 0.25.1
2978
+
'@esbuild/win32-ia32': 0.25.1
2979
+
'@esbuild/win32-x64': 0.25.1
2980
+
2475
2981
escalade@3.2.0: {}
2476
2982
2477
2983
escape-string-regexp@1.0.5: {}
···
2480
2986
2481
2987
estree-walker@2.0.2: {}
2482
2988
2989
+
estree-walker@3.0.3:
2990
+
dependencies:
2991
+
'@types/estree': 1.0.6
2992
+
2483
2993
eventemitter3@5.0.1: {}
2484
2994
2485
2995
execa@8.0.1:
···
2493
3003
onetime: 6.0.0
2494
3004
signal-exit: 4.1.0
2495
3005
strip-final-newline: 3.0.0
3006
+
3007
+
expect-type@1.2.0: {}
2496
3008
2497
3009
extendable-error@0.1.7: {}
2498
3010
···
2868
3380
strip-ansi: 7.1.0
2869
3381
wrap-ansi: 9.0.0
2870
3382
3383
+
loupe@3.1.3: {}
3384
+
2871
3385
lru-cache@11.0.2: {}
2872
3386
2873
3387
lru-cache@5.1.1:
···
2908
3422
mri@1.2.0: {}
2909
3423
2910
3424
ms@2.1.3: {}
3425
+
3426
+
nanoid@3.3.9: {}
2911
3427
2912
3428
nice-try@1.0.5: {}
2913
3429
···
3019
3535
3020
3536
path-type@4.0.0: {}
3021
3537
3538
+
pathe@2.0.3: {}
3539
+
3540
+
pathval@2.0.0: {}
3541
+
3022
3542
picocolors@1.1.1: {}
3023
3543
3024
3544
picomatch@2.3.1: {}
···
3035
3555
3036
3556
possible-typed-array-names@1.1.0: {}
3037
3557
3558
+
postcss@8.5.3:
3559
+
dependencies:
3560
+
nanoid: 3.3.9
3561
+
picocolors: 1.1.1
3562
+
source-map-js: 1.2.1
3563
+
3038
3564
prettier@2.8.8: {}
3039
3565
3040
3566
prettier@3.5.3: {}
···
3244
3770
side-channel-map: 1.0.1
3245
3771
side-channel-weakmap: 1.0.2
3246
3772
3773
+
siginfo@2.0.0: {}
3774
+
3247
3775
signal-exit@4.1.0: {}
3248
3776
3249
3777
slash@3.0.0: {}
···
3259
3787
is-fullwidth-code-point: 5.0.0
3260
3788
3261
3789
smob@1.5.0: {}
3790
+
3791
+
source-map-js@1.2.1: {}
3262
3792
3263
3793
source-map-support@0.5.21:
3264
3794
dependencies:
···
3287
3817
spdx-license-ids@3.0.21: {}
3288
3818
3289
3819
sprintf-js@1.0.3: {}
3820
+
3821
+
stackback@0.0.2: {}
3822
+
3823
+
std-env@3.8.1: {}
3290
3824
3291
3825
string-argv@0.3.2: {}
3292
3826
···
3365
3899
commander: 2.20.3
3366
3900
source-map-support: 0.5.21
3367
3901
3902
+
tinybench@2.9.0: {}
3903
+
3904
+
tinyexec@0.3.2: {}
3905
+
3906
+
tinypool@1.0.2: {}
3907
+
3908
+
tinyrainbow@2.0.0: {}
3909
+
3910
+
tinyspy@3.0.2: {}
3911
+
3368
3912
tmp@0.0.33:
3369
3913
dependencies:
3370
3914
os-tmpdir: 1.0.2
···
3432
3976
spdx-correct: 3.2.0
3433
3977
spdx-expression-parse: 3.0.1
3434
3978
3979
+
vite-node@3.0.8(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0):
3980
+
dependencies:
3981
+
cac: 6.7.14
3982
+
debug: 4.4.0
3983
+
es-module-lexer: 1.6.0
3984
+
pathe: 2.0.3
3985
+
vite: 6.2.1(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0)
3986
+
transitivePeerDependencies:
3987
+
- '@types/node'
3988
+
- jiti
3989
+
- less
3990
+
- lightningcss
3991
+
- sass
3992
+
- sass-embedded
3993
+
- stylus
3994
+
- sugarss
3995
+
- supports-color
3996
+
- terser
3997
+
- tsx
3998
+
- yaml
3999
+
4000
+
vite@6.2.1(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0):
4001
+
dependencies:
4002
+
esbuild: 0.25.1
4003
+
postcss: 8.5.3
4004
+
rollup: 4.34.9
4005
+
optionalDependencies:
4006
+
'@types/node': 18.19.76
4007
+
fsevents: 2.3.3
4008
+
terser: 5.39.0
4009
+
yaml: 2.7.0
4010
+
4011
+
vitest@3.0.8(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0):
4012
+
dependencies:
4013
+
'@vitest/expect': 3.0.8
4014
+
'@vitest/mocker': 3.0.8(vite@6.2.1(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0))
4015
+
'@vitest/pretty-format': 3.0.8
4016
+
'@vitest/runner': 3.0.8
4017
+
'@vitest/snapshot': 3.0.8
4018
+
'@vitest/spy': 3.0.8
4019
+
'@vitest/utils': 3.0.8
4020
+
chai: 5.2.0
4021
+
debug: 4.4.0
4022
+
expect-type: 1.2.0
4023
+
magic-string: 0.30.17
4024
+
pathe: 2.0.3
4025
+
std-env: 3.8.1
4026
+
tinybench: 2.9.0
4027
+
tinyexec: 0.3.2
4028
+
tinypool: 1.0.2
4029
+
tinyrainbow: 2.0.0
4030
+
vite: 6.2.1(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0)
4031
+
vite-node: 3.0.8(@types/node@18.19.76)(terser@5.39.0)(yaml@2.7.0)
4032
+
why-is-node-running: 2.3.0
4033
+
optionalDependencies:
4034
+
'@types/node': 18.19.76
4035
+
transitivePeerDependencies:
4036
+
- jiti
4037
+
- less
4038
+
- lightningcss
4039
+
- msw
4040
+
- sass
4041
+
- sass-embedded
4042
+
- stylus
4043
+
- sugarss
4044
+
- supports-color
4045
+
- terser
4046
+
- tsx
4047
+
- yaml
4048
+
3435
4049
webidl-conversions@3.0.1: {}
3436
4050
3437
4051
whatwg-url@5.0.0:
···
3487
4101
which@2.0.2:
3488
4102
dependencies:
3489
4103
isexe: 2.0.0
4104
+
4105
+
why-is-node-running@2.3.0:
4106
+
dependencies:
4107
+
siginfo: 2.0.0
4108
+
stackback: 0.0.2
3490
4109
3491
4110
wrap-ansi@7.0.0:
3492
4111
dependencies:
+8
-5
src/asyncResourceGraph.ts
+8
-5
src/asyncResourceGraph.ts
···
35
35
this.callback = callback;
36
36
}
37
37
38
-
_onExecute(executionNode: AsyncResourceNode, node: AsyncResourceNode) {
39
-
this.callback(AsyncResourceFlags.INIT, executionNode);
38
+
_onInit(node: AsyncResourceNode) {
39
+
this.callback(AsyncResourceFlags.INIT, node);
40
40
if (node.fiberId === this.fiberId) {
41
41
this.observe(node);
42
42
}
···
247
247
triggerNode.triggerTargets.set(asyncId, node);
248
248
}
249
249
if (this.notifyObserver) {
250
-
this.notifyObserver._onExecute(this, node);
250
+
this.notifyObserver._onInit(node);
251
251
}
252
252
}
253
253
···
273
273
}
274
274
275
275
toString() {
276
-
return `[async ${this.type || `Fiber: ${this.fiberId}`}]`;
276
+
const name = this.type
277
+
? `${this.type}(${this.asyncId})`
278
+
: `Fiber: ${this.fiberId}`;
279
+
return `[async ${name}]`;
277
280
}
278
281
}
279
282
···
513
516
514
517
return watchdogResult.promise;
515
518
} finally {
516
-
fiber.root.active = false;
519
+
fiber.root.active = true;
517
520
}
518
521
}
519
522
+4
src/errors.ts
+4
src/errors.ts
+101
test/isolation.spec.ts
+101
test/isolation.spec.ts
···
1
+
import { beforeAll, afterAll, it, expect } from 'vitest';
2
+
import { enable, disable, fiber } from '../src/index';
3
+
4
+
beforeAll(() => {
5
+
enable();
6
+
});
7
+
8
+
afterAll(() => {
9
+
disable();
10
+
});
11
+
12
+
it('prevents async resources from being shared into a fiber (sync)', async () => {
13
+
const shared = new Promise(resolve => {
14
+
setImmediate(resolve);
15
+
});
16
+
17
+
await expect(() => {
18
+
return fiber(async () => {
19
+
await shared;
20
+
}).return;
21
+
}).rejects.toMatchObject({
22
+
code: 'PARENT_ASYNC_TRIGGER',
23
+
});
24
+
});
25
+
26
+
it('prevents async resources from being shared into a fiber (async)', async () => {
27
+
const shared = new Promise(resolve => {
28
+
setImmediate(resolve);
29
+
});
30
+
31
+
await expect(() => {
32
+
return fiber(async () => {
33
+
await Promise.resolve();
34
+
await shared;
35
+
}).return;
36
+
}).rejects.toMatchObject({
37
+
code: 'PARENT_ASYNC_TRIGGER',
38
+
});
39
+
});
40
+
41
+
it('prevents async resources from being shared across fibers (sync)', async () => {
42
+
let shared: Promise<unknown>;
43
+
44
+
fiber(async () => {
45
+
shared = new Promise(resolve => {
46
+
setImmediate(resolve);
47
+
});
48
+
});
49
+
50
+
await expect(() => {
51
+
return fiber(async () => {
52
+
await shared;
53
+
}).return;
54
+
}).rejects.toMatchObject({
55
+
code: 'FOREIGN_ASYNC_TRIGGER',
56
+
});
57
+
});
58
+
59
+
it('prevents async resources from being shared across fibers (async)', async () => {
60
+
let shared: Promise<unknown>;
61
+
62
+
fiber(async () => {
63
+
shared = new Promise(resolve => {
64
+
setImmediate(resolve);
65
+
});
66
+
});
67
+
68
+
await expect(() => {
69
+
return fiber(async () => {
70
+
await Promise.resolve();
71
+
await shared;
72
+
}).return;
73
+
}).rejects.toMatchObject({
74
+
code: 'FOREIGN_ASYNC_TRIGGER',
75
+
});
76
+
});
77
+
78
+
it('prevents `new Promise` stalls from waiting indefinitely (sync)', async () => {
79
+
await expect(() => {
80
+
return fiber(async () => {
81
+
await new Promise(() => {
82
+
/*noop*/
83
+
});
84
+
}).return;
85
+
}).rejects.toMatchObject({
86
+
code: 'FIBER_STALL',
87
+
});
88
+
});
89
+
90
+
it('prevents `new Promise` stalls from waiting indefinitely (async)', async () => {
91
+
await expect(() => {
92
+
return fiber(async () => {
93
+
await Promise.resolve();
94
+
await new Promise(() => {
95
+
/*noop*/
96
+
});
97
+
}).return;
98
+
}).rejects.toMatchObject({
99
+
code: 'FIBER_STALL',
100
+
});
101
+
});