Hey is a decentralized and permissionless social media app built with Lens Protocol 🌿

Add vitest setup and sample test for helpers (#5663)

authored by yoginth.com and committed by

GitHub 7fceab84 f195c4af

+327 -2
+2 -1
package.json
··· 13 13 "dev": "pnpm --recursive --parallel run dev", 14 14 "prepare": "husky install", 15 15 "start": "pnpm --recursive --parallel run start", 16 - "typecheck": "pnpm --recursive --parallel run typecheck" 16 + "typecheck": "pnpm --recursive --parallel run typecheck", 17 + "test": "pnpm --recursive --parallel run test" 17 18 }, 18 19 "devDependencies": { 19 20 "@biomejs/biome": "^1.9.4",
+11
packages/helpers/generateUUID.test.ts
··· 1 + import { describe, expect, it } from "vitest"; 2 + import generateUUID from "./generateUUID"; 3 + 4 + describe("generateUUID", () => { 5 + it("creates a valid v4 UUID", () => { 6 + const uuid = generateUUID(); 7 + expect(uuid).toMatch( 8 + /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/ 9 + ); 10 + }); 11 + });
+3 -1
packages/helpers/package.json
··· 4 4 "private": true, 5 5 "license": "AGPL-3.0", 6 6 "scripts": { 7 + "test": "vitest", 7 8 "typecheck": "tsc --pretty" 8 9 }, 9 10 "dependencies": { ··· 15 16 "devDependencies": { 16 17 "@hey/config": "workspace:*", 17 18 "@types/node": "^22.15.30", 18 - "typescript": "^5.8.3" 19 + "typescript": "^5.8.3", 20 + "vitest": "^3.2.2" 19 21 } 20 22 }
+7
packages/helpers/vitest.config.ts
··· 1 + import { defineConfig } from "vitest/config"; 2 + 3 + export default defineConfig({ 4 + test: { 5 + environment: "node" 6 + } 7 + });
+304
pnpm-lock.yaml
··· 356 356 typescript: 357 357 specifier: ^5.8.3 358 358 version: 5.8.3 359 + vitest: 360 + specifier: ^3.2.2 361 + version: 3.2.2(@types/debug@4.1.12)(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0) 359 362 360 363 packages/indexer: 361 364 dependencies: ··· 2849 2852 '@types/babel__traverse@7.20.7': 2850 2853 resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} 2851 2854 2855 + '@types/chai@5.2.2': 2856 + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} 2857 + 2852 2858 '@types/debug@4.1.12': 2853 2859 resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 2860 + 2861 + '@types/deep-eql@4.0.2': 2862 + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} 2854 2863 2855 2864 '@types/estree-jsx@1.0.5': 2856 2865 resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} ··· 2914 2923 engines: {node: ^14.18.0 || >=16.0.0} 2915 2924 peerDependencies: 2916 2925 vite: ^4.2.0 || ^5.0.0 || ^6.0.0 2926 + 2927 + '@vitest/expect@3.2.2': 2928 + resolution: {integrity: sha512-ipHw0z669vEMjzz3xQE8nJX1s0rQIb7oEl4jjl35qWTwm/KIHERIg/p/zORrjAaZKXfsv7IybcNGHwhOOAPMwQ==} 2929 + 2930 + '@vitest/mocker@3.2.2': 2931 + resolution: {integrity: sha512-jKojcaRyIYpDEf+s7/dD3LJt53c0dPfp5zCPXz9H/kcGrSlovU/t1yEaNzM9oFME3dcd4ULwRI/x0Po1Zf+LTw==} 2932 + peerDependencies: 2933 + msw: ^2.4.9 2934 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 2935 + peerDependenciesMeta: 2936 + msw: 2937 + optional: true 2938 + vite: 2939 + optional: true 2940 + 2941 + '@vitest/pretty-format@3.2.2': 2942 + resolution: {integrity: sha512-FY4o4U1UDhO9KMd2Wee5vumwcaHw7Vg4V7yR4Oq6uK34nhEJOmdRYrk3ClburPRUA09lXD/oXWZ8y/Sdma0aUQ==} 2943 + 2944 + '@vitest/runner@3.2.2': 2945 + resolution: {integrity: sha512-GYcHcaS3ejGRZYed2GAkvsjBeXIEerDKdX3orQrBJqLRiea4NSS9qvn9Nxmuy1IwIB+EjFOaxXnX79l8HFaBwg==} 2946 + 2947 + '@vitest/snapshot@3.2.2': 2948 + resolution: {integrity: sha512-aMEI2XFlR1aNECbBs5C5IZopfi5Lb8QJZGGpzS8ZUHML5La5wCbrbhLOVSME68qwpT05ROEEOAZPRXFpxZV2wA==} 2949 + 2950 + '@vitest/spy@3.2.2': 2951 + resolution: {integrity: sha512-6Utxlx3o7pcTxvp0u8kUiXtRFScMrUg28KjB3R2hon7w4YqOFAEA9QwzPVVS1QNL3smo4xRNOpNZClRVfpMcYg==} 2952 + 2953 + '@vitest/utils@3.2.2': 2954 + resolution: {integrity: sha512-qJYMllrWpF/OYfWHP32T31QCaLa3BAzT/n/8mNGhPdVcjY+JYazQFO1nsJvXU12Kp1xMpNY4AGuljPTNjQve6A==} 2917 2955 2918 2956 '@wagmi/connectors@5.8.5': 2919 2957 resolution: {integrity: sha512-CHh4uYP6MziCMlSVXmuAv7wMoYWdxXliuzwCRAxHNNkgXE7z37ez5XzJu0Sm39NUau3Fl8WSjwKo4a4w9BOYNA==} ··· 3131 3169 resolution: {integrity: sha512-s6v4HnA+vYSGO4eZX+F+I3gvF74wPk+m6Z1Q3w1Dsg4Pnv/R24vhKAasoMVZGvDpOOfTg1Qz4ptZnEbuy95XsQ==} 3132 3170 engines: {node: '>=14.0.0'} 3133 3171 3172 + assertion-error@2.0.1: 3173 + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 3174 + engines: {node: '>=12'} 3175 + 3134 3176 astral-regex@2.0.0: 3135 3177 resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 3136 3178 engines: {node: '>=8'} ··· 3229 3271 resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} 3230 3272 engines: {node: '>=6.14.2'} 3231 3273 3274 + cac@6.7.14: 3275 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 3276 + engines: {node: '>=8'} 3277 + 3232 3278 call-bind-apply-helpers@1.0.2: 3233 3279 resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 3234 3280 engines: {node: '>= 0.4'} ··· 3261 3307 ccount@2.0.1: 3262 3308 resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 3263 3309 3310 + chai@5.2.0: 3311 + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} 3312 + engines: {node: '>=12'} 3313 + 3264 3314 chalk@4.1.2: 3265 3315 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 3266 3316 engines: {node: '>=10'} ··· 3285 3335 3286 3336 chardet@0.7.0: 3287 3337 resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 3338 + 3339 + check-error@2.1.1: 3340 + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 3341 + engines: {node: '>= 16'} 3288 3342 3289 3343 chokidar@4.0.3: 3290 3344 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} ··· 3470 3524 decode-uri-component@0.2.2: 3471 3525 resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} 3472 3526 engines: {node: '>=0.10'} 3527 + 3528 + deep-eql@5.0.2: 3529 + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 3530 + engines: {node: '>=6'} 3473 3531 3474 3532 defaults@1.0.4: 3475 3533 resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} ··· 3598 3656 resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 3599 3657 engines: {node: '>= 0.4'} 3600 3658 3659 + es-module-lexer@1.7.0: 3660 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 3661 + 3601 3662 es-object-atoms@1.1.1: 3602 3663 resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 3603 3664 engines: {node: '>= 0.4'} ··· 3630 3691 estree-util-is-identifier-name@3.0.0: 3631 3692 resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} 3632 3693 3694 + estree-walker@3.0.3: 3695 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 3696 + 3633 3697 eth-block-tracker@7.1.0: 3634 3698 resolution: {integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==} 3635 3699 engines: {node: '>=14.0.0'} ··· 3660 3724 events@3.3.0: 3661 3725 resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 3662 3726 engines: {node: '>=0.8.x'} 3727 + 3728 + expect-type@1.2.1: 3729 + resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} 3730 + engines: {node: '>=12.0.0'} 3663 3731 3664 3732 extend@3.0.2: 3665 3733 resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} ··· 4352 4420 resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 4353 4421 hasBin: true 4354 4422 4423 + loupe@3.1.3: 4424 + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} 4425 + 4355 4426 lower-case-first@2.0.2: 4356 4427 resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} 4357 4428 ··· 4783 4854 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 4784 4855 engines: {node: '>=8'} 4785 4856 4857 + pathe@2.0.3: 4858 + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 4859 + 4860 + pathval@2.0.0: 4861 + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} 4862 + engines: {node: '>= 14.16'} 4863 + 4786 4864 pg-cloudflare@1.2.5: 4787 4865 resolution: {integrity: sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==} 4788 4866 ··· 5390 5468 shiki@3.6.0: 5391 5469 resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==} 5392 5470 5471 + siginfo@2.0.0: 5472 + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 5473 + 5393 5474 signal-exit@3.0.7: 5394 5475 resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 5395 5476 ··· 5452 5533 5453 5534 sprintf-js@1.0.3: 5454 5535 resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 5536 + 5537 + stackback@0.0.2: 5538 + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 5539 + 5540 + std-env@3.9.0: 5541 + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} 5455 5542 5456 5543 stream-browserify@3.0.0: 5457 5544 resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} ··· 5541 5628 resolution: {integrity: sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA==} 5542 5629 engines: {node: '>=16'} 5543 5630 5631 + tinybench@2.9.0: 5632 + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 5633 + 5634 + tinyexec@0.3.2: 5635 + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 5636 + 5544 5637 tinyglobby@0.2.14: 5545 5638 resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} 5546 5639 engines: {node: '>=12.0.0'} 5640 + 5641 + tinypool@1.1.0: 5642 + resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} 5643 + engines: {node: ^18.0.0 || >=20.0.0} 5644 + 5645 + tinyrainbow@2.0.0: 5646 + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} 5647 + engines: {node: '>=14.0.0'} 5648 + 5649 + tinyspy@4.0.3: 5650 + resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} 5651 + engines: {node: '>=14.0.0'} 5547 5652 5548 5653 title-case@3.0.3: 5549 5654 resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} ··· 5880 5985 optional: true 5881 5986 vue: 5882 5987 optional: true 5988 + 5989 + vite-node@3.2.2: 5990 + resolution: {integrity: sha512-Xj/jovjZvDXOq2FgLXu8NsY4uHUMWtzVmMC2LkCu9HWdr9Qu1Is5sanX3Z4jOFKdohfaWDnEJWp9pRP0vVpAcA==} 5991 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 5992 + hasBin: true 5883 5993 5884 5994 vite-plugin-environment@1.1.3: 5885 5995 resolution: {integrity: sha512-9LBhB0lx+2lXVBEWxFZC+WO7PKEyE/ykJ7EPWCq95NEcCpblxamTbs5Dm3DLBGzwODpJMEnzQywJU8fw6XGGGA==} ··· 5934 6044 yaml: 5935 6045 optional: true 5936 6046 6047 + vitest@3.2.2: 6048 + resolution: {integrity: sha512-fyNn/Rp016Bt5qvY0OQvIUCwW2vnaEBLxP42PmKbNIoasSYjML+8xyeADOPvBe+Xfl/ubIw4og7Lt9jflRsCNw==} 6049 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 6050 + hasBin: true 6051 + peerDependencies: 6052 + '@edge-runtime/vm': '*' 6053 + '@types/debug': ^4.1.12 6054 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 6055 + '@vitest/browser': 3.2.2 6056 + '@vitest/ui': 3.2.2 6057 + happy-dom: '*' 6058 + jsdom: '*' 6059 + peerDependenciesMeta: 6060 + '@edge-runtime/vm': 6061 + optional: true 6062 + '@types/debug': 6063 + optional: true 6064 + '@types/node': 6065 + optional: true 6066 + '@vitest/browser': 6067 + optional: true 6068 + '@vitest/ui': 6069 + optional: true 6070 + happy-dom: 6071 + optional: true 6072 + jsdom: 6073 + optional: true 6074 + 5937 6075 w3c-keyname@2.2.8: 5938 6076 resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} 5939 6077 ··· 5977 6115 which-typed-array@1.1.19: 5978 6116 resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} 5979 6117 engines: {node: '>= 0.4'} 6118 + 6119 + why-is-node-running@2.3.0: 6120 + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 6121 + engines: {node: '>=8'} 6122 + hasBin: true 5980 6123 5981 6124 wrap-ansi@6.2.0: 5982 6125 resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} ··· 9865 10008 dependencies: 9866 10009 '@babel/types': 7.27.6 9867 10010 10011 + '@types/chai@5.2.2': 10012 + dependencies: 10013 + '@types/deep-eql': 4.0.2 10014 + 9868 10015 '@types/debug@4.1.12': 9869 10016 dependencies: 9870 10017 '@types/ms': 2.1.0 10018 + 10019 + '@types/deep-eql@4.0.2': {} 9871 10020 9872 10021 '@types/estree-jsx@1.0.5': 9873 10022 dependencies: ··· 9934 10083 transitivePeerDependencies: 9935 10084 - supports-color 9936 10085 10086 + '@vitest/expect@3.2.2': 10087 + dependencies: 10088 + '@types/chai': 5.2.2 10089 + '@vitest/spy': 3.2.2 10090 + '@vitest/utils': 3.2.2 10091 + chai: 5.2.0 10092 + tinyrainbow: 2.0.0 10093 + 10094 + '@vitest/mocker@3.2.2(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0))': 10095 + dependencies: 10096 + '@vitest/spy': 3.2.2 10097 + estree-walker: 3.0.3 10098 + magic-string: 0.30.17 10099 + optionalDependencies: 10100 + vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0) 10101 + 10102 + '@vitest/pretty-format@3.2.2': 10103 + dependencies: 10104 + tinyrainbow: 2.0.0 10105 + 10106 + '@vitest/runner@3.2.2': 10107 + dependencies: 10108 + '@vitest/utils': 3.2.2 10109 + pathe: 2.0.3 10110 + 10111 + '@vitest/snapshot@3.2.2': 10112 + dependencies: 10113 + '@vitest/pretty-format': 3.2.2 10114 + magic-string: 0.30.17 10115 + pathe: 2.0.3 10116 + 10117 + '@vitest/spy@3.2.2': 10118 + dependencies: 10119 + tinyspy: 4.0.3 10120 + 10121 + '@vitest/utils@3.2.2': 10122 + dependencies: 10123 + '@vitest/pretty-format': 3.2.2 10124 + loupe: 3.1.3 10125 + tinyrainbow: 2.0.0 10126 + 9937 10127 '@wagmi/connectors@5.8.5(@types/react@19.1.6)(@wagmi/core@2.17.3(@tanstack/query-core@5.80.6)(@types/react@19.1.6)(immer@10.1.1)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.56)))(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.56))(zod@3.25.56)': 9938 10128 dependencies: 9939 10129 '@coinbase/wallet-sdk': 4.3.3 ··· 10621 10811 10622 10812 assert-options@0.8.3: {} 10623 10813 10814 + assertion-error@2.0.1: {} 10815 + 10624 10816 astral-regex@2.0.0: {} 10625 10817 10626 10818 async-mutex@0.2.6: ··· 10753 10945 dependencies: 10754 10946 node-gyp-build: 4.8.4 10755 10947 10948 + cac@6.7.14: {} 10949 + 10756 10950 call-bind-apply-helpers@1.0.2: 10757 10951 dependencies: 10758 10952 es-errors: 1.3.0 ··· 10789 10983 10790 10984 ccount@2.0.1: {} 10791 10985 10986 + chai@5.2.0: 10987 + dependencies: 10988 + assertion-error: 2.0.1 10989 + check-error: 2.1.1 10990 + deep-eql: 5.0.2 10991 + loupe: 3.1.3 10992 + pathval: 2.0.0 10993 + 10792 10994 chalk@4.1.2: 10793 10995 dependencies: 10794 10996 ansi-styles: 4.3.0 ··· 10831 11033 character-reference-invalid@2.0.1: {} 10832 11034 10833 11035 chardet@0.7.0: {} 11036 + 11037 + check-error@2.1.1: {} 10834 11038 10835 11039 chokidar@4.0.3: 10836 11040 dependencies: ··· 10984 11188 10985 11189 decode-uri-component@0.2.2: {} 10986 11190 11191 + deep-eql@5.0.2: {} 11192 + 10987 11193 defaults@1.0.4: 10988 11194 dependencies: 10989 11195 clone: 1.0.4 ··· 11112 11318 11113 11319 es-errors@1.3.0: {} 11114 11320 11321 + es-module-lexer@1.7.0: {} 11322 + 11115 11323 es-object-atoms@1.1.1: 11116 11324 dependencies: 11117 11325 es-errors: 1.3.0 ··· 11156 11364 11157 11365 estree-util-is-identifier-name@3.0.0: {} 11158 11366 11367 + estree-walker@3.0.3: 11368 + dependencies: 11369 + '@types/estree': 1.0.8 11370 + 11159 11371 eth-block-tracker@7.1.0: 11160 11372 dependencies: 11161 11373 '@metamask/eth-json-rpc-provider': 1.0.1 ··· 11208 11420 eventemitter3@5.0.1: {} 11209 11421 11210 11422 events@3.3.0: {} 11423 + 11424 + expect-type@1.2.1: {} 11211 11425 11212 11426 extend@3.0.2: {} 11213 11427 ··· 11967 12181 dependencies: 11968 12182 js-tokens: 4.0.0 11969 12183 12184 + loupe@3.1.3: {} 12185 + 11970 12186 lower-case-first@2.0.2: 11971 12187 dependencies: 11972 12188 tslib: 2.8.1 ··· 12537 12753 12538 12754 path-type@4.0.0: {} 12539 12755 12756 + pathe@2.0.3: {} 12757 + 12758 + pathval@2.0.0: {} 12759 + 12540 12760 pg-cloudflare@1.2.5: 12541 12761 optional: true 12542 12762 ··· 13192 13412 '@shikijs/vscode-textmate': 10.0.2 13193 13413 '@types/hast': 3.0.4 13194 13414 13415 + siginfo@2.0.0: {} 13416 + 13195 13417 signal-exit@3.0.7: {} 13196 13418 13197 13419 signedsource@1.0.0: {} ··· 13257 13479 tslib: 2.8.1 13258 13480 13259 13481 sprintf-js@1.0.3: {} 13482 + 13483 + stackback@0.0.2: {} 13484 + 13485 + std-env@3.9.0: {} 13260 13486 13261 13487 stream-browserify@3.0.0: 13262 13488 dependencies: ··· 13349 13575 13350 13576 timeout-signal@2.0.0: {} 13351 13577 13578 + tinybench@2.9.0: {} 13579 + 13580 + tinyexec@0.3.2: {} 13581 + 13352 13582 tinyglobby@0.2.14: 13353 13583 dependencies: 13354 13584 fdir: 6.4.5(picomatch@4.0.2) 13355 13585 picomatch: 4.0.2 13586 + 13587 + tinypool@1.1.0: {} 13588 + 13589 + tinyrainbow@2.0.0: {} 13590 + 13591 + tinyspy@4.0.3: {} 13356 13592 13357 13593 title-case@3.0.3: 13358 13594 dependencies: ··· 13645 13881 react: 19.1.0 13646 13882 react-dom: 19.1.0(react@19.1.0) 13647 13883 13884 + vite-node@3.2.2(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0): 13885 + dependencies: 13886 + cac: 6.7.14 13887 + debug: 4.4.1 13888 + es-module-lexer: 1.7.0 13889 + pathe: 2.0.3 13890 + vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0) 13891 + transitivePeerDependencies: 13892 + - '@types/node' 13893 + - jiti 13894 + - less 13895 + - lightningcss 13896 + - sass 13897 + - sass-embedded 13898 + - stylus 13899 + - sugarss 13900 + - supports-color 13901 + - terser 13902 + - tsx 13903 + - yaml 13904 + 13648 13905 vite-plugin-environment@1.1.3(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0)): 13649 13906 dependencies: 13650 13907 vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0) ··· 13676 13933 tsx: 4.19.4 13677 13934 yaml: 2.8.0 13678 13935 13936 + vitest@3.2.2(@types/debug@4.1.12)(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0): 13937 + dependencies: 13938 + '@types/chai': 5.2.2 13939 + '@vitest/expect': 3.2.2 13940 + '@vitest/mocker': 3.2.2(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0)) 13941 + '@vitest/pretty-format': 3.2.2 13942 + '@vitest/runner': 3.2.2 13943 + '@vitest/snapshot': 3.2.2 13944 + '@vitest/spy': 3.2.2 13945 + '@vitest/utils': 3.2.2 13946 + chai: 5.2.0 13947 + debug: 4.4.1 13948 + expect-type: 1.2.1 13949 + magic-string: 0.30.17 13950 + pathe: 2.0.3 13951 + picomatch: 4.0.2 13952 + std-env: 3.9.0 13953 + tinybench: 2.9.0 13954 + tinyexec: 0.3.2 13955 + tinyglobby: 0.2.14 13956 + tinypool: 1.1.0 13957 + tinyrainbow: 2.0.0 13958 + vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0) 13959 + vite-node: 3.2.2(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0) 13960 + why-is-node-running: 2.3.0 13961 + optionalDependencies: 13962 + '@types/debug': 4.1.12 13963 + '@types/node': 22.15.30 13964 + transitivePeerDependencies: 13965 + - jiti 13966 + - less 13967 + - lightningcss 13968 + - msw 13969 + - sass 13970 + - sass-embedded 13971 + - stylus 13972 + - sugarss 13973 + - supports-color 13974 + - terser 13975 + - tsx 13976 + - yaml 13977 + 13679 13978 w3c-keyname@2.2.8: {} 13680 13979 13681 13980 wagmi@2.15.6(@tanstack/query-core@5.80.6)(@tanstack/react-query@5.80.6(react@19.1.0))(@types/react@19.1.6)(bufferutil@4.0.9)(immer@10.1.1)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.56))(zod@3.25.56): ··· 13746 14045 get-proto: 1.0.1 13747 14046 gopd: 1.2.0 13748 14047 has-tostringtag: 1.0.2 14048 + 14049 + why-is-node-running@2.3.0: 14050 + dependencies: 14051 + siginfo: 2.0.0 14052 + stackback: 0.0.2 13749 14053 13750 14054 wrap-ansi@6.2.0: 13751 14055 dependencies: