From 8f1844598ac16cacdc190cccef6808090fbd9695 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 22 Oct 2024 11:26:12 -0700 Subject: [PATCH 01/71] feat: init svelte --- .gitignore | 1 + packages/svelte/.gitignore | 22 + packages/svelte/.npmrc | 1 + packages/svelte/.prettierignore | 4 + packages/svelte/.prettierrc | 15 + packages/svelte/README.md | 58 ++ packages/svelte/eslint.config.js | 33 + packages/svelte/package.json | 48 + packages/svelte/src/app.d.ts | 13 + packages/svelte/src/app.html | 12 + packages/svelte/src/lib/index.ts | 1 + packages/svelte/src/routes/+page.svelte | 3 + packages/svelte/static/favicon.png | Bin 0 -> 1571 bytes packages/svelte/svelte.config.js | 18 + packages/svelte/tsconfig.json | 15 + packages/svelte/vite.config.ts | 6 + pnpm-lock.yaml | 1269 +++++++++++++++++++++-- 17 files changed, 1460 insertions(+), 59 deletions(-) create mode 100644 packages/svelte/.gitignore create mode 100644 packages/svelte/.npmrc create mode 100644 packages/svelte/.prettierignore create mode 100644 packages/svelte/.prettierrc create mode 100644 packages/svelte/README.md create mode 100644 packages/svelte/eslint.config.js create mode 100644 packages/svelte/package.json create mode 100644 packages/svelte/src/app.d.ts create mode 100644 packages/svelte/src/app.html create mode 100644 packages/svelte/src/lib/index.ts create mode 100644 packages/svelte/src/routes/+page.svelte create mode 100644 packages/svelte/static/favicon.png create mode 100644 packages/svelte/svelte.config.js create mode 100644 packages/svelte/tsconfig.json create mode 100644 packages/svelte/vite.config.ts diff --git a/.gitignore b/.gitignore index 1834fe72ab..16f01d4e3f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ packages/vue/chains packages/vue/connectors packages/vue/nuxt packages/vue/query +packages/svelte/.svelte-kit diff --git a/packages/svelte/.gitignore b/packages/svelte/.gitignore new file mode 100644 index 0000000000..715b548f7b --- /dev/null +++ b/packages/svelte/.gitignore @@ -0,0 +1,22 @@ +node_modules + +# Output +.output +.vercel +/.svelte-kit +/build +/dist + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/packages/svelte/.npmrc b/packages/svelte/.npmrc new file mode 100644 index 0000000000..b6f27f1359 --- /dev/null +++ b/packages/svelte/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/packages/svelte/.prettierignore b/packages/svelte/.prettierignore new file mode 100644 index 0000000000..ab78a95ddd --- /dev/null +++ b/packages/svelte/.prettierignore @@ -0,0 +1,4 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock diff --git a/packages/svelte/.prettierrc b/packages/svelte/.prettierrc new file mode 100644 index 0000000000..3f7802c372 --- /dev/null +++ b/packages/svelte/.prettierrc @@ -0,0 +1,15 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} diff --git a/packages/svelte/README.md b/packages/svelte/README.md new file mode 100644 index 0000000000..16c70df2c8 --- /dev/null +++ b/packages/svelte/README.md @@ -0,0 +1,58 @@ +# create-svelte + +Everything you need to build a Svelte library, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). + +Read more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npx sv create + +# create a new project in my-app +npx sv create my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +Everything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app. + +## Building + +To build your library: + +```bash +npm run package +``` + +To create a production version of your showcase app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. + +## Publishing + +Go into the `package.json` and give your package the desired name through the `"name"` option. Also consider adding a `"license"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)). + +To publish your library to [npm](https://www.npmjs.com): + +```bash +npm publish +``` diff --git a/packages/svelte/eslint.config.js b/packages/svelte/eslint.config.js new file mode 100644 index 0000000000..ae06ec3043 --- /dev/null +++ b/packages/svelte/eslint.config.js @@ -0,0 +1,33 @@ +import js from '@eslint/js' +import prettier from 'eslint-config-prettier' +import svelte from 'eslint-plugin-svelte' +import globals from 'globals' +import ts from 'typescript-eslint' + +export default ts.config( + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs['flat/recommended'], + prettier, + ...svelte.configs['flat/prettier'], + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + }, + { + files: ['**/*.svelte'], + + languageOptions: { + parserOptions: { + parser: ts.parser, + }, + }, + }, + { + ignores: ['build/', '.svelte-kit/', 'dist/'], + }, +) diff --git a/packages/svelte/package.json b/packages/svelte/package.json new file mode 100644 index 0000000000..fac5e87e8c --- /dev/null +++ b/packages/svelte/package.json @@ -0,0 +1,48 @@ +{ + "name": "@wagmi/svelte", + "version": "0.0.1", + "scripts": { + "dev": "vite dev", + "build": "vite build && npm run package", + "preview": "vite preview", + "package": "svelte-kit sync && svelte-package && publint", + "prepublishOnly": "npm run package", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "eslint . && prettier --check .", + "format": "prettier --write ." + }, + "files": ["dist", "!dist/**/*.test.*", "!dist/**/*.spec.*"], + "sideEffects": ["**/*.css"], + "svelte": "./dist/index.js", + "types": "./dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "svelte": "./dist/index.js" + } + }, + "peerDependencies": { + "svelte": "^5.0.0" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/package": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^4.0.0", + "@types/eslint": "^9.6.0", + "eslint": "^9.7.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.36.0", + "globals": "^15.0.0", + "prettier": "^3.3.2", + "prettier-plugin-svelte": "^3.2.6", + "publint": "^0.2.0", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "typescript": "^5.0.0", + "typescript-eslint": "^8.0.0", + "vite": "^5.0.11" + } +} diff --git a/packages/svelte/src/app.d.ts b/packages/svelte/src/app.d.ts new file mode 100644 index 0000000000..a612c38e65 --- /dev/null +++ b/packages/svelte/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {} diff --git a/packages/svelte/src/app.html b/packages/svelte/src/app.html new file mode 100644 index 0000000000..f22aeaad5e --- /dev/null +++ b/packages/svelte/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/packages/svelte/src/lib/index.ts b/packages/svelte/src/lib/index.ts new file mode 100644 index 0000000000..47d3c46fb8 --- /dev/null +++ b/packages/svelte/src/lib/index.ts @@ -0,0 +1 @@ +// Reexport your entry components here diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte new file mode 100644 index 0000000000..9c42926fc5 --- /dev/null +++ b/packages/svelte/src/routes/+page.svelte @@ -0,0 +1,3 @@ +

Welcome to your library project

+

Create your package using @sveltejs/package and preview/showcase your work with SvelteKit

+

Visit svelte.dev/docs/kit to read the documentation

diff --git a/packages/svelte/static/favicon.png b/packages/svelte/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 GIT binary patch literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH=3.4.21' version: 3.4.27(typescript@5.5.4) + packages/svelte: + devDependencies: + '@sveltejs/adapter-auto': + specifier: ^3.0.0 + version: 3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))) + '@sveltejs/kit': + specifier: ^2.0.0 + version: 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@sveltejs/package': + specifier: ^2.0.0 + version: 2.3.6(svelte@5.0.5)(typescript@5.5.4) + '@sveltejs/vite-plugin-svelte': + specifier: ^4.0.0 + version: 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@types/eslint': + specifier: ^9.6.0 + version: 9.6.1 + eslint: + specifier: ^9.7.0 + version: 9.13.0(jiti@1.21.6) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.13.0(jiti@1.21.6)) + eslint-plugin-svelte: + specifier: ^2.36.0 + version: 2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5) + globals: + specifier: ^15.0.0 + version: 15.11.0 + prettier: + specifier: ^3.3.2 + version: 3.3.3 + prettier-plugin-svelte: + specifier: ^3.2.6 + version: 3.2.7(prettier@3.3.3)(svelte@5.0.5) + publint: + specifier: ^0.2.0 + version: 0.2.11 + svelte: + specifier: ^5.0.0 + version: 5.0.5 + svelte-check: + specifier: ^4.0.0 + version: 4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4) + typescript: + specifier: ^5.0.0 + version: 5.5.4 + typescript-eslint: + specifier: ^8.0.0 + version: 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + vite: + specifier: ^5.0.11 + version: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + packages/test: devDependencies: '@tanstack/react-query': @@ -353,7 +407,7 @@ importers: version: 2.4.6 nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vue: specifier: '>=3.4.21' version: 3.4.27(typescript@5.6.1-rc) @@ -423,7 +477,7 @@ importers: version: link:../../packages/vue nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) viem: specifier: 2.* version: 2.10.8(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) @@ -573,7 +627,7 @@ importers: version: 1.0.2(typescript@5.6.1-rc)(zod@3.22.4) nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) react: specifier: '>=18.3.1' version: 18.3.1 @@ -585,7 +639,7 @@ importers: version: 2.10.8(bufferutil@4.0.8)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(zod@3.22.4) vitepress: specifier: ^1.1.4 - version: 1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.38)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc) + version: 1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc) vue: specifier: '>=3.4.21' version: 3.4.27(typescript@5.6.1-rc) @@ -1340,6 +1394,40 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.7.0': + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.1': + resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ethereumjs/common@3.2.0': resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} @@ -1423,6 +1511,22 @@ packages: '@floating-ui/utils@0.2.2': resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2536,6 +2640,42 @@ packages: '@stablelib/x25519@1.0.3': resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} + '@sveltejs/adapter-auto@3.3.0': + resolution: {integrity: sha512-EJZqY7eMM+bdbR898Xt9ufawUHLPJu7w3wPr4Cc+T1iIDf3fufVLWg4C71OluIqsdJqv85E4biKuHo3XXIY0PQ==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + + '@sveltejs/kit@2.7.2': + resolution: {integrity: sha512-bFwrl+0bNr0/DHQZM0INwwSPNYqDjfsKRhUoa6rj9d8tDZzszBrJ3La6/HVFxWGONEigtG+SzHXa1BEa1BLdwA==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + + '@sveltejs/package@2.3.6': + resolution: {integrity: sha512-XzbXWXrdeGbiPj3xICtmh66XrLXApoB/s17LIf0X25bEowAWjEnmukzHVJXaMeSuaFukggdFYoxqcfy4SxucbA==} + engines: {node: ^16.14 || >=18} + hasBin: true + peerDependencies: + svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 + + '@sveltejs/vite-plugin-svelte-inspector@3.0.0': + resolution: {integrity: sha512-hBxSYW/66989cq9dN248omD/ziskSdIV1NqfuueuAI1z6jGcg14k9Zd98pDIEnoA6wC9kWUGuQ6adzBbWwQyRg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + + '@sveltejs/vite-plugin-svelte@4.0.0': + resolution: {integrity: sha512-kpVJwF+gNiMEsoHaw+FJL76IYiwBikkxYU83+BpqQLdVMff19KeRKLd2wisS8niNBMJ2omv5gG+iGDDwd8jzag==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -2656,9 +2796,15 @@ packages: '@types/dedent@0.7.2': resolution: {integrity: sha512-kRiitIeUg1mPV9yH4VUJ/1uk2XjyANfeL8/7rH1tsjvHeO9PJLBHJIYsFWmAvmGj5u8rj+1TZx7PZzW2qLw3Lw==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} @@ -2668,6 +2814,9 @@ packages: '@types/http-proxy@1.17.14': resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/jsonfile@6.1.2': resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==} @@ -2746,6 +2895,63 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@typescript-eslint/eslint-plugin@8.11.0': + resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.11.0': + resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.11.0': + resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.11.0': + resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.11.0': + resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.11.0': + resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.11.0': + resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.11.0': + resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/vfs@1.5.0': resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==} @@ -3244,6 +3450,16 @@ packages: peerDependencies: acorn: ^8 + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} @@ -3258,6 +3474,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + engines: {node: '>=0.4.0'} + hasBin: true + adm-zip@0.4.16: resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} engines: {node: '>=0.3.0'} @@ -3274,6 +3495,9 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + algoliasearch@4.19.1: resolution: {integrity: sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==} @@ -3351,6 +3575,10 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-union@1.0.2: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} @@ -3403,6 +3631,10 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + b4a@1.6.6: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} @@ -3545,6 +3777,10 @@ packages: call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -3603,6 +3839,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -3784,6 +4024,10 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3960,6 +4204,9 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -3967,6 +4214,9 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -4034,6 +4284,9 @@ packages: devalue@4.3.3: resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -4221,17 +4474,95 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-svelte@2.46.0: + resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -4335,6 +4666,12 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-redact@3.1.2: resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} engines: {node: '>=6'} @@ -4368,6 +4705,10 @@ packages: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -4398,6 +4739,10 @@ packages: fixturez@1.1.0: resolution: {integrity: sha512-c4q9eZsAmCzj9gkrEO/YwIRlrHWt/TXQiX9jR9WeLFOqeeV6EyzdiiV28CpSzF6Ip+gyYrSv5UeOHqyzfcNTVA==} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -4535,6 +4880,10 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -4559,6 +4908,17 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} + + globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4571,12 +4931,18 @@ packages: resolution: {integrity: sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==} engines: {node: '>=4'} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.8.1: resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -4772,6 +5138,13 @@ packages: immutable@4.3.5: resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4908,6 +5281,9 @@ packages: is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-ssh@1.4.0: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} @@ -5044,6 +5420,9 @@ packages: engines: {node: '>=4'} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@3.0.2: resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5055,6 +5434,12 @@ packages: json-rpc-random-id@1.0.1: resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5080,6 +5465,9 @@ packages: resolution: {integrity: sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==} engines: {node: '>=10.0.0'} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyvaluestorage-interface@1.0.0: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} @@ -5090,6 +5478,10 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} @@ -5105,6 +5497,9 @@ packages: knitwork@1.1.0: resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + known-css-properties@0.35.0: + resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -5115,6 +5510,14 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + lilconfig@3.1.1: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} @@ -5144,6 +5547,9 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -5208,6 +5614,9 @@ packages: loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} @@ -5242,6 +5651,9 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} @@ -5608,6 +6020,9 @@ packages: engines: {node: ^18 || >=20} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5640,6 +6055,9 @@ packages: xml2js: optional: true + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-addon-api@2.0.2: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} @@ -5854,6 +6272,10 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@6.3.1: resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5934,6 +6356,10 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + parse-git-config@3.0.0: resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} engines: {node: '>=8'} @@ -5961,6 +6387,9 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -6130,6 +6559,18 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + postcss-merge-longhand@6.0.5: resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} @@ -6238,10 +6679,26 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-safe-parser@6.0.0: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} @@ -6265,9 +6722,23 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + preact@10.17.1: resolution: {integrity: sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-svelte@3.2.7: + resolution: {integrity: sha512-/Dswx/ea0lV34If1eDcG3nulQ63YNr5KPDfMsjbdtpSWOxKKJ7nAc2qlVuYwEvCr4raIuredNoR7K4JCkmTGaQ==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -6278,6 +6749,11 @@ packages: engines: {node: '>=14'} hasBin: true + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + pretty-bytes@6.1.1: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} @@ -6452,6 +6928,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + real-require@0.1.0: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} @@ -6484,6 +6964,10 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -6622,6 +7106,9 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -6720,6 +7207,10 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + sirv@3.0.0: + resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + engines: {node: '>=18'} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -6785,6 +7276,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -6980,6 +7475,33 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svelte-check@4.0.5: + resolution: {integrity: sha512-icBTBZ3ibBaywbXUat3cK6hB5Du+Kq9Z8CRuyLmm64XIe2/r+lQcbuBx/IQgsbrC+kT2jQ0weVpZSSRIPwB6jQ==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte-eslint-parser@0.43.0: + resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + svelte2tsx@0.7.22: + resolution: {integrity: sha512-hf55ujq17ufVpDQlJzaQfRr9EjlLIwGmFlpKq4uYrQAQFw/99q1OcVYyBT6568iJySgBUY9PdccURrORmfetmQ==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + + svelte@5.0.5: + resolution: {integrity: sha512-f4WBlP5g8W6pEoDfx741lewMlemy+LIGpEqjGPWqnHVP92wqlQXl87U5O5Bi2tkSUrO95OxOoqwU8qlqiHmFKA==} + engines: {node: '>=18'} + svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} @@ -7031,6 +7553,9 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -7041,6 +7566,9 @@ packages: thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -7096,6 +7624,12 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -7128,6 +7662,10 @@ packages: peerDependencies: typescript: '*' + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -7148,6 +7686,15 @@ packages: resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==} engines: {node: '>=16'} + typescript-eslint@8.11.0: + resolution: {integrity: sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -7337,6 +7884,9 @@ packages: uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -7504,6 +8054,14 @@ packages: terser: optional: true + vitefu@1.0.3: + resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + vitepress@1.1.4: resolution: {integrity: sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==} hasBin: true @@ -7695,6 +8253,10 @@ packages: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + workerpool@6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} @@ -7801,6 +8363,10 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + yaml@2.4.2: resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} engines: {node: '>= 14'} @@ -7849,6 +8415,9 @@ packages: zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} @@ -8671,29 +9240,68 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true - '@ethereumjs/common@3.2.0': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': dependencies: - '@ethereumjs/util': 8.1.0 - crc-32: 1.2.2 + eslint: 9.13.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 - '@ethereumjs/rlp@4.0.1': {} + '@eslint-community/regexpp@4.11.1': {} - '@ethereumjs/tx@4.2.0': + '@eslint/config-array@0.18.0': dependencies: - '@ethereumjs/common': 3.2.0 - '@ethereumjs/rlp': 4.0.1 - '@ethereumjs/util': 8.1.0 - ethereum-cryptography: 2.1.2 + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color - '@ethereumjs/util@8.1.0': - dependencies: - '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.1.2 - micro-ftch: 0.3.1 + '@eslint/core@0.7.0': {} - '@ethersproject/abi@5.7.0': + '@eslint/eslintrc@3.1.0': dependencies: - '@ethersproject/address': 5.7.0 + ajv: 6.12.6 + debug: 4.3.7 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.13.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.1': + dependencies: + levn: 0.4.1 + + '@ethereumjs/common@3.2.0': + dependencies: + '@ethereumjs/util': 8.1.0 + crc-32: 1.2.2 + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/tx@4.2.0': + dependencies: + '@ethereumjs/common': 3.2.0 + '@ethereumjs/rlp': 4.0.1 + '@ethereumjs/util': 8.1.0 + ethereum-cryptography: 2.1.2 + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.1.2 + micro-ftch: 0.3.1 + + '@ethersproject/abi@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/constants': 5.7.0 @@ -8826,6 +9434,17 @@ snapshots: '@floating-ui/utils@0.2.2': {} + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + '@iconify/types@2.0.0': {} '@iconify/utils@2.1.23': @@ -9447,34 +10066,34 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup @@ -9493,10 +10112,10 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) @@ -9517,7 +10136,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -9558,10 +10177,10 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) @@ -9582,7 +10201,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -9623,10 +10242,10 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) @@ -9647,7 +10266,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -9754,7 +10373,7 @@ snapshots: '@nuxt/ui-templates@1.3.3': {} - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -9788,7 +10407,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vue: 3.4.27(typescript@5.5.4) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -9811,7 +10430,7 @@ snapshots: - vti - vue-tsc - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -9845,7 +10464,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vue: 3.4.27(typescript@5.6.1-rc) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -9868,7 +10487,7 @@ snapshots: - vti - vue-tsc - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -9902,7 +10521,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vue: 3.4.27(typescript@5.6.1-rc) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -10507,6 +11126,62 @@ snapshots: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 + '@sveltejs/adapter-auto@3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))': + dependencies: + '@sveltejs/kit': 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + import-meta-resolve: 4.1.0 + + '@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@types/cookie': 0.6.0 + cookie: 0.6.0 + devalue: 5.1.1 + esm-env: 1.0.0 + import-meta-resolve: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.11 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.7.1 + sirv: 3.0.0 + svelte: 5.0.5 + tiny-glob: 0.2.9 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + + '@sveltejs/package@2.3.6(svelte@5.0.5)(typescript@5.5.4)': + dependencies: + chokidar: 4.0.1 + kleur: 4.1.5 + sade: 1.8.1 + semver: 7.6.2 + svelte: 5.0.5 + svelte2tsx: 0.7.22(svelte@5.0.5)(typescript@5.5.4) + transitivePeerDependencies: + - typescript + + '@sveltejs/vite-plugin-svelte-inspector@3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + debug: 4.3.7 + svelte: 5.0.5 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + debug: 4.3.7 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.12 + svelte: 5.0.5 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vitefu: 1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + transitivePeerDependencies: + - supports-color + '@swc/counter@0.1.3': {} '@swc/helpers@0.5.5': @@ -10645,8 +11320,15 @@ snapshots: '@types/dedent@0.7.2': {} + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.2 @@ -10660,6 +11342,8 @@ snapshots: dependencies: '@types/node': 20.12.10 + '@types/json-schema@7.0.15': {} + '@types/jsonfile@6.1.2': dependencies: '@types/node': 20.12.10 @@ -10737,6 +11421,87 @@ snapshots: dependencies: '@types/node': 20.12.10 + '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + dependencies: + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.11.0 + eslint: 9.13.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + dependencies: + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.11.0 + debug: 4.3.7 + eslint: 9.13.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.11.0': + dependencies: + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/visitor-keys': 8.11.0 + + '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.11.0': {} + + '@typescript-eslint/typescript-estree@8.11.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/visitor-keys': 8.11.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) + eslint: 9.13.0(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.11.0': + dependencies: + '@typescript-eslint/types': 8.11.0 + eslint-visitor-keys: 3.4.3 + '@typescript/vfs@1.5.0': dependencies: debug: 4.3.7 @@ -10992,7 +11757,7 @@ snapshots: vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vue: 3.4.27(typescript@5.6.1-rc) - '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.12.10)(@vitest/ui@2.1.1)(happy-dom@15.7.4)(msw@2.4.9(typescript@5.5.4))(terser@5.31.0))': + '@vitest/coverage-v8@2.1.1(vitest@2.1.1)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -11840,12 +12605,26 @@ snapshots: dependencies: acorn: 8.11.3 + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn-jsx@5.3.2(acorn@8.13.0): + dependencies: + acorn: 8.13.0 + + acorn-typescript@1.4.13(acorn@8.13.0): + dependencies: + acorn: 8.13.0 + acorn-walk@8.3.2: {} acorn@8.10.0: {} acorn@8.11.3: {} + acorn@8.13.0: {} + adm-zip@0.4.16: {} agent-base@6.0.2: @@ -11865,6 +12644,13 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + algoliasearch@4.19.1: dependencies: '@algolia/cache-browser-local-storage': 4.19.1 @@ -11958,6 +12744,8 @@ snapshots: dependencies: dequal: 2.0.3 + aria-query@5.3.2: {} + array-union@1.0.2: dependencies: array-uniq: 1.0.3 @@ -12004,12 +12792,14 @@ snapshots: caniuse-lite: 1.0.30001616 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.1.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.5: {} + axobject-query@4.1.0: {} + b4a@1.6.6: {} balanced-match@1.0.2: {} @@ -12190,6 +12980,8 @@ snapshots: function-bind: 1.1.2 get-intrinsic: 1.2.1 + callsites@3.1.0: {} + camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -12260,6 +13052,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@2.0.0: {} chownr@3.0.0: {} @@ -12409,6 +13205,8 @@ snapshots: cookie@0.5.0: {} + cookie@0.6.0: {} + core-util-is@1.0.3: {} crc-32@1.2.2: {} @@ -12583,10 +13381,14 @@ snapshots: decode-uri-component@0.2.2: {} + dedent-js@1.0.1: {} + dedent@0.7.0: {} deep-eql@5.0.2: {} + deep-is@0.1.4: {} + deepmerge@4.3.1: {} default-browser-id@5.0.0: {} @@ -12628,6 +13430,8 @@ snapshots: devalue@4.3.3: {} + devalue@5.1.1: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -12855,14 +13659,129 @@ snapshots: escape-string-regexp@5.0.0: {} + eslint-compat-utils@0.5.1(eslint@9.13.0(jiti@1.21.6)): + dependencies: + eslint: 9.13.0(jiti@1.21.6) + semver: 7.6.2 + + eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@1.21.6)): + dependencies: + eslint: 9.13.0(jiti@1.21.6) + + eslint-plugin-svelte@2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@jridgewell/sourcemap-codec': 1.5.0 + eslint: 9.13.0(jiti@1.21.6) + eslint-compat-utils: 0.5.1(eslint@9.13.0(jiti@1.21.6)) + esutils: 2.0.3 + known-css-properties: 0.35.0 + postcss: 8.4.38 + postcss-load-config: 3.1.4(postcss@8.4.38) + postcss-safe-parser: 6.0.0(postcss@8.4.38) + postcss-selector-parser: 6.1.2 + semver: 7.6.2 + svelte-eslint-parser: 0.43.0(svelte@5.0.5) + optionalDependencies: + svelte: 5.0.5 + transitivePeerDependencies: + - ts-node + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.1.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.1.0: {} + + eslint@9.13.0(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.7.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + esm-env@1.0.0: {} + + espree@10.2.0: + dependencies: + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) + eslint-visitor-keys: 4.1.0 + + espree@9.6.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrap@1.2.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.5 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 + esutils@2.0.3: {} + etag@1.8.1: {} eth-block-tracker@7.1.0: @@ -13046,6 +13965,10 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + fast-redact@3.1.2: {} fast-safe-stringify@2.1.1: {} @@ -13068,6 +13991,10 @@ snapshots: dependencies: is-unicode-supported: 2.0.0 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + file-uri-to-path@1.0.0: {} fill-range@7.0.1: @@ -13102,6 +14029,11 @@ snapshots: signal-exit: 3.0.7 tempy: 0.2.1 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + flat@5.0.2: {} flatted@3.3.1: {} @@ -13256,6 +14188,10 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + glob@10.4.5: dependencies: foreground-child: 3.1.1 @@ -13297,6 +14233,12 @@ snapshots: globals@11.12.0: {} + globals@14.0.0: {} + + globals@15.11.0: {} + + globalyzer@0.1.0: {} + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -13324,12 +14266,16 @@ snapshots: pify: 3.0.0 slash: 1.0.0 + globrex@0.1.2: {} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.1 graceful-fs@4.2.11: {} + graphemer@1.4.0: {} + graphql@16.8.1: {} gzip-size@6.0.0: @@ -13564,6 +14510,13 @@ snapshots: immutable@4.3.5: {} + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.1.0: {} + imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -13678,6 +14631,10 @@ snapshots: dependencies: '@types/estree': 1.0.5 + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.5 + is-ssh@1.4.0: dependencies: protocols: 2.0.1 @@ -13796,6 +14753,8 @@ snapshots: jsesc@2.5.2: {} + json-buffer@3.0.1: {} + json-parse-even-better-errors@3.0.2: {} json-rpc-engine@6.1.0: @@ -13805,6 +14764,10 @@ snapshots: json-rpc-random-id@1.0.1: {} + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + json5@2.2.3: {} jsonc-parser@3.2.0: {} @@ -13831,6 +14794,10 @@ snapshots: node-gyp-build: 4.6.0 readable-stream: 3.6.2 + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + keyvaluestorage-interface@1.0.0: {} klaw@1.3.1: @@ -13839,6 +14806,8 @@ snapshots: kleur@3.0.3: {} + kleur@4.1.5: {} + klona@2.0.6: {} knip@5.30.6(@types/node@20.12.10)(typescript@5.5.4): @@ -13864,6 +14833,8 @@ snapshots: knitwork@1.1.0: {} + known-css-properties@0.35.0: {} + kolorist@1.8.0: {} launch-editor@2.6.1: @@ -13875,6 +14846,13 @@ snapshots: dependencies: readable-stream: 2.3.8 + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + lilconfig@3.1.1: {} listhen@1.7.2: @@ -13925,6 +14903,8 @@ snapshots: mlly: 1.4.2 pkg-types: 1.0.3 + locate-character@3.0.0: {} + locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -13982,6 +14962,10 @@ snapshots: dependencies: get-func-name: 2.0.2 + lower-case@2.0.2: + dependencies: + tslib: 2.5.0 + lru-cache@10.2.2: {} lru-cache@10.4.3: {} @@ -14015,6 +14999,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.4: dependencies: '@babel/parser': 7.24.5 @@ -14539,6 +15527,8 @@ snapshots: nanoid@5.0.7: {} + natural-compare@1.4.0: {} + negotiator@0.6.3: {} next@14.2.4(@opentelemetry/api@1.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -14657,6 +15647,11 @@ snapshots: - supports-color - uWebSockets.js + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.5.0 + node-addon-api@2.0.2: {} node-addon-api@7.0.0: {} @@ -14809,15 +15804,15 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.5.4)) @@ -14926,15 +15921,15 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.6.1-rc)) @@ -15043,15 +16038,15 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.6.1-rc)) @@ -15230,6 +16225,15 @@ snapshots: opener@1.5.2: {} + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@6.3.1: dependencies: chalk: 5.3.0 @@ -15323,6 +16327,10 @@ snapshots: - bluebird - supports-color + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + parse-git-config@3.0.0: dependencies: git-config-path: 2.0.0 @@ -15348,6 +16356,11 @@ snapshots: parseurl@1.3.3: {} + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + path-browserify@1.0.1: {} path-exists@3.0.0: {} @@ -15510,6 +16523,13 @@ snapshots: dependencies: postcss: 8.4.38 + postcss-load-config@3.1.4(postcss@8.4.38): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.4.38 + postcss-merge-longhand@6.0.5(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -15610,11 +16630,24 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 + postcss-safe-parser@6.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-scss@4.0.9(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-svgo@6.0.3(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -15640,12 +16673,27 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.2.0 + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + preact@10.17.1: {} + prelude-ls@1.2.1: {} + + prettier-plugin-svelte@3.2.7(prettier@3.3.3)(svelte@5.0.5): + dependencies: + prettier: 3.3.3 + svelte: 5.0.5 + prettier@2.8.8: {} prettier@3.0.3: {} + prettier@3.3.3: {} + pretty-bytes@6.1.1: {} pretty-format@27.5.1: @@ -15823,6 +16871,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + real-require@0.1.0: {} redis-errors@1.2.0: {} @@ -15843,6 +16893,8 @@ snapshots: requires-port@1.0.0: {} + resolve-from@4.0.0: {} + resolve-from@5.0.0: {} resolve@1.17.0: @@ -16003,6 +17055,8 @@ snapshots: set-blocking@2.0.0: {} + set-cookie-parser@2.7.1: {} + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -16100,6 +17154,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sirv@3.0.0: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + sisteransi@1.0.5: {} skin-tone@2.0.0: @@ -16175,6 +17235,8 @@ snapshots: source-map-js@1.2.0: {} + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -16338,6 +17400,51 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svelte-check@4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + chokidar: 4.0.1 + fdir: 6.3.0(picomatch@4.0.2) + picocolors: 1.1.0 + sade: 1.8.1 + svelte: 5.0.5 + typescript: 5.5.4 + transitivePeerDependencies: + - picomatch + + svelte-eslint-parser@0.43.0(svelte@5.0.5): + dependencies: + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + postcss: 8.4.47 + postcss-scss: 4.0.9(postcss@8.4.47) + optionalDependencies: + svelte: 5.0.5 + + svelte2tsx@0.7.22(svelte@5.0.5)(typescript@5.5.4): + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 5.0.5 + typescript: 5.5.4 + + svelte@5.0.5: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.5 + acorn: 8.13.0 + acorn-typescript: 1.4.13(acorn@8.13.0) + aria-query: 5.3.2 + axobject-query: 4.1.0 + esm-env: 1.0.0 + esrap: 1.2.2 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.11 + zimmerframe: 1.1.2 + svg-tags@1.0.0: {} svgo@3.3.2: @@ -16402,6 +17509,8 @@ snapshots: glob: 10.4.5 minimatch: 9.0.4 + text-table@0.2.0: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -16414,6 +17523,11 @@ snapshots: dependencies: real-require: 0.1.0 + tiny-glob@0.2.9: + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + tiny-invariant@1.3.3: {} tinybench@2.9.0: {} @@ -16456,6 +17570,10 @@ snapshots: trim-lines@3.0.1: {} + ts-api-utils@1.3.0(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + tslib@1.14.1: {} tslib@2.5.0: {} @@ -16493,6 +17611,10 @@ snapshots: transitivePeerDependencies: - supports-color + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -16503,6 +17625,17 @@ snapshots: type-fest@4.18.2: {} + typescript-eslint@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4): + dependencies: + '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - eslint + - supports-color + typescript@5.5.4: {} typescript@5.6.1-rc: {} @@ -16752,6 +17885,10 @@ snapshots: uqr@0.1.2: {} + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -16900,9 +18037,9 @@ snapshots: vite-node@1.6.0(@types/node@20.12.10)(terser@5.31.0): dependencies: cac: 6.7.14 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.1.0 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - '@types/node' @@ -16930,7 +18067,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -16949,9 +18086,11 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: + eslint: 9.13.0(jiti@1.21.6) + optionator: 0.9.4 typescript: 5.5.4 - vite-plugin-checker@0.6.4(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): + vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -16970,6 +18109,8 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: + eslint: 9.13.0(jiti@1.21.6) + optionator: 0.9.4 typescript: 5.6.1-rc vue-tsc: 2.0.16(typescript@5.6.1-rc) @@ -17016,7 +18157,11 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.38)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): + vitefu@1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + optionalDependencies: + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + + vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.19.1)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17034,7 +18179,7 @@ snapshots: vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vue: 3.4.27(typescript@5.6.1-rc) optionalDependencies: - postcss: 8.4.38 + postcss: 8.4.47 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -17292,6 +18437,8 @@ snapshots: dependencies: string-width: 4.2.3 + word-wrap@1.2.5: {} + workerpool@6.2.1: {} wrap-ansi@6.2.0: @@ -17355,6 +18502,8 @@ snapshots: yallist@5.0.0: {} + yaml@1.10.2: {} + yaml@2.4.2: {} yargs-parser@18.1.3: @@ -17415,6 +18564,8 @@ snapshots: zhead@2.2.4: {} + zimmerframe@1.1.2: {} + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 From acb9888597f2f84213edf3d1a71ac97b017aab53 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 22 Oct 2024 11:43:14 -0700 Subject: [PATCH 02/71] feat: configure tests for svelte --- package.json | 2 ++ packages/svelte/test/setup.ts | 8 ++++++++ vitest.workspace.ts | 10 ++++++++++ 3 files changed, 20 insertions(+) create mode 100644 packages/svelte/test/setup.ts diff --git a/package.json b/package.json index f04d6c3ff4..7072b60a56 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "dev:nuxt": "pnpm --filter nuxt-app dev", "dev:react": "pnpm --filter vite-react dev", "dev:vue": "pnpm --filter vite-vue dev", + "dev:svelte": "pnpm --filter svelte dev", "docs:dev": "pnpm --filter site dev", "check": "biome check --write", "check:repo": "sherif -i viem", @@ -37,6 +38,7 @@ "test:update": "vitest --update", "test:ui": "vitest --ui", "test:vue": "vitest --project @wagmi/vue", + "test:svelte": "vitest --project @wagmi/svelte", "version:update": "bun scripts/updateVersion.ts", "version:update:viem": "bun scripts/updateViemVersion.ts" }, diff --git a/packages/svelte/test/setup.ts b/packages/svelte/test/setup.ts new file mode 100644 index 0000000000..5c0dcc071d --- /dev/null +++ b/packages/svelte/test/setup.ts @@ -0,0 +1,8 @@ +import { vi } from 'vitest' + +// Make dates stable across runs +Date.now = vi.fn(() => new Date(Date.UTC(2023, 1, 1)).valueOf()) + +vi.mock('../src/version.ts', () => { + return { version: 'x.y.z' } +}) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 0c187c0401..09c2fff019 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -9,6 +9,7 @@ const alias = { '@wagmi/core': path.resolve(__dirname, './packages/core/src/exports'), '@wagmi/test': path.resolve(__dirname, './packages/test/src/exports'), '@wagmi/vue': path.resolve(__dirname, './packages/vue/src/exports'), + '@wagmi/svelte': path.resolve(__dirname, './packages/svelte/src/exports'), wagmi: path.resolve(__dirname, './packages/react/src/exports'), } @@ -68,6 +69,15 @@ export default defineWorkspace([ }, resolve: { alias }, }, + { + test: { + name: '@wagmi/svelte', + include: ['./packages/svelte/src/**/*.test.ts'], + environment: 'happy-dom', + testTimeout: 10_000, + setupFiles: ['./packages/svelte/test/setup.ts'], + }, + }, { test: { name: 'react-register', From 40a8cdbb1a22bf183e05bf95fb7fad7b6e5ad20e Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 08:05:29 -0700 Subject: [PATCH 03/71] feat: add useConfig hook --- packages/svelte/package.json | 13 +++++---- packages/svelte/src/lib/context.ts | 20 ++++++++++++++ packages/svelte/src/lib/errors.ts | 27 +++++++++++++++++++ .../svelte/src/lib/hooks/useConfig.svelte.ts | 20 ++++++++++++++ packages/svelte/src/lib/types.ts | 5 ++++ packages/svelte/src/lib/version.ts | 3 +++ pnpm-lock.yaml | 12 +++++++++ 7 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 packages/svelte/src/lib/context.ts create mode 100644 packages/svelte/src/lib/errors.ts create mode 100644 packages/svelte/src/lib/hooks/useConfig.svelte.ts create mode 100644 packages/svelte/src/lib/types.ts create mode 100644 packages/svelte/src/lib/version.ts diff --git a/packages/svelte/package.json b/packages/svelte/package.json index fac5e87e8c..8ae7a35da5 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -5,7 +5,7 @@ "dev": "vite dev", "build": "vite build && npm run package", "preview": "vite preview", - "package": "svelte-kit sync && svelte-package && publint", + "package": "svelte-kit sync && svelte-package -o dist/lib && publint", "prepublishOnly": "npm run package", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", @@ -14,13 +14,13 @@ }, "files": ["dist", "!dist/**/*.test.*", "!dist/**/*.spec.*"], "sideEffects": ["**/*.css"], - "svelte": "./dist/index.js", - "types": "./dist/index.d.ts", + "svelte": "./dist/lib/index.js", + "types": "./dist/lib/index.d.ts", "type": "module", "exports": { ".": { - "types": "./dist/index.d.ts", - "svelte": "./dist/index.js" + "types": "./dist/lib/index.d.ts", + "svelte": "./dist/lib/index.js" } }, "peerDependencies": { @@ -44,5 +44,8 @@ "typescript": "^5.0.0", "typescript-eslint": "^8.0.0", "vite": "^5.0.11" + }, + "dependencies": { + "@wagmi/core": "workspace:^" } } diff --git a/packages/svelte/src/lib/context.ts b/packages/svelte/src/lib/context.ts new file mode 100644 index 0000000000..989c05db6e --- /dev/null +++ b/packages/svelte/src/lib/context.ts @@ -0,0 +1,20 @@ +import type { ResolvedRegister } from '@wagmi/core' +import { getContext, setContext } from 'svelte' + +type ContextConfig = ResolvedRegister['config'] +const WAGMI_CONFIG_KEY = Symbol('WAGMI_CONFIG') + +export const getWagmiConfig = (): ContextConfig => { + const client = getContext(WAGMI_CONFIG_KEY) + if (!client) { + throw new Error( + 'No Wagmi context was found in Svelte context. Did you forget to wrap your component with WagmiProvider?', + ) + } + + return client +} + +export const setWagmiConfig = (config: ContextConfig) => { + setContext(WAGMI_CONFIG_KEY, config) +} diff --git a/packages/svelte/src/lib/errors.ts b/packages/svelte/src/lib/errors.ts new file mode 100644 index 0000000000..91ec8e8722 --- /dev/null +++ b/packages/svelte/src/lib/errors.ts @@ -0,0 +1,27 @@ +import { BaseError as CoreError } from '@wagmi/core' + +import { getVersion } from './version.js' + +export type BaseErrorType = BaseError & { name: 'WagmiError' } + +export class BaseError extends CoreError { + override name = 'WagmiError' + override get docsBaseUrl() { + return 'https://wagmi.sh/react' + } + override get version() { + return getVersion() + } +} + +export type WagmiProviderNotFoundErrorType = WagmiProviderNotFoundError & { + name: 'WagmiProviderNotFoundError' +} +export class WagmiProviderNotFoundError extends BaseError { + override name = 'WagmiProviderNotFoundError' + constructor() { + super('`useConfig` must be used within `WagmiProvider`.', { + docsPath: '/api/WagmiProvider', + }) + } +} diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.ts new file mode 100644 index 0000000000..5cbcba40b7 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.ts @@ -0,0 +1,20 @@ +import type { Config, ResolvedRegister } from '@wagmi/core' + +import { getWagmiConfig } from '$lib/context.js' +import { WagmiProviderNotFoundError } from '$lib/errors.js' +import type { ConfigParameter } from '$lib/types.js' + +export type UseConfigParameters = + ConfigParameter + +export type UseConfigReturnType = config + +/** https://wagmi.sh/react/api/hooks/useConfig */ +export function useConfig( + parameters: UseConfigParameters = {}, +): UseConfigReturnType { + const config = parameters.config ?? getWagmiConfig() + if (!config) throw new WagmiProviderNotFoundError() + + return config as UseConfigReturnType +} diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/lib/types.ts new file mode 100644 index 0000000000..62f2722631 --- /dev/null +++ b/packages/svelte/src/lib/types.ts @@ -0,0 +1,5 @@ +import type { Config } from '@wagmi/core' + +export type ConfigParameter = { + config?: Config | config | undefined +} diff --git a/packages/svelte/src/lib/version.ts b/packages/svelte/src/lib/version.ts new file mode 100644 index 0000000000..020efb7760 --- /dev/null +++ b/packages/svelte/src/lib/version.ts @@ -0,0 +1,3 @@ +import { version } from '../../package.json' + +export const getVersion = () => `@wagmi/svelte@${version}` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ae8d86748..daac28e0d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -295,6 +295,10 @@ importers: version: 3.4.27(typescript@5.5.4) packages/svelte: + dependencies: + '@wagmi/core': + specifier: workspace:^ + version: link:../core devDependencies: '@sveltejs/adapter-auto': specifier: ^3.0.0 @@ -3565,6 +3569,7 @@ packages: are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} + deprecated: This package is no longer supported. argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -3742,6 +3747,7 @@ packages: bun@1.1.29: resolution: {integrity: sha512-SKhpyKNZtgxrVel9ec9xon3LDv8mgpiuFhARgcJo1YIbggY2PBrKHRNiwQ6Qlb+x3ivmRurfuwWgwGexjpgBRg==} + cpu: [arm64, x64] os: [darwin, linux, win32] hasBin: true @@ -4828,6 +4834,7 @@ packages: gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} + deprecated: This package is no longer supported. gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -4890,6 +4897,7 @@ packages: glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -5155,6 +5163,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6191,6 +6200,7 @@ packages: npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -6996,10 +7006,12 @@ packages: rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@5.0.10: From 15df9ea87e23186de1824cc3a862c97dbb09dcc9 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 09:41:31 -0700 Subject: [PATCH 04/71] ci: ignore .svelte files Biome currently only has partial support for Svelte files. It can successfully format the + +{@render children()} diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.ts index 5cbcba40b7..efdc91b84b 100644 --- a/packages/svelte/src/lib/hooks/useConfig.svelte.ts +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.ts @@ -7,7 +7,7 @@ import type { ConfigParameter } from '$lib/types.js' export type UseConfigParameters = ConfigParameter -export type UseConfigReturnType = config +export type UseConfigReturnType = () => config /** https://wagmi.sh/react/api/hooks/useConfig */ export function useConfig( @@ -16,5 +16,5 @@ export function useConfig( const config = parameters.config ?? getWagmiConfig() if (!config) throw new WagmiProviderNotFoundError() - return config as UseConfigReturnType + return (() => config) as UseConfigReturnType } diff --git a/packages/svelte/src/lib/version.ts b/packages/svelte/src/lib/version.ts index 020efb7760..e02cdfdf07 100644 --- a/packages/svelte/src/lib/version.ts +++ b/packages/svelte/src/lib/version.ts @@ -1,3 +1 @@ -import { version } from '../../package.json' - -export const getVersion = () => `@wagmi/svelte@${version}` +export const getVersion = () => __VERSION__ diff --git a/packages/svelte/src/routes/+layout.svelte b/packages/svelte/src/routes/+layout.svelte new file mode 100644 index 0000000000..56105714db --- /dev/null +++ b/packages/svelte/src/routes/+layout.svelte @@ -0,0 +1,20 @@ + + + + {@render children()} + \ No newline at end of file diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 9c42926fc5..90d873cb1e 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -1,3 +1,7 @@ -

Welcome to your library project

-

Create your package using @sveltejs/package and preview/showcase your work with SvelteKit

-

Visit svelte.dev/docs/kit to read the documentation

+ + +
{JSON.stringify(config, null, 2)}
\ No newline at end of file diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts index dd1b8b7fa1..b30c9b6b1e 100644 --- a/packages/svelte/vite.config.ts +++ b/packages/svelte/vite.config.ts @@ -3,4 +3,7 @@ import { defineConfig } from 'vite' export default defineConfig({ plugins: [sveltekit()], + define: { + __VERSION__: JSON.stringify(require('./package.json').version), + }, }) From 5d20e42af98cfd4fee9d92c7f379535d7a774800 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 09:43:25 -0700 Subject: [PATCH 06/71] fix: add "@wagmi/svelte" prefix to version --- packages/svelte/src/lib/version.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/lib/version.ts b/packages/svelte/src/lib/version.ts index e02cdfdf07..cebf26d12e 100644 --- a/packages/svelte/src/lib/version.ts +++ b/packages/svelte/src/lib/version.ts @@ -1 +1 @@ -export const getVersion = () => __VERSION__ +export const getVersion = () => `@wagmi/svelte@${__VERSION__}` From 5ea08c3d147b6b02b6941fb95cee9316c1866bf9 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 09:51:16 -0700 Subject: [PATCH 07/71] test: add tests for version --- packages/svelte/src/lib/version.test.ts | 6 ++++++ packages/svelte/test/setup.ts | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 packages/svelte/src/lib/version.test.ts diff --git a/packages/svelte/src/lib/version.test.ts b/packages/svelte/src/lib/version.test.ts new file mode 100644 index 0000000000..a545b00f84 --- /dev/null +++ b/packages/svelte/src/lib/version.test.ts @@ -0,0 +1,6 @@ +import { expect, test } from 'vitest' +import { getVersion } from './version.js' + +test('default', () => { + expect(getVersion()).toMatchInlineSnapshot(`"@wagmi/svelte@x.y.z"`) +}) diff --git a/packages/svelte/test/setup.ts b/packages/svelte/test/setup.ts index 5c0dcc071d..e2b7d66c7f 100644 --- a/packages/svelte/test/setup.ts +++ b/packages/svelte/test/setup.ts @@ -1,8 +1,9 @@ -import { vi } from 'vitest' +import { beforeAll, vi } from 'vitest' // Make dates stable across runs Date.now = vi.fn(() => new Date(Date.UTC(2023, 1, 1)).valueOf()) -vi.mock('../src/version.ts', () => { - return { version: 'x.y.z' } +beforeAll(() => { + // vitest doesn't seem to use the defined __VERSION__ in the vite.config.ts + globalThis.__VERSION__ = 'x.y.z' }) From b2bdb19286ac0afae2df8cb89dc606e6ac001507 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 09:54:27 -0700 Subject: [PATCH 08/71] test: add tests for errors --- packages/svelte/src/lib/errors.test.ts | 164 +++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 packages/svelte/src/lib/errors.test.ts diff --git a/packages/svelte/src/lib/errors.test.ts b/packages/svelte/src/lib/errors.test.ts new file mode 100644 index 0000000000..7a9fea3135 --- /dev/null +++ b/packages/svelte/src/lib/errors.test.ts @@ -0,0 +1,164 @@ +import { expect, test } from 'vitest' + +import { BaseError, WagmiProviderNotFoundError } from './errors.js' + +test('BaseError', () => { + expect(new BaseError('An error occurred.')).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Version: @wagmi/svelte@x.y.z] + `) + + expect( + new BaseError('An error occurred.', { details: 'details' }), + ).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Details: details + Version: @wagmi/svelte@x.y.z] + `) + + expect(new BaseError('', { details: 'details' })).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Details: details + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('BaseError (w/ docsPath)', () => { + expect( + new BaseError('An error occurred.', { + details: 'details', + docsPath: '/lol', + }), + ).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Docs: https://wagmi.sh/react/lol.html + Details: details + Version: @wagmi/svelte@x.y.z] + `) + expect( + new BaseError('An error occurred.', { + cause: new BaseError('error', { docsPath: '/docs' }), + }), + ).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Docs: https://wagmi.sh/react/docs.html + Version: @wagmi/svelte@x.y.z] + `) + expect( + new BaseError('An error occurred.', { + cause: new BaseError('error'), + docsPath: '/lol', + }), + ).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Docs: https://wagmi.sh/react/lol.html + Version: @wagmi/svelte@x.y.z] + `) + expect( + new BaseError('An error occurred.', { + details: 'details', + docsPath: '/lol', + docsSlug: 'test', + }), + ).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Docs: https://wagmi.sh/react/lol.html#test + Details: details + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('BaseError (w/ metaMessages)', () => { + expect( + new BaseError('An error occurred.', { + details: 'details', + metaMessages: ['Reason: idk', 'Cause: lol'], + }), + ).toMatchInlineSnapshot(` + [WagmiError: An error occurred. + + Reason: idk + Cause: lol + + Details: details + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('inherited BaseError', () => { + const err = new BaseError('An error occurred.', { + details: 'details', + docsPath: '/lol', + }) + expect( + new BaseError('An internal error occurred.', { + cause: err, + }), + ).toMatchInlineSnapshot(` + [WagmiError: An internal error occurred. + + Docs: https://wagmi.sh/react/lol.html + Details: details + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('inherited Error', () => { + const err = new Error('details') + expect( + new BaseError('An internal error occurred.', { + cause: err, + docsPath: '/lol', + }), + ).toMatchInlineSnapshot(` + [WagmiError: An internal error occurred. + + Docs: https://wagmi.sh/react/lol.html + Details: details + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('walk: no predicate fn (walks to leaf)', () => { + class FooError extends BaseError {} + class BarError extends BaseError {} + + const err = new BaseError('test1', { + cause: new FooError('test2', { cause: new BarError('test3') }), + }) + expect(err.walk()).toMatchInlineSnapshot(` + [WagmiError: test3 + + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('walk: predicate fn', () => { + class FooError extends BaseError {} + class BarError extends BaseError {} + + const err = new BaseError('test1', { + cause: new FooError('test2', { cause: new BarError('test3') }), + }) + expect(err.walk((err) => err instanceof FooError)).toMatchInlineSnapshot(` + [WagmiError: test2 + + Version: @wagmi/svelte@x.y.z] + `) +}) + +test('WagmiProviderNotFoundError', () => { + expect(new WagmiProviderNotFoundError()).toMatchInlineSnapshot(` + [WagmiProviderNotFoundError: \`useConfig\` must be used within \`WagmiProvider\`. + + Docs: https://wagmi.sh/react/api/WagmiProvider.html + Version: @wagmi/svelte@x.y.z] + `) +}) From a8894cf3a8bd6c14969640e17d1f9ca8269d3b95 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 11:59:32 -0700 Subject: [PATCH 09/71] refactor: use RuneReturnType instead of () => T --- packages/svelte/src/lib/hooks/useConfig.svelte.ts | 5 +++-- packages/svelte/src/lib/types.ts | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.ts index efdc91b84b..303a377ce2 100644 --- a/packages/svelte/src/lib/hooks/useConfig.svelte.ts +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.ts @@ -2,12 +2,13 @@ import type { Config, ResolvedRegister } from '@wagmi/core' import { getWagmiConfig } from '$lib/context.js' import { WagmiProviderNotFoundError } from '$lib/errors.js' -import type { ConfigParameter } from '$lib/types.js' +import type { ConfigParameter, RuneReturnType } from '$lib/types.js' export type UseConfigParameters = ConfigParameter -export type UseConfigReturnType = () => config +export type UseConfigReturnType = + RuneReturnType /** https://wagmi.sh/react/api/hooks/useConfig */ export function useConfig( diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/lib/types.ts index 62f2722631..01ba8a8934 100644 --- a/packages/svelte/src/lib/types.ts +++ b/packages/svelte/src/lib/types.ts @@ -1,5 +1,7 @@ import type { Config } from '@wagmi/core' +export type RuneReturnType = () => T + export type ConfigParameter = { config?: Config | config | undefined } From 0e5c4635b14ec5fe12a87b83c6f7c28cade5cd33 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 12:08:38 -0700 Subject: [PATCH 10/71] refactor: use RuneParameters type for parameters This allows us to accept a function as a parameter, which allows for reactivity (if we pass a raw value, it won't be reactive). --- packages/svelte/src/lib/hooks/useConfig.svelte.ts | 8 ++++++-- packages/svelte/src/lib/types.ts | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.ts index 303a377ce2..f999835d9c 100644 --- a/packages/svelte/src/lib/hooks/useConfig.svelte.ts +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.ts @@ -2,10 +2,14 @@ import type { Config, ResolvedRegister } from '@wagmi/core' import { getWagmiConfig } from '$lib/context.js' import { WagmiProviderNotFoundError } from '$lib/errors.js' -import type { ConfigParameter, RuneReturnType } from '$lib/types.js' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' export type UseConfigParameters = - ConfigParameter + RuneParameters> export type UseConfigReturnType = RuneReturnType diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/lib/types.ts index 01ba8a8934..c6fdb703d4 100644 --- a/packages/svelte/src/lib/types.ts +++ b/packages/svelte/src/lib/types.ts @@ -1,5 +1,6 @@ import type { Config } from '@wagmi/core' +export type RuneParameters = T | (() => T) export type RuneReturnType = () => T export type ConfigParameter = { From c9241f0d05376378e80edf7473221a4be2b18864 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 12:30:03 -0700 Subject: [PATCH 11/71] feat: create `readParameters` function --- packages/svelte/src/lib/hooks/useConfig.svelte.ts | 11 ++++++----- packages/svelte/src/lib/types.ts | 3 +++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.ts index f999835d9c..8098cd378b 100644 --- a/packages/svelte/src/lib/hooks/useConfig.svelte.ts +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.ts @@ -2,10 +2,11 @@ import type { Config, ResolvedRegister } from '@wagmi/core' import { getWagmiConfig } from '$lib/context.js' import { WagmiProviderNotFoundError } from '$lib/errors.js' -import type { - ConfigParameter, - RuneParameters, - RuneReturnType, +import { + type ConfigParameter, + type RuneParameters, + type RuneReturnType, + readParameters, } from '$lib/types.js' export type UseConfigParameters = @@ -18,7 +19,7 @@ export type UseConfigReturnType = export function useConfig( parameters: UseConfigParameters = {}, ): UseConfigReturnType { - const config = parameters.config ?? getWagmiConfig() + const config = $derived(readParameters(parameters).config ?? getWagmiConfig()) if (!config) throw new WagmiProviderNotFoundError() return (() => config) as UseConfigReturnType diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/lib/types.ts index c6fdb703d4..e3e983b50e 100644 --- a/packages/svelte/src/lib/types.ts +++ b/packages/svelte/src/lib/types.ts @@ -3,6 +3,9 @@ import type { Config } from '@wagmi/core' export type RuneParameters = T | (() => T) export type RuneReturnType = () => T +export const readParameters = (parameter: RuneParameters): T => + parameter instanceof Function ? parameter() : parameter + export type ConfigParameter = { config?: Config | config | undefined } From 80f0e88977de5b345dd190f5821567df2ddbe37f Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 16:03:52 -0700 Subject: [PATCH 12/71] test: refactor svelte tests into packages/svelte folder I'm not sure how to get Svelte tests into the Vitest workspace. Without installing a bunch of dependencies into the root folder, it cannot run the Svelte-specific code. --- package.json | 2 +- packages/svelte/package.json | 8 +- packages/svelte/src/lib/hooks/test.svelte.ts | 19 ++ .../src/lib/hooks/useConfig.svelte.test.ts | 21 ++ packages/svelte/src/routes/+layout.svelte | 4 +- packages/svelte/src/routes/+page.svelte | 2 +- packages/svelte/test/setup.ts | 13 +- packages/svelte/vite.config.ts | 9 +- pnpm-lock.yaml | 216 ++++++++++++++---- vitest.workspace.ts | 9 - 10 files changed, 233 insertions(+), 70 deletions(-) create mode 100644 packages/svelte/src/lib/hooks/test.svelte.ts create mode 100644 packages/svelte/src/lib/hooks/useConfig.svelte.test.ts diff --git a/package.json b/package.json index 7072b60a56..15374451cc 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "test:update": "vitest --update", "test:ui": "vitest --ui", "test:vue": "vitest --project @wagmi/vue", - "test:svelte": "vitest --project @wagmi/svelte", + "test:svelte": "pnpm --filter svelte test", "version:update": "bun scripts/updateVersion.ts", "version:update:viem": "bun scripts/updateViemVersion.ts" }, diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 8ae7a35da5..8aa8b9d10b 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -10,7 +10,9 @@ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "lint": "eslint . && prettier --check .", - "format": "prettier --write ." + "format": "prettier --write .", + "test:unit": "vitest", + "test": "pnpm run test:unit -- --run --watch" }, "files": ["dist", "!dist/**/*.test.*", "!dist/**/*.spec.*"], "sideEffects": ["**/*.css"], @@ -32,6 +34,7 @@ "@sveltejs/package": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^4.0.0", "@types/eslint": "^9.6.0", + "@wagmi/test": "workspace:^", "eslint": "^9.7.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.36.0", @@ -43,7 +46,8 @@ "svelte-check": "^4.0.0", "typescript": "^5.0.0", "typescript-eslint": "^8.0.0", - "vite": "^5.0.11" + "vite": "^5.0.11", + "vitest": "^2.0.4" }, "dependencies": { "@wagmi/core": "workspace:^" diff --git a/packages/svelte/src/lib/hooks/test.svelte.ts b/packages/svelte/src/lib/hooks/test.svelte.ts new file mode 100644 index 0000000000..b1376332a4 --- /dev/null +++ b/packages/svelte/src/lib/hooks/test.svelte.ts @@ -0,0 +1,19 @@ +import { config } from '@wagmi/test' +import { vi } from 'vitest' + +type TestHookOptions = { + shouldMockConfig?: boolean +} + +export const testHook = + (fn: () => void, options: TestHookOptions = {}) => + async () => { + if (options.shouldMockConfig ?? true) { + const svelte = await import('svelte') + svelte.getContext = vi.fn().mockReturnValue(config) + } + + const cleanup = $effect.root(fn) + + cleanup() + } diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.test.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.test.ts new file mode 100644 index 0000000000..77b6293f46 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.test.ts @@ -0,0 +1,21 @@ +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +test( + 'mounts', + testHook(() => { + const config = useConfig() + expect(config).toBeDefined() + }), +) + +test( + 'behavior: throws when not inside Provider', + testHook( + () => { + expect(() => useConfig()).toThrow() + }, + { shouldMockConfig: false }, + ), +) diff --git a/packages/svelte/src/routes/+layout.svelte b/packages/svelte/src/routes/+layout.svelte index 56105714db..4c926b04c4 100644 --- a/packages/svelte/src/routes/+layout.svelte +++ b/packages/svelte/src/routes/+layout.svelte @@ -16,5 +16,5 @@ const { children }: { children: Snippet } = $props() - {@render children()} - \ No newline at end of file + {@render children()} + diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 90d873cb1e..1259d1ca71 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -4,4 +4,4 @@ import { useConfig } from '$lib/hooks/useConfig.svelte.js' const config = $derived.by(useConfig()) -
{JSON.stringify(config, null, 2)}
\ No newline at end of file +
{JSON.stringify(config, null, 2)}
diff --git a/packages/svelte/test/setup.ts b/packages/svelte/test/setup.ts index e2b7d66c7f..a47233ce75 100644 --- a/packages/svelte/test/setup.ts +++ b/packages/svelte/test/setup.ts @@ -1,9 +1,12 @@ -import { beforeAll, vi } from 'vitest' +import { beforeEach, vi } from 'vitest' -// Make dates stable across runs -Date.now = vi.fn(() => new Date(Date.UTC(2023, 1, 1)).valueOf()) +vi.mock('svelte') + +beforeEach(async () => { + // Make dates stable across runs + Date.now = vi.fn(() => new Date(Date.UTC(2023, 1, 1)).valueOf()) -beforeAll(() => { - // vitest doesn't seem to use the defined __VERSION__ in the vite.config.ts globalThis.__VERSION__ = 'x.y.z' + + vi.restoreAllMocks() }) diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts index b30c9b6b1e..d1845a3655 100644 --- a/packages/svelte/vite.config.ts +++ b/packages/svelte/vite.config.ts @@ -1,9 +1,16 @@ import { sveltekit } from '@sveltejs/kit/vite' -import { defineConfig } from 'vite' +import { defineConfig } from 'vitest/config' export default defineConfig({ plugins: [sveltekit()], define: { __VERSION__: JSON.stringify(require('./package.json').version), }, + test: { + name: '@wagmi/svelte', + include: ['./src/**/*.test.ts'], + environment: 'happy-dom', + testTimeout: 10_000, + setupFiles: ['./test/setup.ts'], + }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index daac28e0d0..4eb0126b37 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,28 +302,31 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))) + version: 3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11)) '@sveltejs/kit': specifier: ^2.0.0 - version: 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11) '@sveltejs/package': specifier: ^2.0.0 version: 2.3.6(svelte@5.0.5)(typescript@5.5.4) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.0 - version: 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 4.0.0(svelte@5.0.5)(vite@5.2.11) '@types/eslint': specifier: ^9.6.0 version: 9.6.1 + '@wagmi/test': + specifier: workspace:^ + version: link:../test eslint: specifier: ^9.7.0 - version: 9.13.0(jiti@1.21.6) + version: 9.13.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.13.0(jiti@1.21.6)) + version: 9.1.0(eslint@9.13.0) eslint-plugin-svelte: specifier: ^2.36.0 - version: 2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5) + version: 2.46.0(eslint@9.13.0)(svelte@5.0.5) globals: specifier: ^15.0.0 version: 15.11.0 @@ -341,16 +344,19 @@ importers: version: 5.0.5 svelte-check: specifier: ^4.0.0 - version: 4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4) + version: 4.0.5(svelte@5.0.5)(typescript@5.5.4) typescript: specifier: ^5.0.0 version: 5.5.4 typescript-eslint: specifier: ^8.0.0 - version: 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + version: 8.11.0(eslint@9.13.0)(typescript@5.5.4) vite: specifier: ^5.0.11 - version: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + version: 5.2.11 + vitest: + specifier: ^2.0.4 + version: 2.1.1 packages/test: devDependencies: @@ -9256,6 +9262,12 @@ snapshots: dependencies: eslint: 9.13.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0)': + dependencies: + eslint: 9.13.0 + eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -11138,14 +11150,14 @@ snapshots: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - '@sveltejs/adapter-auto@3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))': + '@sveltejs/adapter-auto@3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11))': dependencies: - '@sveltejs/kit': 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@sveltejs/kit': 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11)': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -11159,7 +11171,7 @@ snapshots: sirv: 3.0.0 svelte: 5.0.5 tiny-glob: 0.2.9 - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vite: 5.2.11 '@sveltejs/package@2.3.6(svelte@5.0.5)(typescript@5.5.4)': dependencies: @@ -11172,25 +11184,25 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11)': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11) debug: 4.3.7 svelte: 5.0.5 - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vite: 5.2.11 transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11)': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.12 svelte: 5.0.5 - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) - vitefu: 1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + vite: 5.2.11 + vitefu: 1.0.3(vite@5.2.11) transitivePeerDependencies: - supports-color @@ -11433,15 +11445,15 @@ snapshots: dependencies: '@types/node': 20.12.10 - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0)(typescript@5.5.4))(eslint@9.13.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0)(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.13.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -11451,14 +11463,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.11.0(eslint@9.13.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.11.0 debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.13.0 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -11469,10 +11481,10 @@ snapshots: '@typescript-eslint/types': 8.11.0 '@typescript-eslint/visitor-keys': 8.11.0 - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -11498,13 +11510,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.11.0(eslint@9.13.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.13.0 transitivePeerDependencies: - supports-color - typescript @@ -11803,6 +11815,14 @@ snapshots: msw: 2.4.9(typescript@5.5.4) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + '@vitest/mocker@2.1.1(vite@5.2.11)': + dependencies: + '@vitest/spy': 2.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + vite: 5.2.11 + '@vitest/pretty-format@2.1.1': dependencies: tinyrainbow: 1.2.0 @@ -13671,21 +13691,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.13.0(jiti@1.21.6)): + eslint-compat-utils@0.5.1(eslint@9.13.0): dependencies: - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.13.0 semver: 7.6.2 - eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@1.21.6)): + eslint-config-prettier@9.1.0(eslint@9.13.0): dependencies: - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.13.0 - eslint-plugin-svelte@2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5): + eslint-plugin-svelte@2.46.0(eslint@9.13.0)(svelte@5.0.5): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.13.0(jiti@1.21.6) - eslint-compat-utils: 0.5.1(eslint@9.13.0(jiti@1.21.6)) + eslint: 9.13.0 + eslint-compat-utils: 0.5.1(eslint@9.13.0) esutils: 2.0.3 known-css-properties: 0.35.0 postcss: 8.4.38 @@ -13713,6 +13733,46 @@ snapshots: eslint-visitor-keys@4.1.0: {} + eslint@9.13.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.7.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + eslint@9.13.0(jiti@1.21.6): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) @@ -13754,6 +13814,7 @@ snapshots: jiti: 1.21.6 transitivePeerDependencies: - supports-color + optional: true esm-env@1.0.0: {} @@ -13993,6 +14054,8 @@ snapshots: optionalDependencies: picomatch: 3.0.1 + fdir@6.3.0: {} + fdir@6.3.0(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -17412,11 +17475,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4): + svelte-check@4.0.5(svelte@5.0.5)(typescript@5.5.4): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 - fdir: 6.3.0(picomatch@4.0.2) + fdir: 6.3.0 picocolors: 1.1.0 sade: 1.8.1 svelte: 5.0.5 @@ -17637,11 +17700,11 @@ snapshots: type-fest@4.18.2: {} - typescript-eslint@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4): + typescript-eslint@8.11.0(eslint@9.13.0)(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0)(typescript@5.5.4))(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -18063,6 +18126,22 @@ snapshots: - supports-color - terser + vite-node@2.1.1: + dependencies: + cac: 6.7.14 + debug: 4.3.7 + pathe: 1.1.2 + vite: 5.2.11 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + vite-node@2.1.1(@types/node@20.12.10)(terser@5.31.0): dependencies: cac: 6.7.14 @@ -18159,6 +18238,14 @@ snapshots: transitivePeerDependencies: - supports-color + vite@5.2.11: + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.17.2 + optionalDependencies: + fsevents: 2.3.3 + vite@5.2.11(@types/node@20.12.10)(terser@5.31.0): dependencies: esbuild: 0.20.2 @@ -18169,9 +18256,9 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vitefu@1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + vitefu@1.0.3(vite@5.2.11): optionalDependencies: - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vite: 5.2.11 vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): dependencies: @@ -18219,6 +18306,37 @@ snapshots: - typescript - universal-cookie + vitest@2.1.1: + dependencies: + '@vitest/expect': 2.1.1 + '@vitest/mocker': 2.1.1(vite@5.2.11) + '@vitest/pretty-format': 2.1.1 + '@vitest/runner': 2.1.1 + '@vitest/snapshot': 2.1.1 + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 + chai: 5.1.1 + debug: 4.3.7 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.2.11 + vite-node: 2.1.1 + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - stylus + - sugarss + - supports-color + - terser + vitest@2.1.1(@types/node@20.12.10)(@vitest/ui@2.1.1)(happy-dom@15.7.4)(msw@2.4.9(typescript@5.5.4))(terser@5.31.0): dependencies: '@vitest/expect': 2.1.1 diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 09c2fff019..21f5a677b8 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -69,15 +69,6 @@ export default defineWorkspace([ }, resolve: { alias }, }, - { - test: { - name: '@wagmi/svelte', - include: ['./packages/svelte/src/**/*.test.ts'], - environment: 'happy-dom', - testTimeout: 10_000, - setupFiles: ['./packages/svelte/test/setup.ts'], - }, - }, { test: { name: 'react-register', From a2f270d4e75175d052ec2fd554c7327fe230c37c Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 24 Oct 2024 21:27:35 -0700 Subject: [PATCH 13/71] feat: add useChainId This required a bit more refactoring on the testing system. There are still a few things I haven't figured out yet, but we're getting there :). --- packages/svelte/src/lib/hooks/test.svelte.ts | 4 +- .../src/lib/hooks/useChainId.svelte.test.ts | 30 ++++++++++++++ .../svelte/src/lib/hooks/useChainId.svelte.ts | 41 +++++++++++++++++++ 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 packages/svelte/src/lib/hooks/useChainId.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useChainId.svelte.ts diff --git a/packages/svelte/src/lib/hooks/test.svelte.ts b/packages/svelte/src/lib/hooks/test.svelte.ts index b1376332a4..c285c8c59e 100644 --- a/packages/svelte/src/lib/hooks/test.svelte.ts +++ b/packages/svelte/src/lib/hooks/test.svelte.ts @@ -1,5 +1,5 @@ import { config } from '@wagmi/test' -import { vi } from 'vitest' +import {onTestFinished, vi} from 'vitest' type TestHookOptions = { shouldMockConfig?: boolean @@ -15,5 +15,5 @@ export const testHook = const cleanup = $effect.root(fn) - cleanup() + onTestFinished(() => cleanup()) } diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts b/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts new file mode 100644 index 0000000000..3dd3765400 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts @@ -0,0 +1,30 @@ +import { expect, test, vi } from 'vitest' +import { testHook } from './test.svelte.js' +import { useChainId } from './useChainId.svelte.js' +import { config } from '@wagmi/test' +import {flushSync} from "svelte"; + +test( + 'default', + testHook(async () => { + const chainId = $derived.by(useChainId()) + expect(chainId).toMatchInlineSnapshot('1') + + config.setState((x) => ({ ...x, chainId: 456 })) + const svelte = await import('svelte') + svelte.getContext = vi.fn().mockReturnValue(config) // TODO: why do i need to mock it again? + flushSync() + expect(chainId).toMatchInlineSnapshot('456') + }), +) + +test( + 'parameters: config', + testHook( + () => { + const chainId = $derived.by(useChainId({ config })) + expect(chainId).toBeDefined() + }, + { shouldMockConfig: false }, + ), +) \ No newline at end of file diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.ts b/packages/svelte/src/lib/hooks/useChainId.svelte.ts new file mode 100644 index 0000000000..d69620d07a --- /dev/null +++ b/packages/svelte/src/lib/hooks/useChainId.svelte.ts @@ -0,0 +1,41 @@ +import { + type Config, + type GetChainIdReturnType, + type ResolvedRegister, + getChainId, + watchChainId, +} from '@wagmi/core' + +import { useConfig } from '$lib/hooks/useConfig.svelte.js' +import { + type ConfigParameter, + type RuneParameters, + type RuneReturnType, +} from '$lib/types.js' + +export type UseChainIdParameters = + RuneParameters> + +export type UseChainIdReturnType = + RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useChainId */ +export function useChainId( + parameters: UseChainIdParameters = {}, +): UseChainIdReturnType { + const config = $derived.by(useConfig(parameters)); + let chainId = $state(getChainId(config)) + + $effect(() => { + chainId = getChainId(config) + const unsubscribe = watchChainId(config, { + onChange: (newChainId) => { + chainId = newChainId + }, + }) + + return unsubscribe + }) + + return (() => chainId) +} \ No newline at end of file From 30a95746a92080325bb12bfdbdf0e8e7d9ae6736 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 25 Oct 2024 09:10:24 -0700 Subject: [PATCH 14/71] feat: add useChainId hook --- packages/svelte/src/lib/hooks/test.svelte.ts | 2 +- .../src/lib/hooks/useChainId.svelte.test.ts | 42 ++++++++-------- .../svelte/src/lib/hooks/useChainId.svelte.ts | 50 +++++++++---------- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/packages/svelte/src/lib/hooks/test.svelte.ts b/packages/svelte/src/lib/hooks/test.svelte.ts index c285c8c59e..d67fce3829 100644 --- a/packages/svelte/src/lib/hooks/test.svelte.ts +++ b/packages/svelte/src/lib/hooks/test.svelte.ts @@ -1,5 +1,5 @@ import { config } from '@wagmi/test' -import {onTestFinished, vi} from 'vitest' +import { onTestFinished, vi } from 'vitest' type TestHookOptions = { shouldMockConfig?: boolean diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts b/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts index 3dd3765400..29a593bc9d 100644 --- a/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts @@ -1,30 +1,30 @@ +import { config } from '@wagmi/test' +import { flushSync } from 'svelte' import { expect, test, vi } from 'vitest' import { testHook } from './test.svelte.js' import { useChainId } from './useChainId.svelte.js' -import { config } from '@wagmi/test' -import {flushSync} from "svelte"; test( - 'default', - testHook(async () => { - const chainId = $derived.by(useChainId()) - expect(chainId).toMatchInlineSnapshot('1') + 'default', + testHook(async () => { + const chainId = $derived.by(useChainId()) + expect(chainId).toMatchInlineSnapshot('1') - config.setState((x) => ({ ...x, chainId: 456 })) - const svelte = await import('svelte') - svelte.getContext = vi.fn().mockReturnValue(config) // TODO: why do i need to mock it again? - flushSync() - expect(chainId).toMatchInlineSnapshot('456') - }), + config.setState((x) => ({ ...x, chainId: 456 })) + const svelte = await import('svelte') + svelte.getContext = vi.fn().mockReturnValue(config) // TODO: why do i need to mock it again? + flushSync() + expect(chainId).toMatchInlineSnapshot('456') + }), ) test( - 'parameters: config', - testHook( - () => { - const chainId = $derived.by(useChainId({ config })) - expect(chainId).toBeDefined() - }, - { shouldMockConfig: false }, - ), -) \ No newline at end of file + 'parameters: config', + testHook( + () => { + const chainId = $derived.by(useChainId({ config })) + expect(chainId).toBeDefined() + }, + { shouldMockConfig: false }, + ), +) diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.ts b/packages/svelte/src/lib/hooks/useChainId.svelte.ts index d69620d07a..7c3361e789 100644 --- a/packages/svelte/src/lib/hooks/useChainId.svelte.ts +++ b/packages/svelte/src/lib/hooks/useChainId.svelte.ts @@ -1,41 +1,41 @@ import { - type Config, - type GetChainIdReturnType, - type ResolvedRegister, - getChainId, - watchChainId, + type Config, + type GetChainIdReturnType, + type ResolvedRegister, + getChainId, + watchChainId, } from '@wagmi/core' import { useConfig } from '$lib/hooks/useConfig.svelte.js' -import { - type ConfigParameter, - type RuneParameters, - type RuneReturnType, +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, } from '$lib/types.js' export type UseChainIdParameters = - RuneParameters> + RuneParameters> export type UseChainIdReturnType = - RuneReturnType> + RuneReturnType> /** https://wagmi.sh/react/api/hooks/useChainId */ export function useChainId( - parameters: UseChainIdParameters = {}, + parameters: UseChainIdParameters = {}, ): UseChainIdReturnType { - const config = $derived.by(useConfig(parameters)); - let chainId = $state(getChainId(config)) - - $effect(() => { - chainId = getChainId(config) - const unsubscribe = watchChainId(config, { - onChange: (newChainId) => { - chainId = newChainId - }, - }) + const config = $derived.by(useConfig(parameters)) + let chainId = $state(getChainId(config)) - return unsubscribe + $effect(() => { + chainId = getChainId(config) + const unsubscribe = watchChainId(config, { + onChange: (newChainId) => { + chainId = newChainId + }, }) - return (() => chainId) -} \ No newline at end of file + return unsubscribe + }) + + return () => chainId +} From 520af73bd3535a5c5b0dbf72419f1f86425cbc21 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 25 Oct 2024 09:22:37 -0700 Subject: [PATCH 15/71] feat: add useWatchBlockNumber hook --- .../hooks/useWatchBlockNumber.svelte.test.ts | 28 +++++++ .../lib/hooks/useWatchBlockNumber.svelte.ts | 76 +++++++++++++++++++ packages/svelte/src/lib/types.ts | 4 + 3 files changed, 108 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts new file mode 100644 index 0000000000..346f7a26e6 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts @@ -0,0 +1,28 @@ +import { testClient, wait } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useWatchBlockNumber } from './useWatchBlockNumber.svelte.js' + +test( + 'default', + testHook(async () => { + const blockNumbers: bigint[] = [] + useWatchBlockNumber({ + onBlockNumber(blockNumber) { + blockNumbers.push(blockNumber) + }, + }) + + await testClient.mainnet.mine({ blocks: 1 }) + await wait(100) + await testClient.mainnet.mine({ blocks: 1 }) + await wait(100) + await testClient.mainnet.mine({ blocks: 1 }) + await wait(100) + + expect(blockNumbers.length).toBe(3) + expect( + blockNumbers.map((blockNumber) => blockNumber - blockNumbers[0]!), + ).toEqual([0n, 1n, 2n]) + }), +) diff --git a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts new file mode 100644 index 0000000000..4294f4c819 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts @@ -0,0 +1,76 @@ +import { + type Config, + type ResolvedRegister, + type WatchBlockNumberParameters, + watchBlockNumber, +} from '@wagmi/core' +import type { UnionCompute, UnionExactPartial } from '@wagmi/core/internal' + +import { useChainId } from '$lib/hooks/useChainId.svelte.js' +import { useConfig } from '$lib/hooks/useConfig.svelte.js' +import { + type ConfigParameter, + type EnabledParameter, + type RuneParameters, + readParameters, +} from '$lib/types.js' + +export type UseWatchBlockNumberParameters< + config extends Config = Config, + chainId extends + tconfig['chains'][number]['id'] = config['chains'][number]['id'], +> = RuneParameters< + UnionCompute< + UnionExactPartial> & + ConfigParameter & + EnabledParameter + > +> + +export type UseWatchBlockNumberReturnType = void + +/** https://wagmi.sh/react/api/hooks/useWatchBlockNumber */ +export function useWatchBlockNumber< + config extends Config = ResolvedRegister['config'], + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], +>( + parameters: UseWatchBlockNumberParameters = {} as any, +): UseWatchBlockNumberReturnType { + const { + enabled = true, + onBlockNumber, + config: _, + ...rest + } = $derived(readParameters(parameters)) + + const config = $derived.by(useConfig(parameters)) + const configChainId = $derived.by(useChainId(parameters)) + const chainId = $derived(rest.chainId ?? configChainId) + + $effect(() => { + ;[ + // deps + chainId, + config, + enabled, + onBlockNumber, + rest.onError, + rest.emitMissed, + rest.emitOnBegin, + rest.poll, + rest.pollingInterval, + rest.syncConnectedChain, + ] + if (!enabled) return + if (!onBlockNumber) return + + const unsubscribe = watchBlockNumber(config, { + ...(rest as any), + chainId, + onBlockNumber, + }) + + return unsubscribe + }) +} diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/lib/types.ts index e3e983b50e..3e23f5a3ad 100644 --- a/packages/svelte/src/lib/types.ts +++ b/packages/svelte/src/lib/types.ts @@ -9,3 +9,7 @@ export const readParameters = (parameter: RuneParameters): T => export type ConfigParameter = { config?: Config | config | undefined } + +export type EnabledParameter = { + enabled?: boolean | undefined +} From d3b838c71ccc14daa2ebc682a89d93bffee136ce Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 25 Oct 2024 09:33:52 -0700 Subject: [PATCH 16/71] feat: remove non-function parameter option Not only was this a bad choice for users (as they might not know why it's not being reactive), it also turns out to be harder to use in types. --- .../src/lib/hooks/useChainId.svelte.test.ts | 2 +- .../svelte/src/lib/hooks/useChainId.svelte.ts | 2 +- .../svelte/src/lib/hooks/useConfig.svelte.ts | 13 +++++----- .../hooks/useWatchBlockNumber.svelte.test.ts | 4 ++-- .../lib/hooks/useWatchBlockNumber.svelte.ts | 16 ++++++------- packages/svelte/src/lib/types.ts | 24 +++++++++++++++---- 6 files changed, 38 insertions(+), 23 deletions(-) diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts b/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts index 29a593bc9d..5705ceb5b8 100644 --- a/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts @@ -22,7 +22,7 @@ test( 'parameters: config', testHook( () => { - const chainId = $derived.by(useChainId({ config })) + const chainId = $derived.by(useChainId(() => ({ config }))) expect(chainId).toBeDefined() }, { shouldMockConfig: false }, diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.ts b/packages/svelte/src/lib/hooks/useChainId.svelte.ts index 7c3361e789..3fe6301d12 100644 --- a/packages/svelte/src/lib/hooks/useChainId.svelte.ts +++ b/packages/svelte/src/lib/hooks/useChainId.svelte.ts @@ -21,7 +21,7 @@ export type UseChainIdReturnType = /** https://wagmi.sh/react/api/hooks/useChainId */ export function useChainId( - parameters: UseChainIdParameters = {}, + parameters: UseChainIdParameters = () => ({}), ): UseChainIdReturnType { const config = $derived.by(useConfig(parameters)) let chainId = $state(getChainId(config)) diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/lib/hooks/useConfig.svelte.ts index 8098cd378b..98d5cc6b39 100644 --- a/packages/svelte/src/lib/hooks/useConfig.svelte.ts +++ b/packages/svelte/src/lib/hooks/useConfig.svelte.ts @@ -2,11 +2,10 @@ import type { Config, ResolvedRegister } from '@wagmi/core' import { getWagmiConfig } from '$lib/context.js' import { WagmiProviderNotFoundError } from '$lib/errors.js' -import { - type ConfigParameter, - type RuneParameters, - type RuneReturnType, - readParameters, +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, } from '$lib/types.js' export type UseConfigParameters = @@ -17,9 +16,9 @@ export type UseConfigReturnType = /** https://wagmi.sh/react/api/hooks/useConfig */ export function useConfig( - parameters: UseConfigParameters = {}, + parameters: UseConfigParameters = () => ({}), ): UseConfigReturnType { - const config = $derived(readParameters(parameters).config ?? getWagmiConfig()) + const config = $derived(parameters().config ?? getWagmiConfig()) if (!config) throw new WagmiProviderNotFoundError() return (() => config) as UseConfigReturnType diff --git a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts index 346f7a26e6..2b1dcefd9a 100644 --- a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts @@ -7,11 +7,11 @@ test( 'default', testHook(async () => { const blockNumbers: bigint[] = [] - useWatchBlockNumber({ + useWatchBlockNumber(() => ({ onBlockNumber(blockNumber) { blockNumbers.push(blockNumber) }, - }) + })) await testClient.mainnet.mine({ blocks: 1 }) await wait(100) diff --git a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts index 4294f4c819..8c517b33e2 100644 --- a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts +++ b/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts @@ -8,17 +8,16 @@ import type { UnionCompute, UnionExactPartial } from '@wagmi/core/internal' import { useChainId } from '$lib/hooks/useChainId.svelte.js' import { useConfig } from '$lib/hooks/useConfig.svelte.js' -import { - type ConfigParameter, - type EnabledParameter, - type RuneParameters, - readParameters, +import type { + ConfigParameter, + EnabledParameter, + RuneParameters, } from '$lib/types.js' export type UseWatchBlockNumberParameters< config extends Config = Config, chainId extends - tconfig['chains'][number]['id'] = config['chains'][number]['id'], + config['chains'][number]['id'] = config['chains'][number]['id'], > = RuneParameters< UnionCompute< UnionExactPartial> & @@ -35,14 +34,15 @@ export function useWatchBlockNumber< chainId extends config['chains'][number]['id'] = config['chains'][number]['id'], >( - parameters: UseWatchBlockNumberParameters = {} as any, + parameters: UseWatchBlockNumberParameters = () => + ({}) as any, ): UseWatchBlockNumberReturnType { const { enabled = true, onBlockNumber, config: _, ...rest - } = $derived(readParameters(parameters)) + } = $derived(parameters()) const config = $derived.by(useConfig(parameters)) const configChainId = $derived.by(useChainId(parameters)) diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/lib/types.ts index 3e23f5a3ad..465fc087b3 100644 --- a/packages/svelte/src/lib/types.ts +++ b/packages/svelte/src/lib/types.ts @@ -1,11 +1,13 @@ +import type { + CreateQueryOptions, + DefaultError, + QueryKey, +} from '@tanstack/svelte-query' import type { Config } from '@wagmi/core' -export type RuneParameters = T | (() => T) +export type RuneParameters = () => T export type RuneReturnType = () => T -export const readParameters = (parameter: RuneParameters): T => - parameter instanceof Function ? parameter() : parameter - export type ConfigParameter = { config?: Config | config | undefined } @@ -13,3 +15,17 @@ export type ConfigParameter = { export type EnabledParameter = { enabled?: boolean | undefined } + +export type QueryParameter< + queryFnData = unknown, + error = DefaultError, + data = queryFnData, + queryKey extends QueryKey = QueryKey, +> = { + query?: + | Omit< + CreateQueryOptions, + 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError' + > + | undefined +} From 1dcdbefb413aba85118fcd1f90ac81012e56b7c1 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 25 Oct 2024 12:31:19 -0700 Subject: [PATCH 17/71] feat: add useBlockNumber hook --- packages/svelte/package.json | 2 + packages/svelte/src/lib/hooks/test.svelte.ts | 18 +- .../lib/hooks/useBlockNumber.svelte.test.ts | 78 ++++++ .../src/lib/hooks/useBlockNumber.svelte.ts | 113 +++++++++ packages/svelte/src/routes/+layout.svelte | 9 +- packages/svelte/src/routes/+page.svelte | 7 + packages/svelte/vite.config.ts | 3 +- pnpm-lock.yaml | 232 ++++++------------ 8 files changed, 292 insertions(+), 170 deletions(-) create mode 100644 packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 8aa8b9d10b..510254c15d 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -26,6 +26,7 @@ } }, "peerDependencies": { + "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", "svelte": "^5.0.0" }, "devDependencies": { @@ -33,6 +34,7 @@ "@sveltejs/kit": "^2.0.0", "@sveltejs/package": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^4.0.0", + "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", "@types/eslint": "^9.6.0", "@wagmi/test": "workspace:^", "eslint": "^9.7.0", diff --git a/packages/svelte/src/lib/hooks/test.svelte.ts b/packages/svelte/src/lib/hooks/test.svelte.ts index d67fce3829..03bff95c54 100644 --- a/packages/svelte/src/lib/hooks/test.svelte.ts +++ b/packages/svelte/src/lib/hooks/test.svelte.ts @@ -1,3 +1,4 @@ +import { QueryClient } from '@tanstack/svelte-query' import { config } from '@wagmi/test' import { onTestFinished, vi } from 'vitest' @@ -8,12 +9,19 @@ type TestHookOptions = { export const testHook = (fn: () => void, options: TestHookOptions = {}) => async () => { - if (options.shouldMockConfig ?? true) { - const svelte = await import('svelte') - svelte.getContext = vi.fn().mockReturnValue(config) - } + const svelte = await import('svelte') + svelte.getContext = vi.fn((key: any) => { + if (key === '$$_queryClient') return new QueryClient() + if (key === '$$_isRestoring') return () => false - const cleanup = $effect.root(fn) + if (options.shouldMockConfig ?? true) { + return config + } + + return undefined + }) + + const cleanup = $effect.root(await fn) onTestFinished(() => cleanup()) } diff --git a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts new file mode 100644 index 0000000000..2ddd9365f2 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts @@ -0,0 +1,78 @@ +import { testClient } from '@wagmi/test' +import { flushSync } from 'svelte' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useBlockNumber } from './useBlockNumber.svelte.js' + +test( + 'mounts', + testHook(async () => { + await testClient.mainnet.resetFork() + + const result = $derived.by(useBlockNumber()) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": 19258213n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "blockNumber", + { + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: watch', + testHook(async () => { + await testClient.mainnet.resetFork() + + const result = $derived.by(useBlockNumber(() => ({ watch: true }))) + + await expect.poll(() => result.isSuccess).toBeTruthy() + const blockNumber = result.data! + expect(result.data).toMatchInlineSnapshot('19258213n') + + await testClient.mainnet.mine({ blocks: 1 }) + await expect + .poll(() => { + result.data + }) + .toEqual(blockNumber + 1n) + + await testClient.mainnet.mine({ blocks: 1 }) + await expect + .poll(() => { + result.data + }) + .toEqual(blockNumber + 2n) + }), +) diff --git a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts new file mode 100644 index 0000000000..66cdfa867b --- /dev/null +++ b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts @@ -0,0 +1,113 @@ +import { + type CreateQueryResult, + createQuery, + useQueryClient, +} from '@tanstack/svelte-query' +import type { + Config, + GetBlockNumberErrorType, + ResolvedRegister, +} from '@wagmi/core' +import type { + Compute, + UnionCompute, + UnionStrictOmit, +} from '@wagmi/core/internal' +import { + type GetBlockNumberData, + type GetBlockNumberOptions, + type GetBlockNumberQueryFnData, + type GetBlockNumberQueryKey, + getBlockNumberQueryOptions, +} from '@wagmi/core/query' + +import { useChainId } from '$lib/hooks/useChainId.svelte.js' +import { useConfig } from '$lib/hooks/useConfig.svelte.js' +import { + type UseWatchBlockNumberParameters, + useWatchBlockNumber, +} from '$lib/hooks/useWatchBlockNumber.svelte.js' +import type { + ConfigParameter, + QueryParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' + +export type UseBlockNumberParameters< + config extends Config = Config, + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = GetBlockNumberData, +> = RuneParameters< + Compute< + GetBlockNumberOptions & + ConfigParameter & + QueryParameter< + GetBlockNumberQueryFnData, + GetBlockNumberErrorType, + selectData, + GetBlockNumberQueryKey + > & { + watch?: + | boolean + | UnionCompute< + UnionStrictOmit< + ReturnType>, + 'chainId' | 'config' | 'onBlockNumber' | 'onError' + > + > + | undefined + } + > +> + +export type UseBlockNumberReturnType = + RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useBlockNumber */ +export function useBlockNumber< + config extends Config = ResolvedRegister['config'], + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = GetBlockNumberData, +>( + parameters: UseBlockNumberParameters< + config, + chainId, + selectData + > = () => ({}), +): UseBlockNumberReturnType { + const { query = {}, watch } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const queryClient = useQueryClient() + const configChainId = $derived.by(useChainId(parameters)) + const chainId = $derived(parameters().chainId ?? configChainId) + + const options = $derived( + getBlockNumberQueryOptions(config, { + ...parameters(), + chainId, + }), + ) + + useWatchBlockNumber(() => ({ + ...({ + config: parameters().config, + chainId: parameters().chainId, + ...(typeof watch === 'object' ? watch : {}), + } as ReturnType), + enabled: Boolean( + (query.enabled ?? true) && + (typeof watch === 'object' ? watch.enabled : watch), + ), + onBlockNumber(blockNumber) { + queryClient.setQueryData(options.queryKey, blockNumber) + }, + })) + + const queryFn = createQuery(() => ({ ...query, ...options })) + + return () => queryFn +} diff --git a/packages/svelte/src/routes/+layout.svelte b/packages/svelte/src/routes/+layout.svelte index 4c926b04c4..8c8f423bd0 100644 --- a/packages/svelte/src/routes/+layout.svelte +++ b/packages/svelte/src/routes/+layout.svelte @@ -1,5 +1,6 @@ - {@render children()} + + {@render children()} + diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 1259d1ca71..acc308d6e5 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -1,7 +1,14 @@
{JSON.stringify(config, null, 2)}
+ +
{JSON.stringify(blockNumber, replacer, 2)}
diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts index d1845a3655..d004ade251 100644 --- a/packages/svelte/vite.config.ts +++ b/packages/svelte/vite.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ include: ['./src/**/*.test.ts'], environment: 'happy-dom', testTimeout: 10_000, - setupFiles: ['./test/setup.ts'], + setupFiles: ['./test/setup.ts', '../test/src/setup.ts'], + globalSetup: ['../test/src/globalSetup.ts'], }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4eb0126b37..fe2b84e41e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,16 +302,19 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11)) + version: 3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))) '@sveltejs/kit': specifier: ^2.0.0 - version: 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11) + version: 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@sveltejs/package': specifier: ^2.0.0 version: 2.3.6(svelte@5.0.5)(typescript@5.5.4) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.0 - version: 4.0.0(svelte@5.0.5)(vite@5.2.11) + version: 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@tanstack/svelte-query': + specifier: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8 + version: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5) '@types/eslint': specifier: ^9.6.0 version: 9.6.1 @@ -320,13 +323,13 @@ importers: version: link:../test eslint: specifier: ^9.7.0 - version: 9.13.0 + version: 9.13.0(jiti@1.21.6) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.13.0) + version: 9.1.0(eslint@9.13.0(jiti@1.21.6)) eslint-plugin-svelte: specifier: ^2.36.0 - version: 2.46.0(eslint@9.13.0)(svelte@5.0.5) + version: 2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5) globals: specifier: ^15.0.0 version: 15.11.0 @@ -344,19 +347,19 @@ importers: version: 5.0.5 svelte-check: specifier: ^4.0.0 - version: 4.0.5(svelte@5.0.5)(typescript@5.5.4) + version: 4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4) typescript: specifier: ^5.0.0 version: 5.5.4 typescript-eslint: specifier: ^8.0.0 - version: 8.11.0(eslint@9.13.0)(typescript@5.5.4) + version: 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) vite: specifier: ^5.0.11 - version: 5.2.11 + version: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vitest: specifier: ^2.0.4 - version: 2.1.1 + version: 2.1.1(@types/node@20.12.10)(@vitest/ui@2.1.1)(happy-dom@15.7.4)(msw@2.4.9(typescript@5.5.4))(terser@5.31.0) packages/test: devDependencies: @@ -2702,6 +2705,10 @@ packages: '@tanstack/query-core@5.49.1': resolution: {integrity: sha512-JnC9ndmD1KKS01Rt/ovRUB1tmwO7zkyXAyIxN9mznuJrcNtOrkmOnQqdJF2ib9oHzc2VxHomnEG7xyfo54Npkw==} + '@tanstack/query-core@https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8': + resolution: {tarball: https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8} + version: 5.56.2 + '@tanstack/query-devtools@5.0.5': resolution: {integrity: sha512-xjuOhOrrO50sPoJ4WG9yPe3imQ0Ds/nutnmwdTqjM2ZTIkflh//p7q2iB6IxFBY9sB106h+PULlma8sgTuOKAQ==} @@ -2730,6 +2737,12 @@ packages: peerDependencies: react: ^18.0.0 + '@tanstack/svelte-query@https://pkg.pr.new/@tanstack/svelte-query@ccce0b8': + resolution: {tarball: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8} + version: 5.56.2 + peerDependencies: + svelte: ^5.0.0-next.259 + '@tanstack/vue-query@5.49.1': resolution: {integrity: sha512-/nTqP8PNCRzMcqTGEuFQE3ntUD3A+K05r6Dw/0hNwNS3PLEaKUKlxytmAhIoaoloQwbbAghjLyKRQZ+CMWv90A==} peerDependencies: @@ -9262,12 +9275,6 @@ snapshots: dependencies: eslint: 9.13.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0)': - dependencies: - eslint: 9.13.0 - eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -11150,14 +11157,14 @@ snapshots: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - '@sveltejs/adapter-auto@3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11))': + '@sveltejs/adapter-auto@3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))': dependencies: - '@sveltejs/kit': 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11) + '@sveltejs/kit': 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11)': + '@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11) + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -11171,7 +11178,7 @@ snapshots: sirv: 3.0.0 svelte: 5.0.5 tiny-glob: 0.2.9 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) '@sveltejs/package@2.3.6(svelte@5.0.5)(typescript@5.5.4)': dependencies: @@ -11184,25 +11191,25 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11)': + '@sveltejs/vite-plugin-svelte-inspector@3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11) + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) debug: 4.3.7 svelte: 5.0.5 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11)': + '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11))(svelte@5.0.5)(vite@5.2.11) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.12 svelte: 5.0.5 - vite: 5.2.11 - vitefu: 1.0.3(vite@5.2.11) + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vitefu: 1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) transitivePeerDependencies: - supports-color @@ -11221,6 +11228,8 @@ snapshots: '@tanstack/query-core@5.49.1': {} + '@tanstack/query-core@https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8': {} + '@tanstack/query-devtools@5.0.5': {} '@tanstack/query-persist-client-core@5.0.5': @@ -11251,6 +11260,11 @@ snapshots: '@tanstack/query-core': 5.49.1 react: 18.3.1 + '@tanstack/svelte-query@https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5)': + dependencies: + '@tanstack/query-core': https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8 + svelte: 5.0.5 + '@tanstack/vue-query@5.49.1(vue@3.4.27(typescript@5.5.4))': dependencies: '@tanstack/match-sorter-utils': 8.15.1 @@ -11445,15 +11459,15 @@ snapshots: dependencies: '@types/node': 20.12.10 - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0)(typescript@5.5.4))(eslint@9.13.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.13.0 + eslint: 9.13.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -11463,14 +11477,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.11.0 debug: 4.3.7 - eslint: 9.13.0 + eslint: 9.13.0(jiti@1.21.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -11481,10 +11495,10 @@ snapshots: '@typescript-eslint/types': 8.11.0 '@typescript-eslint/visitor-keys': 8.11.0 - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -11510,13 +11524,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.11.0(eslint@9.13.0)(typescript@5.5.4)': + '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - eslint: 9.13.0 + eslint: 9.13.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -11815,14 +11829,6 @@ snapshots: msw: 2.4.9(typescript@5.5.4) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) - '@vitest/mocker@2.1.1(vite@5.2.11)': - dependencies: - '@vitest/spy': 2.1.1 - estree-walker: 3.0.3 - magic-string: 0.30.11 - optionalDependencies: - vite: 5.2.11 - '@vitest/pretty-format@2.1.1': dependencies: tinyrainbow: 1.2.0 @@ -13691,21 +13697,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.13.0): + eslint-compat-utils@0.5.1(eslint@9.13.0(jiti@1.21.6)): dependencies: - eslint: 9.13.0 + eslint: 9.13.0(jiti@1.21.6) semver: 7.6.2 - eslint-config-prettier@9.1.0(eslint@9.13.0): + eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@1.21.6)): dependencies: - eslint: 9.13.0 + eslint: 9.13.0(jiti@1.21.6) - eslint-plugin-svelte@2.46.0(eslint@9.13.0)(svelte@5.0.5): + eslint-plugin-svelte@2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.13.0 - eslint-compat-utils: 0.5.1(eslint@9.13.0) + eslint: 9.13.0(jiti@1.21.6) + eslint-compat-utils: 0.5.1(eslint@9.13.0(jiti@1.21.6)) esutils: 2.0.3 known-css-properties: 0.35.0 postcss: 8.4.38 @@ -13733,46 +13739,6 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@9.13.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) - '@eslint-community/regexpp': 4.11.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.7.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.13.0 - '@eslint/plugin-kit': 0.2.1 - '@humanfs/node': 0.16.5 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.7 - escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - eslint@9.13.0(jiti@1.21.6): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) @@ -13814,7 +13780,6 @@ snapshots: jiti: 1.21.6 transitivePeerDependencies: - supports-color - optional: true esm-env@1.0.0: {} @@ -14054,8 +14019,6 @@ snapshots: optionalDependencies: picomatch: 3.0.1 - fdir@6.3.0: {} - fdir@6.3.0(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -17475,11 +17438,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.0.5(svelte@5.0.5)(typescript@5.5.4): + svelte-check@4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 - fdir: 6.3.0 + fdir: 6.3.0(picomatch@4.0.2) picocolors: 1.1.0 sade: 1.8.1 svelte: 5.0.5 @@ -17700,11 +17663,11 @@ snapshots: type-fest@4.18.2: {} - typescript-eslint@8.11.0(eslint@9.13.0)(typescript@5.5.4): + typescript-eslint@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0)(typescript@5.5.4))(eslint@9.13.0)(typescript@5.5.4) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -18126,22 +18089,6 @@ snapshots: - supports-color - terser - vite-node@2.1.1: - dependencies: - cac: 6.7.14 - debug: 4.3.7 - pathe: 1.1.2 - vite: 5.2.11 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@2.1.1(@types/node@20.12.10)(terser@5.31.0): dependencies: cac: 6.7.14 @@ -18238,14 +18185,6 @@ snapshots: transitivePeerDependencies: - supports-color - vite@5.2.11: - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.17.2 - optionalDependencies: - fsevents: 2.3.3 - vite@5.2.11(@types/node@20.12.10)(terser@5.31.0): dependencies: esbuild: 0.20.2 @@ -18256,9 +18195,9 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vitefu@1.0.3(vite@5.2.11): + vitefu@1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): optionalDependencies: - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): dependencies: @@ -18306,37 +18245,6 @@ snapshots: - typescript - universal-cookie - vitest@2.1.1: - dependencies: - '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(vite@5.2.11) - '@vitest/pretty-format': 2.1.1 - '@vitest/runner': 2.1.1 - '@vitest/snapshot': 2.1.1 - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 - chai: 5.1.1 - debug: 4.3.7 - magic-string: 0.30.11 - pathe: 1.1.2 - std-env: 3.7.0 - tinybench: 2.9.0 - tinyexec: 0.3.0 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.2.11 - vite-node: 2.1.1 - why-is-node-running: 2.3.0 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - stylus - - sugarss - - supports-color - - terser - vitest@2.1.1(@types/node@20.12.10)(@vitest/ui@2.1.1)(happy-dom@15.7.4)(msw@2.4.9(typescript@5.5.4))(terser@5.31.0): dependencies: '@vitest/expect': 2.1.1 From 663e516910ece358d6e2e51382517510609e99ff Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 25 Oct 2024 20:22:27 -0700 Subject: [PATCH 18/71] feat: add useBalance hook --- .../src/lib/hooks/useBalance.svelte.test.ts | 333 ++++++++++++++++++ .../svelte/src/lib/hooks/useBalance.svelte.ts | 62 ++++ packages/svelte/src/lib/query.svelte.ts | 58 +++ 3 files changed, 453 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useBalance.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useBalance.svelte.ts create mode 100644 packages/svelte/src/lib/query.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts b/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts new file mode 100644 index 0000000000..e480c8f970 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts @@ -0,0 +1,333 @@ +import { accounts, chain, testClient, wait } from '@wagmi/test' +import { flushSync } from 'svelte' +import { type Address, parseEther } from 'viem' +import { beforeEach, expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useBalance } from './useBalance.svelte.js' + +const address = accounts[0] + +beforeEach(async () => { + await testClient.mainnet.setBalance({ address, value: parseEther('10000') }) + // await testClient.mainnet.mine({ blocks: 1 }) + // await testClient.mainnet2.setBalance({ address, value: parseEther('69') }) + // await testClient.mainnet2.mine({ blocks: 1 }) +}) + +test( + 'default', + testHook(async () => { + const result = $derived.by(useBalance(() => ({ address }))) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + const { data, ...rest } = result + expect(data).toMatchObject( + expect.objectContaining({ + decimals: expect.any(Number), + formatted: expect.any(String), + symbol: expect.any(String), + value: expect.any(BigInt), + }), + ) + expect(rest).toMatchInlineSnapshot(` + { + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "balance", + { + "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: chainId', + testHook(async () => { + const result = $derived.by( + useBalance(() => ({ address, chainId: chain.mainnet2.id })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": { + "decimals": 18, + "formatted": "69", + "symbol": "WAG", + "value": 69000000000000000000n, + }, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "balance", + { + "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "chainId": 456, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: token', + testHook(async () => { + const result = $derived.by( + useBalance(() => ({ + address: '0x4557B18E779944BFE9d78A672452331C186a9f48', + token: '0x6B175474E89094C44Da98b954EedeAC495271d0F', + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": { + "decimals": 18, + "formatted": "0.559062564299199392", + "symbol": "DAI", + "value": 559062564299199392n, + }, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "balance", + { + "address": "0x4557B18E779944BFE9d78A672452331C186a9f48", + "chainId": 1, + "token": "0x6B175474E89094C44Da98b954EedeAC495271d0F", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: unit', + testHook(async () => { + const result = $derived.by( + useBalance(() => ({ + address, + chainId: chain.mainnet2.id, + unit: 'wei', + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": { + "decimals": 18, + "formatted": "69000000000000000000", + "symbol": "WAG", + "value": 69000000000000000000n, + }, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "balance", + { + "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "chainId": 456, + "unit": "wei", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'behavior: address: undefined -> defined', + testHook(async () => { + let address: Address | undefined = undefined + const result = $derived.by(useBalance(() => ({ address }))) + + expect(result).toMatchInlineSnapshot(` + { + "data": undefined, + "dataUpdatedAt": 0, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": false, + "isFetchedAfterMount": false, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": true, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": false, + "isSuccess": false, + "queryKey": [ + "balance", + { + "address": undefined, + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "pending", + } + `) + + address = accounts[0] + flushSync() + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": { + "decimals": 18, + "formatted": "10000", + "symbol": "ETH", + "value": 10000000000000000000000n, + }, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "balance", + { + "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'behavior: disabled when properties missing', + testHook(async () => { + const result = $derived.by(useBalance()) + + await wait(100) + await expect.poll(() => result.isPending).toBeTruthy() + }), +) diff --git a/packages/svelte/src/lib/hooks/useBalance.svelte.ts b/packages/svelte/src/lib/hooks/useBalance.svelte.ts new file mode 100644 index 0000000000..dde07e1676 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useBalance.svelte.ts @@ -0,0 +1,62 @@ +import type { Config, GetBalanceErrorType, ResolvedRegister } from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import type { GetBalanceQueryFnData } from '@wagmi/core/query' +import { + type GetBalanceData, + type GetBalanceOptions, + type GetBalanceQueryKey, + getBalanceQueryOptions, +} from '@wagmi/core/query' + +import { useChainId } from '$lib/hooks/useChainId.svelte.js' +import { useConfig } from '$lib/hooks/useConfig.svelte.js' +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { + ConfigParameter, + QueryParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' + +export type UseBalanceParameters< + config extends Config = Config, + selectData = GetBalanceData, +> = RuneParameters< + Compute< + GetBalanceOptions & + ConfigParameter & + QueryParameter< + GetBalanceQueryFnData, + GetBalanceErrorType, + selectData, + GetBalanceQueryKey + > + > +> + +export type UseBalanceReturnType = RuneReturnType< + CreateQueryReturnType +> + +/** https://wagmi.sh/react/api/hooks/useBalance */ +export function useBalance< + config extends Config = ResolvedRegister['config'], + selectData = GetBalanceData, +>( + parameters: UseBalanceParameters = () => ({}), +): UseBalanceReturnType { + const { address, query = {} } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const chainId = $derived.by(useChainId(parameters)) + + const options = $derived( + getBalanceQueryOptions(config, { + ...parameters(), + chainId: parameters().chainId ?? chainId, + }), + ) + const enabled = $derived(Boolean(address && (query.enabled ?? true))) + + return createQuery(() => ({ ...query, ...options, enabled })) +} diff --git a/packages/svelte/src/lib/query.svelte.ts b/packages/svelte/src/lib/query.svelte.ts new file mode 100644 index 0000000000..aca9a7b3f2 --- /dev/null +++ b/packages/svelte/src/lib/query.svelte.ts @@ -0,0 +1,58 @@ +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import { + type CreateQueryOptions, + type CreateQueryResult, + type DefaultError, + type QueryKey, + createQuery as tanstack_createQuery, +} from '@tanstack/svelte-query' +import type { Compute, ExactPartial } from '@wagmi/core/internal' +import { hashFn } from '@wagmi/core/query' + +export type CreateQueryParameters< + queryFnData = unknown, + error = DefaultError, + data = queryFnData, + queryKey extends QueryKey = QueryKey, +> = Compute< + ExactPartial< + Omit, 'initialData'> + > & { + // Fix `initialData` type + initialData?: + | CreateQueryOptions['initialData'] + | undefined + } +> + +export type CreateQueryReturnType< + data = unknown, + error = DefaultError, +> = Compute< + CreateQueryResult & { + queryKey: QueryKey + } +> + +export function createQuery< + queryFnData, + error, + data, + queryKey extends QueryKey, +>( + parameters: RuneParameters< + CreateQueryParameters & { + queryKey: QueryKey + } + >, +): RuneReturnType> { + const result = tanstack_createQuery(() => ({ + ...parameters(), + queryKeyHashFn: hashFn, // for bigint support + })) + const resultWithQueryKey = $derived({ + ...result, + queryKey: parameters().queryKey, + }) + return () => resultWithQueryKey +} From 5af6c65cb9cfa3fd2e0ea7151d9bc60acaa2e263 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 25 Oct 2024 20:23:08 -0700 Subject: [PATCH 19/71] refactor: change `useBlockNumber` to use the same custom `createQuery` as `useBalance` --- .../svelte/src/lib/hooks/useBlockNumber.svelte.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts index 66cdfa867b..e14751d1cc 100644 --- a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts +++ b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts @@ -1,8 +1,4 @@ -import { - type CreateQueryResult, - createQuery, - useQueryClient, -} from '@tanstack/svelte-query' +import { useQueryClient } from '@tanstack/svelte-query' import type { Config, GetBlockNumberErrorType, @@ -27,6 +23,7 @@ import { type UseWatchBlockNumberParameters, useWatchBlockNumber, } from '$lib/hooks/useWatchBlockNumber.svelte.js' +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' import type { ConfigParameter, QueryParameter, @@ -63,7 +60,7 @@ export type UseBlockNumberParameters< > export type UseBlockNumberReturnType = - RuneReturnType> + RuneReturnType> /** https://wagmi.sh/react/api/hooks/useBlockNumber */ export function useBlockNumber< @@ -107,7 +104,5 @@ export function useBlockNumber< }, })) - const queryFn = createQuery(() => ({ ...query, ...options })) - - return () => queryFn + return createQuery(() => ({ ...query, ...options })) } From 4fe43d0b17411ae35084c59264215c17433054c1 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 28 Oct 2024 10:51:51 -0700 Subject: [PATCH 20/71] feat: useChains hook --- .../src/lib/hooks/useChains.svelte.test.ts | 36 ++++++++++++++++ .../svelte/src/lib/hooks/useChains.svelte.ts | 41 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useChains.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useChains.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useChains.svelte.test.ts b/packages/svelte/src/lib/hooks/useChains.svelte.test.ts new file mode 100644 index 0000000000..81e948cc09 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useChains.svelte.test.ts @@ -0,0 +1,36 @@ +import { config } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useChains } from './useChains.svelte.js' + +test( + 'default', + testHook(async () => { + const result = $derived.by(useChains()) + + expect(result.map((x) => x.id)).toMatchInlineSnapshot(` + [ + 1, + 456, + 10, + ] + `) + }), +) + +test( + 'parameters: config', + testHook( + () => { + const result = $derived.by(useChains(() => ({ config }))) + expect(result.map((x) => x.id)).toMatchInlineSnapshot(` + [ + 1, + 456, + 10, + ] + `) + }, + { shouldMockConfig: false }, + ), +) diff --git a/packages/svelte/src/lib/hooks/useChains.svelte.ts b/packages/svelte/src/lib/hooks/useChains.svelte.ts new file mode 100644 index 0000000000..8bfa4c5656 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useChains.svelte.ts @@ -0,0 +1,41 @@ +import { + type Config, + type GetChainsReturnType, + type ResolvedRegister, + getChains, +} from '@wagmi/core' +import { watchChains } from '@wagmi/core/internal' + +import { useConfig } from '$lib/hooks/useConfig.svelte.js' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' + +export type UseChainsParameters = + RuneParameters> + +export type UseChainsReturnType = + RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useChains */ +export function useChains( + parameters: UseChainsParameters = () => ({}), +): UseChainsReturnType { + const config = $derived.by(useConfig(parameters)) + let chains = $state(getChains(config)) + + $effect(() => { + chains = getChains(config) + const unsubscribe = watchChains(config, { + onChange: (newChains) => { + chains = newChains + }, + }) + + return unsubscribe + }) + + return () => chains +} From 5f2b8b749638bb9893d1d5c6f76fbc4f67d04a04 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 28 Oct 2024 14:05:24 -0700 Subject: [PATCH 21/71] feat: useReadContract hook --- .../lib/hooks/useReadContract.svelte.test.ts | 204 ++++++++++++++++++ .../src/lib/hooks/useReadContract.svelte.ts | 109 ++++++++++ 2 files changed, 313 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useReadContract.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts b/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts new file mode 100644 index 0000000000..d7ec37ec7e --- /dev/null +++ b/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts @@ -0,0 +1,204 @@ +import { abi, address, bytecode, chain, config, wait } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useReadContract } from './useReadContract.svelte.js' + +test( + 'default', + testHook(async () => { + const result = $derived.by( + useReadContract(() => ({ + address: address.wagmiMintExample, + abi: abi.wagmiMintExample, + functionName: 'balanceOf', + args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'] as const, + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": 4n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "readContract", + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "balanceOf", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: chainId', + testHook(async () => { + const result = $derived.by( + useReadContract(() => ({ + address: address.wagmiMintExample, + abi: abi.wagmiMintExample, + functionName: 'balanceOf', + args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'] as const, + chainId: chain.mainnet2.id, + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": 4n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "readContract", + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 456, + "functionName": "balanceOf", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: config', + testHook( + async () => { + const result = $derived.by( + useReadContract(() => ({ + address: address.wagmiMintExample, + abi: abi.wagmiMintExample, + functionName: 'balanceOf', + args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'] as const, + config, + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": 4n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "readContract", + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "balanceOf", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }, + { shouldMockConfig: false }, + ), +) + +test( + 'parameters: deployless read (bytecode)', + testHook(async () => { + const result = $derived.by( + useReadContract(() => ({ + abi: abi.wagmiMintExample, + functionName: 'name', + code: bytecode.wagmiMintExample, + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result.data).toMatchInlineSnapshot(`"wagmi"`) + }), +) + +test( + 'behavior: disabled when properties missing', + testHook(async () => { + const result = $derived.by(useReadContract()) + + await wait(100) + await expect.poll(() => result.isPending).toBeTruthy() + }), +) diff --git a/packages/svelte/src/lib/hooks/useReadContract.svelte.ts b/packages/svelte/src/lib/hooks/useReadContract.svelte.ts new file mode 100644 index 0000000000..66f4eacf1e --- /dev/null +++ b/packages/svelte/src/lib/hooks/useReadContract.svelte.ts @@ -0,0 +1,109 @@ +'use client' + +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { + ConfigParameter, + QueryParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' +import type { + Config, + ReadContractErrorType, + ResolvedRegister, +} from '@wagmi/core' +import type { UnionCompute } from '@wagmi/core/internal' +import { + type ReadContractData, + type ReadContractOptions, + type ReadContractQueryFnData, + type ReadContractQueryKey, + readContractQueryOptions, + structuralSharing, +} from '@wagmi/core/query' +import type { Abi, ContractFunctionArgs, ContractFunctionName, Hex } from 'viem' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseReadContractParameters< + abi extends Abi | readonly unknown[] = Abi, + functionName extends ContractFunctionName< + abi, + 'pure' | 'view' + > = ContractFunctionName, + args extends ContractFunctionArgs< + abi, + 'pure' | 'view', + functionName + > = ContractFunctionArgs, + config extends Config = Config, + selectData = ReadContractData, +> = RuneParameters< + UnionCompute< + ReadContractOptions & + ConfigParameter & + QueryParameter< + ReadContractQueryFnData, + ReadContractErrorType, + selectData, + ReadContractQueryKey + > + > +> + +export type UseReadContractReturnType< + abi extends Abi | readonly unknown[] = Abi, + functionName extends ContractFunctionName< + abi, + 'pure' | 'view' + > = ContractFunctionName, + args extends ContractFunctionArgs< + abi, + 'pure' | 'view', + functionName + > = ContractFunctionArgs, + selectData = ReadContractData, +> = RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useReadContract */ +export function useReadContract< + const abi extends Abi | readonly unknown[], + functionName extends ContractFunctionName, + args extends ContractFunctionArgs, + config extends Config = ResolvedRegister['config'], + selectData = ReadContractData, +>( + parameters: UseReadContractParameters< + abi, + functionName, + args, + config, + selectData + > = () => ({}) as any, +): UseReadContractReturnType { + const { abi, address, functionName, query = {} } = $derived.by(parameters) + // @ts-ignore + const code = $derived(parameters().code as Hex | undefined) + + const config = $derived.by(useConfig(parameters)) + const chainId = $derived.by(useChainId(() => ({ config }))) + + const options = $derived( + readContractQueryOptions(config, { + ...(parameters() as any), + chainId: parameters().chainId ?? chainId, + }), + ) + const enabled = $derived( + Boolean( + (address || code) && abi && functionName && (query.enabled ?? true), + ), + ) + + return createQuery(() => ({ + ...query, + ...options, + enabled, + structuralSharing: query.structuralSharing ?? structuralSharing, + })) +} From f2becb942d11da4d04442badc47fa47fef80adec Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:04:32 -0700 Subject: [PATCH 22/71] feat: ReadContract playground --- packages/svelte/src/routes/+page.svelte | 5 +- .../routes/_components/ReadContract.svelte | 17 ++ .../src/routes/_components/contracts.ts | 202 ++++++++++++++++++ 3 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 packages/svelte/src/routes/_components/ReadContract.svelte create mode 100644 packages/svelte/src/routes/_components/contracts.ts diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index acc308d6e5..782fe6f78a 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -1,6 +1,7 @@ -
{JSON.stringify(config, null, 2)}
- -
{JSON.stringify(blockNumber, replacer, 2)}
+ diff --git a/packages/svelte/src/routes/_components/ReadContract.svelte b/packages/svelte/src/routes/_components/ReadContract.svelte new file mode 100644 index 0000000000..a5830859ce --- /dev/null +++ b/packages/svelte/src/routes/_components/ReadContract.svelte @@ -0,0 +1,17 @@ + + +
+

Read Contract

+
Balance: {balance?.toString()} (isLoading: {isLoading})
+
\ No newline at end of file diff --git a/packages/svelte/src/routes/_components/contracts.ts b/packages/svelte/src/routes/_components/contracts.ts new file mode 100644 index 0000000000..d7d66754a2 --- /dev/null +++ b/packages/svelte/src/routes/_components/contracts.ts @@ -0,0 +1,202 @@ +export const wagmiContractConfig = { + address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', + abi: [ + { inputs: [], stateMutability: 'nonpayable', type: 'constructor' }, + { + anonymous: false, + inputs: [ + { + indexed: true, + name: 'owner', + type: 'address', + }, + { + indexed: true, + name: 'approved', + type: 'address', + }, + { + indexed: true, + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + name: 'owner', + type: 'address', + }, + { + indexed: true, + name: 'operator', + type: 'address', + }, + { + indexed: false, + name: 'approved', + type: 'bool', + }, + ], + name: 'ApprovalForAll', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + name: 'from', + type: 'address', + }, + { indexed: true, name: 'to', type: 'address' }, + { + indexed: true, + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + inputs: [ + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ name: 'tokenId', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', type: 'address' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { name: 'owner', type: 'address' }, + { name: 'operator', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', type: 'bool' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ name: 'tokenId', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', type: 'address' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { name: 'from', type: 'address' }, + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { name: 'from', type: 'address' }, + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + { name: '_data', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { name: 'operator', type: 'address' }, + { name: 'approved', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'interfaceId', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', type: 'bool' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ name: 'tokenId', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', type: 'string' }], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { name: 'from', type: 'address' }, + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + ], +} as const From db8bbd65047ac2d2e5b9586456c2a74edd426a7a Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:16:14 -0700 Subject: [PATCH 23/71] feat: useConnections hook --- .../lib/hooks/useConnections.svelte.test.ts | 30 ++++++++++++++ .../src/lib/hooks/useConnections.svelte.ts | 39 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useConnections.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useConnections.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useConnections.svelte.test.ts b/packages/svelte/src/lib/hooks/useConnections.svelte.test.ts new file mode 100644 index 0000000000..4c67e1e222 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConnections.svelte.test.ts @@ -0,0 +1,30 @@ +import { connect } from '@wagmi/core' +import { config, wait } from '@wagmi/test' +import { flushSync } from 'svelte' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useConnections } from './useConnections.svelte.js' + +test( + 'default', + testHook(async () => { + const result = $derived.by(useConnections()) + + expect(result).toEqual([]) + + await connect(config, { connector: config.connectors[0]! }) + + await expect.poll(() => result.length).toEqual(1) + }), +) + +test( + 'parameters: config', + testHook( + () => { + const result = $derived.by(useConnections(() => ({ config }))) + expect(result).toBeDefined() + }, + { shouldMockConfig: false }, + ), +) diff --git a/packages/svelte/src/lib/hooks/useConnections.svelte.ts b/packages/svelte/src/lib/hooks/useConnections.svelte.ts new file mode 100644 index 0000000000..79821b0182 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConnections.svelte.ts @@ -0,0 +1,39 @@ +'use client' + +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' +import { + type GetConnectionsReturnType, + getConnections, + watchConnections, +} from '@wagmi/core' +import { useConfig } from './useConfig.svelte.js' + +export type UseConnectionsParameters = RuneParameters + +export type UseConnectionsReturnType = RuneReturnType + +/** https://wagmi.sh/react/api/hooks/useConnections */ +export function useConnections( + parameters: UseConnectionsParameters = () => ({}), +): UseConnectionsReturnType { + const config = $derived.by(useConfig(parameters)) + + let connections = $state(getConnections(config)) + + $effect(() => { + connections = getConnections(config) + const unsubscribe = watchConnections(config, { + onChange: (newConnections) => { + connections = newConnections + }, + }) + + return unsubscribe + }) + + return () => connections +} From b217be9b8cab2f57b0c67232393300d5dec8173f Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:19:01 -0700 Subject: [PATCH 24/71] fix: remove "use client" from svelte hook --- packages/svelte/src/lib/hooks/useConnections.svelte.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/svelte/src/lib/hooks/useConnections.svelte.ts b/packages/svelte/src/lib/hooks/useConnections.svelte.ts index 79821b0182..b446cbe856 100644 --- a/packages/svelte/src/lib/hooks/useConnections.svelte.ts +++ b/packages/svelte/src/lib/hooks/useConnections.svelte.ts @@ -1,5 +1,3 @@ -'use client' - import type { ConfigParameter, RuneParameters, From 1f371cae98bfa4e29ff2c2c20eb538a1daf187fe Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:22:13 -0700 Subject: [PATCH 25/71] feat: useConnectors hook --- .../lib/hooks/useConnectors.svelte.test.ts | 34 +++++++++++++++++ .../src/lib/hooks/useConnectors.svelte.ts | 37 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useConnectors.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useConnectors.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useConnectors.svelte.test.ts b/packages/svelte/src/lib/hooks/useConnectors.svelte.test.ts new file mode 100644 index 0000000000..e933fedc5a --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConnectors.svelte.test.ts @@ -0,0 +1,34 @@ +import { mock } from '@wagmi/connectors' +import { accounts, config } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useConnectors } from './useConnectors.svelte.js' + +test( + 'default', + testHook(async () => { + const result = $derived.by(useConnectors()) + + const count = config.connectors.length + expect(result.length).toBe(count) + expect(result).toEqual(config.connectors) + + config._internal.connectors.setState(() => [ + ...config.connectors, + config._internal.connectors.setup(mock({ accounts })), + ]) + + await expect.poll(() => result.length).toBe(count + 1) + }), +) + +test( + 'parameters: config', + testHook( + () => { + const result = $derived.by(useConnectors(() => ({ config }))) + expect(result).toBeDefined() + }, + { shouldMockConfig: false }, + ), +) diff --git a/packages/svelte/src/lib/hooks/useConnectors.svelte.ts b/packages/svelte/src/lib/hooks/useConnectors.svelte.ts new file mode 100644 index 0000000000..f91ebadbba --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConnectors.svelte.ts @@ -0,0 +1,37 @@ +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' +import { + type GetConnectorsReturnType, + getConnectors, + watchConnectors, +} from '@wagmi/core' +import { useConfig } from './useConfig.svelte.js' + +export type UseConnectorsParameters = RuneParameters + +export type UseConnectorsReturnType = RuneReturnType + +/** https://wagmi.sh/react/api/hooks/useConnectors */ +export function useConnectors( + parameters: UseConnectorsParameters = () => ({}), +): UseConnectorsReturnType { + const config = $derived.by(useConfig(parameters)) + + let connectors = $state(getConnectors(config)) + + $effect(() => { + connectors = getConnectors(config) + const unsubscribe = watchConnectors(config, { + onChange: (newConnectors) => { + connectors = newConnectors + }, + }) + + return unsubscribe + }) + + return () => connectors +} From ddd909f9b53fd5a9dcf64faf74a521287ec7754b Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:37:52 -0700 Subject: [PATCH 26/71] feat: useAccount hook --- .../src/lib/hooks/useAccount.svelte.test.ts | 33 +++++++++++++++ .../svelte/src/lib/hooks/useAccount.svelte.ts | 40 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useAccount.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useAccount.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useAccount.svelte.test.ts b/packages/svelte/src/lib/hooks/useAccount.svelte.test.ts new file mode 100644 index 0000000000..236226a889 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useAccount.svelte.test.ts @@ -0,0 +1,33 @@ +import { connect, disconnect } from '@wagmi/core' +import { config } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useAccount } from './useAccount.svelte.js' + +test( + 'default', + testHook(async () => { + const result = $derived.by(useAccount()) + + expect(result.address).not.toBeDefined() + expect(result.status).toEqual('disconnected') + + await connect(config, { connector: config.connectors[0]! }) + + await expect.poll(() => result.address).toBeDefined() + await expect.poll(() => result.status).toEqual('connected') + + await disconnect(config) + }), +) + +test( + 'parameters: config', + testHook( + () => { + const result = $derived.by(() => useAccount(() => ({ config }))) + expect(result).toBeDefined() + }, + { shouldMockConfig: false }, + ), +) diff --git a/packages/svelte/src/lib/hooks/useAccount.svelte.ts b/packages/svelte/src/lib/hooks/useAccount.svelte.ts new file mode 100644 index 0000000000..5ea41cafaa --- /dev/null +++ b/packages/svelte/src/lib/hooks/useAccount.svelte.ts @@ -0,0 +1,40 @@ +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' +import { + type Config, + type GetAccountReturnType, + type ResolvedRegister, + getAccount, + watchAccount, +} from '@wagmi/core' +import { useConfig } from './useConfig.svelte.js' + +export type UseAccountParameters = + RuneParameters> + +export type UseAccountReturnType = + RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useAccount */ +export function useAccount( + parameters: UseAccountParameters = () => ({}), +): UseAccountReturnType { + const config = $derived.by(useConfig(parameters)) + + let account = $state(getAccount(config)) + + $effect(() => { + account = getAccount(config) + + return watchAccount(config, { + onChange(newAccount) { + account = newAccount + }, + }) + }) + + return () => account +} From 4be7ddd96cfd7fca19bb55c7236834a779e6b54f Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:38:10 -0700 Subject: [PATCH 27/71] feat; useConnect hook --- .../src/lib/hooks/useConnect.svelte.test.ts | 33 ++++++ .../svelte/src/lib/hooks/useConnect.svelte.ts | 108 ++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useConnect.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useConnect.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useConnect.svelte.test.ts b/packages/svelte/src/lib/hooks/useConnect.svelte.test.ts new file mode 100644 index 0000000000..2ba6133270 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConnect.svelte.test.ts @@ -0,0 +1,33 @@ +import { disconnect } from '@wagmi/core' +import { config } from '@wagmi/test' +import { afterEach, expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useAccount } from './useAccount.svelte.js' +import { useConnect } from './useConnect.svelte.js' + +const connector = config.connectors[0]! + +afterEach(async () => { + if (config.state.current === connector.uid) + await disconnect(config, { connector }) +}) + +test( + 'default', + testHook(async () => { + const account = $derived.by(useAccount()) + const connect = $derived.by(useConnect()) + + expect(account.address).not.toBeDefined() + expect(account.status).toEqual('disconnected') + + connect.connect({ + connector: connect.connectors[0]!, + }) + + await expect.poll(() => account.isConnected).toBeTruthy() + + expect(account.address).toBeDefined() + expect(account.status).toEqual('connected') + }), +) diff --git a/packages/svelte/src/lib/hooks/useConnect.svelte.ts b/packages/svelte/src/lib/hooks/useConnect.svelte.ts new file mode 100644 index 0000000000..bcb9d941e7 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useConnect.svelte.ts @@ -0,0 +1,108 @@ +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '$lib/query.svelte.js' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' +import { + type CreateMutationResult, + createMutation, +} from '@tanstack/svelte-query' +import type { Config, ConnectErrorType, ResolvedRegister } from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type ConnectData, + type ConnectMutate, + type ConnectMutateAsync, + type ConnectVariables, + connectMutationOptions, +} from '@wagmi/core/query' +import { useConfig } from './useConfig.svelte.js' +import { + type UseConnectorsReturnType, + useConnectors, +} from './useConnectors.svelte.js' + +export type UseConnectParameters< + config extends Config = Config, + context = unknown, +> = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + ConnectData, + ConnectErrorType, + ConnectVariables, + context + > + | undefined + } + > +> + +export type UseConnectReturnType< + config extends Config = Config, + context = unknown, +> = RuneReturnType< + Compute< + CreateMutationReturnType< + ConnectData, + ConnectErrorType, + ConnectVariables, + context + > & { + connect: ConnectMutate + connectAsync: ConnectMutateAsync + connectors: Compute> + } + > +> + +/** https://wagmi.sh/react/api/hooks/useConnect */ +export function useConnect< + config extends Config = ResolvedRegister['config'], + context = unknown, +>( + parameters: UseConnectParameters = () => ({}), +): UseConnectReturnType { + const { mutation } = $derived.by(parameters) + + const config = $derived.by(useConfig(parameters)) + + const mutationOptions = $derived(connectMutationOptions(config)) + const { mutate, mutateAsync, ...result } = $derived( + createMutation(() => ({ + ...mutation, + ...mutationOptions, + })), + ) + + // Reset mutation back to an idle state when the connector disconnects. + $effect(() => { + ;[ + // deps + config, + result.reset, + ] + return config.subscribe( + ({ status }) => status, + (status, previousStatus) => { + if (previousStatus === 'connected' && status === 'disconnected') + result.reset() + }, + ) + }) + + const connectors = $derived.by(useConnectors(() => ({ config }))) + + return () => ({ + ...result, + connect: mutate, + connectAsync: mutateAsync, + connectors, + }) +} From a8ae0fb74bdd8c56c5d0093d31b45fdc36f0ff7d Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:38:18 -0700 Subject: [PATCH 28/71] refactor: formatting --- packages/svelte/package.json | 1 + packages/svelte/src/lib/query.svelte.ts | 35 ++++++++++++++++++- packages/svelte/src/routes/+layout.svelte | 7 ++-- packages/svelte/src/routes/+page.svelte | 8 ++--- .../src/routes/_components/Connect.svelte | 21 +++++++++++ .../routes/_components/ReadContract.svelte | 6 ++-- packages/svelte/src/routes/index.css | 21 +++++++++++ pnpm-lock.yaml | 3 ++ 8 files changed, 89 insertions(+), 13 deletions(-) create mode 100644 packages/svelte/src/routes/_components/Connect.svelte create mode 100644 packages/svelte/src/routes/index.css diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 510254c15d..b2f87b63e2 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -52,6 +52,7 @@ "vitest": "^2.0.4" }, "dependencies": { + "@wagmi/connectors": "workspace:^", "@wagmi/core": "workspace:^" } } diff --git a/packages/svelte/src/lib/query.svelte.ts b/packages/svelte/src/lib/query.svelte.ts index aca9a7b3f2..0350947875 100644 --- a/packages/svelte/src/lib/query.svelte.ts +++ b/packages/svelte/src/lib/query.svelte.ts @@ -1,12 +1,19 @@ import type { RuneParameters, RuneReturnType } from '$lib/types.js' import { + type CreateMutationOptions, + type CreateMutationResult, type CreateQueryOptions, type CreateQueryResult, type DefaultError, type QueryKey, + createMutation, createQuery as tanstack_createQuery, } from '@tanstack/svelte-query' -import type { Compute, ExactPartial } from '@wagmi/core/internal' +import type { + Compute, + ExactPartial, + UnionStrictOmit, +} from '@wagmi/core/internal' import { hashFn } from '@wagmi/core/query' export type CreateQueryParameters< @@ -56,3 +63,29 @@ export function createQuery< }) return () => resultWithQueryKey } + +export type CreateMutationParameters< + data = unknown, + error = Error, + variables = void, + context = unknown, +> = Compute< + Omit< + CreateMutationOptions, context>, + 'mutationFn' | 'mutationKey' | 'throwOnError' + > +> + +export type CreateMutationReturnType< + data = unknown, + error = Error, + variables = void, + context = unknown, +> = Compute< + UnionStrictOmit< + CreateMutationResult, + 'mutate' | 'mutateAsync' + > +> + +export { createMutation } diff --git a/packages/svelte/src/routes/+layout.svelte b/packages/svelte/src/routes/+layout.svelte index 8c8f423bd0..62473f7b38 100644 --- a/packages/svelte/src/routes/+layout.svelte +++ b/packages/svelte/src/routes/+layout.svelte @@ -1,4 +1,5 @@ - - {@render children()} - + + {@render children()} + diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 782fe6f78a..b514b56873 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -1,13 +1,9 @@ + diff --git a/packages/svelte/src/routes/_components/Connect.svelte b/packages/svelte/src/routes/_components/Connect.svelte new file mode 100644 index 0000000000..5e0b883a96 --- /dev/null +++ b/packages/svelte/src/routes/_components/Connect.svelte @@ -0,0 +1,21 @@ + + +
+

Connect

+ {#each connectors as connector (connector.uid)} + + {/each} +
{status}
+
{error?.message}
+
\ No newline at end of file diff --git a/packages/svelte/src/routes/_components/ReadContract.svelte b/packages/svelte/src/routes/_components/ReadContract.svelte index a5830859ce..e2f88caaf7 100644 --- a/packages/svelte/src/routes/_components/ReadContract.svelte +++ b/packages/svelte/src/routes/_components/ReadContract.svelte @@ -12,6 +12,6 @@ const { data: balance, isLoading } = $derived.by(
-

Read Contract

-
Balance: {balance?.toString()} (isLoading: {isLoading})
-
\ No newline at end of file +

Read Contract

+
Balance: {balance?.toString()} (isLoading: {isLoading})
+ diff --git a/packages/svelte/src/routes/index.css b/packages/svelte/src/routes/index.css new file mode 100644 index 0000000000..0733a7ee6b --- /dev/null +++ b/packages/svelte/src/routes/index.css @@ -0,0 +1,21 @@ +:root { + background-color: #181818; + color: rgba(255, 255, 255, 0.87); + color-scheme: light dark; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + font-synthesis: none; + font-weight: 400; + line-height: 1.5; + text-rendering: optimizeLegibility; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +@media (prefers-color-scheme: light) { + :root { + background-color: #f8f8f8; + color: #181818; + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe2b84e41e..9e58ae76ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -296,6 +296,9 @@ importers: packages/svelte: dependencies: + '@wagmi/connectors': + specifier: workspace:^ + version: link:../connectors '@wagmi/core': specifier: workspace:^ version: link:../core From 072a84fc814ee780978f160649442f46cf824dd8 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:40:47 -0700 Subject: [PATCH 29/71] feat: add useAccount to playground --- packages/svelte/src/routes/+page.svelte | 2 ++ .../src/routes/_components/Account.svelte | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packages/svelte/src/routes/_components/Account.svelte diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index b514b56873..0c57716297 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -1,9 +1,11 @@ + diff --git a/packages/svelte/src/routes/_components/Account.svelte b/packages/svelte/src/routes/_components/Account.svelte new file mode 100644 index 0000000000..50f7048711 --- /dev/null +++ b/packages/svelte/src/routes/_components/Account.svelte @@ -0,0 +1,28 @@ + + +
+

Account

+ +
+ account: {account.address} + +
+ chainId: {account.chainId} +
+ status: {account.status} +
+ + +
\ No newline at end of file From c0bfcfffa09d83731147e89010ac64b24b85bd94 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 29 Oct 2024 09:41:00 -0700 Subject: [PATCH 30/71] refactor: remove unused imports in +page.svelte --- packages/svelte/src/routes/+page.svelte | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 0c57716297..dabd10fe08 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -1,6 +1,4 @@ + + + diff --git a/packages/svelte/src/routes/_components/Balance.svelte b/packages/svelte/src/routes/_components/Balance.svelte new file mode 100644 index 0000000000..25f8651d27 --- /dev/null +++ b/packages/svelte/src/routes/_components/Balance.svelte @@ -0,0 +1,34 @@ + + +
+

Balance

+ +
+ Balance (Default Chain): + {#if !!default_?.value}{formatEther(default_.value)}{/if} +
+
+ Balance (Account Chain): + {#if !!account_?.value}{formatEther(account_.value)}{/if} +
+
+ Balance (Optimism Chain): + {#if !!optimism_?.value}{formatEther(optimism_.value)}{/if} +
+
\ No newline at end of file diff --git a/packages/svelte/src/routes/_components/BlockNumber.svelte b/packages/svelte/src/routes/_components/BlockNumber.svelte new file mode 100644 index 0000000000..692d131e5e --- /dev/null +++ b/packages/svelte/src/routes/_components/BlockNumber.svelte @@ -0,0 +1,16 @@ + + +

Block Number

+ +
Block Number (Default Chain): {defaultBlock.data?.toString()}
+
Block Number (Account Chain): {accountBlock.data?.toString()}
+
Block Number (Optimism): {optimismBlock.data?.toString()}
\ No newline at end of file diff --git a/packages/svelte/src/routes/_components/Connections.svelte b/packages/svelte/src/routes/_components/Connections.svelte new file mode 100644 index 0000000000..b814e0524e --- /dev/null +++ b/packages/svelte/src/routes/_components/Connections.svelte @@ -0,0 +1,17 @@ + + +
+

Connections

+ + {#each connections as connection (connection.connector.uid)} +
+
connector {connection.connector.name}
+
accounts: {JSON.stringify(connection.accounts)}
+
chainId: {connection.chainId}
+
+ {/each} +
\ No newline at end of file From 3578f1af79668fa95aa0086472259676137ed49d Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Wed, 30 Oct 2024 09:50:23 -0700 Subject: [PATCH 36/71] feat: add viem as peerDep --- packages/svelte/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/svelte/package.json b/packages/svelte/package.json index b2f87b63e2..3e945bb648 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -27,6 +27,7 @@ }, "peerDependencies": { "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", + "viem": "2.x", "svelte": "^5.0.0" }, "devDependencies": { From 9453e6e9fe4c3c92587172dedf8aea6a7c6b48d2 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 10:28:10 -0700 Subject: [PATCH 37/71] docs: add basic svelte documentation --- pnpm-lock.yaml | 197 +++++++++++++++++---------------- site/.vitepress/config.ts | 1 + site/.vitepress/sidebar.ts | 9 ++ site/package.json | 1 + site/snippets/svelte/config.ts | 10 ++ site/svelte/getting-started.md | 139 +++++++++++++++++++++++ site/svelte/reactivity.md | 33 ++++++ 7 files changed, 294 insertions(+), 96 deletions(-) create mode 100644 site/snippets/svelte/config.ts create mode 100644 site/svelte/getting-started.md create mode 100644 site/svelte/reactivity.md diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e58ae76ab..801c4cc3a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -423,7 +423,7 @@ importers: version: 2.4.6 nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)) vue: specifier: '>=3.4.21' version: 3.4.27(typescript@5.6.1-rc) @@ -493,7 +493,7 @@ importers: version: link:../../packages/vue nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)) viem: specifier: 2.* version: 2.10.8(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) @@ -635,6 +635,9 @@ importers: '@wagmi/core': specifier: workspace:* version: link:../packages/core + '@wagmi/svelte': + specifier: workspace:^ + version: link:../packages/svelte '@wagmi/vue': specifier: workspace:* version: link:../packages/vue @@ -643,7 +646,7 @@ importers: version: 1.0.2(typescript@5.6.1-rc)(zod@3.22.4) nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) react: specifier: '>=18.3.1' version: 18.3.1 @@ -10100,13 +10103,12 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(rollup@4.17.2)': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)) transitivePeerDependencies: - rollup - supports-color @@ -10122,13 +10124,12 @@ snapshots: - rollup - supports-color - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)) transitivePeerDependencies: - rollup - supports-color @@ -10146,14 +10147,14 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.5.4))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(rollup@4.17.2) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) - '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.5.4)) birpc: 0.2.17 consola: 3.2.3 @@ -10170,7 +10171,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10183,7 +10184,6 @@ snapshots: simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@4.17.2) - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2(rollup@4.17.2))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite-plugin-vue-inspector: 5.1.0(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) which: 3.0.1 @@ -10276,14 +10276,14 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) - '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) birpc: 0.2.17 consola: 3.2.3 @@ -10300,7 +10300,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10313,7 +10313,6 @@ snapshots: simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@4.17.2) - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2(rollup@4.17.2))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite-plugin-vue-inspector: 5.1.0(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) which: 3.0.1 @@ -10407,7 +10406,7 @@ snapshots: '@nuxt/ui-templates@1.3.3': {} - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue-tsc@2.0.16(typescript@5.5.4))(vue@3.4.27(typescript@5.5.4))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -10441,7 +10440,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.5.4)) vue: 3.4.27(typescript@5.5.4) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -10521,63 +10520,6 @@ snapshots: - vti - vue-tsc - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc))': - dependencies: - '@nuxt/kit': 3.11.2(rollup@4.17.2) - '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) - '@vitejs/plugin-vue': 5.0.4(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) - autoprefixer: 10.4.19(postcss@8.4.38) - clear: 0.1.0 - consola: 3.2.3 - cssnano: 6.1.2(postcss@8.4.38) - defu: 6.1.4 - esbuild: 0.20.2 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - externality: 1.0.2 - fs-extra: 11.2.0 - get-port-please: 3.1.2 - h3: 1.11.1 - knitwork: 1.1.0 - magic-string: 0.30.10 - mlly: 1.7.0 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.1.1 - postcss: 8.4.38 - rollup-plugin-visualizer: 5.12.0(rollup@4.17.2) - std-env: 3.7.0 - strip-literal: 2.1.0 - ufo: 1.5.3 - unenv: 1.9.0 - unplugin: 1.10.1 - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) - vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) - vue: 3.4.27(typescript@5.6.1-rc) - vue-bundle-renderer: 2.1.0 - transitivePeerDependencies: - - '@types/node' - - eslint - - less - - lightningcss - - meow - - optionator - - rollup - - sass - - stylelint - - stylus - - sugarss - - supports-color - - terser - - typescript - - uWebSockets.js - - vls - - vti - - vue-tsc - '@one-ini/wasm@0.1.1': {} '@open-draft/deferred-promise@2.2.0': {} @@ -11982,12 +11924,12 @@ snapshots: transitivePeerDependencies: - vue - '@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4))': dependencies: - '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -12042,7 +11984,49 @@ snapshots: - unocss - vite - '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.6.1-rc))': + dependencies: + '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-shared': 7.1.3 + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vue@3.4.27(typescript@5.6.1-rc)) + lodash-es: 4.17.21 + perfect-debounce: 1.0.0 + shiki: 1.3.0 + splitpanes: 3.1.5 + vue: 3.4.27(typescript@5.6.1-rc) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.27(typescript@5.6.1-rc)) + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + - unocss + - vite + + '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + dependencies: + '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-shared': 7.1.3 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + transitivePeerDependencies: + - vite + - vue + + '@vue/devtools-core@7.1.3(vue@3.4.27(typescript@5.5.4))': dependencies: '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-shared': 7.1.3 @@ -12054,7 +12038,7 @@ snapshots: - vite - vue - '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + '@vue/devtools-core@7.1.3(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) '@vue/devtools-shared': 7.1.3 @@ -12088,7 +12072,7 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4))': dependencies: '@unocss/reset': 0.59.4 '@vue/devtools-shared': 7.1.3 @@ -12098,7 +12082,6 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)) focus-trap: 7.5.4 - unocss: 0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vue: 3.4.27(typescript@5.5.4) transitivePeerDependencies: - '@vue/composition-api' @@ -12154,6 +12137,19 @@ snapshots: optionalDependencies: typescript: 5.6.1-rc + '@vue/language-core@2.0.16(typescript@5.5.4)': + dependencies: + '@volar/language-core': 2.2.1 + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + computeds: 0.0.1 + minimatch: 9.0.3 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 5.5.4 + optional: true + '@vue/language-core@2.0.16(typescript@5.6.1-rc)': dependencies: '@volar/language-core': 2.2.1 @@ -15845,15 +15841,15 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.5.4)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue-tsc@2.0.16(typescript@5.5.4))(vue@3.4.27(typescript@5.5.4)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.5.4)) @@ -15962,15 +15958,15 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.6.1-rc)) @@ -16079,10 +16075,10 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) @@ -18108,7 +18104,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.5.4)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -18130,6 +18126,7 @@ snapshots: eslint: 9.13.0(jiti@1.21.6) optionator: 0.9.4 typescript: 5.5.4 + vue-tsc: 2.0.16(typescript@5.5.4) vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: @@ -18353,6 +18350,14 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 + vue-tsc@2.0.16(typescript@5.5.4): + dependencies: + '@volar/typescript': 2.2.1 + '@vue/language-core': 2.0.16(typescript@5.5.4) + semver: 7.5.4 + typescript: 5.5.4 + optional: true + vue-tsc@2.0.16(typescript@5.6.1-rc): dependencies: '@volar/typescript': 2.2.1 diff --git a/site/.vitepress/config.ts b/site/.vitepress/config.ts index d991f51f5d..a489c65eea 100644 --- a/site/.vitepress/config.ts +++ b/site/.vitepress/config.ts @@ -79,6 +79,7 @@ export default defineConfig({ nav: [ { text: 'React', link: '/react/getting-started' }, { text: 'Vue', link: '/vue/getting-started' }, + { text: 'Svelte', link: '/svelte/getting-started' }, { text: 'Core', link: '/core/getting-started' }, { text: 'CLI', link: '/cli/getting-started' }, // { text: 'Examples', link: '/examples/connect-wallet' }, diff --git a/site/.vitepress/sidebar.ts b/site/.vitepress/sidebar.ts index e08ff57314..01caeadeeb 100644 --- a/site/.vitepress/sidebar.ts +++ b/site/.vitepress/sidebar.ts @@ -629,6 +629,15 @@ export function getSidebar() { ], }, ], + '/svelte': [ + { + text: "Introduction", + items: [ + { text: "Getting Started", link: '/svelte/getting-started' }, + { text: "Reactivity", link: '/svelte/reactivity' }, + ], + } + ], '/core': [ { text: 'Introduction', diff --git a/site/package.json b/site/package.json index bd0d0aa773..a8dfb514cf 100644 --- a/site/package.json +++ b/site/package.json @@ -15,6 +15,7 @@ "@types/react": ">=18.3.1", "@wagmi/connectors": "workspace:*", "@wagmi/core": "workspace:*", + "@wagmi/svelte": "workspace:*", "@wagmi/vue": "workspace:*", "abitype": "*", "nuxt": "^3.11.2", diff --git a/site/snippets/svelte/config.ts b/site/snippets/svelte/config.ts new file mode 100644 index 0000000000..8777811c8a --- /dev/null +++ b/site/snippets/svelte/config.ts @@ -0,0 +1,10 @@ +import { http, createConfig } from '@wagmi/svelte' +import { mainnet, sepolia } from '@wagmi/svelte/chains' + +export const config = createConfig({ + chains: [mainnet, sepolia], + transports: { + [mainnet.id]: http(), + [sepolia.id]: http(), + }, +}) diff --git a/site/svelte/getting-started.md b/site/svelte/getting-started.md new file mode 100644 index 0000000000..251ad9a7e9 --- /dev/null +++ b/site/svelte/getting-started.md @@ -0,0 +1,139 @@ + + +# Getting Started + +## Overview + +Wagmi is a Svelte library for Ethereum. + +## Manual Installation + +To manually add Wagmi to your project, install the required packages. + +::: code-group +```bash-vue [pnpm] +pnpm add wagmi viem@{{viemVersion}} {{tanstackQuery}} +``` + +```bash-vue [npm] +npm install wagmi viem@{{viemVersion}} {{tanstackQuery}} +``` + +```bash-vue [yarn] +yarn add wagmi viem@{{viemVersion}} {{tanstackQuery}} +``` + +```bash-vue [bun] +bun add wagmi viem@{{viemVersion}} {{tanstackQuery}} +``` +::: + +- [Viem](https://viem.sh) is a TypeScript interface for Ethereum that performs blockchain operations. +- [TanStack Query](https://tanstack.com/query/v5) is an async state manager that handles requests, caching, and more. + +### Create Config + +Create and export a new Wagmi config using `createConfig`. + +::: code-group +<<< @/snippets/svelte/config.ts[config.ts] +::: + +### Wrap App in Context Provider + +Wrap your app in the `WagmiProvider` component and pass the `config` you created earlier to the `config` property. You may do this in the `+layout.svelte` file, or in another component for more fine-grained control. + +::: code-group +```svelte [+layout.svelte] + + + // [!code focus] + {@render children()} // [!code focus] + // [!code focus] +``` +<<< @/snippets/svelte/config.ts[config.ts] +::: + +### Setup TanStack Query + +Inside the `WagmiProvider`, wrap your app in a TanStack Query Context Provider, e.g. `QueryClientProvider`, and pass a new `QueryClient` instance to the `client` property. + +::: code-group +```svelte [+layout.svelte] + + + + // [!code focus] + {@render children()} // [!code focus] + // [!code focus] + +``` +<<< @/snippets/react/config.ts[config.ts] +::: + +Check out the [TanStack Query docs](https://tanstack.com/query/latest/docs/framework/svelte) to learn about the library, APIs, and more. + +### Use Wagmi + +Now that everything is set up, every component inside the Wagmi and TanStack Query Providers can use Wagmi React Hooks. + +::: code-group +```svelte [+page.svelte] + + +{#if ensName.status === 'loading'} +
Loading ENS name
+{:else if ensName.status === 'error'} +
Error fetching ENS name: {ensName.error.message}
+{:else} +
ENS name: {ensName.data}
+{/if} +``` + +```svelte [+layout.svelte] + + + + + {@render children()} + + +``` +<<< @/snippets/svelte/config.ts[config.ts] +::: + +::: danger +Reactivity in Svelte is different than other frameworks! I would highly suggest you read the page on [Reactivity](./reactivity.md) +::: diff --git a/site/svelte/reactivity.md b/site/svelte/reactivity.md new file mode 100644 index 0000000000..0ff86c6bb0 --- /dev/null +++ b/site/svelte/reactivity.md @@ -0,0 +1,33 @@ +# Reactivity + +To ensure Svelte Runes are reactive, we have opted to return a function from each hook. This pairs very well with the [`$derived.by` rune](https://svelte.dev/docs/svelte/$derived#$derived.by): + +```svelte + + +

Your address: {account.address}

+``` + +::: tip +If you don't need the return value (such as for `useWatchBlockNumber()`), there is no need to wrap the function in `$derived.by`. +::: + +Similarly, if you simply pass an object into the function, it will not be reactive. We have chosen to use Solid-style parameters, meaning you pass arguments as functions: + +```svelte + + +

Vitalik's ENS: {vitalikEns}

+``` From 310f3b4fc46508fc8dbb9f70de383a7b1f01f04e Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 10:28:21 -0700 Subject: [PATCH 38/71] feat: export chains & hooks --- packages/svelte/package.json | 14 +- packages/svelte/src/lib/exports/chains.ts | 3 + packages/svelte/src/lib/exports/index.ts | 148 ++++++++++++++++++++++ packages/svelte/src/lib/index.ts | 4 +- site/.vitepress/sidebar.ts | 8 +- 5 files changed, 167 insertions(+), 10 deletions(-) create mode 100644 packages/svelte/src/lib/exports/chains.ts create mode 100644 packages/svelte/src/lib/exports/index.ts diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 3e945bb648..4b191046f3 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -5,7 +5,7 @@ "dev": "vite dev", "build": "vite build && npm run package", "preview": "vite preview", - "package": "svelte-kit sync && svelte-package -o dist/lib && publint", + "package": "svelte-kit sync && svelte-package && publint", "prepublishOnly": "npm run package", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", @@ -16,13 +16,17 @@ }, "files": ["dist", "!dist/**/*.test.*", "!dist/**/*.spec.*"], "sideEffects": ["**/*.css"], - "svelte": "./dist/lib/index.js", - "types": "./dist/lib/index.d.ts", + "svelte": "./dist/index.js", + "types": "./dist/index.d.ts", "type": "module", "exports": { ".": { - "types": "./dist/lib/index.d.ts", - "svelte": "./dist/lib/index.js" + "types": "./dist/index.d.ts", + "svelte": "./dist/index.js" + }, + "./chains": { + "types": "./dist/exports/chains.d.ts", + "default": "./dist/exports/chains.js" } }, "peerDependencies": { diff --git a/packages/svelte/src/lib/exports/chains.ts b/packages/svelte/src/lib/exports/chains.ts new file mode 100644 index 0000000000..dfe5ccc8c0 --- /dev/null +++ b/packages/svelte/src/lib/exports/chains.ts @@ -0,0 +1,3 @@ +// biome-ignore lint/performance/noBarrelFile: entrypoint module +// biome-ignore lint/performance/noReExportAll: entrypoint module +export * from 'viem/chains' diff --git a/packages/svelte/src/lib/exports/index.ts b/packages/svelte/src/lib/exports/index.ts new file mode 100644 index 0000000000..6b177c0c00 --- /dev/null +++ b/packages/svelte/src/lib/exports/index.ts @@ -0,0 +1,148 @@ +//////////////////////////////////////////////////////////////////////////////// +// Errors +//////////////////////////////////////////////////////////////////////////////// + +// biome-ignore lint/performance/noBarrelFile: entrypoint module +export { + type BaseErrorType, + BaseError, + type WagmiProviderNotFoundErrorType, + WagmiProviderNotFoundError, +} from '../errors.js' + +//////////////////////////////////////////////////////////////////////////////// +// Hooks +//////////////////////////////////////////////////////////////////////////////// + +export { + type UseAccountParameters, + type UseAccountReturnType, + useAccount, +} from '../hooks/useAccount.svelte.js' + +export { + type UseBalanceParameters, + type UseBalanceReturnType, + useBalance, +} from '../hooks/useBalance.svelte.js' + +export { + type UseBlockNumberParameters, + type UseBlockNumberReturnType, + useBlockNumber, +} from '../hooks/useBlockNumber.svelte.js' + +export { + type UseChainIdParameters, + type UseChainIdReturnType, + useChainId, +} from '../hooks/useChainId.svelte.js' + +export { + type UseChainsParameters, + type UseChainsReturnType, + useChains, +} from '../hooks/useChains.svelte.js' + +export { + type UseConfigParameters, + type UseConfigReturnType, + useConfig, +} from '../hooks/useConfig.svelte.js' + +export { + type UseConnectParameters, + type UseConnectReturnType, + useConnect, +} from '../hooks/useConnect.svelte.js' + +export { + type UseConnectionsParameters, + type UseConnectionsReturnType, + useConnections, +} from '../hooks/useConnections.svelte.js' + +export { + type UseConnectorsParameters, + type UseConnectorsReturnType, + useConnectors, +} from '../hooks/useConnectors.svelte.js' + +export { + type UseDisconnectParameters, + type UseDisconnectReturnType, + useDisconnect, +} from '../hooks/useDisconnect.svelte.js' + +export { + type UseReadContractParameters, + type UseReadContractReturnType, + useReadContract, + /** @deprecated Use `useWriteContract` instead */ + useReadContract as useContractRead, +} from '../hooks/useReadContract.svelte.js' + +export { + type UseWatchBlockNumberParameters, + type UseWatchBlockNumberReturnType, + useWatchBlockNumber, +} from '../hooks/useWatchBlockNumber.svelte.js' + +//////////////////////////////////////////////////////////////////////////////// +// @wagmi/core +//////////////////////////////////////////////////////////////////////////////// + +export { + // Config + type Connection, + type Connector, + type Config, + type CreateConfigParameters, + type PartializedState, + type State, + createConfig, + // Connector + type ConnectorEventMap, + type CreateConnectorFn, + createConnector, + // Errors + type ChainNotConfiguredErrorType, + ChainNotConfiguredError, + type ConnectorAlreadyConnectedErrorType, + ConnectorAlreadyConnectedError, + type ConnectorNotFoundErrorType, + ConnectorNotFoundError, + type ConnectorAccountNotFoundErrorType, + ConnectorAccountNotFoundError, + type ConnectorChainMismatchErrorType, + ConnectorChainMismatchError, + type ConnectorUnavailableReconnectingErrorType, + ConnectorUnavailableReconnectingError, + type ProviderNotFoundErrorType, + ProviderNotFoundError, + type SwitchChainNotSupportedErrorType, + SwitchChainNotSupportedError, + // Storage + type CreateStorageParameters, + type Storage, + createStorage, + noopStorage, + // Transports + custom, + fallback, + http, + webSocket, + unstable_connector, + type Transport, + // Types + type Register, + type ResolvedRegister, + // Utilities + cookieStorage, + cookieToInitialState, + deepEqual, + deserialize, + normalizeChainId, + parseCookie, + serialize, +} from '@wagmi/core' diff --git a/packages/svelte/src/lib/index.ts b/packages/svelte/src/lib/index.ts index 47d3c46fb8..8b90f9416b 100644 --- a/packages/svelte/src/lib/index.ts +++ b/packages/svelte/src/lib/index.ts @@ -1 +1,3 @@ -// Reexport your entry components here +// biome-ignore lint/performance/noBarrelFile: entrypoint module +// biome-ignore lint/performance/noReExportAll: entrypoint module +export * from './exports/index.js' diff --git a/site/.vitepress/sidebar.ts b/site/.vitepress/sidebar.ts index 01caeadeeb..fe64163fd1 100644 --- a/site/.vitepress/sidebar.ts +++ b/site/.vitepress/sidebar.ts @@ -631,12 +631,12 @@ export function getSidebar() { ], '/svelte': [ { - text: "Introduction", + text: 'Introduction', items: [ - { text: "Getting Started", link: '/svelte/getting-started' }, - { text: "Reactivity", link: '/svelte/reactivity' }, + { text: 'Getting Started', link: '/svelte/getting-started' }, + { text: 'Reactivity', link: '/svelte/reactivity' }, ], - } + }, ], '/core': [ { From aa076131b46f537766f38be9f96ed4951b3835db Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 12:26:52 -0700 Subject: [PATCH 39/71] fix: don't throw early if missing Wagmi context --- packages/svelte/src/lib/context.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/svelte/src/lib/context.ts b/packages/svelte/src/lib/context.ts index 989c05db6e..37edb84c22 100644 --- a/packages/svelte/src/lib/context.ts +++ b/packages/svelte/src/lib/context.ts @@ -6,11 +6,6 @@ const WAGMI_CONFIG_KEY = Symbol('WAGMI_CONFIG') export const getWagmiConfig = (): ContextConfig => { const client = getContext(WAGMI_CONFIG_KEY) - if (!client) { - throw new Error( - 'No Wagmi context was found in Svelte context. Did you forget to wrap your component with WagmiProvider?', - ) - } return client } From 93eca298898fbd4788cb6c8e0b2188304cd0a0da Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 12:29:34 -0700 Subject: [PATCH 40/71] feat: useEnsName hook --- .../src/lib/hooks/useEnsName.svelte.test.ts | 52 ++++++++++++++++ .../svelte/src/lib/hooks/useEnsName.svelte.ts | 62 +++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useEnsName.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts b/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts new file mode 100644 index 0000000000..8dd3be947f --- /dev/null +++ b/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts @@ -0,0 +1,52 @@ +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useEnsName } from './useEnsName.svelte' + +test( + 'default', + testHook(async () => { + const result = $derived.by( + useEnsName(() => ({ + address: '0xd2135CfB216b74109775236E36d4b433F1DF507B', + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": "wevm.eth", + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "ensName", + { + "address": "0xd2135CfB216b74109775236E36d4b433F1DF507B", + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) diff --git a/packages/svelte/src/lib/hooks/useEnsName.svelte.ts b/packages/svelte/src/lib/hooks/useEnsName.svelte.ts new file mode 100644 index 0000000000..357b4c83fc --- /dev/null +++ b/packages/svelte/src/lib/hooks/useEnsName.svelte.ts @@ -0,0 +1,62 @@ +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { + ConfigParameter, + QueryParameter, + RuneParameters, + RuneReturnType, +} from '$lib/types.js' +import type { Config, GetEnsNameErrorType, ResolvedRegister } from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type GetEnsNameData, + type GetEnsNameOptions, + type GetEnsNameQueryFnData, + type GetEnsNameQueryKey, + getEnsNameQueryOptions, +} from '@wagmi/core/query' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseEnsNameParameters< + config extends Config = Config, + selectData = GetEnsNameData, +> = RuneParameters< + Compute< + GetEnsNameOptions & + ConfigParameter & + QueryParameter< + GetEnsNameQueryFnData, + GetEnsNameErrorType, + selectData, + GetEnsNameQueryKey + > + > +> + +export type UseEnsNameReturnType = RuneReturnType< + CreateQueryReturnType +> + +/** https://wagmi.sh/react/api/hooks/useEnsName */ +export function useEnsName< + config extends Config = ResolvedRegister['config'], + selectData = GetEnsNameData, +>( + parameters: UseEnsNameParameters = () => ({}), +): UseEnsNameReturnType { + const { address, query = {} } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const chainId = $derived.by(useChainId(() => ({ config }))) + + const options = $derived( + getEnsNameQueryOptions(config, { + ...parameters(), + chainId: parameters().chainId ?? chainId, + }), + ) + + const enabled = $derived(Boolean(address && (query.enabled ?? true))) + + return createQuery(() => ({ ...query, ...options, enabled })) +} From 17c34c47e09b8d2a131ee6d7baf014175f16cb58 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 12:33:42 -0700 Subject: [PATCH 41/71] feat: add ens name in playground --- .../svelte/src/routes/_components/Account.svelte | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/svelte/src/routes/_components/Account.svelte b/packages/svelte/src/routes/_components/Account.svelte index c4c3f3a718..c2c517c836 100644 --- a/packages/svelte/src/routes/_components/Account.svelte +++ b/packages/svelte/src/routes/_components/Account.svelte @@ -1,20 +1,22 @@

Account

- account: {account.address} - + account: {account.address} {ensName}
chainId: {account.chainId}
From ca097fb33661403ae9a12ce70527efef3ebd8998 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 12:38:29 -0700 Subject: [PATCH 42/71] feat; useSwitchAccount hook --- .../lib/hooks/useSwitchAccount.svelte.test.ts | 40 ++++++++ .../src/lib/hooks/useSwitchAccount.svelte.ts | 93 +++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts new file mode 100644 index 0000000000..681b7fad49 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts @@ -0,0 +1,40 @@ +import { connect, disconnect } from '@wagmi/core' +import { config } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useAccount } from './useAccount.svelte.js' +import { useSwitchAccount } from './useSwitchAccount.svelte.js' + +const connector1 = config.connectors[0]! +const connector2 = config.connectors[1]! + +test( + 'default', + testHook(async () => { + await connect(config, { connector: connector2 }) + await connect(config, { connector: connector1 }) + + const account = $derived.by(useAccount()) + const switchAccount = $derived.by(useSwitchAccount()) + + const address1 = account.address + expect(address1).toBeDefined() + + switchAccount.switchAccount({ connector: connector2 }) + await expect.poll(() => switchAccount.isSuccess).toBeTruthy() + + const address2 = account.address + expect(address2).toBeDefined() + expect(address1).not.toBe(address2) + + switchAccount.switchAccount({ connector: connector1 }) + await expect.poll(() => switchAccount.isSuccess).toBeTruthy() + + const address3 = account.address + expect(address3).toBeDefined() + expect(address1).toBe(address3) + + await disconnect(config, { connector: connector1 }) + await disconnect(config, { connector: connector2 }) + }), +) \ No newline at end of file diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts new file mode 100644 index 0000000000..bf38c963cf --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts @@ -0,0 +1,93 @@ + import { createMutation } from '@tanstack/svelte-query' + import type { + Config, + Connector, + ResolvedRegister, + SwitchAccountErrorType, + } from '@wagmi/core' + import type { Compute } from '@wagmi/core/internal' + import { + type SwitchAccountData, + type SwitchAccountMutate, + type SwitchAccountMutateAsync, + type SwitchAccountVariables, + switchAccountMutationOptions, + } from '@wagmi/core/query' + + import type { ConfigParameter } from '../types.js' + import type { + CreateMutationParameters, + CreateMutationReturnType, + } from '$lib/query.svelte.js' + import type { + RuneParameters, + RuneReturnType, + } from '$lib/types.js' + import { useConfig } from './useConfig.svelte.js' + import { useConnections } from './useConnections.svelte.js' + + export type UseSwitchAccountParameters< + config extends Config = Config, + context = unknown, + > = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + SwitchAccountData, + SwitchAccountErrorType, + SwitchAccountVariables, + context + > + | undefined + } + > + > + + export type UseSwitchAccountReturnType< + config extends Config = Config, + context = unknown, + > = RuneReturnType< + Compute< + CreateMutationReturnType< + SwitchAccountData, + SwitchAccountErrorType, + SwitchAccountVariables, + context + > & { + connectors: readonly Connector[] + switchAccount: SwitchAccountMutate + switchAccountAsync: SwitchAccountMutateAsync + } + > + > + + /** https://wagmi.sh/react/api/hooks/useSwitchAccount */ + export function useSwitchAccount< + config extends Config = ResolvedRegister['config'], + context = unknown, + >( + parameters: UseSwitchAccountParameters = () => ({}), + ): UseSwitchAccountReturnType { + const { mutation } = $derived.by(parameters) + + const config = $derived.by(useConfig(parameters)) + + const mutationOptions = $derived(switchAccountMutationOptions(config)) + const query = createMutation(() => ({ + ...mutation, + ...mutationOptions, + })) + const { mutate, mutateAsync, ...result } = $derived(query); + + + const connections = $derived.by(useConnections(() => ({ config }))) + const connectors = $derived(connections.map((c) => c.connector)) + + return () => ({ + ...result, + connectors, + switchAccount: mutate, + switchAccountAsync: mutateAsync, + }) + } \ No newline at end of file From 4242d66a7e3a1eac5452ac6bbb8dd5f2653850e4 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 12:42:12 -0700 Subject: [PATCH 43/71] feat: add SwitchAccount component to playground --- .../lib/hooks/useSwitchAccount.svelte.test.ts | 2 +- .../src/lib/hooks/useSwitchAccount.svelte.ts | 162 +++++++++--------- packages/svelte/src/routes/+page.svelte | 2 + .../routes/_components/SwitchAccount.svelte | 19 ++ 4 files changed, 101 insertions(+), 84 deletions(-) create mode 100644 packages/svelte/src/routes/_components/SwitchAccount.svelte diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts index 681b7fad49..7d5f514896 100644 --- a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts @@ -37,4 +37,4 @@ test( await disconnect(config, { connector: connector1 }) await disconnect(config, { connector: connector2 }) }), -) \ No newline at end of file +) diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts index bf38c963cf..d1eef693be 100644 --- a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts +++ b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts @@ -1,93 +1,89 @@ - import { createMutation } from '@tanstack/svelte-query' - import type { - Config, - Connector, - ResolvedRegister, - SwitchAccountErrorType, - } from '@wagmi/core' - import type { Compute } from '@wagmi/core/internal' - import { - type SwitchAccountData, - type SwitchAccountMutate, - type SwitchAccountMutateAsync, - type SwitchAccountVariables, - switchAccountMutationOptions, - } from '@wagmi/core/query' +import { createMutation } from '@tanstack/svelte-query' +import type { + Config, + Connector, + ResolvedRegister, + SwitchAccountErrorType, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type SwitchAccountData, + type SwitchAccountMutate, + type SwitchAccountMutateAsync, + type SwitchAccountVariables, + switchAccountMutationOptions, +} from '@wagmi/core/query' - import type { ConfigParameter } from '../types.js' - import type { - CreateMutationParameters, - CreateMutationReturnType, - } from '$lib/query.svelte.js' - import type { - RuneParameters, - RuneReturnType, - } from '$lib/types.js' - import { useConfig } from './useConfig.svelte.js' - import { useConnections } from './useConnections.svelte.js' +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter } from '../types.js' +import { useConfig } from './useConfig.svelte.js' +import { useConnections } from './useConnections.svelte.js' - export type UseSwitchAccountParameters< - config extends Config = Config, - context = unknown, - > = RuneParameters< - Compute< - ConfigParameter & { - mutation?: - | CreateMutationParameters< - SwitchAccountData, - SwitchAccountErrorType, - SwitchAccountVariables, - context - > - | undefined - } - > +export type UseSwitchAccountParameters< + config extends Config = Config, + context = unknown, +> = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + SwitchAccountData, + SwitchAccountErrorType, + SwitchAccountVariables, + context + > + | undefined + } > +> - export type UseSwitchAccountReturnType< - config extends Config = Config, - context = unknown, - > = RuneReturnType< - Compute< - CreateMutationReturnType< - SwitchAccountData, - SwitchAccountErrorType, - SwitchAccountVariables, - context - > & { - connectors: readonly Connector[] - switchAccount: SwitchAccountMutate - switchAccountAsync: SwitchAccountMutateAsync - } - > +export type UseSwitchAccountReturnType< + config extends Config = Config, + context = unknown, +> = RuneReturnType< + Compute< + CreateMutationReturnType< + SwitchAccountData, + SwitchAccountErrorType, + SwitchAccountVariables, + context + > & { + connectors: readonly Connector[] + switchAccount: SwitchAccountMutate + switchAccountAsync: SwitchAccountMutateAsync + } > +> - /** https://wagmi.sh/react/api/hooks/useSwitchAccount */ - export function useSwitchAccount< - config extends Config = ResolvedRegister['config'], - context = unknown, - >( - parameters: UseSwitchAccountParameters = () => ({}), - ): UseSwitchAccountReturnType { - const { mutation } = $derived.by(parameters) +/** https://wagmi.sh/react/api/hooks/useSwitchAccount */ +export function useSwitchAccount< + config extends Config = ResolvedRegister['config'], + context = unknown, +>( + parameters: UseSwitchAccountParameters = () => ({}), +): UseSwitchAccountReturnType { + const { mutation } = $derived.by(parameters) - const config = $derived.by(useConfig(parameters)) + const config = $derived.by(useConfig(parameters)) - const mutationOptions = $derived(switchAccountMutationOptions(config)) - const query = createMutation(() => ({ - ...mutation, - ...mutationOptions, - })) - const { mutate, mutateAsync, ...result } = $derived(query); + const mutationOptions = $derived(switchAccountMutationOptions(config)) + const query = createMutation(() => ({ + ...mutation, + ...mutationOptions, + })) + const { mutate, mutateAsync, ...result } = $derived(query) + const connections = $derived.by(useConnections(() => ({ config }))) + const connectors = $derived(connections.map((c) => c.connector)) - const connections = $derived.by(useConnections(() => ({ config }))) - const connectors = $derived(connections.map((c) => c.connector)) - - return () => ({ - ...result, - connectors, - switchAccount: mutate, - switchAccountAsync: mutateAsync, - }) - } \ No newline at end of file + return () => ({ + ...result, + connectors, + switchAccount: mutate, + switchAccountAsync: mutateAsync, + }) +} diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index b689e41fe3..6bcb7dafb6 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -5,11 +5,13 @@ import BlockNumber from './_components/BlockNumber.svelte' import Connect from './_components/Connect.svelte' import Connections from './_components/Connections.svelte' import ReadContract from './_components/ReadContract.svelte' +import SwitchAccount from './_components/SwitchAccount.svelte' + diff --git a/packages/svelte/src/routes/_components/SwitchAccount.svelte b/packages/svelte/src/routes/_components/SwitchAccount.svelte new file mode 100644 index 0000000000..310e48ab3f --- /dev/null +++ b/packages/svelte/src/routes/_components/SwitchAccount.svelte @@ -0,0 +1,19 @@ + + +

Switch Account

+ +{#each connectors as connector} + +{/each} \ No newline at end of file From 9a59af049f80986202f7f2a7f61ef08595d0bb81 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 12:54:50 -0700 Subject: [PATCH 44/71] feat: useSwitchChain hook --- .../lib/hooks/useSwitchChain.svelte.test.ts | 114 ++++++++++++++++++ .../src/lib/hooks/useSwitchChain.svelte.ts | 88 ++++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts b/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts new file mode 100644 index 0000000000..c2ff514970 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts @@ -0,0 +1,114 @@ +// useSwitchChain.svelte.test.ts +import { connect, disconnect } from '@wagmi/core' +import { chain, config } from '@wagmi/test' +import { expect, test, vi } from 'vitest' +import { testHook } from './test.svelte.js' +import { useAccount } from './useAccount.svelte.js' +import { useSwitchChain } from './useSwitchChain.svelte.js' + +const connector = config.connectors[0]! + +test( + 'default', + testHook(async () => { + await connect(config, { connector }) + + const account = $derived.by(useAccount()) + const switchChain = $derived.by(useSwitchChain()) + + const chainId1 = account.chainId + expect(chainId1).toBeDefined() + + switchChain.switchChain({ chainId: chain.mainnet2.id }) + await expect.poll(() => switchChain.isSuccess).toBeTruthy() + + const chainId2 = account.chainId + expect(chainId2).toBeDefined() + expect(chainId1).not.toBe(chainId2) + + switchChain.switchChain({ chainId: chain.mainnet.id }) + await expect.poll(() => switchChain.isSuccess).toBeTruthy() + + const chainId3 = account.chainId + expect(chainId3).toBeDefined() + expect(chainId1).toBe(chainId3) + + await disconnect(config, { connector }) + }), +) + +test( + 'behavior: chains updates', + testHook(async () => { + const switchChain = $derived.by(useSwitchChain()) + + const chains = switchChain.chains + + expect( + switchChain.chains.map(({ id, name }) => ({ + id, + name, + })), + ).toMatchInlineSnapshot(` + [ + { + "id": 1, + "name": "Ethereum", + }, + { + "id": 456, + "name": "Ethereum", + }, + { + "id": 10, + "name": "OP Mainnet", + }, + ] + `) + + config._internal.chains.setState([chain.mainnet, chain.mainnet2]) + + await vi.waitFor(() => switchChain.isSuccess) + expect( + switchChain.chains.map(({ id, name }) => ({ + id, + name, + })), + ).toMatchInlineSnapshot(` + [ + { + "id": 1, + "name": "Ethereum", + }, + { + "id": 456, + "name": "Ethereum", + }, + ] + `) + + config._internal.chains.setState(chains) + + expect( + switchChain.chains.map(({ id, name }) => ({ + id, + name, + })), + ).toMatchInlineSnapshot(` + [ + { + "id": 1, + "name": "Ethereum", + }, + { + "id": 456, + "name": "Ethereum", + }, + { + "id": 10, + "name": "OP Mainnet", + }, + ] + `) + }), +) diff --git a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts b/packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts new file mode 100644 index 0000000000..abccb9787b --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts @@ -0,0 +1,88 @@ +import { createMutation } from '@tanstack/svelte-query' +import type { + Config, + ResolvedRegister, + SwitchChainErrorType, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type SwitchChainData, + type SwitchChainMutate, + type SwitchChainMutateAsync, + type SwitchChainVariables, + switchChainMutationOptions, +} from '@wagmi/core/query' + +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter } from '../types.js' +import { useChains } from './useChains.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseSwitchChainParameters< + config extends Config = Config, + context = unknown, +> = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + SwitchChainData, + SwitchChainErrorType, + SwitchChainVariables, + context + > + | undefined + } + > +> + +export type UseSwitchChainReturnType< + config extends Config = Config, + context = unknown, +> = RuneReturnType< + Compute< + CreateMutationReturnType< + SwitchChainData, + SwitchChainErrorType, + SwitchChainVariables, + context + > & { + chains: config['chains'] + switchChain: SwitchChainMutate + switchChainAsync: SwitchChainMutateAsync + } + > +> + +/** https://wagmi.sh/react/api/hooks/useSwitchChain */ +export function useSwitchChain< + config extends Config = ResolvedRegister['config'], + context = unknown, +>( + parameters: UseSwitchChainParameters = () => ({}), +): UseSwitchChainReturnType { + const { mutation } = $derived.by(parameters) + + const config = $derived.by(useConfig(parameters)) + + const mutationOptions = $derived(switchChainMutationOptions(config)) + const query = createMutation(() => ({ + ...mutation, + ...mutationOptions, + })) + const { mutate, mutateAsync, ...result } = $derived(query) + + const chains = $derived.by(useChains(() => ({ config }))) + + type Return = ReturnType> + return () => ({ + ...result, + chains: chains as unknown as Return['chains'], + switchChain: mutate as Return['switchChain'], + switchChainAsync: mutateAsync as Return['switchChainAsync'], + }) +} From cda9ce738af99aa58aa126eedd488a5c14dc8007 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 13:00:16 -0700 Subject: [PATCH 45/71] feat: add SwitchChain component to playground --- packages/svelte/src/routes/+page.svelte | 2 ++ .../src/routes/_components/SwitchChain.svelte | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 packages/svelte/src/routes/_components/SwitchChain.svelte diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 6bcb7dafb6..595c9bdb36 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -6,6 +6,7 @@ import Connect from './_components/Connect.svelte' import Connections from './_components/Connections.svelte' import ReadContract from './_components/ReadContract.svelte' import SwitchAccount from './_components/SwitchAccount.svelte' +import SwitchChain from './_components/SwitchChain.svelte' @@ -13,5 +14,6 @@ import SwitchAccount from './_components/SwitchAccount.svelte' + diff --git a/packages/svelte/src/routes/_components/SwitchChain.svelte b/packages/svelte/src/routes/_components/SwitchChain.svelte new file mode 100644 index 0000000000..48cd020670 --- /dev/null +++ b/packages/svelte/src/routes/_components/SwitchChain.svelte @@ -0,0 +1,23 @@ + + +

Switch Chain

+ +{#each chains as chain} + +{/each} + +{#if error} + {error.message} +{/if} \ No newline at end of file From e3ae5697f126e98b51c86a682223d2ef695c7306 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 13:05:29 -0700 Subject: [PATCH 46/71] feat: useSignMessage hook --- .../lib/hooks/useSignMessage.svelte.test.ts | 50 ++++++++++++++ .../src/lib/hooks/useSignMessage.svelte.ts | 69 +++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useSignMessage.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts b/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts new file mode 100644 index 0000000000..a3ba95f6bb --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts @@ -0,0 +1,50 @@ +import { connect, disconnect, getAccount } from '@wagmi/core' +import { config, privateKey } from '@wagmi/test' +import { recoverMessageAddress } from 'viem' +import { expect, test, vi } from 'vitest' + +import { privateKeyToAccount } from 'viem/accounts' +import { testHook } from './test.svelte.js' +import { useSignMessage } from './useSignMessage.svelte' + +const connector = config.connectors[0]! + +test( + 'default', + testHook(async () => { + await connect(config, { connector }) + + const signMessage = $derived.by(useSignMessage()) + + signMessage.signMessage({ message: 'foo bar baz' }) + await expect.poll(() => signMessage.isSuccess).toBeTruthy() + + await expect( + recoverMessageAddress({ + message: 'foo bar baz', + signature: signMessage.data!, + }), + ).resolves.toEqual(getAccount(config).address) + + await disconnect(config, { connector }) + }), +) + +test( + 'behavior: local account', + testHook(async () => { + const signMessage = $derived.by(useSignMessage()) + + const account = privateKeyToAccount(privateKey) + signMessage.signMessage({ account, message: 'foo bar baz' }) + + await expect.poll(() => signMessage.isSuccess).toBeTruthy() + + await expect( + recoverMessageAddress({ + message: 'foo bar baz', + signature: signMessage.data!, + }), + ).resolves.toEqual(account.address) + }), +) diff --git a/packages/svelte/src/lib/hooks/useSignMessage.svelte.ts b/packages/svelte/src/lib/hooks/useSignMessage.svelte.ts new file mode 100644 index 0000000000..01bfa29a0e --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSignMessage.svelte.ts @@ -0,0 +1,69 @@ +import { createMutation } from '@tanstack/svelte-query' +import type { SignMessageErrorType } from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type SignMessageData, + type SignMessageMutate, + type SignMessageMutateAsync, + type SignMessageVariables, + signMessageMutationOptions, +} from '@wagmi/core/query' + +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter } from '../types.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseSignMessageParameters = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + SignMessageData, + SignMessageErrorType, + SignMessageVariables, + context + > + | undefined + } + > +> + +export type UseSignMessageReturnType = RuneReturnType< + Compute< + CreateMutationReturnType< + SignMessageData, + SignMessageErrorType, + SignMessageVariables, + context + > & { + signMessage: SignMessageMutate + signMessageAsync: SignMessageMutateAsync + } + > +> + +/** https://wagmi.sh/react/api/hooks/useSignMessage */ +export function useSignMessage( + parameters: UseSignMessageParameters = () => ({}), +): UseSignMessageReturnType { + const { mutation } = $derived.by(parameters) + + const config = $derived.by(useConfig(parameters)) + + const mutationOptions = $derived(signMessageMutationOptions(config)) + const query = createMutation(() => ({ + ...mutation, + ...mutationOptions, + })) + const { mutate, mutateAsync, ...result } = $derived(query) + + return () => ({ + ...result, + signMessage: mutate, + signMessageAsync: mutateAsync, + }) +} From 1e984525a3d653f48f2fc36533529a121a57ccab Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 13:08:40 -0700 Subject: [PATCH 47/71] feat: add SignMessage component to playground --- packages/svelte/src/routes/+page.svelte | 2 ++ .../src/routes/_components/SignMessage.svelte | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 packages/svelte/src/routes/_components/SignMessage.svelte diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 595c9bdb36..bd05be914f 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -5,6 +5,7 @@ import BlockNumber from './_components/BlockNumber.svelte' import Connect from './_components/Connect.svelte' import Connections from './_components/Connections.svelte' import ReadContract from './_components/ReadContract.svelte' +import SignMessage from './_components/SignMessage.svelte' import SwitchAccount from './_components/SwitchAccount.svelte' import SwitchChain from './_components/SwitchChain.svelte' @@ -17,3 +18,4 @@ import SwitchChain from './_components/SwitchChain.svelte' + diff --git a/packages/svelte/src/routes/_components/SignMessage.svelte b/packages/svelte/src/routes/_components/SignMessage.svelte new file mode 100644 index 0000000000..bfa533bb66 --- /dev/null +++ b/packages/svelte/src/routes/_components/SignMessage.svelte @@ -0,0 +1,23 @@ + + +

Sign Message

+ +
+ + +
+ +{#if data} + {data} +{/if} \ No newline at end of file From bdc645794d8576e16a099163ba5945de3f1a4a1b Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 13:14:27 -0700 Subject: [PATCH 48/71] feat: useWriteContract hook --- .../lib/hooks/useWriteContract.svelte.test.ts | 28 ++++++ .../src/lib/hooks/useWriteContract.svelte.ts | 96 +++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useWriteContract.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts b/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts new file mode 100644 index 0000000000..9e35bd903f --- /dev/null +++ b/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts @@ -0,0 +1,28 @@ +import { connect, disconnect } from '@wagmi/core' +import { abi, address, config } from '@wagmi/test' +import { expect, test } from 'vitest' + +import { testHook } from './test.svelte.js' +import { useWriteContract } from './useWriteContract.svelte' + +const connector = config.connectors[0]! + +test( + 'default', + testHook(async () => { + await connect(config, { connector }) + + const writeContract = $derived.by(useWriteContract()) + + writeContract.writeContract({ + abi: abi.wagmiMintExample, + address: address.wagmiMintExample, + functionName: 'mint', + }) + await expect.poll(() => writeContract.isSuccess).toBeTruthy() + + expect(writeContract.data).toBeDefined() + + await disconnect(config, { connector }) + }), +) diff --git a/packages/svelte/src/lib/hooks/useWriteContract.svelte.ts b/packages/svelte/src/lib/hooks/useWriteContract.svelte.ts new file mode 100644 index 0000000000..14fbcbdb6e --- /dev/null +++ b/packages/svelte/src/lib/hooks/useWriteContract.svelte.ts @@ -0,0 +1,96 @@ +import { createMutation } from '@tanstack/svelte-query' +import type { + Config, + ResolvedRegister, + WriteContractErrorType, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type WriteContractData, + type WriteContractMutate, + type WriteContractMutateAsync, + type WriteContractVariables, + writeContractMutationOptions, +} from '@wagmi/core/query' +import type { Abi } from 'viem' + +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter } from '../types.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseWriteContractParameters< + config extends Config = Config, + context = unknown, +> = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + WriteContractData, + WriteContractErrorType, + WriteContractVariables< + Abi, + string, + readonly unknown[], + config, + config['chains'][number]['id'] + >, + context + > + | undefined + } + > +> + +export type UseWriteContractReturnType< + config extends Config = Config, + context = unknown, +> = RuneReturnType< + Compute< + CreateMutationReturnType< + WriteContractData, + WriteContractErrorType, + WriteContractVariables< + Abi, + string, + readonly unknown[], + config, + config['chains'][number]['id'] + >, + context + > & { + writeContract: WriteContractMutate + writeContractAsync: WriteContractMutateAsync + } + > +> + +/** https://wagmi.sh/react/api/hooks/useWriteContract */ +export function useWriteContract< + config extends Config = ResolvedRegister['config'], + context = unknown, +>( + parameters: UseWriteContractParameters = () => ({}), +): UseWriteContractReturnType { + const { mutation } = $derived.by(parameters) + + const config = $derived.by(useConfig(parameters)) + + const mutationOptions = $derived(writeContractMutationOptions(config)) + const query = createMutation(() => ({ + ...mutation, + ...mutationOptions, + })) + const { mutate, mutateAsync, ...result } = $derived(query) + + type Return = ReturnType> + return () => ({ + ...result, + writeContract: mutate as Return['writeContract'], + writeContractAsync: mutateAsync as Return['writeContractAsync'], + }) +} From dda0acab8be404a39b7bbc8a3386177515af7617 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 13:18:45 -0700 Subject: [PATCH 49/71] feat: useWaitForTransactionReceipt hook --- ...seWaitForTransactionReceipt.svelte.test.ts | 81 +++++++++++++++++++ .../useWaitForTransactionReceipt.svelte.ts | 79 ++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts b/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts new file mode 100644 index 0000000000..1807b1d2c3 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts @@ -0,0 +1,81 @@ +import { wait } from '@wagmi/test' +import { expect, test, vi } from 'vitest' +import { testHook } from './test.svelte.js' +import { useWaitForTransactionReceipt } from './useWaitForTransactionReceipt.svelte' + +test( + 'default', + testHook(async () => { + const result = $derived.by( + useWaitForTransactionReceipt(() => ({ + hash: '0x60668ed8c2dc110d61d945a936fcd45b8f13654e5c78481c8c825d1148c7ef30', + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": { + "blockHash": "0xd725a38b51e5ceec8c5f6c9ccfdb2cc423af993bb650af5eedca5e4be7156ba7", + "blockNumber": 15189204n, + "chainId": 1, + "contractAddress": null, + "cumulativeGasUsed": 12949744n, + "effectiveGasPrice": 9371645552n, + "from": "0xa0cf798816d4b9b9866b5330eea46a18382f251e", + "gasUsed": 21000n, + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "success", + "to": "0xd2135cfb216b74109775236e36d4b433f1df507b", + "transactionHash": "0x60668ed8c2dc110d61d945a936fcd45b8f13654e5c78481c8c825d1148c7ef30", + "transactionIndex": 144, + "type": "eip1559", + }, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "waitForTransactionReceipt", + { + "chainId": 1, + "hash": "0x60668ed8c2dc110d61d945a936fcd45b8f13654e5c78481c8c825d1148c7ef30", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'disabled when hash is undefined', + testHook(async () => { + const result = $derived.by( + useWaitForTransactionReceipt(() => ({ hash: undefined })), + ) + + await wait(100) + await expect.poll(() => result.isPending).toBeTruthy() + }), +) diff --git a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts b/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts new file mode 100644 index 0000000000..32c6c3a4d9 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts @@ -0,0 +1,79 @@ +import type { + Config, + ResolvedRegister, + WaitForTransactionReceiptErrorType, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type WaitForTransactionReceiptData, + type WaitForTransactionReceiptOptions, + type WaitForTransactionReceiptQueryFnData, + type WaitForTransactionReceiptQueryKey, + waitForTransactionReceiptQueryOptions, +} from '@wagmi/core/query' + +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter, QueryParameter } from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseWaitForTransactionReceiptParameters< + config extends Config = Config, + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = WaitForTransactionReceiptData, +> = RuneParameters< + Compute< + WaitForTransactionReceiptOptions & + ConfigParameter & + QueryParameter< + WaitForTransactionReceiptQueryFnData, + WaitForTransactionReceiptErrorType, + selectData, + WaitForTransactionReceiptQueryKey + > + > +> + +export type UseWaitForTransactionReceiptReturnType< + config extends Config = Config, + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = WaitForTransactionReceiptData, +> = RuneReturnType< + CreateQueryReturnType +> + +/** https://wagmi.sh/react/api/hooks/useWaitForTransactionReceipt */ +export function useWaitForTransactionReceipt< + config extends Config = ResolvedRegister['config'], + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = WaitForTransactionReceiptData, +>( + parameters: UseWaitForTransactionReceiptParameters< + config, + chainId, + selectData + > = () => ({}), +): UseWaitForTransactionReceiptReturnType { + const { hash, query = {} } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const chainId = $derived.by(useChainId(() => ({ config }))) + + const options = $derived( + waitForTransactionReceiptQueryOptions(config, { + ...parameters(), + chainId: parameters().chainId ?? chainId, + }), + ) + const enabled = $derived(Boolean(hash && (query.enabled ?? true))) + + return createQuery(() => ({ + ...(query as any), + ...options, + enabled, + })) +} From 0de269ae7e0c3564c97ea0206d1a1708fe2e957b Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Thu, 31 Oct 2024 13:21:35 -0700 Subject: [PATCH 50/71] feat: add WriteContract component to playground --- packages/svelte/src/routes/+page.svelte | 2 + .../routes/_components/WriteContract.svelte | 55 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 packages/svelte/src/routes/_components/WriteContract.svelte diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index bd05be914f..e144944c8d 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -8,6 +8,7 @@ import ReadContract from './_components/ReadContract.svelte' import SignMessage from './_components/SignMessage.svelte' import SwitchAccount from './_components/SwitchAccount.svelte' import SwitchChain from './_components/SwitchChain.svelte' +import WriteContract from './_components/WriteContract.svelte' @@ -19,3 +20,4 @@ import SwitchChain from './_components/SwitchChain.svelte' + diff --git a/packages/svelte/src/routes/_components/WriteContract.svelte b/packages/svelte/src/routes/_components/WriteContract.svelte new file mode 100644 index 0000000000..f6b86b0805 --- /dev/null +++ b/packages/svelte/src/routes/_components/WriteContract.svelte @@ -0,0 +1,55 @@ + + +

Write Contract

+
+ + +
+ +{#if hash} +
Transaction Hash: {hash}
+{/if} +{#if isConfirming} + Waiting for confirmation... +{/if} +{#if isConfirmed} + Transaction confirmed. +{/if} +{#if error} +
Error: {error.shortMessage || error.message}
+{/if} \ No newline at end of file From 40d9799016215123e727049d6209e6b16da8080e Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 09:48:10 -0700 Subject: [PATCH 51/71] feat: useSendTransaction hook --- .../hooks/useSendTransaction.svelte.test.ts | 28 +++++++ .../lib/hooks/useSendTransaction.svelte.ts | 82 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts b/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts new file mode 100644 index 0000000000..0e3d24dd9b --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts @@ -0,0 +1,28 @@ +import { connect, disconnect } from '@wagmi/core' +import { config, transactionHashRegex } from '@wagmi/test' +import { parseEther } from 'viem' +import { expect, test } from 'vitest' + +import { testHook } from './test.svelte.js' +import { useSendTransaction } from './useSendTransaction.svelte' + +const connector = config.connectors[0]! + +test( + 'default', + testHook(async () => { + await connect(config, { connector }) + + const sendTransaction = $derived.by(useSendTransaction()) + + sendTransaction.sendTransaction({ + to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', + value: parseEther('0.01'), + }) + await expect.poll(() => sendTransaction.isSuccess).toBeTruthy() + + expect(sendTransaction.data).toMatch(transactionHashRegex) + + await disconnect(config, { connector }) + }), +) diff --git a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts b/packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts new file mode 100644 index 0000000000..e2ab2b7782 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts @@ -0,0 +1,82 @@ +import { createMutation } from '@tanstack/svelte-query' +import type { + Config, + ResolvedRegister, + SendTransactionErrorType, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type SendTransactionData, + type SendTransactionMutate, + type SendTransactionMutateAsync, + type SendTransactionVariables, + sendTransactionMutationOptions, +} from '@wagmi/core/query' + +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter } from '../types.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseSendTransactionParameters< + config extends Config = Config, + context = unknown, +> = RuneParameters< + Compute< + ConfigParameter & { + mutation?: + | CreateMutationParameters< + SendTransactionData, + SendTransactionErrorType, + SendTransactionVariables, + context + > + | undefined + } + > +> + +export type UseSendTransactionReturnType< + config extends Config = Config, + context = unknown, +> = RuneReturnType< + Compute< + CreateMutationReturnType< + SendTransactionData, + SendTransactionErrorType, + SendTransactionVariables, + context + > & { + sendTransaction: SendTransactionMutate + sendTransactionAsync: SendTransactionMutateAsync + } + > +> + +/** https://wagmi.sh/react/api/hooks/useSendTransaction */ +export function useSendTransaction< + config extends Config = ResolvedRegister['config'], + context = unknown, +>( + parameters: UseSendTransactionParameters = () => ({}), +): UseSendTransactionReturnType { + const { mutation } = $derived.by(parameters) + + const config = $derived.by(useConfig(parameters)) + + const mutationOptions = $derived(sendTransactionMutationOptions(config)) + const query = createMutation(() => ({ + ...mutation, + ...mutationOptions, + })) + const { mutate, mutateAsync, ...result } = $derived(query) + + return () => ({ + ...result, + sendTransaction: mutate, + sendTransactionAsync: mutateAsync, + }) +} From df90bbebab39423f6ed393435ae149456ecc9e82 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 09:52:02 -0700 Subject: [PATCH 52/71] feat: add SendTransaction component to playground --- .../routes/_components/SendTransaction.svelte | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 packages/svelte/src/routes/_components/SendTransaction.svelte diff --git a/packages/svelte/src/routes/_components/SendTransaction.svelte b/packages/svelte/src/routes/_components/SendTransaction.svelte new file mode 100644 index 0000000000..d654de8f71 --- /dev/null +++ b/packages/svelte/src/routes/_components/SendTransaction.svelte @@ -0,0 +1,56 @@ + + +
+

Send Transaction

+
+ + + +
+{#if hash} +
Transaction Hash: {hash}
+{/if} +{#if isConfirming} + Waiting for confirmation... +{/if} +{#if isConfirmed} + Transaction confirmed. +{/if} +{#if error} +
Error: {(error as BaseError).shortMessage || error.message}
+{/if} +
\ No newline at end of file From a45dbafae731657e2d6f936d24febd0669b8d1a9 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 09:52:34 -0700 Subject: [PATCH 53/71] refactor: formatting --- .../src/routes/_components/Account.svelte | 29 ++++++----- .../src/routes/_components/Balance.svelte | 28 +++++------ .../src/routes/_components/BlockNumber.svelte | 2 +- .../src/routes/_components/Connect.svelte | 23 ++++----- .../src/routes/_components/Connections.svelte | 18 +++---- .../routes/_components/SendTransaction.svelte | 50 ++++++++----------- .../src/routes/_components/SignMessage.svelte | 8 +-- .../routes/_components/SwitchAccount.svelte | 16 +++--- .../src/routes/_components/SwitchChain.svelte | 18 +++---- .../routes/_components/WriteContract.svelte | 26 +++++----- 10 files changed, 104 insertions(+), 114 deletions(-) diff --git a/packages/svelte/src/routes/_components/Account.svelte b/packages/svelte/src/routes/_components/Account.svelte index c2c517c836..13b34ec665 100644 --- a/packages/svelte/src/routes/_components/Account.svelte +++ b/packages/svelte/src/routes/_components/Account.svelte @@ -12,20 +12,19 @@ const { data: ensName } = $derived.by( ) -
-

Account

+
+

Account

-
- account: {account.address} {ensName} -
- chainId: {account.chainId} -
- status: {account.status} -
+
+ account: {account.address} + {ensName} +
+ chainId: {account.chainId} +
+ status: {account.status} +
- {#if account.status !== 'disconnected'} - - {/if} -
\ No newline at end of file + {#if account.status !== 'disconnected'} + + {/if} +
diff --git a/packages/svelte/src/routes/_components/Balance.svelte b/packages/svelte/src/routes/_components/Balance.svelte index 25f8651d27..d5e0734467 100644 --- a/packages/svelte/src/routes/_components/Balance.svelte +++ b/packages/svelte/src/routes/_components/Balance.svelte @@ -17,18 +17,18 @@ const { data: optimism_ } = $derived.by(
-

Balance

+

Balance

-
- Balance (Default Chain): - {#if !!default_?.value}{formatEther(default_.value)}{/if} -
-
- Balance (Account Chain): - {#if !!account_?.value}{formatEther(account_.value)}{/if} -
-
- Balance (Optimism Chain): - {#if !!optimism_?.value}{formatEther(optimism_.value)}{/if} -
-
\ No newline at end of file +
+ Balance (Default Chain): + {#if !!default_?.value}{formatEther(default_.value)}{/if} +
+
+ Balance (Account Chain): + {#if !!account_?.value}{formatEther(account_.value)}{/if} +
+
+ Balance (Optimism Chain): + {#if !!optimism_?.value}{formatEther(optimism_.value)}{/if} +
+
diff --git a/packages/svelte/src/routes/_components/BlockNumber.svelte b/packages/svelte/src/routes/_components/BlockNumber.svelte index 692d131e5e..9fe60bfb38 100644 --- a/packages/svelte/src/routes/_components/BlockNumber.svelte +++ b/packages/svelte/src/routes/_components/BlockNumber.svelte @@ -13,4 +13,4 @@ const optimismBlock = $derived.by(
Block Number (Default Chain): {defaultBlock.data?.toString()}
Block Number (Account Chain): {accountBlock.data?.toString()}
-
Block Number (Optimism): {optimismBlock.data?.toString()}
\ No newline at end of file +
Block Number (Optimism): {optimismBlock.data?.toString()}
diff --git a/packages/svelte/src/routes/_components/Connect.svelte b/packages/svelte/src/routes/_components/Connect.svelte index 5e0b883a96..ef9f97b956 100644 --- a/packages/svelte/src/routes/_components/Connect.svelte +++ b/packages/svelte/src/routes/_components/Connect.svelte @@ -6,16 +6,13 @@ const chainId = $derived.by(useChainId()) const { connectors, connect, status, error } = $derived.by(useConnect()) -
-

Connect

- {#each connectors as connector (connector.uid)} - - {/each} -
{status}
-
{error?.message}
-
\ No newline at end of file +
+

Connect

+ {#each connectors as connector (connector.uid)} + + {/each} +
{status}
+
{error?.message}
+
diff --git a/packages/svelte/src/routes/_components/Connections.svelte b/packages/svelte/src/routes/_components/Connections.svelte index b814e0524e..a4198241ec 100644 --- a/packages/svelte/src/routes/_components/Connections.svelte +++ b/packages/svelte/src/routes/_components/Connections.svelte @@ -5,13 +5,13 @@ const connections = $derived.by(useConnections())
-

Connections

+

Connections

- {#each connections as connection (connection.connector.uid)} -
-
connector {connection.connector.name}
-
accounts: {JSON.stringify(connection.accounts)}
-
chainId: {connection.chainId}
-
- {/each} -
\ No newline at end of file + {#each connections as connection (connection.connector.uid)} +
+
connector {connection.connector.name}
+
accounts: {JSON.stringify(connection.accounts)}
+
chainId: {connection.chainId}
+
+ {/each} +
diff --git a/packages/svelte/src/routes/_components/SendTransaction.svelte b/packages/svelte/src/routes/_components/SendTransaction.svelte index d654de8f71..295c2b6983 100644 --- a/packages/svelte/src/routes/_components/SendTransaction.svelte +++ b/packages/svelte/src/routes/_components/SendTransaction.svelte @@ -25,32 +25,26 @@ const { isLoading: isConfirming, isSuccess: isConfirmed } = $derived.by( })), ) - +
-

Send Transaction

-
- - - -
-{#if hash} -
Transaction Hash: {hash}
-{/if} -{#if isConfirming} - Waiting for confirmation... -{/if} -{#if isConfirmed} - Transaction confirmed. -{/if} -{#if error} -
Error: {(error as BaseError).shortMessage || error.message}
-{/if} -
\ No newline at end of file +

Send Transaction

+
+ + + +
+ {#if hash} +
Transaction Hash: {hash}
+ {/if} + {#if isConfirming} + Waiting for confirmation... + {/if} + {#if isConfirmed} + Transaction confirmed. + {/if} + {#if error} +
Error: {(error as BaseError).shortMessage || error.message}
+ {/if} + diff --git a/packages/svelte/src/routes/_components/SignMessage.svelte b/packages/svelte/src/routes/_components/SignMessage.svelte index bfa533bb66..7bc15908c8 100644 --- a/packages/svelte/src/routes/_components/SignMessage.svelte +++ b/packages/svelte/src/routes/_components/SignMessage.svelte @@ -14,10 +14,10 @@ function handleSubmit(event: SubmitEvent) {

Sign Message

- - + +
{#if data} - {data} -{/if} \ No newline at end of file + {data} +{/if} diff --git a/packages/svelte/src/routes/_components/SwitchAccount.svelte b/packages/svelte/src/routes/_components/SwitchAccount.svelte index 310e48ab3f..8dac63dda7 100644 --- a/packages/svelte/src/routes/_components/SwitchAccount.svelte +++ b/packages/svelte/src/routes/_components/SwitchAccount.svelte @@ -9,11 +9,11 @@ const { connectors, switchAccount } = $derived.by(useSwitchAccount())

Switch Account

{#each connectors as connector} - -{/each} \ No newline at end of file + +{/each} diff --git a/packages/svelte/src/routes/_components/SwitchChain.svelte b/packages/svelte/src/routes/_components/SwitchChain.svelte index 48cd020670..22fbd18069 100644 --- a/packages/svelte/src/routes/_components/SwitchChain.svelte +++ b/packages/svelte/src/routes/_components/SwitchChain.svelte @@ -9,15 +9,15 @@ const { chains, switchChain, error } = $derived.by(useSwitchChain())

Switch Chain

{#each chains as chain} - + {/each} {#if error} - {error.message} -{/if} \ No newline at end of file + {error.message} +{/if} diff --git a/packages/svelte/src/routes/_components/WriteContract.svelte b/packages/svelte/src/routes/_components/WriteContract.svelte index f6b86b0805..ee7e6e2dc9 100644 --- a/packages/svelte/src/routes/_components/WriteContract.svelte +++ b/packages/svelte/src/routes/_components/WriteContract.svelte @@ -31,25 +31,25 @@ const { isLoading: isConfirming, isSuccess: isConfirmed } = $derived.by(

Write Contract

- - + +
{#if hash} -
Transaction Hash: {hash}
+
Transaction Hash: {hash}
{/if} {#if isConfirming} - Waiting for confirmation... + Waiting for confirmation... {/if} {#if isConfirmed} - Transaction confirmed. + Transaction confirmed. {/if} {#if error} -
Error: {error.shortMessage || error.message}
-{/if} \ No newline at end of file +
Error: {error.shortMessage || error.message}
+{/if} From 9d5e06d731e69e76625d77a9edd07d31a153d105 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 09:54:55 -0700 Subject: [PATCH 54/71] fix: actually add SendTransaction to playground --- packages/svelte/src/routes/+page.svelte | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index e144944c8d..28362715ab 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -5,6 +5,7 @@ import BlockNumber from './_components/BlockNumber.svelte' import Connect from './_components/Connect.svelte' import Connections from './_components/Connections.svelte' import ReadContract from './_components/ReadContract.svelte' +import SendTransaction from './_components/SendTransaction.svelte' import SignMessage from './_components/SignMessage.svelte' import SwitchAccount from './_components/SwitchAccount.svelte' import SwitchChain from './_components/SwitchChain.svelte' @@ -20,4 +21,5 @@ import WriteContract from './_components/WriteContract.svelte' + From 3ab060d5346a8328dce4a73c14d86b5805b12174 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 10:11:41 -0700 Subject: [PATCH 55/71] feat: useReadContracts hook --- .../lib/hooks/useReadContracts.svelte.test.ts | 267 ++++++++++++++++++ .../src/lib/hooks/useReadContracts.svelte.ts | 93 ++++++ 2 files changed, 360 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useReadContracts.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts b/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts new file mode 100644 index 0000000000..c8d7bd7e4d --- /dev/null +++ b/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts @@ -0,0 +1,267 @@ +import { abi, address, chain } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useReadContracts } from './useReadContracts.svelte.js' + +test( + 'default', + testHook(async () => { + const result = $derived.by( + useReadContracts(() => ({ + contracts: [ + { + address: address.wagmiMintExample, + abi: abi.wagmiMintExample, + functionName: 'balanceOf', + args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'], + }, + { + address: address.wagmiMintExample, + abi: abi.wagmiMintExample, + functionName: 'symbol', + }, + ], + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": [ + { + "result": 4n, + "status": "success", + }, + { + "result": "WAGMI", + "status": "success", + }, + ], + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "readContracts", + { + "chainId": 1, + "contracts": [ + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "balanceOf", + }, + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "chainId": 1, + "functionName": "symbol", + }, + ], + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'multichain', + testHook(async () => { + const { mainnet, mainnet2, optimism } = chain + const result = $derived.by( + useReadContracts(() => ({ + contracts: [ + { + abi: abi.wagmigotchi, + address: address.wagmigotchi, + chainId: mainnet.id, + functionName: 'love', + args: ['0x27a69ffba1e939ddcfecc8c7e0f967b872bac65c'], + }, + { + abi: abi.wagmigotchi, + address: address.wagmigotchi, + chainId: mainnet.id, + functionName: 'love', + args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'], + }, + { + abi: abi.wagmigotchi, + address: address.wagmigotchi, + chainId: mainnet.id, + functionName: 'love', + args: ['0xd2135CfB216b74109775236E36d4b433F1DF507B'], + }, + { + abi: abi.wagmigotchi, + address: address.wagmigotchi, + chainId: mainnet2.id, + functionName: 'getAlive', + }, + { + abi: abi.mloot, + address: address.mloot, + chainId: mainnet2.id, + functionName: 'tokenOfOwnerByIndex', + args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', 0n], + }, + { + abi: abi.erc20, + address: address.optimism.usdc, + chainId: optimism.id, + functionName: 'symbol', + }, + { + abi: abi.erc20, + address: address.optimism.usdc, + chainId: optimism.id, + functionName: 'balanceOf', + args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'], + }, + ], + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": [ + { + "result": 2n, + "status": "success", + }, + { + "result": 1n, + "status": "success", + }, + { + "result": 0n, + "status": "success", + }, + { + "result": false, + "status": "success", + }, + { + "result": 370395n, + "status": "success", + }, + { + "result": "USDC", + "status": "success", + }, + { + "result": 10959340n, + "status": "success", + }, + ], + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "readContracts", + { + "chainId": 1, + "contracts": [ + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "args": [ + "0x27a69ffba1e939ddcfecc8c7e0f967b872bac65c", + ], + "chainId": 1, + "functionName": "love", + }, + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "love", + }, + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "args": [ + "0xd2135CfB216b74109775236E36d4b433F1DF507B", + ], + "chainId": 1, + "functionName": "love", + }, + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "chainId": 456, + "functionName": "getAlive", + }, + { + "address": "0x1dfe7ca09e99d10835bf73044a23b73fc20623df", + "args": [ + "0xA0Cf798816D4b9b9866b5330EEa46a18382f251e", + 0n, + ], + "chainId": 456, + "functionName": "tokenOfOwnerByIndex", + }, + { + "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607", + "chainId": 10, + "functionName": "symbol", + }, + { + "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 10, + "functionName": "balanceOf", + }, + ], + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) diff --git a/packages/svelte/src/lib/hooks/useReadContracts.svelte.ts b/packages/svelte/src/lib/hooks/useReadContracts.svelte.ts new file mode 100644 index 0000000000..35d5fced1b --- /dev/null +++ b/packages/svelte/src/lib/hooks/useReadContracts.svelte.ts @@ -0,0 +1,93 @@ +import type { + Config, + ReadContractsErrorType, + ResolvedRegister, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type ReadContractsData, + type ReadContractsOptions, + type ReadContractsQueryFnData, + type ReadContractsQueryKey, + readContractsQueryOptions, + structuralSharing, +} from '@wagmi/core/query' +import type { ContractFunctionParameters } from 'viem' + +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter, QueryParameter } from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseReadContractsParameters< + contracts extends readonly unknown[] = readonly ContractFunctionParameters[], + allowFailure extends boolean = true, + config extends Config = Config, + selectData = ReadContractsData, +> = RuneParameters< + Compute< + ReadContractsOptions & + ConfigParameter & + QueryParameter< + ReadContractsQueryFnData, + ReadContractsErrorType, + selectData, + ReadContractsQueryKey + > + > +> + +export type UseReadContractsReturnType< + contracts extends readonly unknown[] = readonly ContractFunctionParameters[], + allowFailure extends boolean = true, + selectData = ReadContractsData, +> = RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useReadContracts */ +export function useReadContracts< + const contracts extends readonly unknown[], + allowFailure extends boolean = true, + config extends Config = ResolvedRegister['config'], + selectData = ReadContractsData, +>( + parameters: UseReadContractsParameters< + contracts, + allowFailure, + config, + selectData + > = () => ({}), +): UseReadContractsReturnType { + const { contracts = [], query = {} } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const chainId = $derived.by(useChainId(() => ({ config }))) + + const options = $derived( + readContractsQueryOptions(config, { + ...parameters(), + chainId, + }), + ) + + const enabled = $derived(() => { + let isContractsValid = false + for (const contract of contracts) { + const { abi, address, functionName } = + contract as ContractFunctionParameters + if (!abi || !address || !functionName) { + isContractsValid = false + break + } + isContractsValid = true + } + return Boolean(isContractsValid && (query.enabled ?? true)) + }) + + return createQuery(() => ({ + ...options, + ...query, + enabled, + structuralSharing: query.structuralSharing ?? structuralSharing, + })) +} From cb934d1113086ba2af8030f9a9fad18bafaa31ba Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 10:12:10 -0700 Subject: [PATCH 56/71] feat: add ReadContracts component to playground --- packages/svelte/src/routes/+page.svelte | 2 ++ .../routes/_components/ReadContracts.svelte | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 packages/svelte/src/routes/_components/ReadContracts.svelte diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 28362715ab..755089a86e 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -5,6 +5,7 @@ import BlockNumber from './_components/BlockNumber.svelte' import Connect from './_components/Connect.svelte' import Connections from './_components/Connections.svelte' import ReadContract from './_components/ReadContract.svelte' +import ReadContracts from './_components/ReadContracts.svelte' import SendTransaction from './_components/SendTransaction.svelte' import SignMessage from './_components/SignMessage.svelte' import SwitchAccount from './_components/SwitchAccount.svelte' @@ -20,6 +21,7 @@ import WriteContract from './_components/WriteContract.svelte' + diff --git a/packages/svelte/src/routes/_components/ReadContracts.svelte b/packages/svelte/src/routes/_components/ReadContracts.svelte new file mode 100644 index 0000000000..9b69791fce --- /dev/null +++ b/packages/svelte/src/routes/_components/ReadContracts.svelte @@ -0,0 +1,36 @@ + + + +
+

Read Contract

+
Balance: {balance?.toString()}
+
Owner of Token 69: {ownerOf?.toString()}
+
Total Supply: {totalSupply?.toString()}
+
\ No newline at end of file From 7e731ca159d201175494f3550f9a505dc3b83799 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Fri, 1 Nov 2024 13:25:42 -0700 Subject: [PATCH 57/71] feat: useAccountEffect hook --- .../lib/hooks/useAccountEffect.svelte.test.ts | 82 +++++++++++++++++++ .../src/lib/hooks/useAccountEffect.svelte.ts | 63 ++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts b/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts new file mode 100644 index 0000000000..96ba7a29d8 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts @@ -0,0 +1,82 @@ +import { mock } from '@wagmi/connectors' +import { http, connect, createConfig, disconnect } from '@wagmi/core' +import { accounts, chain, config, wait } from '@wagmi/test' +import { expect, test, vi } from 'vitest' +import { testHook } from './test.svelte.js' +import { useAccountEffect } from './useAccountEffect.svelte' +import { useConnect } from './useConnect.svelte' +import { useDisconnect } from './useDisconnect.svelte' + +test( + 'parameters: config', + testHook( + () => { + const result = useAccountEffect(() => ({ config })) + expect(result).toBeUndefined() + }, + { shouldMockConfig: false }, + ), +) + +test( + 'behavior: connect and disconnect called once', + testHook(async () => { + const onConnect = vi.fn() + const onDisconnect = vi.fn() + + const connectHook = $derived.by(useConnect()) + const disconnectHook = $derived.by(useDisconnect()) + + useAccountEffect(() => ({ onConnect, onDisconnect })) + + connectHook.connect({ connector: connectHook.connectors[0]! }) + await expect.poll(() => connectHook.data?.accounts).toBeTruthy() + + connectHook.connect({ connector: connectHook.connectors[0]! }) + await expect.poll(() => connectHook.isSuccess).toBeTruthy() + + await wait(1000) // TODO: why is this needed? + + disconnectHook.disconnect() + await expect.poll(() => disconnectHook.isSuccess).toBeTruthy() + + disconnectHook.disconnect() + await expect.poll(() => disconnectHook.isSuccess).toBeTruthy() + + expect(onConnect).toBeCalledTimes(1) + expect(onDisconnect).toBeCalledTimes(1) + }), +) + +test( + 'behavior: connect called on reconnect', + testHook(async () => { + const mockConnector = mock({ + accounts, + features: { reconnect: true }, + }) + const newConfig = createConfig({ + chains: [chain.mainnet], + connectors: [mockConnector], + transports: { [chain.mainnet.id]: http() }, + }) + + await connect(newConfig, { connector: mockConnector }) + + const onConnect = vi.fn((data) => { + expect(data.isReconnected).toBeTruthy() + }) + + // Set the config in the Svelte context for this test + const svelte = await import('svelte') + svelte.getContext = vi.fn().mockReturnValue(newConfig) + + useAccountEffect(() => ({ onConnect })) + + await vi.waitFor(() => { + expect(onConnect).toBeCalledTimes(1) + }) + + await disconnect(newConfig) + }), +) diff --git a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts b/packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts new file mode 100644 index 0000000000..975d318607 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts @@ -0,0 +1,63 @@ +import type { RuneParameters } from '$lib/types.js' +import { type GetAccountReturnType, watchAccount } from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import type { ConfigParameter } from '../types.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseAccountEffectParameters = RuneParameters< + Compute< + { + onConnect?( + data: Compute< + Pick< + Extract, + 'address' | 'addresses' | 'chain' | 'chainId' | 'connector' + > & { + isReconnected: boolean + } + >, + ): void + onDisconnect?(): void + } & ConfigParameter + > +> + +/** https://wagmi.sh/react/api/hooks/useAccountEffect */ +export function useAccountEffect( + parameters: UseAccountEffectParameters = () => ({}), +) { + const { onConnect, onDisconnect } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + + $effect(() => { + return watchAccount(config, { + onChange(data, prevData) { + if ( + (prevData.status === 'reconnecting' || + (prevData.status === 'connecting' && + prevData.address === undefined)) && + data.status === 'connected' + ) { + const { address, addresses, chain, chainId, connector } = data + const isReconnected = + prevData.status === 'reconnecting' || + // if `previousAccount.status` is `undefined`, the connector connected immediately. + prevData.status === undefined + onConnect?.({ + address, + addresses, + chain, + chainId, + connector, + isReconnected, + }) + } else if ( + prevData.status === 'connected' && + data.status === 'disconnected' + ) + onDisconnect?.() + }, + }) + }) +} From c29735cc3f0000ef485f431f4583405e0f436eaa Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 5 Nov 2024 11:27:39 -0800 Subject: [PATCH 58/71] feat: useEsnAvatar hook --- .../src/lib/hooks/useEnsAvatar.svelte.test.ts | 53 ++++++++++++++++ .../src/lib/hooks/useEnsAvatar.svelte.ts | 62 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts new file mode 100644 index 0000000000..8e52adc91a --- /dev/null +++ b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts @@ -0,0 +1,53 @@ +// useEnsAvatar.svelte.test.ts +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useEnsAvatar } from './useEnsAvatar.svelte' + +test( + 'default', + testHook(async () => { + const result = $derived.by( + useEnsAvatar(() => ({ + name: 'wevm.eth', + })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": "https://euc.li/wevm.eth", + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "ensAvatar", + { + "chainId": 1, + "name": "wevm.eth", + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) diff --git a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts new file mode 100644 index 0000000000..cd42478ff4 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts @@ -0,0 +1,62 @@ +import type { + Config, + GetEnsAvatarErrorType, + ResolvedRegister, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type GetEnsAvatarData, + type GetEnsAvatarOptions, + type GetEnsAvatarQueryFnData, + type GetEnsAvatarQueryKey, + getEnsAvatarQueryOptions, +} from '@wagmi/core/query' + +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter, QueryParameter } from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseEnsAvatarParameters< + config extends Config = Config, + selectData = GetEnsAvatarData, +> = RuneParameters< + Compute< + GetEnsAvatarOptions & + ConfigParameter & + QueryParameter< + GetEnsAvatarQueryFnData, + GetEnsAvatarErrorType, + selectData, + GetEnsAvatarQueryKey + > + > +> + +export type UseEnsAvatarReturnType = + RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useEnsAvatar */ +export function useEnsAvatar< + config extends Config = ResolvedRegister['config'], + selectData = GetEnsAvatarData, +>( + parameters: UseEnsAvatarParameters = () => ({}), +): UseEnsAvatarReturnType { + const { name, query = {} } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const chainId = $derived.by(useChainId(() => ({ config }))) + + const options = $derived( + getEnsAvatarQueryOptions(config, { + ...parameters(), + chainId: parameters().chainId ?? chainId, + }), + ) + + const enabled = $derived(Boolean(name && (query.enabled ?? true))) + + return createQuery(() => ({ ...query, ...options, enabled })) +} From a3137dd36967368883411afb94fd4478d73179c1 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 5 Nov 2024 11:32:44 -0800 Subject: [PATCH 59/71] feat: useGasPrice hook --- .../src/lib/hooks/useEnsAvatar.svelte.test.ts | 1 - .../src/lib/hooks/useGasPrice.svelte.test.ts | 108 ++++++++++++++++++ .../src/lib/hooks/useGasPrice.svelte.ts | 65 +++++++++++ 3 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts create mode 100644 packages/svelte/src/lib/hooks/useGasPrice.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts index 8e52adc91a..16a5692032 100644 --- a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts @@ -1,4 +1,3 @@ -// useEnsAvatar.svelte.test.ts import { expect, test } from 'vitest' import { testHook } from './test.svelte.js' import { useEnsAvatar } from './useEnsAvatar.svelte' diff --git a/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts b/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts new file mode 100644 index 0000000000..b3b6c377cd --- /dev/null +++ b/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts @@ -0,0 +1,108 @@ +import { chain, testClient } from '@wagmi/test' +import { expect, test } from 'vitest' +import { testHook } from './test.svelte.js' +import { useGasPrice } from './useGasPrice.svelte' + +test( + 'default', + testHook(async () => { + await testClient.mainnet.restart() + + await testClient.mainnet.setNextBlockBaseFeePerGas({ + baseFeePerGas: 2_000_000_000n, + }) + await testClient.mainnet.mine({ blocks: 1 }) + + const result = $derived.by(useGasPrice()) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": 2750000000n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "gasPrice", + { + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) + +test( + 'parameters: chainId', + testHook(async () => { + await testClient.mainnet2.restart() + + await testClient.mainnet2.setNextBlockBaseFeePerGas({ + baseFeePerGas: 1_000_000_000n, + }) + await testClient.mainnet2.mine({ blocks: 1 }) + + const result = $derived.by( + useGasPrice(() => ({ chainId: chain.mainnet2.id })), + ) + + await expect.poll(() => result.isSuccess).toBeTruthy() + + expect(result).toMatchInlineSnapshot(` + { + "data": 1875000000n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "gasPrice", + { + "chainId": 456, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }), +) diff --git a/packages/svelte/src/lib/hooks/useGasPrice.svelte.ts b/packages/svelte/src/lib/hooks/useGasPrice.svelte.ts new file mode 100644 index 0000000000..b4cd3fc999 --- /dev/null +++ b/packages/svelte/src/lib/hooks/useGasPrice.svelte.ts @@ -0,0 +1,65 @@ +import type { + Config, + GetGasPriceErrorType, + ResolvedRegister, +} from '@wagmi/core' +import type { Compute } from '@wagmi/core/internal' +import { + type GetGasPriceData, + type GetGasPriceOptions, + type GetGasPriceQueryFnData, + type GetGasPriceQueryKey, + getGasPriceQueryOptions, +} from '@wagmi/core/query' + +import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import type { ConfigParameter, QueryParameter } from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' + +export type UseGasPriceParameters< + config extends Config = Config, + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = GetGasPriceData, +> = RuneParameters< + Compute< + GetGasPriceOptions & + ConfigParameter & + QueryParameter< + GetGasPriceQueryFnData, + GetGasPriceErrorType, + selectData, + GetGasPriceQueryKey + > + > +> + +export type UseGasPriceReturnType = + RuneReturnType> + +/** https://wagmi.sh/react/api/hooks/useGasPrice */ +export function useGasPrice< + config extends Config = ResolvedRegister['config'], + chainId extends + config['chains'][number]['id'] = config['chains'][number]['id'], + selectData = GetGasPriceData, +>( + parameters: UseGasPriceParameters = () => ({}), +): UseGasPriceReturnType { + const { query = {} } = $derived(parameters()) + + const config = $derived.by(useConfig(parameters)) + const configChainId = $derived.by(useChainId(() => ({ config }))) + const chainId = $derived(parameters().chainId ?? configChainId) + + const options = $derived( + getGasPriceQueryOptions(config, { + ...parameters(), + chainId, + }), + ) + + return createQuery(() => ({ ...query, ...options })) +} From bf9220a28acf0a841a51b15499e1ce6f5aeaaae8 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Sun, 10 Nov 2024 12:02:39 -0800 Subject: [PATCH 60/71] test: overhaul testing system --- packages/svelte/src/lib/hooks/test.svelte.ts | 41 ++- .../lib/hooks/useAccountEffect.svelte.test.ts | 55 +-- .../src/lib/hooks/useBalance.svelte.test.ts | 28 +- .../lib/hooks/useBlockNumber.svelte.test.ts | 130 ++++--- .../src/lib/hooks/useEnsAvatar.svelte.test.ts | 4 + .../src/lib/hooks/useEnsName.svelte.test.ts | 4 + .../src/lib/hooks/useGasPrice.svelte.test.ts | 196 +++++----- .../lib/hooks/useReadContract.svelte.test.ts | 232 ++++++------ .../lib/hooks/useReadContracts.svelte.test.ts | 348 +++++++++--------- .../hooks/useSendTransaction.svelte.test.ts | 31 +- .../lib/hooks/useSignMessage.svelte.test.ts | 41 +-- .../lib/hooks/useSwitchAccount.svelte.test.ts | 59 +-- .../lib/hooks/useSwitchChain.svelte.test.ts | 60 ++- ...seWaitForTransactionReceipt.svelte.test.ts | 4 + .../lib/hooks/useWriteContract.svelte.test.ts | 34 +- packages/svelte/vite.config.ts | 7 +- 16 files changed, 696 insertions(+), 578 deletions(-) diff --git a/packages/svelte/src/lib/hooks/test.svelte.ts b/packages/svelte/src/lib/hooks/test.svelte.ts index 03bff95c54..34d4273d98 100644 --- a/packages/svelte/src/lib/hooks/test.svelte.ts +++ b/packages/svelte/src/lib/hooks/test.svelte.ts @@ -1,13 +1,36 @@ import { QueryClient } from '@tanstack/svelte-query' +import { type Config, connect, disconnect } from '@wagmi/core' import { config } from '@wagmi/test' import { onTestFinished, vi } from 'vitest' type TestHookOptions = { shouldMockConfig?: boolean + mockConfigOverride?: Config +} + +const noop = () => {} + +export const setups = { + connect: async () => { + const connector = config.connectors[0]! + await connect(config, { connector }) + }, +} + +export const teardowns = { + disconnect: async () => { + const connector = config.connectors[0]! + await disconnect(config, { connector }) + }, } export const testHook = - (fn: () => void, options: TestHookOptions = {}) => + ( + fn: () => void, + options: TestHookOptions = {}, + setup: () => void = noop, + teardown: () => void = noop, + ) => async () => { const svelte = await import('svelte') svelte.getContext = vi.fn((key: any) => { @@ -15,13 +38,23 @@ export const testHook = if (key === '$$_isRestoring') return () => false if (options.shouldMockConfig ?? true) { - return config + return options.mockConfigOverride ?? config } return undefined }) - const cleanup = $effect.root(await fn) + await Promise.resolve(setup()) - onTestFinished(() => cleanup()) + let promise: Promise | void + const cleanup = $effect.root(() => { + promise = fn() + }) + try { + // @ts-ignore - this is a hack to wait for the test to finish + return await Promise.resolve(promise) + } finally { + await Promise.resolve(teardown()) + cleanup() + } } diff --git a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts b/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts index 96ba7a29d8..f44ec0b250 100644 --- a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts @@ -48,35 +48,36 @@ test( }), ) +const mockConnector = mock({ + accounts, + features: { reconnect: true }, +}) +const newConfig = createConfig({ + chains: [chain.mainnet], + connectors: [mockConnector], + transports: { [chain.mainnet.id]: http() }, +}) + test( 'behavior: connect called on reconnect', - testHook(async () => { - const mockConnector = mock({ - accounts, - features: { reconnect: true }, - }) - const newConfig = createConfig({ - chains: [chain.mainnet], - connectors: [mockConnector], - transports: { [chain.mainnet.id]: http() }, - }) - - await connect(newConfig, { connector: mockConnector }) - - const onConnect = vi.fn((data) => { - expect(data.isReconnected).toBeTruthy() - }) - - // Set the config in the Svelte context for this test - const svelte = await import('svelte') - svelte.getContext = vi.fn().mockReturnValue(newConfig) - - useAccountEffect(() => ({ onConnect })) + testHook( + async () => { + const onConnect = vi.fn((data) => { + expect(data.isReconnected).toBeTruthy() + }) - await vi.waitFor(() => { - expect(onConnect).toBeCalledTimes(1) - }) + useAccountEffect(() => ({ onConnect })) - await disconnect(newConfig) - }), + await vi.waitFor(() => { + expect(onConnect).toBeCalledTimes(1) + }) + }, + { mockConfigOverride: newConfig }, + async () => { + await connect(newConfig, { connector: mockConnector }) + }, + async () => { + await disconnect(newConfig) + }, + ), ) diff --git a/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts b/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts index e480c8f970..db2750f919 100644 --- a/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts @@ -53,6 +53,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "balance", { @@ -80,9 +84,9 @@ test( { "data": { "decimals": 18, - "formatted": "69", + "formatted": "10000", "symbol": "WAG", - "value": 69000000000000000000n, + "value": 10000000000000000000000n, }, "dataUpdatedAt": 1675209600000, "error": null, @@ -105,6 +109,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "balance", { @@ -160,6 +168,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "balance", { @@ -192,9 +204,9 @@ test( { "data": { "decimals": 18, - "formatted": "69000000000000000000", + "formatted": "10000000000000000000000", "symbol": "WAG", - "value": 69000000000000000000n, + "value": 10000000000000000000000n, }, "dataUpdatedAt": 1675209600000, "error": null, @@ -217,6 +229,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "balance", { @@ -262,6 +278,10 @@ test( "isRefetching": false, "isStale": false, "isSuccess": false, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "balance", { diff --git a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts index 2ddd9365f2..0661ac39bb 100644 --- a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts @@ -6,73 +6,85 @@ import { useBlockNumber } from './useBlockNumber.svelte.js' test( 'mounts', - testHook(async () => { - await testClient.mainnet.resetFork() + testHook( + async () => { + const result = $derived.by(useBlockNumber()) - const result = $derived.by(useBlockNumber()) + await expect.poll(() => result.isSuccess).toBeTruthy() - await expect.poll(() => result.isSuccess).toBeTruthy() - - expect(result).toMatchInlineSnapshot(` - { - "data": 19258213n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "blockNumber", - { - "chainId": 1, + expect(result).toMatchInlineSnapshot(` + { + "data": 19258213n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) - }), + "queryKey": [ + "blockNumber", + { + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }, + {}, + async () => { + await testClient.mainnet.resetFork() + }, + ), ) test( 'parameters: watch', - testHook(async () => { - await testClient.mainnet.resetFork() - - const result = $derived.by(useBlockNumber(() => ({ watch: true }))) + testHook( + async () => { + const result = $derived.by(useBlockNumber(() => ({ watch: true }))) - await expect.poll(() => result.isSuccess).toBeTruthy() - const blockNumber = result.data! - expect(result.data).toMatchInlineSnapshot('19258213n') + await expect.poll(() => result.isSuccess).toBeTruthy() + const blockNumber = result.data! + expect(result.data).toMatchInlineSnapshot('19258213n') - await testClient.mainnet.mine({ blocks: 1 }) - await expect - .poll(() => { - result.data - }) - .toEqual(blockNumber + 1n) + await testClient.mainnet.mine({ blocks: 1 }) + await expect + .poll(() => { + result.data + }) + .toEqual(blockNumber + 1n) - await testClient.mainnet.mine({ blocks: 1 }) - await expect - .poll(() => { - result.data - }) - .toEqual(blockNumber + 2n) - }), + await testClient.mainnet.mine({ blocks: 1 }) + await expect + .poll(() => { + result.data + }) + .toEqual(blockNumber + 2n) + }, + {}, + async () => { + await testClient.mainnet.resetFork() + }, + ), ) diff --git a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts index 16a5692032..ca9e6215cf 100644 --- a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts @@ -37,6 +37,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "ensAvatar", { diff --git a/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts b/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts index 8dd3be947f..e8a6a4be58 100644 --- a/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts @@ -37,6 +37,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "ensName", { diff --git a/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts b/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts index b3b6c377cd..62f21ea66f 100644 --- a/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts @@ -5,104 +5,120 @@ import { useGasPrice } from './useGasPrice.svelte' test( 'default', - testHook(async () => { - await testClient.mainnet.restart() + testHook( + async () => { + const result = $derived.by(useGasPrice()) - await testClient.mainnet.setNextBlockBaseFeePerGas({ - baseFeePerGas: 2_000_000_000n, - }) - await testClient.mainnet.mine({ blocks: 1 }) + await expect.poll(() => result.isSuccess).toBeTruthy() - const result = $derived.by(useGasPrice()) - - await expect.poll(() => result.isSuccess).toBeTruthy() - - expect(result).toMatchInlineSnapshot(` - { - "data": 2750000000n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "gasPrice", - { - "chainId": 1, + expect(result).toMatchInlineSnapshot(` + { + "data": 2750000000n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) - }), + "queryKey": [ + "gasPrice", + { + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }, + {}, + async () => { + await testClient.mainnet.restart() + + await testClient.mainnet.setNextBlockBaseFeePerGas({ + baseFeePerGas: 2_000_000_000n, + }) + await testClient.mainnet.mine({ blocks: 1 }) + }, + ), ) test( 'parameters: chainId', - testHook(async () => { - await testClient.mainnet2.restart() + testHook( + async () => { + const result = $derived.by( + useGasPrice(() => ({ chainId: chain.mainnet2.id })), + ) - await testClient.mainnet2.setNextBlockBaseFeePerGas({ - baseFeePerGas: 1_000_000_000n, - }) - await testClient.mainnet2.mine({ blocks: 1 }) + await expect.poll(() => result.isSuccess).toBeTruthy() - const result = $derived.by( - useGasPrice(() => ({ chainId: chain.mainnet2.id })), - ) - - await expect.poll(() => result.isSuccess).toBeTruthy() - - expect(result).toMatchInlineSnapshot(` - { - "data": 1875000000n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "gasPrice", - { - "chainId": 456, + expect(result).toMatchInlineSnapshot(` + { + "data": 1875000000n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) - }), + "queryKey": [ + "gasPrice", + { + "chainId": 456, + }, + ], + "refetch": [Function], + "status": "success", + } + `) + }, + {}, + async () => { + await testClient.mainnet2.restart() + + await testClient.mainnet2.setNextBlockBaseFeePerGas({ + baseFeePerGas: 1_000_000_000n, + }) + await testClient.mainnet2.mine({ blocks: 1 }) + }, + ), ) diff --git a/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts b/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts index d7ec37ec7e..a581fb19e9 100644 --- a/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts @@ -18,44 +18,48 @@ test( await expect.poll(() => result.isSuccess).toBeTruthy() expect(result).toMatchInlineSnapshot(` - { - "data": 4n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "readContract", - { - "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", - "args": [ - "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", - ], - "chainId": 1, - "functionName": "balanceOf", + { + "data": 4n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) + "queryKey": [ + "readContract", + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "balanceOf", + }, + ], + "refetch": [Function], + "status": "success", + } + `) }), ) @@ -75,44 +79,48 @@ test( await expect.poll(() => result.isSuccess).toBeTruthy() expect(result).toMatchInlineSnapshot(` - { - "data": 4n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "readContract", - { - "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", - "args": [ - "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", - ], - "chainId": 456, - "functionName": "balanceOf", + { + "data": 4n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) + "queryKey": [ + "readContract", + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 456, + "functionName": "balanceOf", + }, + ], + "refetch": [Function], + "status": "success", + } + `) }), ) @@ -133,44 +141,48 @@ test( await expect.poll(() => result.isSuccess).toBeTruthy() expect(result).toMatchInlineSnapshot(` - { - "data": 4n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "readContract", { - "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", - "args": [ - "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + "data": 4n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, + "queryKey": [ + "readContract", + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "balanceOf", + }, ], - "chainId": 1, - "functionName": "balanceOf", - }, - ], - "refetch": [Function], - "status": "success", - } - `) + "refetch": [Function], + "status": "success", + } + `) }, { shouldMockConfig: false }, ), diff --git a/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts b/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts index c8d7bd7e4d..c395733b29 100644 --- a/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts @@ -27,63 +27,67 @@ test( await expect.poll(() => result.isSuccess).toBeTruthy() expect(result).toMatchInlineSnapshot(` - { - "data": [ - { - "result": 4n, - "status": "success", - }, - { - "result": "WAGMI", - "status": "success", - }, - ], - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "readContracts", - { - "chainId": 1, - "contracts": [ - { - "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", - "args": [ - "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", - ], - "chainId": 1, - "functionName": "balanceOf", - }, - { - "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", - "chainId": 1, - "functionName": "symbol", - }, - ], + { + "data": [ + { + "result": 4n, + "status": "success", + }, + { + "result": "WAGMI", + "status": "success", + }, + ], + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) + "queryKey": [ + "readContracts", + { + "chainId": 1, + "contracts": [ + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "balanceOf", + }, + { + "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", + "chainId": 1, + "functionName": "symbol", + }, + ], + }, + ], + "refetch": [Function], + "status": "success", + } + `) }), ) @@ -148,120 +152,124 @@ test( await expect.poll(() => result.isSuccess).toBeTruthy() expect(result).toMatchInlineSnapshot(` - { - "data": [ - { - "result": 2n, - "status": "success", - }, - { - "result": 1n, - "status": "success", - }, - { - "result": 0n, - "status": "success", - }, - { - "result": false, - "status": "success", - }, - { - "result": 370395n, - "status": "success", - }, - { - "result": "USDC", - "status": "success", - }, - { - "result": 10959340n, - "status": "success", - }, - ], - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "queryKey": [ - "readContracts", - { - "chainId": 1, - "contracts": [ - { - "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", - "args": [ - "0x27a69ffba1e939ddcfecc8c7e0f967b872bac65c", - ], - "chainId": 1, - "functionName": "love", - }, - { - "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", - "args": [ - "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", - ], - "chainId": 1, - "functionName": "love", - }, - { - "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", - "args": [ - "0xd2135CfB216b74109775236E36d4b433F1DF507B", - ], - "chainId": 1, - "functionName": "love", - }, - { - "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", - "chainId": 456, - "functionName": "getAlive", - }, - { - "address": "0x1dfe7ca09e99d10835bf73044a23b73fc20623df", - "args": [ - "0xA0Cf798816D4b9b9866b5330EEa46a18382f251e", - 0n, - ], - "chainId": 456, - "functionName": "tokenOfOwnerByIndex", - }, - { - "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607", - "chainId": 10, - "functionName": "symbol", - }, - { - "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607", - "args": [ - "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", - ], - "chainId": 10, - "functionName": "balanceOf", - }, - ], + { + "data": [ + { + "result": 2n, + "status": "success", + }, + { + "result": 1n, + "status": "success", + }, + { + "result": 0n, + "status": "success", + }, + { + "result": false, + "status": "success", + }, + { + "result": 370395n, + "status": "success", + }, + { + "result": "USDC", + "status": "success", + }, + { + "result": 10959340n, + "status": "success", + }, + ], + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", }, - ], - "refetch": [Function], - "status": "success", - } - `) + "queryKey": [ + "readContracts", + { + "chainId": 1, + "contracts": [ + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "args": [ + "0x27a69ffba1e939ddcfecc8c7e0f967b872bac65c", + ], + "chainId": 1, + "functionName": "love", + }, + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 1, + "functionName": "love", + }, + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "args": [ + "0xd2135CfB216b74109775236E36d4b433F1DF507B", + ], + "chainId": 1, + "functionName": "love", + }, + { + "address": "0xecb504d39723b0be0e3a9aa33d646642d1051ee1", + "chainId": 456, + "functionName": "getAlive", + }, + { + "address": "0x1dfe7ca09e99d10835bf73044a23b73fc20623df", + "args": [ + "0xA0Cf798816D4b9b9866b5330EEa46a18382f251e", + 0n, + ], + "chainId": 456, + "functionName": "tokenOfOwnerByIndex", + }, + { + "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607", + "chainId": 10, + "functionName": "symbol", + }, + { + "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607", + "args": [ + "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC", + ], + "chainId": 10, + "functionName": "balanceOf", + }, + ], + }, + ], + "refetch": [Function], + "status": "success", + } + `) }), ) diff --git a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts b/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts index 0e3d24dd9b..ae6ad4e717 100644 --- a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts @@ -3,26 +3,25 @@ import { config, transactionHashRegex } from '@wagmi/test' import { parseEther } from 'viem' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' +import { setups, teardowns, testHook } from './test.svelte.js' import { useSendTransaction } from './useSendTransaction.svelte' -const connector = config.connectors[0]! - test( 'default', - testHook(async () => { - await connect(config, { connector }) - - const sendTransaction = $derived.by(useSendTransaction()) - - sendTransaction.sendTransaction({ - to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', - value: parseEther('0.01'), - }) - await expect.poll(() => sendTransaction.isSuccess).toBeTruthy() + testHook( + async () => { + const sendTransaction = $derived.by(useSendTransaction()) - expect(sendTransaction.data).toMatch(transactionHashRegex) + sendTransaction.sendTransaction({ + to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', + value: parseEther('0.01'), + }) + await expect.poll(() => sendTransaction.isSuccess).toBeTruthy() - await disconnect(config, { connector }) - }), + expect(sendTransaction.data).toMatch(transactionHashRegex) + }, + {}, + setups.connect, + teardowns.disconnect, + ), ) diff --git a/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts b/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts index a3ba95f6bb..09d7da572e 100644 --- a/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts @@ -1,33 +1,32 @@ import { connect, disconnect, getAccount } from '@wagmi/core' -import { config, privateKey } from '@wagmi/test' +import { config, privateKey, wait } from '@wagmi/test' import { recoverMessageAddress } from 'viem' import { expect, test, vi } from 'vitest' import { privateKeyToAccount } from 'viem/accounts' -import { testHook } from './test.svelte.js' +import { setups, teardowns, testHook } from './test.svelte.js' import { useSignMessage } from './useSignMessage.svelte' -const connector = config.connectors[0]! - test( 'default', - testHook(async () => { - await connect(config, { connector }) - - const signMessage = $derived.by(useSignMessage()) - - signMessage.signMessage({ message: 'foo bar baz' }) - await expect.poll(() => signMessage.isSuccess).toBeTruthy() - - await expect( - recoverMessageAddress({ - message: 'foo bar baz', - signature: signMessage.data!, - }), - ).resolves.toEqual(getAccount(config).address) - - await disconnect(config, { connector }) - }), + testHook( + async () => { + const signMessage = $derived.by(useSignMessage()) + + signMessage.signMessage({ message: 'foo bar baz' }) + await expect.poll(() => signMessage.isSuccess).toBeTruthy() + + await expect( + recoverMessageAddress({ + message: 'foo bar baz', + signature: signMessage.data!, + }), + ).resolves.toEqual(getAccount(config).address) + }, + {}, + setups.connect, + teardowns.disconnect, + ), ) test( diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts index 7d5f514896..0cf4aebf45 100644 --- a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts @@ -10,31 +10,36 @@ const connector2 = config.connectors[1]! test( 'default', - testHook(async () => { - await connect(config, { connector: connector2 }) - await connect(config, { connector: connector1 }) - - const account = $derived.by(useAccount()) - const switchAccount = $derived.by(useSwitchAccount()) - - const address1 = account.address - expect(address1).toBeDefined() - - switchAccount.switchAccount({ connector: connector2 }) - await expect.poll(() => switchAccount.isSuccess).toBeTruthy() - - const address2 = account.address - expect(address2).toBeDefined() - expect(address1).not.toBe(address2) - - switchAccount.switchAccount({ connector: connector1 }) - await expect.poll(() => switchAccount.isSuccess).toBeTruthy() - - const address3 = account.address - expect(address3).toBeDefined() - expect(address1).toBe(address3) - - await disconnect(config, { connector: connector1 }) - await disconnect(config, { connector: connector2 }) - }), + testHook( + async () => { + const account = $derived.by(useAccount()) + const switchAccount = $derived.by(useSwitchAccount()) + + const address1 = account.address + expect(address1).toBeDefined() + + switchAccount.switchAccount({ connector: connector2 }) + await expect.poll(() => switchAccount.isSuccess).toBeTruthy() + + const address2 = account.address + expect(address2).toBeDefined() + expect(address1).not.toBe(address2) + + switchAccount.switchAccount({ connector: connector1 }) + await expect.poll(() => switchAccount.isSuccess).toBeTruthy() + + const address3 = account.address + expect(address3).toBeDefined() + expect(address1).toBe(address3) + }, + {}, + async () => { + await connect(config, { connector: connector2 }) + await connect(config, { connector: connector1 }) + }, + async () => { + await disconnect(config, { connector: connector1 }) + await disconnect(config, { connector: connector2 }) + }, + ), ) diff --git a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts b/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts index c2ff514970..30b380c97e 100644 --- a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts @@ -1,40 +1,38 @@ -// useSwitchChain.svelte.test.ts -import { connect, disconnect } from '@wagmi/core' -import { chain, config } from '@wagmi/test' +import { chain, config, wait } from '@wagmi/test' import { expect, test, vi } from 'vitest' -import { testHook } from './test.svelte.js' +import { setups, teardowns, testHook } from './test.svelte.js' import { useAccount } from './useAccount.svelte.js' import { useSwitchChain } from './useSwitchChain.svelte.js' -const connector = config.connectors[0]! - test( 'default', - testHook(async () => { - await connect(config, { connector }) - - const account = $derived.by(useAccount()) - const switchChain = $derived.by(useSwitchChain()) - - const chainId1 = account.chainId - expect(chainId1).toBeDefined() - - switchChain.switchChain({ chainId: chain.mainnet2.id }) - await expect.poll(() => switchChain.isSuccess).toBeTruthy() - - const chainId2 = account.chainId - expect(chainId2).toBeDefined() - expect(chainId1).not.toBe(chainId2) - - switchChain.switchChain({ chainId: chain.mainnet.id }) - await expect.poll(() => switchChain.isSuccess).toBeTruthy() - - const chainId3 = account.chainId - expect(chainId3).toBeDefined() - expect(chainId1).toBe(chainId3) - - await disconnect(config, { connector }) - }), + testHook( + async () => { + const account = $derived.by(useAccount()) + const switchChain = $derived.by(useSwitchChain()) + + const chainId1 = account.chainId + expect(chainId1).toBeDefined() + + switchChain.switchChain({ chainId: chain.mainnet2.id }) + await expect.poll(() => switchChain.isSuccess).toBeTruthy() + + const chainId2 = account.chainId + expect(chainId2).toBeDefined() + expect(chainId1).not.toBe(chainId2) + + switchChain.switchChain({ chainId: chain.mainnet.id }) + await wait(1000) // TODO: why is this needed? + await expect.poll(() => switchChain.isSuccess).toBeTruthy() + + const chainId3 = account.chainId + expect(chainId3).toBeDefined() + expect(chainId1).toBe(chainId3) + }, + {}, + setups.connect, + teardowns.disconnect, + ), ) test( diff --git a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts b/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts index 1807b1d2c3..b993fbecc6 100644 --- a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts @@ -54,6 +54,10 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, + "promise": Promise { + "reason": [Error: experimental_prefetchInRender feature flag is not enabled], + "status": "rejected", + }, "queryKey": [ "waitForTransactionReceipt", { diff --git a/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts b/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts index 9e35bd903f..0c14e0736d 100644 --- a/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts +++ b/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts @@ -1,28 +1,26 @@ -import { connect, disconnect } from '@wagmi/core' import { abi, address, config } from '@wagmi/test' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' +import { setups, teardowns, testHook } from './test.svelte.js' import { useWriteContract } from './useWriteContract.svelte' -const connector = config.connectors[0]! - test( 'default', - testHook(async () => { - await connect(config, { connector }) - - const writeContract = $derived.by(useWriteContract()) - - writeContract.writeContract({ - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }) - await expect.poll(() => writeContract.isSuccess).toBeTruthy() + testHook( + async () => { + const writeContract = $derived.by(useWriteContract()) - expect(writeContract.data).toBeDefined() + writeContract.writeContract({ + abi: abi.wagmiMintExample, + address: address.wagmiMintExample, + functionName: 'mint', + }) + await expect.poll(() => writeContract.isSuccess).toBeTruthy() - await disconnect(config, { connector }) - }), + expect(writeContract.data).toBeDefined() + }, + {}, + setups.connect, + teardowns.disconnect, + ), ) diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts index d004ade251..79cece4ef5 100644 --- a/packages/svelte/vite.config.ts +++ b/packages/svelte/vite.config.ts @@ -10,8 +10,13 @@ export default defineConfig({ name: '@wagmi/svelte', include: ['./src/**/*.test.ts'], environment: 'happy-dom', - testTimeout: 10_000, + testTimeout: 20_000, setupFiles: ['./test/setup.ts', '../test/src/setup.ts'], globalSetup: ['../test/src/globalSetup.ts'], + expect: { + poll: { + timeout: 10_000, + }, + }, }, }) From 2c96b3858bf2283d0208b55cb336a0f7b48b057f Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 10:31:37 -0800 Subject: [PATCH 61/71] chore: consolidate gitignore and npmrc --- .gitignore | 6 ++++++ packages/svelte/.gitignore | 22 ---------------------- packages/svelte/.npmrc | 1 - 3 files changed, 6 insertions(+), 23 deletions(-) delete mode 100644 packages/svelte/.gitignore delete mode 100644 packages/svelte/.npmrc diff --git a/.gitignore b/.gitignore index 16f01d4e3f..dde82b8cb4 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,10 @@ tsconfig.tsbuildinfo .env.production.local .envrc +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* + # proxy packages packages/cli/config packages/cli/plugins @@ -38,3 +42,5 @@ packages/vue/connectors packages/vue/nuxt packages/vue/query packages/svelte/.svelte-kit +packages/svelte/.output + diff --git a/packages/svelte/.gitignore b/packages/svelte/.gitignore deleted file mode 100644 index 715b548f7b..0000000000 --- a/packages/svelte/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -node_modules - -# Output -.output -.vercel -/.svelte-kit -/build -/dist - -# OS -.DS_Store -Thumbs.db - -# Env -.env -.env.* -!.env.example -!.env.test - -# Vite -vite.config.js.timestamp-* -vite.config.ts.timestamp-* diff --git a/packages/svelte/.npmrc b/packages/svelte/.npmrc deleted file mode 100644 index b6f27f1359..0000000000 --- a/packages/svelte/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true From df5a5211588891bd2eadaaee93db48995bfa08b3 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 10:32:57 -0800 Subject: [PATCH 62/71] docs: replace readme --- packages/svelte/README.md | 57 +++++---------------------------------- 1 file changed, 6 insertions(+), 51 deletions(-) diff --git a/packages/svelte/README.md b/packages/svelte/README.md index 16c70df2c8..89f30467b8 100644 --- a/packages/svelte/README.md +++ b/packages/svelte/README.md @@ -1,58 +1,13 @@ -# create-svelte +# @wagmi/vue -Everything you need to build a Svelte library, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). +Svelte Runes for Ethereum -Read more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging). - -## Creating a project - -If you're seeing this, you've probably already done this step. Congrats! +## Installation ```bash -# create a new project in the current directory -npx sv create - -# create a new project in my-app -npx sv create my-app +pnpm add @wagmi/svelte viem https://pkg.pr.new/@tanstack/svelte-query@ccce0b8 ``` -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: +## Documentation -```bash -npm run dev - -# or start the server and open the app in a new browser tab -npm run dev -- --open -``` - -Everything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app. - -## Building - -To build your library: - -```bash -npm run package -``` - -To create a production version of your showcase app: - -```bash -npm run build -``` - -You can preview the production build with `npm run preview`. - -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. - -## Publishing - -Go into the `package.json` and give your package the desired name through the `"name"` option. Also consider adding a `"license"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)). - -To publish your library to [npm](https://www.npmjs.com): - -```bash -npm publish -``` +For documentation and guides, visit [wagmi.sh](https://wagmi.sh). From e986dc0a66ac55bf70bf43ec7271b2a4a1bf2651 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 10:55:11 -0800 Subject: [PATCH 63/71] feat: move playground into a seperate folder --- biome.json | 4 +- package.json | 2 +- packages/svelte/src/lib/exports/index.ts | 71 ++++ playgrounds/sveltekit/.gitignore | 21 ++ playgrounds/sveltekit/.npmrc | 1 + playgrounds/sveltekit/README.md | 38 ++ playgrounds/sveltekit/package.json | 26 ++ playgrounds/sveltekit/src/app.d.ts | 13 + playgrounds/sveltekit/src/app.html | 12 + playgrounds/sveltekit/src/lib/index.ts | 1 + .../sveltekit/src/routes/+layout.svelte | 27 ++ playgrounds/sveltekit/src/routes/+page.svelte | 27 ++ .../src/routes/_components/Account.svelte | 30 ++ .../src/routes/_components/Balance.svelte | 34 ++ .../src/routes/_components/BlockNumber.svelte | 16 + .../src/routes/_components/Connect.svelte | 18 + .../src/routes/_components/Connections.svelte | 17 + .../routes/_components/ReadContract.svelte | 17 + .../routes/_components/ReadContracts.svelte | 36 ++ .../routes/_components/SendTransaction.svelte | 50 +++ .../src/routes/_components/SignMessage.svelte | 23 ++ .../routes/_components/SwitchAccount.svelte | 19 + .../src/routes/_components/SwitchChain.svelte | 23 ++ .../routes/_components/WriteContract.svelte | 55 +++ .../src/routes/_components/contracts.ts | 202 ++++++++++ playgrounds/sveltekit/src/routes/index.css | 21 ++ playgrounds/sveltekit/static/favicon.png | Bin 0 -> 1571 bytes playgrounds/sveltekit/svelte.config.js | 18 + playgrounds/sveltekit/tsconfig.json | 19 + playgrounds/sveltekit/vite.config.ts | 6 + pnpm-lock.yaml | 344 +++++++++--------- 31 files changed, 1017 insertions(+), 174 deletions(-) create mode 100644 playgrounds/sveltekit/.gitignore create mode 100644 playgrounds/sveltekit/.npmrc create mode 100644 playgrounds/sveltekit/README.md create mode 100644 playgrounds/sveltekit/package.json create mode 100644 playgrounds/sveltekit/src/app.d.ts create mode 100644 playgrounds/sveltekit/src/app.html create mode 100644 playgrounds/sveltekit/src/lib/index.ts create mode 100644 playgrounds/sveltekit/src/routes/+layout.svelte create mode 100644 playgrounds/sveltekit/src/routes/+page.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/Account.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/Balance.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/BlockNumber.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/Connect.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/Connections.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/ReadContract.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/ReadContracts.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/SendTransaction.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/SignMessage.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/SwitchAccount.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/SwitchChain.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/WriteContract.svelte create mode 100644 playgrounds/sveltekit/src/routes/_components/contracts.ts create mode 100644 playgrounds/sveltekit/src/routes/index.css create mode 100644 playgrounds/sveltekit/static/favicon.png create mode 100644 playgrounds/sveltekit/svelte.config.js create mode 100644 playgrounds/sveltekit/tsconfig.json create mode 100644 playgrounds/sveltekit/vite.config.ts diff --git a/biome.json b/biome.json index b88735267e..3d3bacce99 100644 --- a/biome.json +++ b/biome.json @@ -13,7 +13,9 @@ "linter": { "ignore": [ "packages/create-wagmi/templates/*", - "packages/svelte/**/*.svelte" + "packages/svelte/**/*.svelte", + "playgrounds/sveltekit/.svelte-kit/**", + "playgrounds/sveltekit/**/*.svelte" ], "enabled": true, "rules": { diff --git a/package.json b/package.json index 15374451cc..46d0adb649 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "dev:nuxt": "pnpm --filter nuxt-app dev", "dev:react": "pnpm --filter vite-react dev", "dev:vue": "pnpm --filter vite-vue dev", - "dev:svelte": "pnpm --filter svelte dev", + "dev:svelte": "pnpm --filter sveltekit dev", "docs:dev": "pnpm --filter site dev", "check": "biome check --write", "check:repo": "sherif -i viem", diff --git a/packages/svelte/src/lib/exports/index.ts b/packages/svelte/src/lib/exports/index.ts index 6b177c0c00..be80b3e1bc 100644 --- a/packages/svelte/src/lib/exports/index.ts +++ b/packages/svelte/src/lib/exports/index.ts @@ -14,12 +14,19 @@ export { // Hooks //////////////////////////////////////////////////////////////////////////////// +export { default as WagmiProvider } from '../WagmiProvider.svelte' + export { type UseAccountParameters, type UseAccountReturnType, useAccount, } from '../hooks/useAccount.svelte.js' +export { + type UseAccountEffectParameters, + useAccountEffect, +} from '../hooks/useAccountEffect.svelte.js' + export { type UseBalanceParameters, type UseBalanceReturnType, @@ -74,6 +81,24 @@ export { useDisconnect, } from '../hooks/useDisconnect.svelte.js' +export { + type UseEnsAvatarParameters, + type UseEnsAvatarReturnType, + useEnsAvatar, +} from '../hooks/useEnsAvatar.svelte.js' + +export { + type UseEnsNameParameters, + type UseEnsNameReturnType, + useEnsName, +} from '../hooks/useEnsName.svelte.js' + +export { + type UseGasPriceParameters, + type UseGasPriceReturnType, + useGasPrice, +} from '../hooks/useGasPrice.svelte.js' + export { type UseReadContractParameters, type UseReadContractReturnType, @@ -82,12 +107,58 @@ export { useReadContract as useContractRead, } from '../hooks/useReadContract.svelte.js' +export { + type UseReadContractsParameters, + type UseReadContractsReturnType, + useReadContracts, + /** @deprecated Use `useWriteContract` instead */ + useReadContracts as useContractReads, +} from '../hooks/useReadContracts.svelte.js' + +export { + type UseSendTransactionParameters, + type UseSendTransactionReturnType, + useSendTransaction, +} from '../hooks/useSendTransaction.svelte.js' + +export { + type UseSignMessageParameters, + type UseSignMessageReturnType, + useSignMessage, +} from '../hooks/useSignMessage.svelte.js' + +export { + type UseSwitchAccountParameters, + type UseSwitchAccountReturnType, + useSwitchAccount, +} from '../hooks/useSwitchAccount.svelte.js' + +export { + type UseSwitchChainParameters, + type UseSwitchChainReturnType, + useSwitchChain, +} from '../hooks/useSwitchChain.svelte.js' + +export { + type UseWaitForTransactionReceiptParameters, + type UseWaitForTransactionReceiptReturnType, + useWaitForTransactionReceipt, +} from '../hooks/useWaitForTransactionReceipt.svelte.js' + export { type UseWatchBlockNumberParameters, type UseWatchBlockNumberReturnType, useWatchBlockNumber, } from '../hooks/useWatchBlockNumber.svelte.js' +export { + type UseWriteContractParameters, + type UseWriteContractReturnType, + useWriteContract, + /** @deprecated Use `useWriteContract` instead */ + useWriteContract as useContractWrite, +} from '../hooks/useWriteContract.svelte.js' + //////////////////////////////////////////////////////////////////////////////// // @wagmi/core //////////////////////////////////////////////////////////////////////////////// diff --git a/playgrounds/sveltekit/.gitignore b/playgrounds/sveltekit/.gitignore new file mode 100644 index 0000000000..79518f7164 --- /dev/null +++ b/playgrounds/sveltekit/.gitignore @@ -0,0 +1,21 @@ +node_modules + +# Output +.output +.vercel +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/playgrounds/sveltekit/.npmrc b/playgrounds/sveltekit/.npmrc new file mode 100644 index 0000000000..b6f27f1359 --- /dev/null +++ b/playgrounds/sveltekit/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/playgrounds/sveltekit/README.md b/playgrounds/sveltekit/README.md new file mode 100644 index 0000000000..b5b295070b --- /dev/null +++ b/playgrounds/sveltekit/README.md @@ -0,0 +1,38 @@ +# sv + +Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npx sv create + +# create a new project in my-app +npx sv create my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/playgrounds/sveltekit/package.json b/playgrounds/sveltekit/package.json new file mode 100644 index 0000000000..fea6327fb6 --- /dev/null +++ b/playgrounds/sveltekit/package.json @@ -0,0 +1,26 @@ +{ + "name": "sveltekit", + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^4.0.0", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "typescript": "^5.0.0", + "vite": "^5.0.3" + }, + "dependencies": { + "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", + "@wagmi/svelte": "workspace:^", + "viem": "^2.21.44" + } +} diff --git a/playgrounds/sveltekit/src/app.d.ts b/playgrounds/sveltekit/src/app.d.ts new file mode 100644 index 0000000000..c0c081684f --- /dev/null +++ b/playgrounds/sveltekit/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {} diff --git a/playgrounds/sveltekit/src/app.html b/playgrounds/sveltekit/src/app.html new file mode 100644 index 0000000000..77a5ff52c9 --- /dev/null +++ b/playgrounds/sveltekit/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/playgrounds/sveltekit/src/lib/index.ts b/playgrounds/sveltekit/src/lib/index.ts new file mode 100644 index 0000000000..856f2b6c38 --- /dev/null +++ b/playgrounds/sveltekit/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/playgrounds/sveltekit/src/routes/+layout.svelte b/playgrounds/sveltekit/src/routes/+layout.svelte new file mode 100644 index 0000000000..306f926abb --- /dev/null +++ b/playgrounds/sveltekit/src/routes/+layout.svelte @@ -0,0 +1,27 @@ + + + + + {@render children()} + + diff --git a/playgrounds/sveltekit/src/routes/+page.svelte b/playgrounds/sveltekit/src/routes/+page.svelte new file mode 100644 index 0000000000..755089a86e --- /dev/null +++ b/playgrounds/sveltekit/src/routes/+page.svelte @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/playgrounds/sveltekit/src/routes/_components/Account.svelte b/playgrounds/sveltekit/src/routes/_components/Account.svelte new file mode 100644 index 0000000000..43e57344d0 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/Account.svelte @@ -0,0 +1,30 @@ + + +
+

Account

+ +
+ account: {account.address} + {ensName} +
+ chainId: {account.chainId} +
+ status: {account.status} +
+ + {#if account.status !== 'disconnected'} + + {/if} +
diff --git a/playgrounds/sveltekit/src/routes/_components/Balance.svelte b/playgrounds/sveltekit/src/routes/_components/Balance.svelte new file mode 100644 index 0000000000..d69dcb591c --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/Balance.svelte @@ -0,0 +1,34 @@ + + +
+

Balance

+ +
+ Balance (Default Chain): + {#if !!default_?.value}{formatEther(default_.value)}{/if} +
+
+ Balance (Account Chain): + {#if !!account_?.value}{formatEther(account_.value)}{/if} +
+
+ Balance (Optimism Chain): + {#if !!optimism_?.value}{formatEther(optimism_.value)}{/if} +
+
diff --git a/playgrounds/sveltekit/src/routes/_components/BlockNumber.svelte b/playgrounds/sveltekit/src/routes/_components/BlockNumber.svelte new file mode 100644 index 0000000000..291a43346a --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/BlockNumber.svelte @@ -0,0 +1,16 @@ + + +

Block Number

+ +
Block Number (Default Chain): {defaultBlock.data?.toString()}
+
Block Number (Account Chain): {accountBlock.data?.toString()}
+
Block Number (Optimism): {optimismBlock.data?.toString()}
diff --git a/playgrounds/sveltekit/src/routes/_components/Connect.svelte b/playgrounds/sveltekit/src/routes/_components/Connect.svelte new file mode 100644 index 0000000000..c609e01e3c --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/Connect.svelte @@ -0,0 +1,18 @@ + + +
+

Connect

+ {#each connectors as connector (connector.uid)} + + {/each} +
{status}
+
{error?.message}
+
diff --git a/playgrounds/sveltekit/src/routes/_components/Connections.svelte b/playgrounds/sveltekit/src/routes/_components/Connections.svelte new file mode 100644 index 0000000000..6dbe871473 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/Connections.svelte @@ -0,0 +1,17 @@ + + +
+

Connections

+ + {#each connections as connection (connection.connector.uid)} +
+
connector {connection.connector.name}
+
accounts: {JSON.stringify(connection.accounts)}
+
chainId: {connection.chainId}
+
+ {/each} +
diff --git a/playgrounds/sveltekit/src/routes/_components/ReadContract.svelte b/playgrounds/sveltekit/src/routes/_components/ReadContract.svelte new file mode 100644 index 0000000000..ba7bb55d32 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/ReadContract.svelte @@ -0,0 +1,17 @@ + + +
+

Read Contract

+
Balance: {balance?.toString()} (isLoading: {isLoading})
+
diff --git a/playgrounds/sveltekit/src/routes/_components/ReadContracts.svelte b/playgrounds/sveltekit/src/routes/_components/ReadContracts.svelte new file mode 100644 index 0000000000..a1dac91895 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/ReadContracts.svelte @@ -0,0 +1,36 @@ + + + +
+

Read Contract

+
Balance: {balance?.toString()}
+
Owner of Token 69: {ownerOf?.toString()}
+
Total Supply: {totalSupply?.toString()}
+
\ No newline at end of file diff --git a/playgrounds/sveltekit/src/routes/_components/SendTransaction.svelte b/playgrounds/sveltekit/src/routes/_components/SendTransaction.svelte new file mode 100644 index 0000000000..7f2bb546d2 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/SendTransaction.svelte @@ -0,0 +1,50 @@ + + +
+

Send Transaction

+
+ + + +
+ {#if hash} +
Transaction Hash: {hash}
+ {/if} + {#if isConfirming} + Waiting for confirmation... + {/if} + {#if isConfirmed} + Transaction confirmed. + {/if} + {#if error} +
Error: {(error as BaseError).shortMessage || error.message}
+ {/if} +
diff --git a/playgrounds/sveltekit/src/routes/_components/SignMessage.svelte b/playgrounds/sveltekit/src/routes/_components/SignMessage.svelte new file mode 100644 index 0000000000..267163fb74 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/SignMessage.svelte @@ -0,0 +1,23 @@ + + +

Sign Message

+ +
+ + +
+ +{#if data} + {data} +{/if} diff --git a/playgrounds/sveltekit/src/routes/_components/SwitchAccount.svelte b/playgrounds/sveltekit/src/routes/_components/SwitchAccount.svelte new file mode 100644 index 0000000000..4248343252 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/SwitchAccount.svelte @@ -0,0 +1,19 @@ + + +

Switch Account

+ +{#each connectors as connector} + +{/each} diff --git a/playgrounds/sveltekit/src/routes/_components/SwitchChain.svelte b/playgrounds/sveltekit/src/routes/_components/SwitchChain.svelte new file mode 100644 index 0000000000..0768254f5b --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/SwitchChain.svelte @@ -0,0 +1,23 @@ + + +

Switch Chain

+ +{#each chains as chain} + +{/each} + +{#if error} + {error.message} +{/if} diff --git a/playgrounds/sveltekit/src/routes/_components/WriteContract.svelte b/playgrounds/sveltekit/src/routes/_components/WriteContract.svelte new file mode 100644 index 0000000000..f46feff2cb --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/WriteContract.svelte @@ -0,0 +1,55 @@ + + +

Write Contract

+
+ + +
+ +{#if hash} +
Transaction Hash: {hash}
+{/if} +{#if isConfirming} + Waiting for confirmation... +{/if} +{#if isConfirmed} + Transaction confirmed. +{/if} +{#if error} +
Error: {error.shortMessage || error.message}
+{/if} diff --git a/playgrounds/sveltekit/src/routes/_components/contracts.ts b/playgrounds/sveltekit/src/routes/_components/contracts.ts new file mode 100644 index 0000000000..d7d66754a2 --- /dev/null +++ b/playgrounds/sveltekit/src/routes/_components/contracts.ts @@ -0,0 +1,202 @@ +export const wagmiContractConfig = { + address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', + abi: [ + { inputs: [], stateMutability: 'nonpayable', type: 'constructor' }, + { + anonymous: false, + inputs: [ + { + indexed: true, + name: 'owner', + type: 'address', + }, + { + indexed: true, + name: 'approved', + type: 'address', + }, + { + indexed: true, + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + name: 'owner', + type: 'address', + }, + { + indexed: true, + name: 'operator', + type: 'address', + }, + { + indexed: false, + name: 'approved', + type: 'bool', + }, + ], + name: 'ApprovalForAll', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + name: 'from', + type: 'address', + }, + { indexed: true, name: 'to', type: 'address' }, + { + indexed: true, + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + inputs: [ + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ name: 'tokenId', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', type: 'address' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { name: 'owner', type: 'address' }, + { name: 'operator', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', type: 'bool' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ name: 'tokenId', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', type: 'address' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { name: 'from', type: 'address' }, + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { name: 'from', type: 'address' }, + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + { name: '_data', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { name: 'operator', type: 'address' }, + { name: 'approved', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'interfaceId', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', type: 'bool' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ name: 'tokenId', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', type: 'string' }], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { name: 'from', type: 'address' }, + { name: 'to', type: 'address' }, + { name: 'tokenId', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + ], +} as const diff --git a/playgrounds/sveltekit/src/routes/index.css b/playgrounds/sveltekit/src/routes/index.css new file mode 100644 index 0000000000..0733a7ee6b --- /dev/null +++ b/playgrounds/sveltekit/src/routes/index.css @@ -0,0 +1,21 @@ +:root { + background-color: #181818; + color: rgba(255, 255, 255, 0.87); + color-scheme: light dark; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + font-synthesis: none; + font-weight: 400; + line-height: 1.5; + text-rendering: optimizeLegibility; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +@media (prefers-color-scheme: light) { + :root { + background-color: #f8f8f8; + color: #181818; + } +} diff --git a/playgrounds/sveltekit/static/favicon.png b/playgrounds/sveltekit/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 GIT binary patch literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH=3.4.21' version: 3.4.27(typescript@5.6.1-rc) @@ -493,7 +493,7 @@ importers: version: link:../../packages/vue nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) viem: specifier: 2.* version: 2.10.8(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) @@ -504,6 +504,40 @@ importers: specifier: ^4.3.2 version: 4.3.2(vue@3.4.27(typescript@5.5.4)) + playgrounds/sveltekit: + dependencies: + '@tanstack/svelte-query': + specifier: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8 + version: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5) + '@wagmi/svelte': + specifier: workspace:^ + version: link:../../packages/svelte + viem: + specifier: ^2.21.44 + version: 2.21.44(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) + devDependencies: + '@sveltejs/adapter-auto': + specifier: ^3.0.0 + version: 3.3.0(@sveltejs/kit@2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))) + '@sveltejs/kit': + specifier: ^2.0.0 + version: 2.7.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@sveltejs/vite-plugin-svelte': + specifier: ^4.0.0 + version: 4.0.0(svelte@5.0.5)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + svelte: + specifier: ^5.0.0 + version: 5.0.5 + svelte-check: + specifier: ^4.0.0 + version: 4.0.5(picomatch@4.0.2)(svelte@5.0.5)(typescript@5.5.4) + typescript: + specifier: ^5.0.0 + version: 5.5.4 + vite: + specifier: ^5.0.3 + version: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + playgrounds/vite-core: dependencies: '@wagmi/connectors': @@ -636,7 +670,7 @@ importers: specifier: workspace:* version: link:../packages/core '@wagmi/svelte': - specifier: workspace:^ + specifier: workspace:* version: link:../packages/svelte '@wagmi/vue': specifier: workspace:* @@ -646,7 +680,7 @@ importers: version: 1.0.2(typescript@5.6.1-rc)(zod@3.22.4) nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) react: specifier: '>=18.3.1' version: 18.3.1 @@ -1847,9 +1881,6 @@ packages: '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - '@noble/curves@1.4.0': - resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} - '@noble/curves@1.6.0': resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} engines: {node: ^14.21.3 || >=16} @@ -1865,10 +1896,6 @@ packages: resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} engines: {node: '>= 16'} - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} - '@noble/hashes@1.5.0': resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} engines: {node: ^14.21.3 || >=16} @@ -2482,9 +2509,6 @@ packages: '@scure/base@1.1.3': resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} - '@scure/base@1.1.7': - resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} - '@scure/base@1.1.9': resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} @@ -2497,9 +2521,6 @@ packages: '@scure/bip32@1.3.2': resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} - '@scure/bip32@1.4.0': - resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - '@scure/bip32@1.5.0': resolution: {integrity: sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==} @@ -2509,9 +2530,6 @@ packages: '@scure/bip39@1.2.1': resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} - '@scure/bip39@1.3.0': - resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@scure/bip39@1.4.0': resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} @@ -3448,17 +3466,6 @@ packages: zod: optional: true - abitype@1.0.5: - resolution: {integrity: sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - abitype@1.0.6: resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} peerDependencies: @@ -6328,6 +6335,14 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + ox@0.1.2: + resolution: {integrity: sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -7986,16 +8001,16 @@ packages: typescript: optional: true - viem@2.17.0: - resolution: {integrity: sha512-+gaVlsfDsHL1oYdjpatdRxW1WK/slLYVvpOws3fEdLfQFUToezKI6YLC9l1g2uKm4Hg3OdGX1KQy/G7/58tTKQ==} + viem@2.21.28: + resolution: {integrity: sha512-CbS2Ldq+SdZYYSG+P4oNLi1s6xq7JnZoJsIkMhFcZUMRz3w2J1OvC1izUp6E1/Zp/XXo3wt6g/Ae+f3SGzup2A==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true - viem@2.21.28: - resolution: {integrity: sha512-CbS2Ldq+SdZYYSG+P4oNLi1s6xq7JnZoJsIkMhFcZUMRz3w2J1OvC1izUp6E1/Zp/XXo3wt6g/Ae+f3SGzup2A==} + viem@2.21.44: + resolution: {integrity: sha512-oyLTCt7OQUetQN2m9KPNgSA//MzpnQLABAyglPKh+fAypU8cTT/hC5UyLQvaYt4WPg6dkbKOxfsahV4739pu9w==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -9911,10 +9926,6 @@ snapshots: dependencies: '@noble/hashes': 1.3.2 - '@noble/curves@1.4.0': - dependencies: - '@noble/hashes': 1.4.0 - '@noble/curves@1.6.0': dependencies: '@noble/hashes': 1.5.0 @@ -9925,8 +9936,6 @@ snapshots: '@noble/hashes@1.3.2': {} - '@noble/hashes@1.4.0': {} - '@noble/hashes@1.5.0': {} '@noble/secp256k1@1.7.1': {} @@ -10103,12 +10112,13 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(rollup@4.17.2)': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color @@ -10124,12 +10134,13 @@ snapshots: - rollup - supports-color - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color @@ -10147,14 +10158,14 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.5.4))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(rollup@4.17.2) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4)) - '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.5.4)) birpc: 0.2.17 consola: 3.2.3 @@ -10171,7 +10182,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10184,6 +10195,7 @@ snapshots: simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@4.17.2) + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2(rollup@4.17.2))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite-plugin-vue-inspector: 5.1.0(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) which: 3.0.1 @@ -10276,14 +10288,14 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.6.1-rc)) - '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) birpc: 0.2.17 consola: 3.2.3 @@ -10300,7 +10312,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10313,6 +10325,7 @@ snapshots: simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@4.17.2) + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2(rollup@4.17.2))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite-plugin-vue-inspector: 5.1.0(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) which: 3.0.1 @@ -10406,7 +10419,7 @@ snapshots: '@nuxt/ui-templates@1.3.3': {} - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue-tsc@2.0.16(typescript@5.5.4))(vue@3.4.27(typescript@5.5.4))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -10440,7 +10453,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.5.4)) + vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vue: 3.4.27(typescript@5.5.4) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -10520,6 +10533,63 @@ snapshots: - vti - vue-tsc + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc))': + dependencies: + '@nuxt/kit': 3.11.2(rollup@4.17.2) + '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + autoprefixer: 10.4.19(postcss@8.4.38) + clear: 0.1.0 + consola: 3.2.3 + cssnano: 6.1.2(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + externality: 1.0.2 + fs-extra: 11.2.0 + get-port-please: 3.1.2 + h3: 1.11.1 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.7.0 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.1 + postcss: 8.4.38 + rollup-plugin-visualizer: 5.12.0(rollup@4.17.2) + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.1 + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) + vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + vue: 3.4.27(typescript@5.6.1-rc) + vue-bundle-renderer: 2.1.0 + transitivePeerDependencies: + - '@types/node' + - eslint + - less + - lightningcss + - meow + - optionator + - rollup + - sass + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - vls + - vti + - vue-tsc + '@one-ini/wasm@0.1.1': {} '@open-draft/deferred-promise@2.2.0': {} @@ -10823,7 +10893,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.8.0(encoding@0.1.13) - viem: 2.17.0(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.21.28(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - encoding @@ -10839,8 +10909,6 @@ snapshots: '@scure/base@1.1.3': {} - '@scure/base@1.1.7': {} - '@scure/base@1.1.9': {} '@scure/bip32@1.1.5': @@ -10853,7 +10921,7 @@ snapshots: dependencies: '@noble/curves': 1.1.0 '@noble/hashes': 1.3.2 - '@scure/base': 1.1.7 + '@scure/base': 1.1.9 '@scure/bip32@1.3.2': dependencies: @@ -10861,17 +10929,11 @@ snapshots: '@noble/hashes': 1.3.2 '@scure/base': 1.1.3 - '@scure/bip32@1.4.0': - dependencies: - '@noble/curves': 1.4.0 - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.7 - '@scure/bip32@1.5.0': dependencies: '@noble/curves': 1.6.0 '@noble/hashes': 1.5.0 - '@scure/base': 1.1.7 + '@scure/base': 1.1.9 '@scure/bip39@1.1.1': dependencies: @@ -10883,11 +10945,6 @@ snapshots: '@noble/hashes': 1.3.2 '@scure/base': 1.1.3 - '@scure/bip39@1.3.0': - dependencies: - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.7 - '@scure/bip39@1.4.0': dependencies: '@noble/hashes': 1.5.0 @@ -11924,12 +11981,12 @@ snapshots: transitivePeerDependencies: - vue - '@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': dependencies: - '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vue@3.4.27(typescript@5.5.4)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -11984,49 +12041,7 @@ snapshots: - unocss - vite - '@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.6.1-rc))': - dependencies: - '@vue/devtools-core': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) - '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) - '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vue@3.4.27(typescript@5.6.1-rc)) - lodash-es: 4.17.21 - perfect-debounce: 1.0.0 - shiki: 1.3.0 - splitpanes: 3.1.5 - vue: 3.4.27(typescript@5.6.1-rc) - vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.27(typescript@5.6.1-rc)) - transitivePeerDependencies: - - '@unocss/reset' - - '@vue/composition-api' - - async-validator - - axios - - change-case - - drauu - - floating-vue - - fuse.js - - idb-keyval - - jwt-decode - - nprogress - - qrcode - - sortablejs - - universal-cookie - - unocss - - vite - - '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': - dependencies: - '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) - '@vue/devtools-shared': 7.1.3 - mitt: 3.0.1 - nanoid: 3.3.7 - pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) - transitivePeerDependencies: - - vite - - vue - - '@vue/devtools-core@7.1.3(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': dependencies: '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.5.4)) '@vue/devtools-shared': 7.1.3 @@ -12038,7 +12053,7 @@ snapshots: - vite - vue - '@vue/devtools-core@7.1.3(vue@3.4.27(typescript@5.6.1-rc))': + '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) '@vue/devtools-shared': 7.1.3 @@ -12072,7 +12087,7 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vue@3.4.27(typescript@5.5.4))': dependencies: '@unocss/reset': 0.59.4 '@vue/devtools-shared': 7.1.3 @@ -12082,6 +12097,7 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)) focus-trap: 7.5.4 + unocss: 0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vue: 3.4.27(typescript@5.5.4) transitivePeerDependencies: - '@vue/composition-api' @@ -12137,19 +12153,6 @@ snapshots: optionalDependencies: typescript: 5.6.1-rc - '@vue/language-core@2.0.16(typescript@5.5.4)': - dependencies: - '@volar/language-core': 2.2.1 - '@vue/compiler-dom': 3.4.27 - '@vue/shared': 3.4.27 - computeds: 0.0.1 - minimatch: 9.0.3 - path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 - optionalDependencies: - typescript: 5.5.4 - optional: true - '@vue/language-core@2.0.16(typescript@5.6.1-rc)': dependencies: '@volar/language-core': 2.2.1 @@ -12624,11 +12627,6 @@ snapshots: typescript: 5.5.4 zod: 3.22.2 - abitype@1.0.5(typescript@5.5.4)(zod@3.22.4): - optionalDependencies: - typescript: 5.5.4 - zod: 3.22.4 - abitype@1.0.6(typescript@5.5.4)(zod@3.22.4): optionalDependencies: typescript: 5.5.4 @@ -14720,10 +14718,6 @@ snapshots: dependencies: ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - isows@1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)): - dependencies: - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - isows@1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -15841,15 +15835,15 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.5.4)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.5.4)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue-tsc@2.0.16(typescript@5.5.4))(vue@3.4.27(typescript@5.5.4)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.5.4)) @@ -15958,15 +15952,15 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.6.1-rc)) @@ -16075,10 +16069,10 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(utf-8-validate@5.0.10)(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) @@ -16291,6 +16285,20 @@ snapshots: outvariant@1.4.3: {} + ox@0.1.2(typescript@5.5.4)(zod@3.22.4): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.5.4)(zod@3.22.4) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - zod + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -18032,16 +18040,17 @@ snapshots: - utf-8-validate - zod - viem@2.17.0(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.21.28(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.4.0 - '@noble/hashes': 1.4.0 - '@scure/bip32': 1.4.0 - '@scure/bip39': 1.3.0 - abitype: 1.0.5(typescript@5.5.4)(zod@3.22.4) - isows: 1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.5.4)(zod@3.22.4) + isows: 1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + webauthn-p256: 0.0.10 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -18049,15 +18058,15 @@ snapshots: - utf-8-validate - zod - viem@2.21.28(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.21.44(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: - '@adraffy/ens-normalize': 1.11.0 '@noble/curves': 1.6.0 '@noble/hashes': 1.5.0 '@scure/bip32': 1.5.0 '@scure/bip39': 1.4.0 abitype: 1.0.6(typescript@5.5.4)(zod@3.22.4) isows: 1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + ox: 0.1.2(typescript@5.5.4)(zod@3.22.4) webauthn-p256: 0.0.10 ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: @@ -18104,7 +18113,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.5.4)): + vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -18126,7 +18135,6 @@ snapshots: eslint: 9.13.0(jiti@1.21.6) optionator: 0.9.4 typescript: 5.5.4 - vue-tsc: 2.0.16(typescript@5.5.4) vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: @@ -18350,14 +18358,6 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@2.0.16(typescript@5.5.4): - dependencies: - '@volar/typescript': 2.2.1 - '@vue/language-core': 2.0.16(typescript@5.5.4) - semver: 7.5.4 - typescript: 5.5.4 - optional: true - vue-tsc@2.0.16(typescript@5.6.1-rc): dependencies: '@volar/typescript': 2.2.1 From 2917d4254af926f51af667a0b8e801b9adaf0854 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 14:49:01 -0800 Subject: [PATCH 64/71] refactor: change svelte folders to align with other projects --- packages/svelte/package.json | 12 +- .../svelte/src/{lib => }/WagmiProvider.svelte | 0 packages/svelte/src/{lib => }/context.ts | 0 packages/svelte/src/{lib => }/errors.test.ts | 0 packages/svelte/src/{lib => }/errors.ts | 0 .../svelte/src/{lib => }/exports/chains.ts | 0 .../svelte/src/{lib => }/exports/index.ts | 0 .../svelte/src/{lib => }/hooks/test.svelte.ts | 0 .../{lib => }/hooks/useAccount.svelte.test.ts | 0 .../src/{lib => }/hooks/useAccount.svelte.ts | 10 +- .../hooks/useAccountEffect.svelte.test.ts | 0 .../hooks/useAccountEffect.svelte.ts | 2 +- .../{lib => }/hooks/useBalance.svelte.test.ts | 0 .../src/{lib => }/hooks/useBalance.svelte.ts | 8 +- .../hooks/useBlockNumber.svelte.test.ts | 0 .../{lib => }/hooks/useBlockNumber.svelte.ts | 16 +- .../{lib => }/hooks/useChainId.svelte.test.ts | 0 .../src/{lib => }/hooks/useChainId.svelte.ts | 4 +- .../{lib => }/hooks/useChains.svelte.test.ts | 0 .../src/{lib => }/hooks/useChains.svelte.ts | 4 +- .../{lib => }/hooks/useConfig.svelte.test.ts | 0 .../src/{lib => }/hooks/useConfig.svelte.ts | 2 +- .../{lib => }/hooks/useConnect.svelte.test.ts | 0 .../src/{lib => }/hooks/useConnect.svelte.ts | 18 +- .../hooks/useConnections.svelte.test.ts | 0 .../{lib => }/hooks/useConnections.svelte.ts | 10 +- .../hooks/useConnectors.svelte.test.ts | 0 .../{lib => }/hooks/useConnectors.svelte.ts | 10 +- .../hooks/useDisconnect.svelte.test.ts | 0 .../{lib => }/hooks/useDisconnect.svelte.ts | 18 +- .../hooks/useEnsAvatar.svelte.test.ts | 2 +- .../{lib => }/hooks/useEnsAvatar.svelte.ts | 4 +- .../{lib => }/hooks/useEnsName.svelte.test.ts | 0 .../src/{lib => }/hooks/useEnsName.svelte.ts | 14 +- .../hooks/useGasPrice.svelte.test.ts | 0 .../src/{lib => }/hooks/useGasPrice.svelte.ts | 4 +- .../hooks/useReadContract.svelte.test.ts | 0 .../{lib => }/hooks/useReadContract.svelte.ts | 14 +- .../hooks/useReadContracts.svelte.test.ts | 0 .../hooks/useReadContracts.svelte.ts | 4 +- .../hooks/useSendTransaction.svelte.test.ts | 0 .../hooks/useSendTransaction.svelte.ts | 4 +- .../hooks/useSignMessage.svelte.test.ts | 0 .../{lib => }/hooks/useSignMessage.svelte.ts | 4 +- .../hooks/useSwitchAccount.svelte.test.ts | 0 .../hooks/useSwitchAccount.svelte.ts | 4 +- .../hooks/useSwitchChain.svelte.test.ts | 0 .../{lib => }/hooks/useSwitchChain.svelte.ts | 4 +- ...seWaitForTransactionReceipt.svelte.test.ts | 0 .../useWaitForTransactionReceipt.svelte.ts | 4 +- .../hooks/useWatchBlockNumber.svelte.test.ts | 0 .../hooks/useWatchBlockNumber.svelte.ts | 6 +- .../hooks/useWriteContract.svelte.test.ts | 0 .../hooks/useWriteContract.svelte.ts | 4 +- packages/svelte/src/{lib => }/index.ts | 0 packages/svelte/src/{lib => }/query.svelte.ts | 2 +- packages/svelte/src/routes/+layout.svelte | 27 - packages/svelte/src/routes/+page.svelte | 27 - .../src/routes/_components/Account.svelte | 30 - .../src/routes/_components/Balance.svelte | 34 - .../src/routes/_components/BlockNumber.svelte | 16 - .../src/routes/_components/Connect.svelte | 18 - .../src/routes/_components/Connections.svelte | 17 - .../routes/_components/ReadContract.svelte | 17 - .../routes/_components/ReadContracts.svelte | 36 - .../routes/_components/SendTransaction.svelte | 50 -- .../src/routes/_components/SignMessage.svelte | 23 - .../routes/_components/SwitchAccount.svelte | 19 - .../src/routes/_components/SwitchChain.svelte | 23 - .../routes/_components/WriteContract.svelte | 55 -- .../src/routes/_components/contracts.ts | 202 ------ packages/svelte/src/routes/index.css | 21 - packages/svelte/src/{lib => }/types.ts | 0 packages/svelte/src/{lib => }/version.test.ts | 0 packages/svelte/src/{lib => }/version.ts | 0 packages/svelte/static/favicon.png | Bin 1571 -> 0 bytes packages/svelte/svelte.config.js | 3 + pnpm-lock.yaml | 684 ++---------------- 78 files changed, 145 insertions(+), 1345 deletions(-) rename packages/svelte/src/{lib => }/WagmiProvider.svelte (100%) rename packages/svelte/src/{lib => }/context.ts (100%) rename packages/svelte/src/{lib => }/errors.test.ts (100%) rename packages/svelte/src/{lib => }/errors.ts (100%) rename packages/svelte/src/{lib => }/exports/chains.ts (100%) rename packages/svelte/src/{lib => }/exports/index.ts (100%) rename packages/svelte/src/{lib => }/hooks/test.svelte.ts (100%) rename packages/svelte/src/{lib => }/hooks/useAccount.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useAccount.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useAccountEffect.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useAccountEffect.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useBalance.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useBalance.svelte.ts (88%) rename packages/svelte/src/{lib => }/hooks/useBlockNumber.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useBlockNumber.svelte.ts (91%) rename packages/svelte/src/{lib => }/hooks/useChainId.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useChainId.svelte.ts (92%) rename packages/svelte/src/{lib => }/hooks/useChains.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useChains.svelte.ts (92%) rename packages/svelte/src/{lib => }/hooks/useConfig.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useConfig.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useConnect.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useConnect.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useConnections.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useConnections.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useConnectors.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useConnectors.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useDisconnect.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useDisconnect.svelte.ts (97%) rename packages/svelte/src/{lib => }/hooks/useEnsAvatar.svelte.test.ts (96%) rename packages/svelte/src/{lib => }/hooks/useEnsAvatar.svelte.ts (92%) rename packages/svelte/src/{lib => }/hooks/useEnsName.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useEnsName.svelte.ts (94%) rename packages/svelte/src/{lib => }/hooks/useGasPrice.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useGasPrice.svelte.ts (92%) rename packages/svelte/src/{lib => }/hooks/useReadContract.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useReadContract.svelte.ts (96%) rename packages/svelte/src/{lib => }/hooks/useReadContracts.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useReadContracts.svelte.ts (95%) rename packages/svelte/src/{lib => }/hooks/useSendTransaction.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useSendTransaction.svelte.ts (95%) rename packages/svelte/src/{lib => }/hooks/useSignMessage.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useSignMessage.svelte.ts (94%) rename packages/svelte/src/{lib => }/hooks/useSwitchAccount.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useSwitchAccount.svelte.ts (95%) rename packages/svelte/src/{lib => }/hooks/useSwitchChain.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useSwitchChain.svelte.ts (96%) rename packages/svelte/src/{lib => }/hooks/useWaitForTransactionReceipt.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useWaitForTransactionReceipt.svelte.ts (94%) rename packages/svelte/src/{lib => }/hooks/useWatchBlockNumber.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useWatchBlockNumber.svelte.ts (92%) rename packages/svelte/src/{lib => }/hooks/useWriteContract.svelte.test.ts (100%) rename packages/svelte/src/{lib => }/hooks/useWriteContract.svelte.ts (96%) rename packages/svelte/src/{lib => }/index.ts (100%) rename packages/svelte/src/{lib => }/query.svelte.ts (96%) delete mode 100644 packages/svelte/src/routes/+layout.svelte delete mode 100644 packages/svelte/src/routes/+page.svelte delete mode 100644 packages/svelte/src/routes/_components/Account.svelte delete mode 100644 packages/svelte/src/routes/_components/Balance.svelte delete mode 100644 packages/svelte/src/routes/_components/BlockNumber.svelte delete mode 100644 packages/svelte/src/routes/_components/Connect.svelte delete mode 100644 packages/svelte/src/routes/_components/Connections.svelte delete mode 100644 packages/svelte/src/routes/_components/ReadContract.svelte delete mode 100644 packages/svelte/src/routes/_components/ReadContracts.svelte delete mode 100644 packages/svelte/src/routes/_components/SendTransaction.svelte delete mode 100644 packages/svelte/src/routes/_components/SignMessage.svelte delete mode 100644 packages/svelte/src/routes/_components/SwitchAccount.svelte delete mode 100644 packages/svelte/src/routes/_components/SwitchChain.svelte delete mode 100644 packages/svelte/src/routes/_components/WriteContract.svelte delete mode 100644 packages/svelte/src/routes/_components/contracts.ts delete mode 100644 packages/svelte/src/routes/index.css rename packages/svelte/src/{lib => }/types.ts (100%) rename packages/svelte/src/{lib => }/version.test.ts (100%) rename packages/svelte/src/{lib => }/version.ts (100%) delete mode 100644 packages/svelte/static/favicon.png diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 4b191046f3..09ea0b9a7c 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -2,17 +2,12 @@ "name": "@wagmi/svelte", "version": "0.0.1", "scripts": { - "dev": "vite dev", "build": "vite build && npm run package", "preview": "vite preview", "package": "svelte-kit sync && svelte-package && publint", "prepublishOnly": "npm run package", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "eslint . && prettier --check .", - "format": "prettier --write .", - "test:unit": "vitest", - "test": "pnpm run test:unit -- --run --watch" + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" }, "files": ["dist", "!dist/**/*.test.*", "!dist/**/*.spec.*"], "sideEffects": ["**/*.css"], @@ -42,12 +37,7 @@ "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", "@types/eslint": "^9.6.0", "@wagmi/test": "workspace:^", - "eslint": "^9.7.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-svelte": "^2.36.0", "globals": "^15.0.0", - "prettier": "^3.3.2", - "prettier-plugin-svelte": "^3.2.6", "publint": "^0.2.0", "svelte": "^5.0.0", "svelte-check": "^4.0.0", diff --git a/packages/svelte/src/lib/WagmiProvider.svelte b/packages/svelte/src/WagmiProvider.svelte similarity index 100% rename from packages/svelte/src/lib/WagmiProvider.svelte rename to packages/svelte/src/WagmiProvider.svelte diff --git a/packages/svelte/src/lib/context.ts b/packages/svelte/src/context.ts similarity index 100% rename from packages/svelte/src/lib/context.ts rename to packages/svelte/src/context.ts diff --git a/packages/svelte/src/lib/errors.test.ts b/packages/svelte/src/errors.test.ts similarity index 100% rename from packages/svelte/src/lib/errors.test.ts rename to packages/svelte/src/errors.test.ts diff --git a/packages/svelte/src/lib/errors.ts b/packages/svelte/src/errors.ts similarity index 100% rename from packages/svelte/src/lib/errors.ts rename to packages/svelte/src/errors.ts diff --git a/packages/svelte/src/lib/exports/chains.ts b/packages/svelte/src/exports/chains.ts similarity index 100% rename from packages/svelte/src/lib/exports/chains.ts rename to packages/svelte/src/exports/chains.ts diff --git a/packages/svelte/src/lib/exports/index.ts b/packages/svelte/src/exports/index.ts similarity index 100% rename from packages/svelte/src/lib/exports/index.ts rename to packages/svelte/src/exports/index.ts diff --git a/packages/svelte/src/lib/hooks/test.svelte.ts b/packages/svelte/src/hooks/test.svelte.ts similarity index 100% rename from packages/svelte/src/lib/hooks/test.svelte.ts rename to packages/svelte/src/hooks/test.svelte.ts diff --git a/packages/svelte/src/lib/hooks/useAccount.svelte.test.ts b/packages/svelte/src/hooks/useAccount.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useAccount.svelte.test.ts rename to packages/svelte/src/hooks/useAccount.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useAccount.svelte.ts b/packages/svelte/src/hooks/useAccount.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useAccount.svelte.ts rename to packages/svelte/src/hooks/useAccount.svelte.ts index 5ea41cafaa..9198473b76 100644 --- a/packages/svelte/src/lib/hooks/useAccount.svelte.ts +++ b/packages/svelte/src/hooks/useAccount.svelte.ts @@ -1,8 +1,3 @@ -import type { - ConfigParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import { type Config, type GetAccountReturnType, @@ -10,6 +5,11 @@ import { getAccount, watchAccount, } from '@wagmi/core' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useConfig } from './useConfig.svelte.js' export type UseAccountParameters = diff --git a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts b/packages/svelte/src/hooks/useAccountEffect.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useAccountEffect.svelte.test.ts rename to packages/svelte/src/hooks/useAccountEffect.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts b/packages/svelte/src/hooks/useAccountEffect.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts rename to packages/svelte/src/hooks/useAccountEffect.svelte.ts index 975d318607..623829ced2 100644 --- a/packages/svelte/src/lib/hooks/useAccountEffect.svelte.ts +++ b/packages/svelte/src/hooks/useAccountEffect.svelte.ts @@ -1,6 +1,6 @@ -import type { RuneParameters } from '$lib/types.js' import { type GetAccountReturnType, watchAccount } from '@wagmi/core' import type { Compute } from '@wagmi/core/internal' +import type { RuneParameters } from '../types.js' import type { ConfigParameter } from '../types.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useBalance.svelte.test.ts b/packages/svelte/src/hooks/useBalance.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useBalance.svelte.test.ts rename to packages/svelte/src/hooks/useBalance.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useBalance.svelte.ts b/packages/svelte/src/hooks/useBalance.svelte.ts similarity index 88% rename from packages/svelte/src/lib/hooks/useBalance.svelte.ts rename to packages/svelte/src/hooks/useBalance.svelte.ts index dde07e1676..62131f7751 100644 --- a/packages/svelte/src/lib/hooks/useBalance.svelte.ts +++ b/packages/svelte/src/hooks/useBalance.svelte.ts @@ -8,15 +8,15 @@ import { getBalanceQueryOptions, } from '@wagmi/core/query' -import { useChainId } from '$lib/hooks/useChainId.svelte.js' -import { useConfig } from '$lib/hooks/useConfig.svelte.js' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' import type { ConfigParameter, QueryParameter, RuneParameters, RuneReturnType, -} from '$lib/types.js' +} from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' export type UseBalanceParameters< config extends Config = Config, diff --git a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts b/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useBlockNumber.svelte.test.ts rename to packages/svelte/src/hooks/useBlockNumber.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts b/packages/svelte/src/hooks/useBlockNumber.svelte.ts similarity index 91% rename from packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts rename to packages/svelte/src/hooks/useBlockNumber.svelte.ts index e14751d1cc..e4f9be5da0 100644 --- a/packages/svelte/src/lib/hooks/useBlockNumber.svelte.ts +++ b/packages/svelte/src/hooks/useBlockNumber.svelte.ts @@ -17,19 +17,19 @@ import { getBlockNumberQueryOptions, } from '@wagmi/core/query' -import { useChainId } from '$lib/hooks/useChainId.svelte.js' -import { useConfig } from '$lib/hooks/useConfig.svelte.js' -import { - type UseWatchBlockNumberParameters, - useWatchBlockNumber, -} from '$lib/hooks/useWatchBlockNumber.svelte.js' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' import type { ConfigParameter, QueryParameter, RuneParameters, RuneReturnType, -} from '$lib/types.js' +} from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' +import { + type UseWatchBlockNumberParameters, + useWatchBlockNumber, +} from './useWatchBlockNumber.svelte.js' export type UseBlockNumberParameters< config extends Config = Config, diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.test.ts b/packages/svelte/src/hooks/useChainId.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useChainId.svelte.test.ts rename to packages/svelte/src/hooks/useChainId.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useChainId.svelte.ts b/packages/svelte/src/hooks/useChainId.svelte.ts similarity index 92% rename from packages/svelte/src/lib/hooks/useChainId.svelte.ts rename to packages/svelte/src/hooks/useChainId.svelte.ts index 3fe6301d12..4f492a5210 100644 --- a/packages/svelte/src/lib/hooks/useChainId.svelte.ts +++ b/packages/svelte/src/hooks/useChainId.svelte.ts @@ -6,12 +6,12 @@ import { watchChainId, } from '@wagmi/core' -import { useConfig } from '$lib/hooks/useConfig.svelte.js' import type { ConfigParameter, RuneParameters, RuneReturnType, -} from '$lib/types.js' +} from '../types.js' +import { useConfig } from './useConfig.svelte.js' export type UseChainIdParameters = RuneParameters> diff --git a/packages/svelte/src/lib/hooks/useChains.svelte.test.ts b/packages/svelte/src/hooks/useChains.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useChains.svelte.test.ts rename to packages/svelte/src/hooks/useChains.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useChains.svelte.ts b/packages/svelte/src/hooks/useChains.svelte.ts similarity index 92% rename from packages/svelte/src/lib/hooks/useChains.svelte.ts rename to packages/svelte/src/hooks/useChains.svelte.ts index 8bfa4c5656..7da83dc375 100644 --- a/packages/svelte/src/lib/hooks/useChains.svelte.ts +++ b/packages/svelte/src/hooks/useChains.svelte.ts @@ -6,12 +6,12 @@ import { } from '@wagmi/core' import { watchChains } from '@wagmi/core/internal' -import { useConfig } from '$lib/hooks/useConfig.svelte.js' import type { ConfigParameter, RuneParameters, RuneReturnType, -} from '$lib/types.js' +} from '../types.js' +import { useConfig } from './useConfig.svelte.js' export type UseChainsParameters = RuneParameters> diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.test.ts b/packages/svelte/src/hooks/useConfig.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useConfig.svelte.test.ts rename to packages/svelte/src/hooks/useConfig.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useConfig.svelte.ts b/packages/svelte/src/hooks/useConfig.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useConfig.svelte.ts rename to packages/svelte/src/hooks/useConfig.svelte.ts index a8e10e344d..998ae9baaf 100644 --- a/packages/svelte/src/lib/hooks/useConfig.svelte.ts +++ b/packages/svelte/src/hooks/useConfig.svelte.ts @@ -6,7 +6,7 @@ import type { ConfigParameter, RuneParameters, RuneReturnType, -} from '$lib/types.js' +} from '../types.js' export type UseConfigParameters = RuneParameters> diff --git a/packages/svelte/src/lib/hooks/useConnect.svelte.test.ts b/packages/svelte/src/hooks/useConnect.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useConnect.svelte.test.ts rename to packages/svelte/src/hooks/useConnect.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useConnect.svelte.ts b/packages/svelte/src/hooks/useConnect.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useConnect.svelte.ts rename to packages/svelte/src/hooks/useConnect.svelte.ts index bcb9d941e7..bfbcae3f78 100644 --- a/packages/svelte/src/lib/hooks/useConnect.svelte.ts +++ b/packages/svelte/src/hooks/useConnect.svelte.ts @@ -1,12 +1,3 @@ -import type { - CreateMutationParameters, - CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { - ConfigParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import { type CreateMutationResult, createMutation, @@ -20,6 +11,15 @@ import { type ConnectVariables, connectMutationOptions, } from '@wagmi/core/query' +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '../query.svelte.js' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useConfig } from './useConfig.svelte.js' import { type UseConnectorsReturnType, diff --git a/packages/svelte/src/lib/hooks/useConnections.svelte.test.ts b/packages/svelte/src/hooks/useConnections.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useConnections.svelte.test.ts rename to packages/svelte/src/hooks/useConnections.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useConnections.svelte.ts b/packages/svelte/src/hooks/useConnections.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useConnections.svelte.ts rename to packages/svelte/src/hooks/useConnections.svelte.ts index b446cbe856..d4d4cde43d 100644 --- a/packages/svelte/src/lib/hooks/useConnections.svelte.ts +++ b/packages/svelte/src/hooks/useConnections.svelte.ts @@ -1,13 +1,13 @@ -import type { - ConfigParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import { type GetConnectionsReturnType, getConnections, watchConnections, } from '@wagmi/core' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useConfig } from './useConfig.svelte.js' export type UseConnectionsParameters = RuneParameters diff --git a/packages/svelte/src/lib/hooks/useConnectors.svelte.test.ts b/packages/svelte/src/hooks/useConnectors.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useConnectors.svelte.test.ts rename to packages/svelte/src/hooks/useConnectors.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useConnectors.svelte.ts b/packages/svelte/src/hooks/useConnectors.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useConnectors.svelte.ts rename to packages/svelte/src/hooks/useConnectors.svelte.ts index f91ebadbba..8ee5b4f2f6 100644 --- a/packages/svelte/src/lib/hooks/useConnectors.svelte.ts +++ b/packages/svelte/src/hooks/useConnectors.svelte.ts @@ -1,13 +1,13 @@ -import type { - ConfigParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import { type GetConnectorsReturnType, getConnectors, watchConnectors, } from '@wagmi/core' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useConfig } from './useConfig.svelte.js' export type UseConnectorsParameters = RuneParameters diff --git a/packages/svelte/src/lib/hooks/useDisconnect.svelte.test.ts b/packages/svelte/src/hooks/useDisconnect.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useDisconnect.svelte.test.ts rename to packages/svelte/src/hooks/useDisconnect.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useDisconnect.svelte.ts b/packages/svelte/src/hooks/useDisconnect.svelte.ts similarity index 97% rename from packages/svelte/src/lib/hooks/useDisconnect.svelte.ts rename to packages/svelte/src/hooks/useDisconnect.svelte.ts index 941496977c..dca8c4e755 100644 --- a/packages/svelte/src/lib/hooks/useDisconnect.svelte.ts +++ b/packages/svelte/src/hooks/useDisconnect.svelte.ts @@ -1,12 +1,3 @@ -import type { - CreateMutationParameters, - CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { - ConfigParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import { type CreateMutationResult, createMutation, @@ -20,6 +11,15 @@ import { type DisconnectVariables, disconnectMutationOptions, } from '@wagmi/core/query' +import type { + CreateMutationParameters, + CreateMutationReturnType, +} from '../query.svelte.js' +import type { + ConfigParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useConfig } from './useConfig.svelte.js' import { useConnections } from './useConnections.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts b/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts similarity index 96% rename from packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts rename to packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts index ca9e6215cf..f300a3a95c 100644 --- a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.test.ts +++ b/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts @@ -1,6 +1,6 @@ import { expect, test } from 'vitest' import { testHook } from './test.svelte.js' -import { useEnsAvatar } from './useEnsAvatar.svelte' +import { useEnsAvatar } from './useEnsAvatar.svelte.js' test( 'default', diff --git a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts b/packages/svelte/src/hooks/useEnsAvatar.svelte.ts similarity index 92% rename from packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts rename to packages/svelte/src/hooks/useEnsAvatar.svelte.ts index cd42478ff4..6f8282e4a7 100644 --- a/packages/svelte/src/lib/hooks/useEnsAvatar.svelte.ts +++ b/packages/svelte/src/hooks/useEnsAvatar.svelte.ts @@ -12,8 +12,8 @@ import { getEnsAvatarQueryOptions, } from '@wagmi/core/query' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter, QueryParameter } from '../types.js' import { useChainId } from './useChainId.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts b/packages/svelte/src/hooks/useEnsName.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useEnsName.svelte.test.ts rename to packages/svelte/src/hooks/useEnsName.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useEnsName.svelte.ts b/packages/svelte/src/hooks/useEnsName.svelte.ts similarity index 94% rename from packages/svelte/src/lib/hooks/useEnsName.svelte.ts rename to packages/svelte/src/hooks/useEnsName.svelte.ts index 357b4c83fc..724343887a 100644 --- a/packages/svelte/src/lib/hooks/useEnsName.svelte.ts +++ b/packages/svelte/src/hooks/useEnsName.svelte.ts @@ -1,10 +1,3 @@ -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' -import type { - ConfigParameter, - QueryParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import type { Config, GetEnsNameErrorType, ResolvedRegister } from '@wagmi/core' import type { Compute } from '@wagmi/core/internal' import { @@ -14,6 +7,13 @@ import { type GetEnsNameQueryKey, getEnsNameQueryOptions, } from '@wagmi/core/query' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' +import type { + ConfigParameter, + QueryParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useChainId } from './useChainId.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts b/packages/svelte/src/hooks/useGasPrice.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useGasPrice.svelte.test.ts rename to packages/svelte/src/hooks/useGasPrice.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useGasPrice.svelte.ts b/packages/svelte/src/hooks/useGasPrice.svelte.ts similarity index 92% rename from packages/svelte/src/lib/hooks/useGasPrice.svelte.ts rename to packages/svelte/src/hooks/useGasPrice.svelte.ts index b4cd3fc999..7e806e8d54 100644 --- a/packages/svelte/src/lib/hooks/useGasPrice.svelte.ts +++ b/packages/svelte/src/hooks/useGasPrice.svelte.ts @@ -12,8 +12,8 @@ import { getGasPriceQueryOptions, } from '@wagmi/core/query' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter, QueryParameter } from '../types.js' import { useChainId } from './useChainId.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts b/packages/svelte/src/hooks/useReadContract.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useReadContract.svelte.test.ts rename to packages/svelte/src/hooks/useReadContract.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useReadContract.svelte.ts b/packages/svelte/src/hooks/useReadContract.svelte.ts similarity index 96% rename from packages/svelte/src/lib/hooks/useReadContract.svelte.ts rename to packages/svelte/src/hooks/useReadContract.svelte.ts index 66f4eacf1e..8a30cb07cc 100644 --- a/packages/svelte/src/lib/hooks/useReadContract.svelte.ts +++ b/packages/svelte/src/hooks/useReadContract.svelte.ts @@ -1,12 +1,5 @@ 'use client' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' -import type { - ConfigParameter, - QueryParameter, - RuneParameters, - RuneReturnType, -} from '$lib/types.js' import type { Config, ReadContractErrorType, @@ -22,6 +15,13 @@ import { structuralSharing, } from '@wagmi/core/query' import type { Abi, ContractFunctionArgs, ContractFunctionName, Hex } from 'viem' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' +import type { + ConfigParameter, + QueryParameter, + RuneParameters, + RuneReturnType, +} from '../types.js' import { useChainId } from './useChainId.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts b/packages/svelte/src/hooks/useReadContracts.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useReadContracts.svelte.test.ts rename to packages/svelte/src/hooks/useReadContracts.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useReadContracts.svelte.ts b/packages/svelte/src/hooks/useReadContracts.svelte.ts similarity index 95% rename from packages/svelte/src/lib/hooks/useReadContracts.svelte.ts rename to packages/svelte/src/hooks/useReadContracts.svelte.ts index 35d5fced1b..81ce6b9651 100644 --- a/packages/svelte/src/lib/hooks/useReadContracts.svelte.ts +++ b/packages/svelte/src/hooks/useReadContracts.svelte.ts @@ -14,8 +14,8 @@ import { } from '@wagmi/core/query' import type { ContractFunctionParameters } from 'viem' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter, QueryParameter } from '../types.js' import { useChainId } from './useChainId.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts b/packages/svelte/src/hooks/useSendTransaction.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useSendTransaction.svelte.test.ts rename to packages/svelte/src/hooks/useSendTransaction.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts b/packages/svelte/src/hooks/useSendTransaction.svelte.ts similarity index 95% rename from packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts rename to packages/svelte/src/hooks/useSendTransaction.svelte.ts index e2ab2b7782..f3fc7a7b74 100644 --- a/packages/svelte/src/lib/hooks/useSendTransaction.svelte.ts +++ b/packages/svelte/src/hooks/useSendTransaction.svelte.ts @@ -16,8 +16,8 @@ import { import type { CreateMutationParameters, CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +} from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter } from '../types.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts b/packages/svelte/src/hooks/useSignMessage.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useSignMessage.svelte.test.ts rename to packages/svelte/src/hooks/useSignMessage.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useSignMessage.svelte.ts b/packages/svelte/src/hooks/useSignMessage.svelte.ts similarity index 94% rename from packages/svelte/src/lib/hooks/useSignMessage.svelte.ts rename to packages/svelte/src/hooks/useSignMessage.svelte.ts index 01bfa29a0e..b5f087dab3 100644 --- a/packages/svelte/src/lib/hooks/useSignMessage.svelte.ts +++ b/packages/svelte/src/hooks/useSignMessage.svelte.ts @@ -12,8 +12,8 @@ import { import type { CreateMutationParameters, CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +} from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter } from '../types.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts b/packages/svelte/src/hooks/useSwitchAccount.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useSwitchAccount.svelte.test.ts rename to packages/svelte/src/hooks/useSwitchAccount.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts b/packages/svelte/src/hooks/useSwitchAccount.svelte.ts similarity index 95% rename from packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts rename to packages/svelte/src/hooks/useSwitchAccount.svelte.ts index d1eef693be..4a2d780fd6 100644 --- a/packages/svelte/src/lib/hooks/useSwitchAccount.svelte.ts +++ b/packages/svelte/src/hooks/useSwitchAccount.svelte.ts @@ -17,8 +17,8 @@ import { import type { CreateMutationParameters, CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +} from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter } from '../types.js' import { useConfig } from './useConfig.svelte.js' import { useConnections } from './useConnections.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts b/packages/svelte/src/hooks/useSwitchChain.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useSwitchChain.svelte.test.ts rename to packages/svelte/src/hooks/useSwitchChain.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts b/packages/svelte/src/hooks/useSwitchChain.svelte.ts similarity index 96% rename from packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts rename to packages/svelte/src/hooks/useSwitchChain.svelte.ts index abccb9787b..b66a85d6e1 100644 --- a/packages/svelte/src/lib/hooks/useSwitchChain.svelte.ts +++ b/packages/svelte/src/hooks/useSwitchChain.svelte.ts @@ -16,8 +16,8 @@ import { import type { CreateMutationParameters, CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +} from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter } from '../types.js' import { useChains } from './useChains.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.test.ts rename to packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.ts similarity index 94% rename from packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts rename to packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.ts index 32c6c3a4d9..0384f2f20d 100644 --- a/packages/svelte/src/lib/hooks/useWaitForTransactionReceipt.svelte.ts +++ b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.ts @@ -12,8 +12,8 @@ import { waitForTransactionReceiptQueryOptions, } from '@wagmi/core/query' -import { type CreateQueryReturnType, createQuery } from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +import { type CreateQueryReturnType, createQuery } from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter, QueryParameter } from '../types.js' import { useChainId } from './useChainId.svelte.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts b/packages/svelte/src/hooks/useWatchBlockNumber.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.test.ts rename to packages/svelte/src/hooks/useWatchBlockNumber.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts b/packages/svelte/src/hooks/useWatchBlockNumber.svelte.ts similarity index 92% rename from packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts rename to packages/svelte/src/hooks/useWatchBlockNumber.svelte.ts index 8c517b33e2..20c82ffc1f 100644 --- a/packages/svelte/src/lib/hooks/useWatchBlockNumber.svelte.ts +++ b/packages/svelte/src/hooks/useWatchBlockNumber.svelte.ts @@ -6,13 +6,13 @@ import { } from '@wagmi/core' import type { UnionCompute, UnionExactPartial } from '@wagmi/core/internal' -import { useChainId } from '$lib/hooks/useChainId.svelte.js' -import { useConfig } from '$lib/hooks/useConfig.svelte.js' import type { ConfigParameter, EnabledParameter, RuneParameters, -} from '$lib/types.js' +} from '../types.js' +import { useChainId } from './useChainId.svelte.js' +import { useConfig } from './useConfig.svelte.js' export type UseWatchBlockNumberParameters< config extends Config = Config, diff --git a/packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts b/packages/svelte/src/hooks/useWriteContract.svelte.test.ts similarity index 100% rename from packages/svelte/src/lib/hooks/useWriteContract.svelte.test.ts rename to packages/svelte/src/hooks/useWriteContract.svelte.test.ts diff --git a/packages/svelte/src/lib/hooks/useWriteContract.svelte.ts b/packages/svelte/src/hooks/useWriteContract.svelte.ts similarity index 96% rename from packages/svelte/src/lib/hooks/useWriteContract.svelte.ts rename to packages/svelte/src/hooks/useWriteContract.svelte.ts index 14fbcbdb6e..c54b2193e0 100644 --- a/packages/svelte/src/lib/hooks/useWriteContract.svelte.ts +++ b/packages/svelte/src/hooks/useWriteContract.svelte.ts @@ -17,8 +17,8 @@ import type { Abi } from 'viem' import type { CreateMutationParameters, CreateMutationReturnType, -} from '$lib/query.svelte.js' -import type { RuneParameters, RuneReturnType } from '$lib/types.js' +} from '../query.svelte.js' +import type { RuneParameters, RuneReturnType } from '../types.js' import type { ConfigParameter } from '../types.js' import { useConfig } from './useConfig.svelte.js' diff --git a/packages/svelte/src/lib/index.ts b/packages/svelte/src/index.ts similarity index 100% rename from packages/svelte/src/lib/index.ts rename to packages/svelte/src/index.ts diff --git a/packages/svelte/src/lib/query.svelte.ts b/packages/svelte/src/query.svelte.ts similarity index 96% rename from packages/svelte/src/lib/query.svelte.ts rename to packages/svelte/src/query.svelte.ts index 0350947875..cdea665a71 100644 --- a/packages/svelte/src/lib/query.svelte.ts +++ b/packages/svelte/src/query.svelte.ts @@ -1,4 +1,3 @@ -import type { RuneParameters, RuneReturnType } from '$lib/types.js' import { type CreateMutationOptions, type CreateMutationResult, @@ -15,6 +14,7 @@ import type { UnionStrictOmit, } from '@wagmi/core/internal' import { hashFn } from '@wagmi/core/query' +import type { RuneParameters, RuneReturnType } from './types.js' export type CreateQueryParameters< queryFnData = unknown, diff --git a/packages/svelte/src/routes/+layout.svelte b/packages/svelte/src/routes/+layout.svelte deleted file mode 100644 index 55b2ea78b9..0000000000 --- a/packages/svelte/src/routes/+layout.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - - - - {@render children()} - - diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte deleted file mode 100644 index 755089a86e..0000000000 --- a/packages/svelte/src/routes/+page.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/packages/svelte/src/routes/_components/Account.svelte b/packages/svelte/src/routes/_components/Account.svelte deleted file mode 100644 index 13b34ec665..0000000000 --- a/packages/svelte/src/routes/_components/Account.svelte +++ /dev/null @@ -1,30 +0,0 @@ - - -
-

Account

- -
- account: {account.address} - {ensName} -
- chainId: {account.chainId} -
- status: {account.status} -
- - {#if account.status !== 'disconnected'} - - {/if} -
diff --git a/packages/svelte/src/routes/_components/Balance.svelte b/packages/svelte/src/routes/_components/Balance.svelte deleted file mode 100644 index d5e0734467..0000000000 --- a/packages/svelte/src/routes/_components/Balance.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - -
-

Balance

- -
- Balance (Default Chain): - {#if !!default_?.value}{formatEther(default_.value)}{/if} -
-
- Balance (Account Chain): - {#if !!account_?.value}{formatEther(account_.value)}{/if} -
-
- Balance (Optimism Chain): - {#if !!optimism_?.value}{formatEther(optimism_.value)}{/if} -
-
diff --git a/packages/svelte/src/routes/_components/BlockNumber.svelte b/packages/svelte/src/routes/_components/BlockNumber.svelte deleted file mode 100644 index 9fe60bfb38..0000000000 --- a/packages/svelte/src/routes/_components/BlockNumber.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - -

Block Number

- -
Block Number (Default Chain): {defaultBlock.data?.toString()}
-
Block Number (Account Chain): {accountBlock.data?.toString()}
-
Block Number (Optimism): {optimismBlock.data?.toString()}
diff --git a/packages/svelte/src/routes/_components/Connect.svelte b/packages/svelte/src/routes/_components/Connect.svelte deleted file mode 100644 index ef9f97b956..0000000000 --- a/packages/svelte/src/routes/_components/Connect.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - -
-

Connect

- {#each connectors as connector (connector.uid)} - - {/each} -
{status}
-
{error?.message}
-
diff --git a/packages/svelte/src/routes/_components/Connections.svelte b/packages/svelte/src/routes/_components/Connections.svelte deleted file mode 100644 index a4198241ec..0000000000 --- a/packages/svelte/src/routes/_components/Connections.svelte +++ /dev/null @@ -1,17 +0,0 @@ - - -
-

Connections

- - {#each connections as connection (connection.connector.uid)} -
-
connector {connection.connector.name}
-
accounts: {JSON.stringify(connection.accounts)}
-
chainId: {connection.chainId}
-
- {/each} -
diff --git a/packages/svelte/src/routes/_components/ReadContract.svelte b/packages/svelte/src/routes/_components/ReadContract.svelte deleted file mode 100644 index e2f88caaf7..0000000000 --- a/packages/svelte/src/routes/_components/ReadContract.svelte +++ /dev/null @@ -1,17 +0,0 @@ - - -
-

Read Contract

-
Balance: {balance?.toString()} (isLoading: {isLoading})
-
diff --git a/packages/svelte/src/routes/_components/ReadContracts.svelte b/packages/svelte/src/routes/_components/ReadContracts.svelte deleted file mode 100644 index 9b69791fce..0000000000 --- a/packages/svelte/src/routes/_components/ReadContracts.svelte +++ /dev/null @@ -1,36 +0,0 @@ - - - -
-

Read Contract

-
Balance: {balance?.toString()}
-
Owner of Token 69: {ownerOf?.toString()}
-
Total Supply: {totalSupply?.toString()}
-
\ No newline at end of file diff --git a/packages/svelte/src/routes/_components/SendTransaction.svelte b/packages/svelte/src/routes/_components/SendTransaction.svelte deleted file mode 100644 index 295c2b6983..0000000000 --- a/packages/svelte/src/routes/_components/SendTransaction.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - -
-

Send Transaction

-
- - - -
- {#if hash} -
Transaction Hash: {hash}
- {/if} - {#if isConfirming} - Waiting for confirmation... - {/if} - {#if isConfirmed} - Transaction confirmed. - {/if} - {#if error} -
Error: {(error as BaseError).shortMessage || error.message}
- {/if} -
diff --git a/packages/svelte/src/routes/_components/SignMessage.svelte b/packages/svelte/src/routes/_components/SignMessage.svelte deleted file mode 100644 index 7bc15908c8..0000000000 --- a/packages/svelte/src/routes/_components/SignMessage.svelte +++ /dev/null @@ -1,23 +0,0 @@ - - -

Sign Message

- -
- - -
- -{#if data} - {data} -{/if} diff --git a/packages/svelte/src/routes/_components/SwitchAccount.svelte b/packages/svelte/src/routes/_components/SwitchAccount.svelte deleted file mode 100644 index 8dac63dda7..0000000000 --- a/packages/svelte/src/routes/_components/SwitchAccount.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - -

Switch Account

- -{#each connectors as connector} - -{/each} diff --git a/packages/svelte/src/routes/_components/SwitchChain.svelte b/packages/svelte/src/routes/_components/SwitchChain.svelte deleted file mode 100644 index 22fbd18069..0000000000 --- a/packages/svelte/src/routes/_components/SwitchChain.svelte +++ /dev/null @@ -1,23 +0,0 @@ - - -

Switch Chain

- -{#each chains as chain} - -{/each} - -{#if error} - {error.message} -{/if} diff --git a/packages/svelte/src/routes/_components/WriteContract.svelte b/packages/svelte/src/routes/_components/WriteContract.svelte deleted file mode 100644 index ee7e6e2dc9..0000000000 --- a/packages/svelte/src/routes/_components/WriteContract.svelte +++ /dev/null @@ -1,55 +0,0 @@ - - -

Write Contract

-
- - -
- -{#if hash} -
Transaction Hash: {hash}
-{/if} -{#if isConfirming} - Waiting for confirmation... -{/if} -{#if isConfirmed} - Transaction confirmed. -{/if} -{#if error} -
Error: {error.shortMessage || error.message}
-{/if} diff --git a/packages/svelte/src/routes/_components/contracts.ts b/packages/svelte/src/routes/_components/contracts.ts deleted file mode 100644 index d7d66754a2..0000000000 --- a/packages/svelte/src/routes/_components/contracts.ts +++ /dev/null @@ -1,202 +0,0 @@ -export const wagmiContractConfig = { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi: [ - { inputs: [], stateMutability: 'nonpayable', type: 'constructor' }, - { - anonymous: false, - inputs: [ - { - indexed: true, - name: 'owner', - type: 'address', - }, - { - indexed: true, - name: 'approved', - type: 'address', - }, - { - indexed: true, - name: 'tokenId', - type: 'uint256', - }, - ], - name: 'Approval', - type: 'event', - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - name: 'owner', - type: 'address', - }, - { - indexed: true, - name: 'operator', - type: 'address', - }, - { - indexed: false, - name: 'approved', - type: 'bool', - }, - ], - name: 'ApprovalForAll', - type: 'event', - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - name: 'from', - type: 'address', - }, - { indexed: true, name: 'to', type: 'address' }, - { - indexed: true, - name: 'tokenId', - type: 'uint256', - }, - ], - name: 'Transfer', - type: 'event', - }, - { - inputs: [ - { name: 'to', type: 'address' }, - { name: 'tokenId', type: 'uint256' }, - ], - name: 'approve', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [{ name: 'owner', type: 'address' }], - name: 'balanceOf', - outputs: [{ name: '', type: 'uint256' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [{ name: 'tokenId', type: 'uint256' }], - name: 'getApproved', - outputs: [{ name: '', type: 'address' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [ - { name: 'owner', type: 'address' }, - { name: 'operator', type: 'address' }, - ], - name: 'isApprovedForAll', - outputs: [{ name: '', type: 'bool' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [], - name: 'mint', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }], - name: 'mint', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [], - name: 'name', - outputs: [{ name: '', type: 'string' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [{ name: 'tokenId', type: 'uint256' }], - name: 'ownerOf', - outputs: [{ name: '', type: 'address' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [ - { name: 'from', type: 'address' }, - { name: 'to', type: 'address' }, - { name: 'tokenId', type: 'uint256' }, - ], - name: 'safeTransferFrom', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [ - { name: 'from', type: 'address' }, - { name: 'to', type: 'address' }, - { name: 'tokenId', type: 'uint256' }, - { name: '_data', type: 'bytes' }, - ], - name: 'safeTransferFrom', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [ - { name: 'operator', type: 'address' }, - { name: 'approved', type: 'bool' }, - ], - name: 'setApprovalForAll', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [{ name: 'interfaceId', type: 'bytes4' }], - name: 'supportsInterface', - outputs: [{ name: '', type: 'bool' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [], - name: 'symbol', - outputs: [{ name: '', type: 'string' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [{ name: 'tokenId', type: 'uint256' }], - name: 'tokenURI', - outputs: [{ name: '', type: 'string' }], - stateMutability: 'pure', - type: 'function', - }, - { - inputs: [], - name: 'totalSupply', - outputs: [{ name: '', type: 'uint256' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [ - { name: 'from', type: 'address' }, - { name: 'to', type: 'address' }, - { name: 'tokenId', type: 'uint256' }, - ], - name: 'transferFrom', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - ], -} as const diff --git a/packages/svelte/src/routes/index.css b/packages/svelte/src/routes/index.css deleted file mode 100644 index 0733a7ee6b..0000000000 --- a/packages/svelte/src/routes/index.css +++ /dev/null @@ -1,21 +0,0 @@ -:root { - background-color: #181818; - color: rgba(255, 255, 255, 0.87); - color-scheme: light dark; - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - font-synthesis: none; - font-weight: 400; - line-height: 1.5; - text-rendering: optimizeLegibility; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -@media (prefers-color-scheme: light) { - :root { - background-color: #f8f8f8; - color: #181818; - } -} diff --git a/packages/svelte/src/lib/types.ts b/packages/svelte/src/types.ts similarity index 100% rename from packages/svelte/src/lib/types.ts rename to packages/svelte/src/types.ts diff --git a/packages/svelte/src/lib/version.test.ts b/packages/svelte/src/version.test.ts similarity index 100% rename from packages/svelte/src/lib/version.test.ts rename to packages/svelte/src/version.test.ts diff --git a/packages/svelte/src/lib/version.ts b/packages/svelte/src/version.ts similarity index 100% rename from packages/svelte/src/lib/version.ts rename to packages/svelte/src/version.ts diff --git a/packages/svelte/static/favicon.png b/packages/svelte/static/favicon.png deleted file mode 100644 index 825b9e65af7c104cfb07089bb28659393b4f2097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH=3.4.21' version: 3.4.27(typescript@5.6.1-rc) @@ -493,7 +478,7 @@ importers: version: link:../../packages/vue nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) viem: specifier: 2.* version: 2.10.8(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) @@ -680,7 +665,7 @@ importers: version: 1.0.2(typescript@5.6.1-rc)(zod@3.22.4) nuxt: specifier: ^3.11.2 - version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + version: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) react: specifier: '>=18.3.1' version: 18.3.1 @@ -692,7 +677,7 @@ importers: version: 2.10.8(bufferutil@4.0.8)(typescript@5.6.1-rc)(utf-8-validate@5.0.10)(zod@3.22.4) vitepress: specifier: ^1.1.4 - version: 1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc) + version: 1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.38)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc) vue: specifier: '>=3.4.21' version: 3.4.27(typescript@5.6.1-rc) @@ -1457,30 +1442,6 @@ packages: resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.7.0': - resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.13.0': - resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.1': - resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ethereumjs/common@3.2.0': resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} @@ -1564,22 +1525,6 @@ packages: '@floating-ui/utils@0.2.2': resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2849,9 +2794,6 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} @@ -3486,11 +3428,6 @@ packages: peerDependencies: acorn: ^8 - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-typescript@1.4.13: resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} peerDependencies: @@ -3531,9 +3468,6 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - algoliasearch@4.19.1: resolution: {integrity: sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==} @@ -3779,7 +3713,6 @@ packages: bun@1.1.29: resolution: {integrity: sha512-SKhpyKNZtgxrVel9ec9xon3LDv8mgpiuFhARgcJo1YIbggY2PBrKHRNiwQ6Qlb+x3ivmRurfuwWgwGexjpgBRg==} - cpu: [arm64, x64] os: [darwin, linux, win32] hasBin: true @@ -3815,10 +3748,6 @@ packages: call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -4252,9 +4181,6 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -4512,95 +4438,27 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-svelte@2.46.0: - resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.13.0: - resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - esrap@1.2.2: resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -4704,12 +4562,6 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-redact@3.1.2: resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} engines: {node: '>=6'} @@ -4743,10 +4595,6 @@ packages: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -4777,10 +4625,6 @@ packages: fixturez@1.1.0: resolution: {integrity: sha512-c4q9eZsAmCzj9gkrEO/YwIRlrHWt/TXQiX9jR9WeLFOqeeV6EyzdiiV28CpSzF6Ip+gyYrSv5UeOHqyzfcNTVA==} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -4919,10 +4763,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -4948,10 +4788,6 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globals@15.11.0: resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} engines: {node: '>=18'} @@ -5178,10 +5014,6 @@ packages: immutable@4.3.5: resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -5461,9 +5293,6 @@ packages: engines: {node: '>=4'} hasBin: true - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-even-better-errors@3.0.2: resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5475,12 +5304,6 @@ packages: json-rpc-random-id@1.0.1: resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5506,9 +5329,6 @@ packages: resolution: {integrity: sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==} engines: {node: '>=10.0.0'} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyvaluestorage-interface@1.0.0: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} @@ -5538,9 +5358,6 @@ packages: knitwork@1.1.0: resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} - kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -5551,14 +5368,6 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - lilconfig@3.1.1: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} @@ -6314,10 +6123,6 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - ora@6.3.1: resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6406,10 +6211,6 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-git-config@3.0.0: resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} engines: {node: '>=8'} @@ -6609,18 +6410,6 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - postcss-merge-longhand@6.0.5: resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} @@ -6729,26 +6518,10 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - - postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} @@ -6772,23 +6545,9 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} - preact@10.17.1: resolution: {integrity: sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-svelte@3.2.7: - resolution: {integrity: sha512-/Dswx/ea0lV34If1eDcG3nulQ63YNr5KPDfMsjbdtpSWOxKKJ7nAc2qlVuYwEvCr4raIuredNoR7K4JCkmTGaQ==} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -6799,11 +6558,6 @@ packages: engines: {node: '>=14'} hasBin: true - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - pretty-bytes@6.1.1: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} @@ -7014,10 +6768,6 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -7328,10 +7078,6 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -7535,15 +7281,6 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - svelte: - optional: true - svelte2tsx@0.7.22: resolution: {integrity: sha512-hf55ujq17ufVpDQlJzaQfRr9EjlLIwGmFlpKq4uYrQAQFw/99q1OcVYyBT6568iJySgBUY9PdccURrORmfetmQ==} peerDependencies: @@ -7605,9 +7342,6 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -7714,10 +7448,6 @@ packages: peerDependencies: typescript: '*' - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -7936,9 +7666,6 @@ packages: uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -8305,10 +8032,6 @@ packages: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - workerpool@6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} @@ -8415,10 +8138,6 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - yaml@2.4.2: resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} engines: {node: '>= 14'} @@ -9292,45 +9011,12 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0': dependencies: - eslint: 9.13.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} - '@eslint/config-array@0.18.0': - dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/core@0.7.0': {} - - '@eslint/eslintrc@3.1.0': - dependencies: - ajv: 6.12.6 - debug: 4.3.7 - espree: 10.2.0 - globals: 14.0.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.13.0': {} - - '@eslint/object-schema@2.1.4': {} - - '@eslint/plugin-kit@0.2.1': - dependencies: - levn: 0.4.1 - '@ethereumjs/common@3.2.0': dependencies: '@ethereumjs/util': 8.1.0 @@ -9486,17 +9172,6 @@ snapshots: '@floating-ui/utils@0.2.2': {} - '@humanfs/core@0.19.0': {} - - '@humanfs/node@0.16.5': - dependencies: - '@humanfs/core': 0.19.0 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - '@iconify/types@2.0.0': {} '@iconify/utils@2.1.23': @@ -10112,34 +9787,34 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup - supports-color - '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': + '@nuxt/devtools-kit@1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) execa: 7.2.0 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) transitivePeerDependencies: - rollup @@ -10158,10 +9833,10 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) @@ -10182,7 +9857,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10223,10 +9898,10 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) @@ -10247,7 +9922,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10288,10 +9963,10 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/devtools@1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2(rollup@4.17.2) '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(qrcode@1.5.3)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) @@ -10312,7 +9987,7 @@ snapshots: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + nuxt: 3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -10419,7 +10094,7 @@ snapshots: '@nuxt/ui-templates@1.3.3': {} - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -10453,7 +10128,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) + vite-plugin-checker: 0.6.4(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)) vue: 3.4.27(typescript@5.5.4) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -10476,7 +10151,7 @@ snapshots: - vti - vue-tsc - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -10510,7 +10185,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + vite-plugin-checker: 0.6.4(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vue: 3.4.27(typescript@5.6.1-rc) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -10533,7 +10208,7 @@ snapshots: - vti - vue-tsc - '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc))': + '@nuxt/vite-builder@3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc))': dependencies: '@nuxt/kit': 3.11.2(rollup@4.17.2) '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) @@ -10567,7 +10242,7 @@ snapshots: unplugin: 1.10.1 vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vite-node: 1.6.0(@types/node@20.12.10)(terser@5.31.0) - vite-plugin-checker: 0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) + vite-plugin-checker: 0.6.4(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)) vue: 3.4.27(typescript@5.6.1-rc) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -11367,8 +11042,6 @@ snapshots: '@types/estree@1.0.5': {} - '@types/estree@1.0.6': {} - '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.2 @@ -11461,15 +11134,14 @@ snapshots: dependencies: '@types/node': 20.12.10 - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(typescript@5.5.4))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.11.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.13.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -11479,14 +11151,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.11.0(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.11.0 debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -11497,10 +11168,10 @@ snapshots: '@typescript-eslint/types': 8.11.0 '@typescript-eslint/visitor-keys': 8.11.0 - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.11.0(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(typescript@5.5.4) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -11526,13 +11197,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.11.0(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0 '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - eslint: 9.13.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -12640,14 +12310,6 @@ snapshots: dependencies: acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - - acorn-jsx@5.3.2(acorn@8.13.0): - dependencies: - acorn: 8.13.0 - acorn-typescript@1.4.13(acorn@8.13.0): dependencies: acorn: 8.13.0 @@ -12679,13 +12341,6 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - algoliasearch@4.19.1: dependencies: '@algolia/cache-browser-local-storage': 4.19.1 @@ -13015,8 +12670,6 @@ snapshots: function-bind: 1.1.2 get-intrinsic: 1.2.1 - callsites@3.1.0: {} - camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -13422,8 +13075,6 @@ snapshots: deep-eql@5.0.2: {} - deep-is@0.1.4: {} - deepmerge@4.3.1: {} default-browser-id@5.0.0: {} @@ -13694,129 +13345,23 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.13.0(jiti@1.21.6)): - dependencies: - eslint: 9.13.0(jiti@1.21.6) - semver: 7.6.2 - - eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@1.21.6)): - dependencies: - eslint: 9.13.0(jiti@1.21.6) - - eslint-plugin-svelte@2.46.0(eslint@9.13.0(jiti@1.21.6))(svelte@5.0.5): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) - '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.13.0(jiti@1.21.6) - eslint-compat-utils: 0.5.1(eslint@9.13.0(jiti@1.21.6)) - esutils: 2.0.3 - known-css-properties: 0.35.0 - postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38) - postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.1.2 - semver: 7.6.2 - svelte-eslint-parser: 0.43.0(svelte@5.0.5) - optionalDependencies: - svelte: 5.0.5 - transitivePeerDependencies: - - ts-node - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.1.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.1.0: {} - - eslint@9.13.0(jiti@1.21.6): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) - '@eslint-community/regexpp': 4.11.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.7.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.13.0 - '@eslint/plugin-kit': 0.2.1 - '@humanfs/node': 0.16.5 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.7 - escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - text-table: 0.2.0 - optionalDependencies: - jiti: 1.21.6 - transitivePeerDependencies: - - supports-color - esm-env@1.0.0: {} - espree@10.2.0: - dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) - eslint-visitor-keys: 4.1.0 - - espree@9.6.1: - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - esrap@1.2.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 '@types/estree': 1.0.5 - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 - esutils@2.0.3: {} - etag@1.8.1: {} eth-block-tracker@7.1.0: @@ -14000,10 +13545,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - fast-redact@3.1.2: {} fast-safe-stringify@2.1.1: {} @@ -14026,10 +13567,6 @@ snapshots: dependencies: is-unicode-supported: 2.0.0 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - file-uri-to-path@1.0.0: {} fill-range@7.0.1: @@ -14064,11 +13601,6 @@ snapshots: signal-exit: 3.0.7 tempy: 0.2.1 - flat-cache@4.0.1: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - flat@5.0.2: {} flatted@3.3.1: {} @@ -14223,10 +13755,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - glob@10.4.5: dependencies: foreground-child: 3.1.1 @@ -14268,8 +13796,6 @@ snapshots: globals@11.12.0: {} - globals@14.0.0: {} - globals@15.11.0: {} globalyzer@0.1.0: {} @@ -14545,11 +14071,6 @@ snapshots: immutable@4.3.5: {} - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} @@ -14784,8 +14305,6 @@ snapshots: jsesc@2.5.2: {} - json-buffer@3.0.1: {} - json-parse-even-better-errors@3.0.2: {} json-rpc-engine@6.1.0: @@ -14795,10 +14314,6 @@ snapshots: json-rpc-random-id@1.0.1: {} - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - json5@2.2.3: {} jsonc-parser@3.2.0: {} @@ -14825,10 +14340,6 @@ snapshots: node-gyp-build: 4.6.0 readable-stream: 3.6.2 - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - keyvaluestorage-interface@1.0.0: {} klaw@1.3.1: @@ -14864,8 +14375,6 @@ snapshots: knitwork@1.1.0: {} - known-css-properties@0.35.0: {} - kolorist@1.8.0: {} launch-editor@2.6.1: @@ -14877,13 +14386,6 @@ snapshots: dependencies: readable-stream: 2.3.8 - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@2.1.0: {} - lilconfig@3.1.1: {} listhen@1.7.2: @@ -15835,15 +15337,15 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.5.4)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.5.4)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.5.4)(vue@3.4.27(typescript@5.5.4)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.5.4)) @@ -15952,15 +15454,15 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue@3.4.27(typescript@5.6.1-rc)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.6.1-rc)) @@ -16069,15 +15571,15 @@ snapshots: - vue-tsc - xml2js - nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): + nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(eslint@9.13.0(jiti@1.21.6))(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.4)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.10)(@unocss/reset@0.59.4)(bufferutil@4.0.8)(change-case@5.4.4)(encoding@0.1.13)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.6.1-rc)))(idb-keyval@6.2.1)(ioredis@5.3.2)(qrcode@1.5.3)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)))(qrcode@1.5.3)(rollup@4.17.2)(unocss@0.59.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)))(utf-8-validate@5.0.10)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) '@nuxt/kit': 3.11.2(rollup@4.17.2) '@nuxt/schema': 3.11.2(rollup@4.17.2) '@nuxt/telemetry': 2.5.4(rollup@4.17.2) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc)) + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.10)(rollup@4.17.2)(terser@5.31.0)(typescript@5.6.1-rc)(vue-tsc@2.0.16(typescript@5.6.1-rc))(vue@3.4.27(typescript@5.6.1-rc)) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 '@unhead/vue': 1.9.10(vue@3.4.27(typescript@5.6.1-rc)) @@ -16256,15 +15758,6 @@ snapshots: opener@1.5.2: {} - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - ora@6.3.1: dependencies: chalk: 5.3.0 @@ -16372,10 +15865,6 @@ snapshots: - bluebird - supports-color - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-git-config@3.0.0: dependencies: git-config-path: 2.0.0 @@ -16568,13 +16057,6 @@ snapshots: dependencies: postcss: 8.4.38 - postcss-load-config@3.1.4(postcss@8.4.38): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.4.38 - postcss-merge-longhand@6.0.5(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -16675,24 +16157,11 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-safe-parser@6.0.0(postcss@8.4.38): - dependencies: - postcss: 8.4.38 - - postcss-scss@4.0.9(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-svgo@6.0.3(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -16718,27 +16187,12 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.2.0 - postcss@8.4.47: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.1 - preact@10.17.1: {} - prelude-ls@1.2.1: {} - - prettier-plugin-svelte@3.2.7(prettier@3.3.3)(svelte@5.0.5): - dependencies: - prettier: 3.3.3 - svelte: 5.0.5 - prettier@2.8.8: {} prettier@3.0.3: {} - prettier@3.3.3: {} - pretty-bytes@6.1.1: {} pretty-format@27.5.1: @@ -16938,8 +16392,6 @@ snapshots: requires-port@1.0.0: {} - resolve-from@4.0.0: {} - resolve-from@5.0.0: {} resolve@1.17.0: @@ -17280,8 +16732,6 @@ snapshots: source-map-js@1.2.0: {} - source-map-js@1.2.1: {} - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -17457,16 +16907,6 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-eslint-parser@0.43.0(svelte@5.0.5): - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.4.47 - postcss-scss: 4.0.9(postcss@8.4.47) - optionalDependencies: - svelte: 5.0.5 - svelte2tsx@0.7.22(svelte@5.0.5)(typescript@5.5.4): dependencies: dedent-js: 1.0.1 @@ -17554,8 +16994,6 @@ snapshots: glob: 10.4.5 minimatch: 9.0.4 - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -17656,10 +17094,6 @@ snapshots: transitivePeerDependencies: - supports-color - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -17670,11 +17104,11 @@ snapshots: type-fest@4.18.2: {} - typescript-eslint@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4): + typescript-eslint@8.11.0(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(typescript@5.5.4))(typescript@5.5.4) + '@typescript-eslint/parser': 8.11.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.11.0(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -17930,10 +17364,6 @@ snapshots: uqr@0.1.2: {} - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -18113,7 +17543,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + vite-plugin-checker@0.6.4(typescript@5.5.4)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -18132,11 +17562,9 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - eslint: 9.13.0(jiti@1.21.6) - optionator: 0.9.4 typescript: 5.5.4 - vite-plugin-checker@0.6.4(eslint@9.13.0(jiti@1.21.6))(optionator@0.9.4)(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): + vite-plugin-checker@0.6.4(typescript@5.6.1-rc)(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue-tsc@2.0.16(typescript@5.6.1-rc)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -18155,8 +17583,6 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - eslint: 9.13.0(jiti@1.21.6) - optionator: 0.9.4 typescript: 5.6.1-rc vue-tsc: 2.0.16(typescript@5.6.1-rc) @@ -18207,7 +17633,7 @@ snapshots: optionalDependencies: vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) - vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): + vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.38)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.19.1)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18225,7 +17651,7 @@ snapshots: vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) vue: 3.4.27(typescript@5.6.1-rc) optionalDependencies: - postcss: 8.4.47 + postcss: 8.4.38 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -18483,8 +17909,6 @@ snapshots: dependencies: string-width: 4.2.3 - word-wrap@1.2.5: {} - workerpool@6.2.1: {} wrap-ansi@6.2.0: @@ -18548,8 +17972,6 @@ snapshots: yallist@5.0.0: {} - yaml@1.10.2: {} - yaml@2.4.2: {} yargs-parser@18.1.3: From 9d2c30adddd6fa66101ceb3985531066537cf71b Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 15:23:00 -0800 Subject: [PATCH 65/71] deps: remove eslint-related packages --- packages/svelte/package.json | 2 - pnpm-lock.yaml | 216 ----------------------------------- 2 files changed, 218 deletions(-) diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 09ea0b9a7c..4bc68d46ef 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -35,14 +35,12 @@ "@sveltejs/package": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^4.0.0", "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", - "@types/eslint": "^9.6.0", "@wagmi/test": "workspace:^", "globals": "^15.0.0", "publint": "^0.2.0", "svelte": "^5.0.0", "svelte-check": "^4.0.0", "typescript": "^5.0.0", - "typescript-eslint": "^8.0.0", "vite": "^5.0.11", "vitest": "^2.0.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b9259cd29..83db294f7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -318,9 +318,6 @@ importers: '@tanstack/svelte-query': specifier: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8 version: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5) - '@types/eslint': - specifier: ^9.6.0 - version: 9.6.1 '@wagmi/test': specifier: workspace:^ version: link:../test @@ -339,9 +336,6 @@ importers: typescript: specifier: ^5.0.0 version: 5.5.4 - typescript-eslint: - specifier: ^8.0.0 - version: 8.11.0(typescript@5.5.4) vite: specifier: ^5.0.11 version: 5.2.11(@types/node@20.12.10)(terser@5.31.0) @@ -1432,16 +1426,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@ethereumjs/common@3.2.0': resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} @@ -2788,9 +2772,6 @@ packages: '@types/dedent@0.7.2': resolution: {integrity: sha512-kRiitIeUg1mPV9yH4VUJ/1uk2XjyANfeL8/7rH1tsjvHeO9PJLBHJIYsFWmAvmGj5u8rj+1TZx7PZzW2qLw3Lw==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -2803,9 +2784,6 @@ packages: '@types/http-proxy@1.17.14': resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/jsonfile@6.1.2': resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==} @@ -2884,63 +2862,6 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@typescript-eslint/eslint-plugin@8.11.0': - resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@8.11.0': - resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@8.11.0': - resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.11.0': - resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@8.11.0': - resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.11.0': - resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@8.11.0': - resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@typescript-eslint/visitor-keys@8.11.0': - resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript/vfs@1.5.0': resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==} @@ -4438,10 +4359,6 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} @@ -4816,9 +4733,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - graphql@16.8.1: resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -5870,9 +5784,6 @@ packages: engines: {node: ^18 || >=20} hasBin: true - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -7410,12 +7321,6 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -7468,15 +7373,6 @@ packages: resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==} engines: {node: '>=16'} - typescript-eslint@8.11.0: - resolution: {integrity: sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -9011,12 +8907,6 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true - '@eslint-community/eslint-utils@4.4.0': - dependencies: - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.11.1': {} - '@ethereumjs/common@3.2.0': dependencies: '@ethereumjs/util': 8.1.0 @@ -11035,11 +10925,6 @@ snapshots: '@types/dedent@0.7.2': {} - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.5': {} '@types/fs-extra@11.0.4': @@ -11055,8 +10940,6 @@ snapshots: dependencies: '@types/node': 20.12.10 - '@types/json-schema@7.0.15': {} - '@types/jsonfile@6.1.2': dependencies: '@types/node': 20.12.10 @@ -11134,84 +11017,6 @@ snapshots: dependencies: '@types/node': 20.12.10 - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(typescript@5.5.4))(typescript@5.5.4)': - dependencies: - '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.11.0(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.11.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.11.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.11.0 - debug: 4.3.7 - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.11.0': - dependencies: - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/visitor-keys': 8.11.0 - - '@typescript-eslint/type-utils@8.11.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(typescript@5.5.4) - debug: 4.3.7 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - eslint - - supports-color - - '@typescript-eslint/types@8.11.0': {} - - '@typescript-eslint/typescript-estree@8.11.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/visitor-keys': 8.11.0 - debug: 4.3.7 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.11.0(typescript@5.5.4)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0 - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.5.4) - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@8.11.0': - dependencies: - '@typescript-eslint/types': 8.11.0 - eslint-visitor-keys: 3.4.3 - '@typescript/vfs@1.5.0': dependencies: debug: 4.3.7 @@ -13345,8 +13150,6 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-visitor-keys@3.4.3: {} - esm-env@1.0.0: {} esprima@4.0.1: {} @@ -13835,8 +13638,6 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - graphql@16.8.1: {} gzip-size@6.0.0: @@ -15060,8 +14861,6 @@ snapshots: nanoid@5.0.7: {} - natural-compare@1.4.0: {} - negotiator@0.6.3: {} next@14.2.4(@opentelemetry/api@1.8.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -17053,10 +16852,6 @@ snapshots: trim-lines@3.0.1: {} - ts-api-utils@1.3.0(typescript@5.5.4): - dependencies: - typescript: 5.5.4 - tslib@1.14.1: {} tslib@2.5.0: {} @@ -17104,17 +16899,6 @@ snapshots: type-fest@4.18.2: {} - typescript-eslint@8.11.0(typescript@5.5.4): - dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(typescript@5.5.4))(typescript@5.5.4) - '@typescript-eslint/parser': 8.11.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.11.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - eslint - - supports-color - typescript@5.5.4: {} typescript@5.6.1-rc: {} From a8d8df80df448ed8cb310df48f6f09dbcf8748ae Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 15:26:35 -0800 Subject: [PATCH 66/71] deps: use * instead of ^ for workspace --- packages/svelte/package.json | 6 +++--- playgrounds/sveltekit/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 4bc68d46ef..b77e6497db 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -35,7 +35,7 @@ "@sveltejs/package": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^4.0.0", "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", - "@wagmi/test": "workspace:^", + "@wagmi/test": "workspace:*", "globals": "^15.0.0", "publint": "^0.2.0", "svelte": "^5.0.0", @@ -45,7 +45,7 @@ "vitest": "^2.0.4" }, "dependencies": { - "@wagmi/connectors": "workspace:^", - "@wagmi/core": "workspace:^" + "@wagmi/connectors": "workspace:*", + "@wagmi/core": "workspace:*" } } diff --git a/playgrounds/sveltekit/package.json b/playgrounds/sveltekit/package.json index fea6327fb6..b1b699c854 100644 --- a/playgrounds/sveltekit/package.json +++ b/playgrounds/sveltekit/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@tanstack/svelte-query": "https://pkg.pr.new/@tanstack/svelte-query@ccce0b8", - "@wagmi/svelte": "workspace:^", + "@wagmi/svelte": "workspace:*", "viem": "^2.21.44" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83db294f7a..121ac0bb39 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,10 +297,10 @@ importers: packages/svelte: dependencies: '@wagmi/connectors': - specifier: workspace:^ + specifier: workspace:* version: link:../connectors '@wagmi/core': - specifier: workspace:^ + specifier: workspace:* version: link:../core devDependencies: '@sveltejs/adapter-auto': @@ -319,7 +319,7 @@ importers: specifier: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8 version: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5) '@wagmi/test': - specifier: workspace:^ + specifier: workspace:* version: link:../test globals: specifier: ^15.0.0 @@ -489,7 +489,7 @@ importers: specifier: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8 version: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5) '@wagmi/svelte': - specifier: workspace:^ + specifier: workspace:* version: link:../../packages/svelte viem: specifier: ^2.21.44 From de9b8d8263325252a075977778b8da5fe8f841ac Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 16:20:55 -0800 Subject: [PATCH 67/71] test: refactor test snapshots --- .../src/hooks/useBalance.svelte.test.ts | 20 ------ .../src/hooks/useBlockNumber.svelte.test.ts | 70 +++++++++---------- .../src/hooks/useEnsAvatar.svelte.test.ts | 4 -- .../src/hooks/useEnsName.svelte.test.ts | 4 -- .../src/hooks/useGasPrice.svelte.test.ts | 8 --- .../src/hooks/useReadContract.svelte.test.ts | 12 ---- .../src/hooks/useReadContracts.svelte.test.ts | 8 --- ...seWaitForTransactionReceipt.svelte.test.ts | 4 -- packages/svelte/vite.config.ts | 2 +- vitest.workspace.ts | 1 + 10 files changed, 35 insertions(+), 98 deletions(-) diff --git a/packages/svelte/src/hooks/useBalance.svelte.test.ts b/packages/svelte/src/hooks/useBalance.svelte.test.ts index db2750f919..c97b59c7f2 100644 --- a/packages/svelte/src/hooks/useBalance.svelte.test.ts +++ b/packages/svelte/src/hooks/useBalance.svelte.test.ts @@ -53,10 +53,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "balance", { @@ -109,10 +105,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "balance", { @@ -168,10 +160,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "balance", { @@ -229,10 +217,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "balance", { @@ -278,10 +262,6 @@ test( "isRefetching": false, "isStale": false, "isSuccess": false, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "balance", { diff --git a/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts b/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts index 0661ac39bb..be86097d80 100644 --- a/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts +++ b/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts @@ -13,43 +13,39 @@ test( await expect.poll(() => result.isSuccess).toBeTruthy() expect(result).toMatchInlineSnapshot(` - { - "data": 19258213n, - "dataUpdatedAt": 1675209600000, - "error": null, - "errorUpdateCount": 0, - "errorUpdatedAt": 0, - "failureCount": 0, - "failureReason": null, - "fetchStatus": "idle", - "isError": false, - "isFetched": true, - "isFetchedAfterMount": true, - "isFetching": false, - "isInitialLoading": false, - "isLoading": false, - "isLoadingError": false, - "isPaused": false, - "isPending": false, - "isPlaceholderData": false, - "isRefetchError": false, - "isRefetching": false, - "isStale": true, - "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, - "queryKey": [ - "blockNumber", - { - "chainId": 1, - }, - ], - "refetch": [Function], - "status": "success", - } - `) + { + "data": 19258213n, + "dataUpdatedAt": 1675209600000, + "error": null, + "errorUpdateCount": 0, + "errorUpdatedAt": 0, + "failureCount": 0, + "failureReason": null, + "fetchStatus": "idle", + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isInitialLoading": false, + "isLoading": false, + "isLoadingError": false, + "isPaused": false, + "isPending": false, + "isPlaceholderData": false, + "isRefetchError": false, + "isRefetching": false, + "isStale": true, + "isSuccess": true, + "queryKey": [ + "blockNumber", + { + "chainId": 1, + }, + ], + "refetch": [Function], + "status": "success", + } + `) }, {}, async () => { diff --git a/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts b/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts index f300a3a95c..abc36e1320 100644 --- a/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts +++ b/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts @@ -37,10 +37,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "ensAvatar", { diff --git a/packages/svelte/src/hooks/useEnsName.svelte.test.ts b/packages/svelte/src/hooks/useEnsName.svelte.test.ts index e8a6a4be58..8dd3be947f 100644 --- a/packages/svelte/src/hooks/useEnsName.svelte.test.ts +++ b/packages/svelte/src/hooks/useEnsName.svelte.test.ts @@ -37,10 +37,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "ensName", { diff --git a/packages/svelte/src/hooks/useGasPrice.svelte.test.ts b/packages/svelte/src/hooks/useGasPrice.svelte.test.ts index 62f21ea66f..c62cb842e5 100644 --- a/packages/svelte/src/hooks/useGasPrice.svelte.test.ts +++ b/packages/svelte/src/hooks/useGasPrice.svelte.test.ts @@ -35,10 +35,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "gasPrice", { @@ -96,10 +92,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "gasPrice", { diff --git a/packages/svelte/src/hooks/useReadContract.svelte.test.ts b/packages/svelte/src/hooks/useReadContract.svelte.test.ts index a581fb19e9..dae24c73de 100644 --- a/packages/svelte/src/hooks/useReadContract.svelte.test.ts +++ b/packages/svelte/src/hooks/useReadContract.svelte.test.ts @@ -41,10 +41,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "readContract", { @@ -102,10 +98,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "readContract", { @@ -164,10 +156,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "readContract", { diff --git a/packages/svelte/src/hooks/useReadContracts.svelte.test.ts b/packages/svelte/src/hooks/useReadContracts.svelte.test.ts index c395733b29..d3f20456a3 100644 --- a/packages/svelte/src/hooks/useReadContracts.svelte.test.ts +++ b/packages/svelte/src/hooks/useReadContracts.svelte.test.ts @@ -59,10 +59,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "readContracts", { @@ -204,10 +200,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "readContracts", { diff --git a/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts index b993fbecc6..1807b1d2c3 100644 --- a/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts +++ b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts @@ -54,10 +54,6 @@ test( "isRefetching": false, "isStale": true, "isSuccess": true, - "promise": Promise { - "reason": [Error: experimental_prefetchInRender feature flag is not enabled], - "status": "rejected", - }, "queryKey": [ "waitForTransactionReceipt", { diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts index 79cece4ef5..84664ba5a5 100644 --- a/packages/svelte/vite.config.ts +++ b/packages/svelte/vite.config.ts @@ -12,7 +12,7 @@ export default defineConfig({ environment: 'happy-dom', testTimeout: 20_000, setupFiles: ['./test/setup.ts', '../test/src/setup.ts'], - globalSetup: ['../test/src/globalSetup.ts'], + // globalSetup: ['../test/src/globalSetup.ts'], expect: { poll: { timeout: 10_000, diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 21f5a677b8..c68e09ea8b 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -69,6 +69,7 @@ export default defineWorkspace([ }, resolve: { alias }, }, + './packages/svelte', { test: { name: 'react-register', From fe4fcc519aa1584f9ebdf2497b30dd165b8e80a5 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 16:56:50 -0800 Subject: [PATCH 68/71] test: remove duplicate setup files from svelte local config --- packages/svelte/vite.config.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts index 84664ba5a5..66d24534c8 100644 --- a/packages/svelte/vite.config.ts +++ b/packages/svelte/vite.config.ts @@ -11,8 +11,7 @@ export default defineConfig({ include: ['./src/**/*.test.ts'], environment: 'happy-dom', testTimeout: 20_000, - setupFiles: ['./test/setup.ts', '../test/src/setup.ts'], - // globalSetup: ['../test/src/globalSetup.ts'], + setupFiles: ['./test/setup.ts'], expect: { poll: { timeout: 10_000, From ffb16a13d92ebffbc8c75e8dbfd933d1cade8ca2 Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 11 Nov 2024 20:07:37 -0800 Subject: [PATCH 69/71] test: move testing system to @wagmi/test/svelte --- package.json | 2 +- .../src/hooks/useAccount.svelte.test.ts | 2 +- .../src/hooks/useAccountEffect.svelte.test.ts | 21 +++++++++++++------ .../src/hooks/useBalance.svelte.test.ts | 4 ++-- .../src/hooks/useBlockNumber.svelte.test.ts | 17 +++++---------- .../src/hooks/useChainId.svelte.test.ts | 2 +- .../svelte/src/hooks/useChains.svelte.test.ts | 2 +- .../svelte/src/hooks/useConfig.svelte.test.ts | 2 +- .../src/hooks/useConnect.svelte.test.ts | 2 +- .../src/hooks/useConnections.svelte.test.ts | 2 +- .../src/hooks/useConnectors.svelte.test.ts | 2 +- .../src/hooks/useDisconnect.svelte.test.ts | 2 +- .../src/hooks/useEnsAvatar.svelte.test.ts | 2 +- .../src/hooks/useEnsName.svelte.test.ts | 2 +- .../src/hooks/useGasPrice.svelte.test.ts | 2 +- .../src/hooks/useReadContract.svelte.test.ts | 2 +- .../src/hooks/useReadContracts.svelte.test.ts | 2 +- .../hooks/useSendTransaction.svelte.test.ts | 2 +- .../src/hooks/useSignMessage.svelte.test.ts | 2 +- .../src/hooks/useSwitchAccount.svelte.test.ts | 2 +- .../src/hooks/useSwitchChain.svelte.test.ts | 2 +- ...seWaitForTransactionReceipt.svelte.test.ts | 2 +- .../hooks/useWatchBlockNumber.svelte.test.ts | 2 +- .../src/hooks/useWriteContract.svelte.test.ts | 2 +- packages/test/package.json | 15 +++++++++++-- .../src/exports/svelte.svelte.ts} | 16 ++++++++++---- pnpm-lock.yaml | 19 +++++++++++++++++ 27 files changed, 87 insertions(+), 47 deletions(-) rename packages/{svelte/src/hooks/test.svelte.ts => test/src/exports/svelte.svelte.ts} (73%) diff --git a/package.json b/package.json index 46d0adb649..c2876508c3 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "test:update": "vitest --update", "test:ui": "vitest --ui", "test:vue": "vitest --project @wagmi/vue", - "test:svelte": "pnpm --filter svelte test", + "test:svelte": "vitest --project @wagmi/svelte", "version:update": "bun scripts/updateVersion.ts", "version:update:viem": "bun scripts/updateViemVersion.ts" }, diff --git a/packages/svelte/src/hooks/useAccount.svelte.test.ts b/packages/svelte/src/hooks/useAccount.svelte.test.ts index 236226a889..eb8a6599fa 100644 --- a/packages/svelte/src/hooks/useAccount.svelte.test.ts +++ b/packages/svelte/src/hooks/useAccount.svelte.test.ts @@ -1,7 +1,7 @@ import { connect, disconnect } from '@wagmi/core' import { config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useAccount } from './useAccount.svelte.js' test( diff --git a/packages/svelte/src/hooks/useAccountEffect.svelte.test.ts b/packages/svelte/src/hooks/useAccountEffect.svelte.test.ts index f44ec0b250..b11b554585 100644 --- a/packages/svelte/src/hooks/useAccountEffect.svelte.test.ts +++ b/packages/svelte/src/hooks/useAccountEffect.svelte.test.ts @@ -1,8 +1,15 @@ import { mock } from '@wagmi/connectors' -import { http, connect, createConfig, disconnect } from '@wagmi/core' +import { + http, + connect, + createConfig, + disconnect, + getAccount, + reconnect, +} from '@wagmi/core' import { accounts, chain, config, wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test, vi } from 'vitest' -import { testHook } from './test.svelte.js' import { useAccountEffect } from './useAccountEffect.svelte' import { useConnect } from './useConnect.svelte' import { useDisconnect } from './useDisconnect.svelte' @@ -68,11 +75,13 @@ test( useAccountEffect(() => ({ onConnect })) - await vi.waitFor(() => { - expect(onConnect).toBeCalledTimes(1) - }) + await reconnect(newConfig) + + await connect(newConfig, { connector: mockConnector }) + + await expect.poll(() => onConnect).toHaveBeenCalledOnce() }, - { mockConfigOverride: newConfig }, + { mockConfigOverride: newConfig, reconnectOnMount: true }, async () => { await connect(newConfig, { connector: mockConnector }) }, diff --git a/packages/svelte/src/hooks/useBalance.svelte.test.ts b/packages/svelte/src/hooks/useBalance.svelte.test.ts index c97b59c7f2..b9f4edd56a 100644 --- a/packages/svelte/src/hooks/useBalance.svelte.test.ts +++ b/packages/svelte/src/hooks/useBalance.svelte.test.ts @@ -1,8 +1,8 @@ import { accounts, chain, testClient, wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { flushSync } from 'svelte' import { type Address, parseEther } from 'viem' import { beforeEach, expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useBalance } from './useBalance.svelte.js' const address = accounts[0] @@ -235,7 +235,7 @@ test( test( 'behavior: address: undefined -> defined', testHook(async () => { - let address: Address | undefined = undefined + let address: Address | undefined = $state(undefined) const result = $derived.by(useBalance(() => ({ address }))) expect(result).toMatchInlineSnapshot(` diff --git a/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts b/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts index be86097d80..9632fc5953 100644 --- a/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts +++ b/packages/svelte/src/hooks/useBlockNumber.svelte.test.ts @@ -1,7 +1,8 @@ -import { testClient } from '@wagmi/test' +import { getBlockNumber } from '@wagmi/core' +import { config, testClient, wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { flushSync } from 'svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useBlockNumber } from './useBlockNumber.svelte.js' test( @@ -65,18 +66,10 @@ test( expect(result.data).toMatchInlineSnapshot('19258213n') await testClient.mainnet.mine({ blocks: 1 }) - await expect - .poll(() => { - result.data - }) - .toEqual(blockNumber + 1n) + await expect.poll(() => result.data).toEqual(blockNumber + 1n) await testClient.mainnet.mine({ blocks: 1 }) - await expect - .poll(() => { - result.data - }) - .toEqual(blockNumber + 2n) + await expect.poll(() => result.data).toEqual(blockNumber + 2n) }, {}, async () => { diff --git a/packages/svelte/src/hooks/useChainId.svelte.test.ts b/packages/svelte/src/hooks/useChainId.svelte.test.ts index 5705ceb5b8..ce0b39a0c4 100644 --- a/packages/svelte/src/hooks/useChainId.svelte.test.ts +++ b/packages/svelte/src/hooks/useChainId.svelte.test.ts @@ -1,7 +1,7 @@ import { config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { flushSync } from 'svelte' import { expect, test, vi } from 'vitest' -import { testHook } from './test.svelte.js' import { useChainId } from './useChainId.svelte.js' test( diff --git a/packages/svelte/src/hooks/useChains.svelte.test.ts b/packages/svelte/src/hooks/useChains.svelte.test.ts index 81e948cc09..c0bf1b3654 100644 --- a/packages/svelte/src/hooks/useChains.svelte.test.ts +++ b/packages/svelte/src/hooks/useChains.svelte.test.ts @@ -1,6 +1,6 @@ import { config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useChains } from './useChains.svelte.js' test( diff --git a/packages/svelte/src/hooks/useConfig.svelte.test.ts b/packages/svelte/src/hooks/useConfig.svelte.test.ts index 77b6293f46..767dcb5c1e 100644 --- a/packages/svelte/src/hooks/useConfig.svelte.test.ts +++ b/packages/svelte/src/hooks/useConfig.svelte.test.ts @@ -1,5 +1,5 @@ +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useConfig } from './useConfig.svelte.js' test( diff --git a/packages/svelte/src/hooks/useConnect.svelte.test.ts b/packages/svelte/src/hooks/useConnect.svelte.test.ts index 2ba6133270..f66392db68 100644 --- a/packages/svelte/src/hooks/useConnect.svelte.test.ts +++ b/packages/svelte/src/hooks/useConnect.svelte.test.ts @@ -1,7 +1,7 @@ import { disconnect } from '@wagmi/core' import { config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { afterEach, expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useAccount } from './useAccount.svelte.js' import { useConnect } from './useConnect.svelte.js' diff --git a/packages/svelte/src/hooks/useConnections.svelte.test.ts b/packages/svelte/src/hooks/useConnections.svelte.test.ts index 4c67e1e222..e1a75df810 100644 --- a/packages/svelte/src/hooks/useConnections.svelte.test.ts +++ b/packages/svelte/src/hooks/useConnections.svelte.test.ts @@ -1,8 +1,8 @@ import { connect } from '@wagmi/core' import { config, wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { flushSync } from 'svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useConnections } from './useConnections.svelte.js' test( diff --git a/packages/svelte/src/hooks/useConnectors.svelte.test.ts b/packages/svelte/src/hooks/useConnectors.svelte.test.ts index e933fedc5a..3f601c47ca 100644 --- a/packages/svelte/src/hooks/useConnectors.svelte.test.ts +++ b/packages/svelte/src/hooks/useConnectors.svelte.test.ts @@ -1,7 +1,7 @@ import { mock } from '@wagmi/connectors' import { accounts, config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useConnectors } from './useConnectors.svelte.js' test( diff --git a/packages/svelte/src/hooks/useDisconnect.svelte.test.ts b/packages/svelte/src/hooks/useDisconnect.svelte.test.ts index efaede1173..d4d76edb4c 100644 --- a/packages/svelte/src/hooks/useDisconnect.svelte.test.ts +++ b/packages/svelte/src/hooks/useDisconnect.svelte.test.ts @@ -1,7 +1,7 @@ import { connect } from '@wagmi/core' import { config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { beforeEach, expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useAccount } from './useAccount.svelte.js' import { useDisconnect } from './useDisconnect.svelte.js' diff --git a/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts b/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts index abc36e1320..13505179b4 100644 --- a/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts +++ b/packages/svelte/src/hooks/useEnsAvatar.svelte.test.ts @@ -1,5 +1,5 @@ +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useEnsAvatar } from './useEnsAvatar.svelte.js' test( diff --git a/packages/svelte/src/hooks/useEnsName.svelte.test.ts b/packages/svelte/src/hooks/useEnsName.svelte.test.ts index 8dd3be947f..3f9fc6e3bf 100644 --- a/packages/svelte/src/hooks/useEnsName.svelte.test.ts +++ b/packages/svelte/src/hooks/useEnsName.svelte.test.ts @@ -1,5 +1,5 @@ +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useEnsName } from './useEnsName.svelte' test( diff --git a/packages/svelte/src/hooks/useGasPrice.svelte.test.ts b/packages/svelte/src/hooks/useGasPrice.svelte.test.ts index c62cb842e5..b09ac5bd5a 100644 --- a/packages/svelte/src/hooks/useGasPrice.svelte.test.ts +++ b/packages/svelte/src/hooks/useGasPrice.svelte.test.ts @@ -1,6 +1,6 @@ import { chain, testClient } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useGasPrice } from './useGasPrice.svelte' test( diff --git a/packages/svelte/src/hooks/useReadContract.svelte.test.ts b/packages/svelte/src/hooks/useReadContract.svelte.test.ts index dae24c73de..c9b040ce10 100644 --- a/packages/svelte/src/hooks/useReadContract.svelte.test.ts +++ b/packages/svelte/src/hooks/useReadContract.svelte.test.ts @@ -1,6 +1,6 @@ import { abi, address, bytecode, chain, config, wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useReadContract } from './useReadContract.svelte.js' test( diff --git a/packages/svelte/src/hooks/useReadContracts.svelte.test.ts b/packages/svelte/src/hooks/useReadContracts.svelte.test.ts index d3f20456a3..0cb49b10a0 100644 --- a/packages/svelte/src/hooks/useReadContracts.svelte.test.ts +++ b/packages/svelte/src/hooks/useReadContracts.svelte.test.ts @@ -1,6 +1,6 @@ import { abi, address, chain } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useReadContracts } from './useReadContracts.svelte.js' test( diff --git a/packages/svelte/src/hooks/useSendTransaction.svelte.test.ts b/packages/svelte/src/hooks/useSendTransaction.svelte.test.ts index ae6ad4e717..7680628516 100644 --- a/packages/svelte/src/hooks/useSendTransaction.svelte.test.ts +++ b/packages/svelte/src/hooks/useSendTransaction.svelte.test.ts @@ -3,7 +3,7 @@ import { config, transactionHashRegex } from '@wagmi/test' import { parseEther } from 'viem' import { expect, test } from 'vitest' -import { setups, teardowns, testHook } from './test.svelte.js' +import { setups, teardowns, testHook } from '@wagmi/test/svelte' import { useSendTransaction } from './useSendTransaction.svelte' test( diff --git a/packages/svelte/src/hooks/useSignMessage.svelte.test.ts b/packages/svelte/src/hooks/useSignMessage.svelte.test.ts index 09d7da572e..5211bbf714 100644 --- a/packages/svelte/src/hooks/useSignMessage.svelte.test.ts +++ b/packages/svelte/src/hooks/useSignMessage.svelte.test.ts @@ -3,8 +3,8 @@ import { config, privateKey, wait } from '@wagmi/test' import { recoverMessageAddress } from 'viem' import { expect, test, vi } from 'vitest' +import { setups, teardowns, testHook } from '@wagmi/test/svelte' import { privateKeyToAccount } from 'viem/accounts' -import { setups, teardowns, testHook } from './test.svelte.js' import { useSignMessage } from './useSignMessage.svelte' test( diff --git a/packages/svelte/src/hooks/useSwitchAccount.svelte.test.ts b/packages/svelte/src/hooks/useSwitchAccount.svelte.test.ts index 0cf4aebf45..7ecc1f05fa 100644 --- a/packages/svelte/src/hooks/useSwitchAccount.svelte.test.ts +++ b/packages/svelte/src/hooks/useSwitchAccount.svelte.test.ts @@ -1,7 +1,7 @@ import { connect, disconnect } from '@wagmi/core' import { config } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useAccount } from './useAccount.svelte.js' import { useSwitchAccount } from './useSwitchAccount.svelte.js' diff --git a/packages/svelte/src/hooks/useSwitchChain.svelte.test.ts b/packages/svelte/src/hooks/useSwitchChain.svelte.test.ts index 30b380c97e..7ffa3bbbe8 100644 --- a/packages/svelte/src/hooks/useSwitchChain.svelte.test.ts +++ b/packages/svelte/src/hooks/useSwitchChain.svelte.test.ts @@ -1,6 +1,6 @@ import { chain, config, wait } from '@wagmi/test' +import { setups, teardowns, testHook } from '@wagmi/test/svelte' import { expect, test, vi } from 'vitest' -import { setups, teardowns, testHook } from './test.svelte.js' import { useAccount } from './useAccount.svelte.js' import { useSwitchChain } from './useSwitchChain.svelte.js' diff --git a/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts index 1807b1d2c3..b051c326f6 100644 --- a/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts +++ b/packages/svelte/src/hooks/useWaitForTransactionReceipt.svelte.test.ts @@ -1,6 +1,6 @@ import { wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test, vi } from 'vitest' -import { testHook } from './test.svelte.js' import { useWaitForTransactionReceipt } from './useWaitForTransactionReceipt.svelte' test( diff --git a/packages/svelte/src/hooks/useWatchBlockNumber.svelte.test.ts b/packages/svelte/src/hooks/useWatchBlockNumber.svelte.test.ts index 2b1dcefd9a..f1f39e4fb1 100644 --- a/packages/svelte/src/hooks/useWatchBlockNumber.svelte.test.ts +++ b/packages/svelte/src/hooks/useWatchBlockNumber.svelte.test.ts @@ -1,6 +1,6 @@ import { testClient, wait } from '@wagmi/test' +import { testHook } from '@wagmi/test/svelte' import { expect, test } from 'vitest' -import { testHook } from './test.svelte.js' import { useWatchBlockNumber } from './useWatchBlockNumber.svelte.js' test( diff --git a/packages/svelte/src/hooks/useWriteContract.svelte.test.ts b/packages/svelte/src/hooks/useWriteContract.svelte.test.ts index 0c14e0736d..3a25342a6a 100644 --- a/packages/svelte/src/hooks/useWriteContract.svelte.test.ts +++ b/packages/svelte/src/hooks/useWriteContract.svelte.test.ts @@ -1,7 +1,7 @@ import { abi, address, config } from '@wagmi/test' import { expect, test } from 'vitest' -import { setups, teardowns, testHook } from './test.svelte.js' +import { setups, teardowns, testHook } from '@wagmi/test/svelte' import { useWriteContract } from './useWriteContract.svelte' test( diff --git a/packages/test/package.json b/packages/test/package.json index 674afca5c1..d09b2e0fa8 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -22,7 +22,8 @@ "!src/**/*.test.ts", "!src/**/*.test-d.ts", "react/**", - "vue/**" + "vue/**", + "svelte/**" ], "sideEffects": false, "type": "module", @@ -42,16 +43,22 @@ "types": "./dist/types/exports/vue.d.ts", "default": "./dist/esm/exports/vue.js" }, + "./svelte": { + "types": "./dist/types/exports/svelte.svelte.d.ts", + "default": "./dist/esm/exports/svelte.svelte.js" + }, "./package.json": "./package.json" }, "typesVersions": { "*": { "react": ["./dist/types/exports/react.d.ts"], - "vue": ["./dist/types/exports/vue.d.ts"] + "vue": ["./dist/types/exports/vue.d.ts"], + "svelte": ["./dist/types/exports/svelte.svelte.d.ts"] } }, "peerDependencies": { "@tanstack/react-query": ">=5.0.0", + "@tanstack/svelte-query": "^5.59.20", "@tanstack/vue-query": ">=5.0.0", "@testing-library/react": ">=14.0.0", "@types/react": ">=18", @@ -73,6 +80,9 @@ "@tanstack/vue-query": { "optional": true }, + "@tanstack/svelte-query": { + "optional": true + }, "@testing-library/react": { "optional": true }, @@ -100,6 +110,7 @@ }, "devDependencies": { "@tanstack/react-query": ">=5.45.1", + "@tanstack/svelte-query": "^5.59.20", "@tanstack/vue-query": ">=5.45.0", "@testing-library/dom": "^10.4.0", "@testing-library/react": ">=16.0.1", diff --git a/packages/svelte/src/hooks/test.svelte.ts b/packages/test/src/exports/svelte.svelte.ts similarity index 73% rename from packages/svelte/src/hooks/test.svelte.ts rename to packages/test/src/exports/svelte.svelte.ts index 34d4273d98..a5ac75b0b0 100644 --- a/packages/svelte/src/hooks/test.svelte.ts +++ b/packages/test/src/exports/svelte.svelte.ts @@ -1,11 +1,12 @@ import { QueryClient } from '@tanstack/svelte-query' -import { type Config, connect, disconnect } from '@wagmi/core' -import { config } from '@wagmi/test' -import { onTestFinished, vi } from 'vitest' +import { type Config, connect, disconnect, hydrate } from '@wagmi/core' +import { vi } from 'vitest' +import { config } from '../config.js' type TestHookOptions = { shouldMockConfig?: boolean mockConfigOverride?: Config + reconnectOnMount?: boolean } const noop = () => {} @@ -32,9 +33,10 @@ export const testHook = teardown: () => void = noop, ) => async () => { + const queryClient = new QueryClient() const svelte = await import('svelte') svelte.getContext = vi.fn((key: any) => { - if (key === '$$_queryClient') return new QueryClient() + if (key === '$$_queryClient') return queryClient if (key === '$$_isRestoring') return () => false if (options.shouldMockConfig ?? true) { @@ -42,8 +44,14 @@ export const testHook = } return undefined + }) as (key: any) => T // match type signature of svelte.getContext + + const { onMount } = hydrate(config, { + reconnectOnMount: options.reconnectOnMount ?? false, }) + await onMount() + await Promise.resolve(setup()) let promise: Promise | void diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 121ac0bb39..56419b80f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -348,6 +348,9 @@ importers: '@tanstack/react-query': specifier: '>=5.45.1' version: 5.49.2(react@18.3.1) + '@tanstack/svelte-query': + specifier: ^5.59.20 + version: 5.59.20(svelte@5.0.5) '@tanstack/vue-query': specifier: '>=5.45.0' version: 5.49.1(vue@3.4.27(typescript@5.5.4)) @@ -2658,6 +2661,9 @@ packages: '@tanstack/query-core@5.49.1': resolution: {integrity: sha512-JnC9ndmD1KKS01Rt/ovRUB1tmwO7zkyXAyIxN9mznuJrcNtOrkmOnQqdJF2ib9oHzc2VxHomnEG7xyfo54Npkw==} + '@tanstack/query-core@5.59.20': + resolution: {integrity: sha512-e8vw0lf7KwfGe1if4uPFhvZRWULqHjFcz3K8AebtieXvnMOz5FSzlZe3mTLlPuUBcydCnBRqYs2YJ5ys68wwLg==} + '@tanstack/query-core@https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8': resolution: {tarball: https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8} version: 5.56.2 @@ -2690,6 +2696,11 @@ packages: peerDependencies: react: ^18.0.0 + '@tanstack/svelte-query@5.59.20': + resolution: {integrity: sha512-DFRTz9i6OXIF+o4GFDRF4g3Q6BSBKWxoahZPcPbCAdXAS4NRhTnVFR4HgEtzlhfoQx8yMJsLXMhDiGUw365HsA==} + peerDependencies: + svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 + '@tanstack/svelte-query@https://pkg.pr.new/@tanstack/svelte-query@ccce0b8': resolution: {tarball: https://pkg.pr.new/@tanstack/svelte-query@ccce0b8} version: 5.56.2 @@ -3634,6 +3645,7 @@ packages: bun@1.1.29: resolution: {integrity: sha512-SKhpyKNZtgxrVel9ec9xon3LDv8mgpiuFhARgcJo1YIbggY2PBrKHRNiwQ6Qlb+x3ivmRurfuwWgwGexjpgBRg==} + cpu: [arm64, x64] os: [darwin, linux, win32] hasBin: true @@ -10795,6 +10807,8 @@ snapshots: '@tanstack/query-core@5.49.1': {} + '@tanstack/query-core@5.59.20': {} + '@tanstack/query-core@https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8': {} '@tanstack/query-devtools@5.0.5': {} @@ -10827,6 +10841,11 @@ snapshots: '@tanstack/query-core': 5.49.1 react: 18.3.1 + '@tanstack/svelte-query@5.59.20(svelte@5.0.5)': + dependencies: + '@tanstack/query-core': 5.59.20 + svelte: 5.0.5 + '@tanstack/svelte-query@https://pkg.pr.new/@tanstack/svelte-query@ccce0b8(svelte@5.0.5)': dependencies: '@tanstack/query-core': https://pkg.pr.new/TanStack/query/@tanstack/query-core@ccce0b8 From bd3b925f73392792ea2b69004cbdac2c18a4eadc Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Tue, 12 Nov 2024 17:35:20 -0800 Subject: [PATCH 70/71] docs: correct installation instructions to install @wagmi/svelte --- site/svelte/getting-started.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/svelte/getting-started.md b/site/svelte/getting-started.md index 251ad9a7e9..dd61841f00 100644 --- a/site/svelte/getting-started.md +++ b/site/svelte/getting-started.md @@ -17,19 +17,19 @@ To manually add Wagmi to your project, install the required packages. ::: code-group ```bash-vue [pnpm] -pnpm add wagmi viem@{{viemVersion}} {{tanstackQuery}} +pnpm add @wagmi/svelte viem@{{viemVersion}} {{tanstackQuery}} ``` ```bash-vue [npm] -npm install wagmi viem@{{viemVersion}} {{tanstackQuery}} +npm install @wagmi/svelte viem@{{viemVersion}} {{tanstackQuery}} ``` ```bash-vue [yarn] -yarn add wagmi viem@{{viemVersion}} {{tanstackQuery}} +yarn add @wagmi/svelte viem@{{viemVersion}} {{tanstackQuery}} ``` ```bash-vue [bun] -bun add wagmi viem@{{viemVersion}} {{tanstackQuery}} +bun add @wagmi/svelte viem@{{viemVersion}} {{tanstackQuery}} ``` ::: From c489000d9cc79f577548875d028263b484ce23fb Mon Sep 17 00:00:00 2001 From: ByteAtATime Date: Mon, 18 Nov 2024 15:23:09 -0800 Subject: [PATCH 71/71] deps: update pnpm-lock.yaml --- pnpm-lock.yaml | 46 +++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 424288b711..a01b9087e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4058,7 +4058,6 @@ packages: bun@1.1.29: resolution: {integrity: sha512-SKhpyKNZtgxrVel9ec9xon3LDv8mgpiuFhARgcJo1YIbggY2PBrKHRNiwQ6Qlb+x3ivmRurfuwWgwGexjpgBRg==} - cpu: [arm64, x64] os: [darwin, linux, win32] hasBin: true @@ -4346,7 +4345,6 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -8228,18 +8226,6 @@ packages: terser: optional: true - - vitefu@1.0.3: - resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - - vitepress@1.1.4: - resolution: {integrity: sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==} - vite@5.4.10: resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8271,6 +8257,14 @@ packages: terser: optional: true + vitefu@1.0.3: + resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + vitepress@1.5.0: resolution: {integrity: sha512-q4Q/G2zjvynvizdB3/bupdYkCJe2umSAMv9Ju4d92E6/NXJ59z70xB0q5p/4lpRyAwflDsbwy1mLV9Q5+nlB+g==} hasBin: true @@ -13457,9 +13451,8 @@ snapshots: cookie@0.5.0: {} - cookie@0.6.0: {} - + copy-anything@3.0.5: dependencies: is-what: 4.1.16 @@ -18218,23 +18211,6 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vitefu@1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): - optionalDependencies: - vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) - - vitepress@1.1.4(@algolia/client-search@4.19.1)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.38)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): - dependencies: - '@docsearch/css': 3.6.0 - '@docsearch/js': 3.6.0(@algolia/client-search@4.19.1)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@shikijs/core': 1.4.0 - '@shikijs/transformers': 1.4.0 - '@types/markdown-it': 14.1.1 - '@vitejs/plugin-vue': 5.0.4(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0))(vue@3.4.27(typescript@5.6.1-rc)) - '@vue/devtools-api': 7.1.3(vue@3.4.27(typescript@5.6.1-rc)) - '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.6.1-rc)) - '@vueuse/integrations': 10.9.0(change-case@5.4.4)(focus-trap@7.5.4)(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.4.27(typescript@5.6.1-rc)) - focus-trap: 7.5.4 - vite@5.4.10(@types/node@20.12.10)(terser@5.31.0): dependencies: esbuild: 0.21.5 @@ -18245,6 +18221,10 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 + vitefu@1.0.3(vite@5.2.11(@types/node@20.12.10)(terser@5.31.0)): + optionalDependencies: + vite: 5.2.11(@types/node@20.12.10)(terser@5.31.0) + vitepress@1.5.0(@algolia/client-search@5.12.0)(@types/node@20.12.10)(@types/react@18.3.1)(change-case@5.4.4)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.0)(typescript@5.6.1-rc): dependencies: '@docsearch/css': 3.6.3