From de222dd0ac8e9b998f27bc67807d2135f17aff98 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 12:04:26 +0100 Subject: [PATCH 01/10] test: move store ts tests to root --- .gitignore | 4 +- package.json | 7 +- packages/config/src/exports/internal.ts | 1 + packages/store/package.json | 4 +- packages/store/ts/protocolVersions.test.ts | 4 +- packages/store/vitest.config.ts | 7 - packages/world-modules/package.json | 1 - packages/world/package.json | 1 - pnpm-lock.yaml | 680 ++++++++++++++++-- pnpm-workspace.yaml | 3 +- test-setup/anvil.ts | 18 + test-setup/common.ts | 23 + test-setup/global/anvil.ts | 19 + .../global/arktype.ts | 0 test-setup/mockGame.ts | 35 + vitest.config.ts | 18 + 16 files changed, 738 insertions(+), 87 deletions(-) delete mode 100644 packages/store/vitest.config.ts create mode 100644 test-setup/anvil.ts create mode 100644 test-setup/common.ts create mode 100644 test-setup/global/anvil.ts rename packages/store/vitestSetup.ts => test-setup/global/arktype.ts (100%) create mode 100644 test-setup/mockGame.ts create mode 100644 vitest.config.ts diff --git a/.gitignore b/.gitignore index 92fad4b3ce..610cfff0db 100644 --- a/.gitignore +++ b/.gitignore @@ -5,11 +5,11 @@ node_modules package-lock.json yarn.lock +*.log + .eslintcache .parcel-cache .docs -lerna-debug.log -yarn-error.log .turbo .attest .tstrace diff --git a/package.json b/package.json index bf62be8e93..a233f5069e 100644 --- a/package.json +++ b/package.json @@ -42,9 +42,10 @@ "@types/node": "^18.15.11", "@typescript-eslint/eslint-plugin": "7.1.1", "@typescript-eslint/parser": "7.1.1", + "@viem/anvil": "^0.0.7", "chalk": "^5.2.0", "eslint": "8.57.0", - "execa": "^7.0.0", + "execa": "^9.4.0", "glob": "^10.4.2", "husky": ">=6", "lint-staged": "^15.2.10", @@ -54,7 +55,9 @@ "sort-package-json": "^2.10.1", "tsx": "4.16.2", "turbo": "^1.9.3", - "typescript": "5.4.2" + "typescript": "5.4.2", + "viem": "catalog:", + "vitest": "2.1.2" }, "packageManager": "pnpm@9.6.0", "engines": { diff --git a/packages/config/src/exports/internal.ts b/packages/config/src/exports/internal.ts index e69de29bb2..bf20023148 100644 --- a/packages/config/src/exports/internal.ts +++ b/packages/config/src/exports/internal.ts @@ -0,0 +1 @@ +// Nothing here yet. diff --git a/packages/store/package.json b/packages/store/package.json index f5fb1ade64..92cfbdefe5 100644 --- a/packages/store/package.json +++ b/packages/store/package.json @@ -72,13 +72,11 @@ "@latticexyz/abi-ts": "workspace:*", "@latticexyz/gas-report": "workspace:*", "@types/ejs": "^3.1.1", - "@types/mocha": "^9.1.1", "@types/node": "^18.15.11", "ds-test": "https://github.com/dapphub/ds-test.git#e282159d5170298eb2455a6c05280ab5a73a4ef0", "forge-std": "https://github.com/foundry-rs/forge-std.git#74cfb77e308dd188d2f58864aaf44963ae6b88b1", "solhint": "^3.3.7", "tsup": "^6.7.0", - "tsx": "^3.12.6", - "vitest": "0.34.6" + "tsx": "^3.12.6" } } diff --git a/packages/store/ts/protocolVersions.test.ts b/packages/store/ts/protocolVersions.test.ts index 5ea35f76be..d8072469db 100644 --- a/packages/store/ts/protocolVersions.test.ts +++ b/packages/store/ts/protocolVersions.test.ts @@ -19,7 +19,9 @@ import { protocolVersions } from "./protocolVersions"; const [, currentVersion] = fs.readFileSync(`${__dirname}/../src/version.sol`, "utf8").match(/VERSION = "(.*?)"/) ?? []; -const currentAbi = formatAbi(StoreAbi).sort((a, b) => a.localeCompare(b)); +const currentAbi = formatAbi(StoreAbi) + .slice() + .sort((a, b) => a.localeCompare(b)); describe("Store protocol version", () => { it("is up to date", async () => { diff --git a/packages/store/vitest.config.ts b/packages/store/vitest.config.ts deleted file mode 100644 index b6a66f2a98..0000000000 --- a/packages/store/vitest.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from "vitest/config"; - -export default defineConfig({ - test: { - globalSetup: "vitestSetup.ts", - }, -}); diff --git a/packages/world-modules/package.json b/packages/world-modules/package.json index 9134915252..f97180763b 100644 --- a/packages/world-modules/package.json +++ b/packages/world-modules/package.json @@ -54,7 +54,6 @@ "@latticexyz/cli": "workspace:*", "@latticexyz/gas-report": "workspace:*", "@types/ejs": "^3.1.1", - "@types/mocha": "^9.1.1", "@types/node": "^18.15.11", "ds-test": "https://github.com/dapphub/ds-test.git#e282159d5170298eb2455a6c05280ab5a73a4ef0", "forge-std": "https://github.com/foundry-rs/forge-std.git#74cfb77e308dd188d2f58864aaf44963ae6b88b1", diff --git a/packages/world/package.json b/packages/world/package.json index da358eacc4..5442d5d7a8 100644 --- a/packages/world/package.json +++ b/packages/world/package.json @@ -75,7 +75,6 @@ "@latticexyz/gas-report": "workspace:*", "@types/debug": "^4.1.7", "@types/ejs": "^3.1.1", - "@types/mocha": "^9.1.1", "@types/node": "^18.15.11", "ds-test": "https://github.com/dapphub/ds-test.git#e282159d5170298eb2455a6c05280ab5a73a4ef0", "ejs": "^3.1.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 571ea0d785..9a1ed1cc35 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,9 @@ importers: '@typescript-eslint/parser': specifier: 7.1.1 version: 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@viem/anvil': + specifier: ^0.0.7 + version: 0.0.7(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10) chalk: specifier: ^5.2.0 version: 5.2.0 @@ -42,8 +45,8 @@ importers: specifier: 8.57.0 version: 8.57.0 execa: - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^9.4.0 + version: 9.4.0 glob: specifier: ^10.4.2 version: 10.4.2 @@ -74,6 +77,12 @@ importers: typescript: specifier: 5.4.2 version: 5.4.2 + viem: + specifier: 'catalog:' + version: 2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8) + vitest: + specifier: 2.1.2 + version: 2.1.2(@types/node@18.15.11)(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) packages/abi-ts: dependencies: @@ -104,7 +113,7 @@ importers: version: 17.0.23 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -132,7 +141,7 @@ importers: version: 4.1.7 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -271,7 +280,7 @@ importers: version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/74cfb77e308dd188d2f58864aaf44963ae6b88b1 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 @@ -326,7 +335,7 @@ importers: version: 0.0.7(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10) tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -354,7 +363,7 @@ importers: devDependencies: tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) packages/create-mud: dependencies: @@ -367,7 +376,7 @@ importers: version: 18.15.11 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) packages/dev-tools: dependencies: @@ -500,7 +509,7 @@ importers: version: 3.1.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@rainbow-me/rainbowkit': specifier: ^2.1.5 - version: 2.1.6(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) + version: 2.1.6(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) '@tanstack/react-query': specifier: ^5.51.3 version: 5.52.0(react@18.2.0) @@ -560,7 +569,7 @@ importers: version: 2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8) wagmi: specifier: 'catalog:' - version: 2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + version: 2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) yargs: specifier: ^17.7.1 version: 17.7.2 @@ -652,7 +661,7 @@ importers: version: 4.1.7 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 @@ -701,7 +710,7 @@ importers: version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/74cfb77e308dd188d2f58864aaf44963ae6b88b1 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -726,7 +735,7 @@ importers: devDependencies: tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -775,7 +784,7 @@ importers: version: 18.2.0(react@18.2.0) tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vite: specifier: ^4.3.6 version: 4.5.5(@types/node@20.12.12)(terser@5.33.0) @@ -812,7 +821,7 @@ importers: version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) type-fest: specifier: ^2.14.0 version: 2.14.0 @@ -837,7 +846,7 @@ importers: version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/74cfb77e308dd188d2f58864aaf44963ae6b88b1 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -846,7 +855,7 @@ importers: devDependencies: tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) packages/solhint-plugin-mud: dependencies: @@ -859,7 +868,7 @@ importers: version: 18.15.11 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) packages/stash: dependencies: @@ -902,7 +911,7 @@ importers: version: 18.2.0(react@18.2.0) tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -943,9 +952,6 @@ importers: '@types/ejs': specifier: ^3.1.1 version: 3.1.1 - '@types/mocha': - specifier: ^9.1.1 - version: 9.1.1 '@types/node': specifier: ^18.15.11 version: 18.15.11 @@ -960,13 +966,16 @@ importers: version: 3.3.7 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 +<<<<<<< HEAD vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) +======= +>>>>>>> 908c0e600 (move store ts test to monorepo root) packages/store-indexer: dependencies: @@ -1075,7 +1084,7 @@ importers: version: 8.2.2 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 @@ -1175,7 +1184,7 @@ importers: version: link:../../test/mock-game-contracts tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) vitest: specifier: 0.34.6 version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) @@ -1203,7 +1212,7 @@ importers: version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) packages/world: dependencies: @@ -1250,9 +1259,6 @@ importers: '@types/ejs': specifier: ^3.1.1 version: 3.1.1 - '@types/mocha': - specifier: ^9.1.1 - version: 9.1.1 '@types/node': specifier: ^18.15.11 version: 18.15.11 @@ -1273,7 +1279,7 @@ importers: version: 3.3.7 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 @@ -1313,7 +1319,7 @@ importers: version: 3.3.7 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 @@ -1354,9 +1360,6 @@ importers: '@types/ejs': specifier: ^3.1.1 version: 3.1.1 - '@types/mocha': - specifier: ^9.1.1 - version: 9.1.1 '@types/node': specifier: ^18.15.11 version: 18.15.11 @@ -1374,7 +1377,7 @@ importers: version: 3.3.7 tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.31)(typescript@5.4.2) + version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) tsx: specifier: ^3.12.6 version: 3.12.6 @@ -4490,6 +4493,86 @@ packages: resolution: {integrity: sha512-N13NRw3T2+6Xi9J//3CGLsK2OqC8NMme3d/YX+nh05K9YHWGcv8DycHJrqGScSP4T75o8IN6nqIMhVFU8ohg8w==} engines: {node: '>=14'} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + '@rushstack/eslint-patch@1.10.4': resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} @@ -4503,9 +4586,6 @@ packages: resolution: {integrity: sha512-Y0yAxRaB98LFp2Dm+ACZqBSdAmI3FlpH/LjxOZ94g/ouuDJecSq0iR26XZ5QDuEL8Rf+L4jBJaoDC08CD0KkJw==} engines: {node: '>=16'} - '@scure/base@1.1.6': - resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} - '@scure/base@1.1.8': resolution: {integrity: sha512-6CyAclxj3Nb0XT7GHK6K4zK6k2xJm6E4Ft0Ohjt4WgegiFUHEtFb2CGzmPmGBwoIhrLsqNLYfLr04Y1GePrzZg==} @@ -4518,6 +4598,9 @@ packages: '@scure/bip39@1.4.0': resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@sentry-internal/tracing@7.86.0': resolution: {integrity: sha512-b4dUsNWlPWRwakGwR7bhOkqiFlqQszH1hhVFwrm/8s3kqEBZ+E4CeIfCvuHBHQ1cM/fx55xpXX/BU163cy+3iQ==} engines: {node: '>=8'} @@ -4562,6 +4645,10 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@sinonjs/commons@2.0.0': resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} @@ -4932,6 +5019,9 @@ packages: '@types/emscripten@1.39.6': resolution: {integrity: sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/express-serve-static-core@4.17.41': resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} @@ -4995,9 +5085,6 @@ packages: '@types/mime@3.0.4': resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - '@types/mocha@9.1.1': - resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - '@types/ms@0.7.31': resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} @@ -5205,18 +5292,48 @@ packages: '@vitest/expect@0.34.6': resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + '@vitest/expect@2.1.2': + resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} + + '@vitest/mocker@2.1.2': + resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} + peerDependencies: + '@vitest/spy': 2.1.2 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.1.2': + resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} + '@vitest/runner@0.34.6': resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + '@vitest/runner@2.1.2': + resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==} + '@vitest/snapshot@0.34.6': resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + '@vitest/snapshot@2.1.2': + resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==} + '@vitest/spy@0.34.6': resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + '@vitest/spy@2.1.2': + resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} + '@vitest/utils@0.34.6': resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + '@vitest/utils@2.1.2': + resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} + '@wagmi/connectors@5.1.10': resolution: {integrity: sha512-ybgKV09PIhgUgQ4atXTs2KOy4Hevd6f972SXfx6HTgsnFXlzxzN6o0aWjhavZOYjvx5tjuL3+8Mgqo0R7uP5Cg==} peerDependencies: @@ -5591,6 +5708,10 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + ast-parents@0.0.1: resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} @@ -5853,6 +5974,10 @@ packages: resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -5882,6 +6007,10 @@ packages: check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -6296,6 +6425,10 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-equal@1.0.1: resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} @@ -6854,6 +6987,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + 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'} @@ -6915,6 +7051,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + execa@9.4.0: + resolution: {integrity: sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==} + engines: {node: ^18.19.0 || >=20.5.0} + execcli@5.0.6: resolution: {integrity: sha512-du+uy/Ew2P90PKjSHI89u/XuqVaBDzvaJ6ePn40JaOy7owFQNsYDbd5AoR5A559HEAb1i5HO22rJxtgVonf5Bg==} engines: {node: '>=8', npm: '>=4'} @@ -7021,6 +7161,10 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-entry-cache@5.0.1: resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} engines: {node: '>=4'} @@ -7246,6 +7390,10 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -7460,6 +7608,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} + engines: {node: '>=18.18.0'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -7749,6 +7901,10 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -7769,6 +7925,10 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-utf8@0.2.1: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} @@ -8321,6 +8481,9 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + lru-cache@10.3.0: resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} engines: {node: 14 || >=16.14} @@ -8653,6 +8816,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -8790,6 +8958,10 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -9102,6 +9274,10 @@ packages: pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} @@ -9111,6 +9287,9 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -9252,6 +9431,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + postgres@3.3.5: resolution: {integrity: sha512-+JD93VELV9gHkqpV5gdL5/70HdGtEw4/XE1S4BC8f1mcPmdib3K5XsKVbnR1XcAyC41zOnifJ+9YRKxdIsXiUw==} @@ -9845,6 +10028,11 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} @@ -10110,6 +10298,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 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.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} @@ -10306,6 +10498,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -10482,14 +10678,29 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinypool@0.7.0: resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} engines: {node: '>=14.0.0'} + tinypool@1.0.1: + resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + tinyspy@2.2.1: resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -10756,6 +10967,10 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unique-filename@2.0.1: resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -10935,6 +11150,11 @@ packages: engines: {node: '>=v14.18.0'} hasBin: true + vite-node@2.1.2: + resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + vite@4.5.5: resolution: {integrity: sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -10963,6 +11183,37 @@ packages: terser: optional: true + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} @@ -10994,6 +11245,31 @@ packages: webdriverio: optional: true + vitest@2.1.2: + resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.2 + '@vitest/ui': 2.1.2 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -11272,6 +11548,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + zod-validation-error@1.3.0: resolution: {integrity: sha512-4WoQnuWnj06kwKR4A+cykRxFmy+CTvwMQO5ogTXLiVx1AuvYYmMjixh7sbkSsQTr1Fvtss6d5kVz8PGeMPUQjQ==} engines: {node: '>=16.0.0'} @@ -13730,7 +14010,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.0': {} @@ -13758,7 +14038,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@koa/cors@4.0.0': dependencies: @@ -13890,7 +14170,7 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-native: 0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10) - '@metamask/sdk@0.28.2(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(utf-8-validate@5.0.10)': + '@metamask/sdk@0.28.2(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(utf-8-validate@5.0.10)': dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 @@ -13911,7 +14191,7 @@ snapshots: qrcode-terminal-nooctal: 0.12.1 react-native-webview: 11.26.1(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) + rollup-plugin-visualizer: 5.12.0(rollup@4.24.0) socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) util: 0.12.5 uuid: 8.3.2 @@ -13942,8 +14222,8 @@ snapshots: dependencies: '@ethereumjs/tx': 4.2.0 '@metamask/superstruct': 3.1.0 - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.6 + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.8 '@types/debug': 4.1.7 debug: 4.3.7 pony-cause: 2.1.11 @@ -13956,8 +14236,8 @@ snapshots: dependencies: '@ethereumjs/tx': 4.2.0 '@metamask/superstruct': 3.1.0 - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.6 + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.8 '@types/debug': 4.1.7 debug: 4.3.7 pony-cause: 2.1.11 @@ -14970,7 +15250,7 @@ snapshots: '@types/react': 18.2.22 '@types/react-dom': 18.2.7 - '@rainbow-me/rainbowkit@2.1.6(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))': + '@rainbow-me/rainbowkit@2.1.6(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))': dependencies: '@tanstack/react-query': 5.52.0(react@18.2.0) '@vanilla-extract/css': 1.15.5 @@ -14983,7 +15263,7 @@ snapshots: react-remove-scroll: 2.6.0(@types/react@18.2.22)(react@18.2.0) ua-parser-js: 1.0.38 viem: 2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8) - wagmi: 2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + wagmi: 2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) transitivePeerDependencies: - '@types/react' - babel-plugin-macros @@ -15292,6 +15572,54 @@ snapshots: '@remix-run/router@1.6.0': {} + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + '@rushstack/eslint-patch@1.10.4': {} '@safe-global/safe-apps-provider@0.18.3(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)': @@ -15316,26 +15644,26 @@ snapshots: '@safe-global/safe-gateway-typescript-sdk@3.22.2': {} - '@scure/base@1.1.6': {} - '@scure/base@1.1.8': {} '@scure/bip32@1.4.0': dependencies: '@noble/curves': 1.4.2 '@noble/hashes': 1.4.0 - '@scure/base': 1.1.6 + '@scure/base': 1.1.8 '@scure/bip39@1.3.0': dependencies: '@noble/hashes': 1.4.0 - '@scure/base': 1.1.6 + '@scure/base': 1.1.8 '@scure/bip39@1.4.0': dependencies: '@noble/hashes': 1.5.0 '@scure/base': 1.1.8 + '@sec-ant/readable-stream@0.4.1': {} + '@sentry-internal/tracing@7.86.0': dependencies: '@sentry/core': 7.86.0 @@ -15395,6 +15723,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@sinonjs/commons@2.0.0': dependencies: type-detect: 4.0.8 @@ -15913,6 +16243,8 @@ snapshots: '@types/emscripten@1.39.6': {} + '@types/estree@1.0.6': {} + '@types/express-serve-static-core@4.17.41': dependencies: '@types/node': 18.19.50 @@ -15993,8 +16325,6 @@ snapshots: '@types/mime@3.0.4': {} - '@types/mocha@9.1.1': {} - '@types/ms@0.7.31': {} '@types/node-forge@1.3.11': @@ -16274,32 +16604,72 @@ snapshots: '@vitest/utils': 0.34.6 chai: 4.5.0 + '@vitest/expect@2.1.2': + dependencies: + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 + chai: 5.1.1 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@18.15.11)(terser@5.33.0))': + dependencies: + '@vitest/spy': 2.1.2 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + vite: 5.4.8(@types/node@18.15.11)(terser@5.33.0) + + '@vitest/pretty-format@2.1.2': + dependencies: + tinyrainbow: 1.2.0 + '@vitest/runner@0.34.6': dependencies: '@vitest/utils': 0.34.6 p-limit: 4.0.0 pathe: 1.1.2 + '@vitest/runner@2.1.2': + dependencies: + '@vitest/utils': 2.1.2 + pathe: 1.1.2 + '@vitest/snapshot@0.34.6': dependencies: magic-string: 0.30.11 pathe: 1.1.2 pretty-format: 29.7.0 + '@vitest/snapshot@2.1.2': + dependencies: + '@vitest/pretty-format': 2.1.2 + magic-string: 0.30.11 + pathe: 1.1.2 + '@vitest/spy@0.34.6': dependencies: tinyspy: 2.2.1 + '@vitest/spy@2.1.2': + dependencies: + tinyspy: 3.0.2 + '@vitest/utils@0.34.6': dependencies: diff-sequences: 29.6.3 loupe: 2.3.7 pretty-format: 29.7.0 - '@wagmi/connectors@5.1.10(@types/react@18.2.22)(@wagmi/core@2.13.5(@tanstack/query-core@5.52.0)(@types/react@18.2.22)(react@18.2.0)(typescript@5.4.2)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': + '@vitest/utils@2.1.2': + dependencies: + '@vitest/pretty-format': 2.1.2 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + '@wagmi/connectors@5.1.10(@types/react@18.2.22)(@wagmi/core@2.13.5(@tanstack/query-core@5.52.0)(@types/react@18.2.22)(react@18.2.0)(typescript@5.4.2)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': dependencies: '@coinbase/wallet-sdk': 4.0.4 - '@metamask/sdk': 0.28.2(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(utf-8-validate@5.0.10) + '@metamask/sdk': 0.28.2(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8) '@wagmi/core': 2.13.5(@tanstack/query-core@5.52.0)(@types/react@18.2.22)(react@18.2.0)(typescript@5.4.2)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)) @@ -16953,6 +17323,8 @@ snapshots: assertion-error@1.1.0: {} + assertion-error@2.0.1: {} + ast-parents@0.0.1: {} ast-types-flow@0.0.8: {} @@ -17312,6 +17684,14 @@ snapshots: pathval: 1.1.1 type-detect: 4.1.0 + chai@5.1.1: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -17337,6 +17717,8 @@ snapshots: dependencies: get-func-name: 2.0.2 + check-error@2.1.1: {} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 @@ -17762,6 +18144,8 @@ snapshots: dependencies: type-detect: 4.1.0 + deep-eql@5.0.2: {} + deep-equal@1.0.1: {} deep-equal@2.2.3: @@ -18569,6 +18953,10 @@ snapshots: estraverse@5.3.0: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + esutils@2.0.3: {} etag@1.8.1: {} @@ -18670,6 +19058,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + execa@9.4.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.1.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + execcli@5.0.6: dependencies: argx: 4.0.4 @@ -18805,6 +19208,10 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-entry-cache@5.0.1: dependencies: flat-cache: 2.0.1 @@ -19026,6 +19433,11 @@ snapshots: get-stream@8.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-symbol-description@1.0.0: dependencies: call-bind: 1.0.2 @@ -19295,6 +19707,8 @@ snapshots: human-signals@5.0.0: {} + human-signals@8.0.0: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -19558,6 +19972,8 @@ snapshots: is-stream@3.0.0: {} + is-stream@4.0.1: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -19576,6 +19992,8 @@ snapshots: is-unicode-supported@0.1.0: {} + is-unicode-supported@2.1.0: {} + is-utf8@0.2.1: {} is-weakmap@2.0.2: {} @@ -20502,6 +20920,10 @@ snapshots: dependencies: get-func-name: 2.0.2 + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + lru-cache@10.3.0: {} lru-cache@10.4.3: {} @@ -20936,6 +21358,8 @@ snapshots: nanoid@3.3.6: {} + nanoid@3.3.7: {} + napi-build-utils@1.0.2: {} natural-compare@1.4.0: {} @@ -21059,6 +21483,11 @@ snapshots: dependencies: path-key: 4.0.0 + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + npmlog@6.0.2: dependencies: are-we-there-yet: 3.0.1 @@ -21381,6 +21810,8 @@ snapshots: pathval@1.1.1: {} + pathval@2.0.0: {} + peek-stream@1.1.3: dependencies: buffer-from: 1.1.2 @@ -21391,6 +21822,8 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.0: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -21494,12 +21927,12 @@ snapshots: optionalDependencies: postcss: 8.4.23 - postcss-load-config@3.1.4(postcss@8.4.31): + postcss-load-config@3.1.4(postcss@8.4.47): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.31 + postcss: 8.4.47 postcss-load-config@4.0.1(postcss@8.4.23): dependencies: @@ -21532,6 +21965,12 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.0.2 + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + postgres@3.3.5: {} preact@10.23.2: {} @@ -22105,14 +22544,14 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-visualizer@5.12.0(rollup@3.29.4): + rollup-plugin-visualizer@5.12.0(rollup@4.24.0): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 3.29.4 + rollup: 4.24.0 rollup@3.21.8: optionalDependencies: @@ -22122,6 +22561,28 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + rrweb-cssom@0.6.0: {} run-async@2.4.1: {} @@ -22440,6 +22901,8 @@ snapshots: source-map-js@1.0.2: {} + source-map-js@1.2.1: {} + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 @@ -22654,6 +23117,8 @@ snapshots: strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -22878,10 +23343,18 @@ snapshots: tinybench@2.9.0: {} + tinyexec@0.3.0: {} + tinypool@0.7.0: {} + tinypool@1.0.1: {} + + tinyrainbow@1.2.0: {} + tinyspy@2.2.1: {} + tinyspy@3.0.2: {} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -23004,7 +23477,7 @@ snapshots: - supports-color - ts-node - tsup@6.7.0(postcss@8.4.31)(typescript@5.4.2): + tsup@6.7.0(postcss@8.4.47)(typescript@5.4.2): dependencies: bundle-require: 4.0.1(esbuild@0.17.17) cac: 6.7.14 @@ -23014,14 +23487,14 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 3.1.4(postcss@8.4.31) + postcss-load-config: 3.1.4(postcss@8.4.47) resolve-from: 5.0.0 rollup: 3.21.8 source-map: 0.8.0-beta.0 sucrase: 3.32.0 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.4.31 + postcss: 8.4.47 typescript: 5.4.2 transitivePeerDependencies: - supports-color @@ -23177,6 +23650,8 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.3.0: {} + unique-filename@2.0.1: dependencies: unique-slug: 3.0.0 @@ -23337,6 +23812,23 @@ snapshots: - supports-color - terser + vite-node@2.1.2(@types/node@18.15.11)(terser@5.33.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7 + pathe: 1.1.2 + vite: 5.4.8(@types/node@18.15.11)(terser@5.33.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite@4.5.5(@types/node@18.19.50)(terser@5.33.0): dependencies: esbuild: 0.18.20 @@ -23357,6 +23849,19 @@ snapshots: fsevents: 2.3.3 terser: 5.33.0 +<<<<<<< HEAD +======= + vite@5.4.8(@types/node@18.15.11)(terser@5.33.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.0 + optionalDependencies: + '@types/node': 18.15.11 + fsevents: 2.3.3 + terser: 5.33.0 + +>>>>>>> 908c0e600 (move store ts test to monorepo root) vitest@0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0): dependencies: '@types/chai': 4.3.19 @@ -23394,16 +23899,51 @@ snapshots: - supports-color - terser + vitest@2.1.2(@types/node@18.15.11)(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0): + dependencies: + '@vitest/expect': 2.1.2 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@18.15.11)(terser@5.33.0)) + '@vitest/pretty-format': 2.1.2 + '@vitest/runner': 2.1.2 + '@vitest/snapshot': 2.1.2 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 + 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.4.8(@types/node@18.15.11)(terser@5.33.0) + vite-node: 2.1.2(@types/node@18.15.11)(terser@5.33.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 18.15.11 + jsdom: 22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vlq@1.0.1: {} w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 - wagmi@2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8): + wagmi@2.12.11(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.0(react@18.2.0))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8): dependencies: '@tanstack/react-query': 5.52.0(react@18.2.0) - '@wagmi/connectors': 5.1.10(@types/react@18.2.22)(@wagmi/core@2.13.5(@tanstack/query-core@5.52.0)(@types/react@18.2.22)(react@18.2.0)(typescript@5.4.2)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + '@wagmi/connectors': 5.1.10(@types/react@18.2.22)(@wagmi/core@2.13.5(@tanstack/query-core@5.52.0)(@types/react@18.2.22)(react@18.2.0)(typescript@5.4.2)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.3(@babel/core@7.25.2))(@types/react@18.2.22)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(typescript@5.4.2)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.24.0)(typescript@5.4.2)(utf-8-validate@5.0.10)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': 2.13.5(@tanstack/query-core@5.52.0)(@types/react@18.2.22)(react@18.2.0)(typescript@5.4.2)(viem@2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8)) react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) @@ -23448,7 +23988,7 @@ snapshots: webauthn-p256@0.0.5: dependencies: '@noble/curves': 1.4.2 - '@noble/hashes': 1.4.0 + '@noble/hashes': 1.5.0 webextension-polyfill@0.10.0: {} @@ -23722,6 +24262,8 @@ snapshots: yocto-queue@1.0.0: {} + yoctocolors@2.1.1: {} + zod-validation-error@1.3.0(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 07248c79f9..6f2a1dc3f7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,7 @@ packages: - packages/* - - test/* + - test/mock-game-contracts + - test/ts-benchmarks catalog: "@ark/attest": "0.12.1" diff --git a/test-setup/anvil.ts b/test-setup/anvil.ts new file mode 100644 index 0000000000..35d83f4304 --- /dev/null +++ b/test-setup/anvil.ts @@ -0,0 +1,18 @@ +import { beforeAll, beforeEach } from "vitest"; +import { testClient } from "./common"; + +// Some test suites deploy contracts in a `beforeAll` handler, so we restore chain state here. +beforeAll(async () => { + const state = await testClient.dumpState(); + return async (): Promise => { + await testClient.loadState({ state }); + }; +}); + +// Some tests execute transactions, so we restore chain state here. +beforeEach(async () => { + const state = await testClient.dumpState(); + return async (): Promise => { + await testClient.loadState({ state }); + }; +}); diff --git a/test-setup/common.ts b/test-setup/common.ts new file mode 100644 index 0000000000..5f24cf4266 --- /dev/null +++ b/test-setup/common.ts @@ -0,0 +1,23 @@ +import { createTestClient, http } from "viem"; + +export const anvilHost = "127.0.0.1"; +export const anvilPort = 8556; + +// ID of the current test worker. Used by the `@viem/anvil` proxy server. +export const poolId = Number(process.env.VITEST_POOL_ID ?? 1); + +export const anvilRpcUrl = `http://${anvilHost}:${anvilPort}/${poolId}`; + +export const testClient = createTestClient({ + mode: "anvil", + // TODO: if tests get slow, try switching to websockets? + transport: http(anvilRpcUrl), + pollingInterval: 10, +}); + +export async function snapshotAnvilState() { + const state = await testClient.dumpState(); + return async (): Promise => { + await testClient.loadState({ state }); + }; +} diff --git a/test-setup/global/anvil.ts b/test-setup/global/anvil.ts new file mode 100644 index 0000000000..f424fc5b0a --- /dev/null +++ b/test-setup/global/anvil.ts @@ -0,0 +1,19 @@ +import { startProxy as startAnvilProxy } from "@viem/anvil"; +import { anvilHost, anvilPort } from "../common"; +import { execa } from "execa"; + +export default async function globalSetup(): Promise<() => Promise> { + console.log("building mock game"); + await execa("pnpm", ["run", "build"], { + cwd: `${__dirname}/../../test/mock-game-contracts`, + }); + + const shutdownAnvilProxy = await startAnvilProxy({ + host: anvilHost, + port: anvilPort, + }); + + return async () => { + await shutdownAnvilProxy(); + }; +} diff --git a/packages/store/vitestSetup.ts b/test-setup/global/arktype.ts similarity index 100% rename from packages/store/vitestSetup.ts rename to test-setup/global/arktype.ts diff --git a/test-setup/mockGame.ts b/test-setup/mockGame.ts new file mode 100644 index 0000000000..e76172a1a5 --- /dev/null +++ b/test-setup/mockGame.ts @@ -0,0 +1,35 @@ +import { execa } from "execa"; +import { anvilRpcUrl } from "./common"; +import { Hex, isHex } from "viem"; +import config from "../test/mock-game-contracts/mud.config"; +import worldAbi from "../test/mock-game-contracts/out/IWorld.sol/IWorld.abi.json"; + +export { config, worldAbi }; + +export async function deployMockGame(): Promise { + console.log("deploying mock game to", anvilRpcUrl); + const { stdout, stderr } = await execa( + "pnpm", + // skip build because its slow and we do it in global setup + // if we don't skip build here, it regenerates ABIs which cause the tests to re-run (because we import the ABI here), which re-runs this deploy... + ["mud", "deploy", "--rpc", anvilRpcUrl, "--saveDeployment", "false", "--skipBuild"], + { + cwd: `${__dirname}/../test/mock-game-contracts`, + env: { + // anvil default account + PRIVATE_KEY: "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", + DEBUG: "mud:*", + }, + }, + ); + if (stderr) console.error(stderr); + if (stdout) console.log(stdout); + + const [, worldAddress] = stdout.match(/worldAddress: '(0x[0-9a-f]+)'/i) ?? []; + if (!isHex(worldAddress)) { + throw new Error("world address not found in output, did the deploy fail?"); + } + console.log("deployed mock game", worldAddress); + + return worldAddress; +} diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000000..f0ed65772f --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globalSetup: [`${__dirname}/test-setup/global/arktype.ts`, `${__dirname}/test-setup/global/anvil.ts`], + setupFiles: [`${__dirname}/test-setup/anvil.ts`], + // Temporarily set a low teardown timeout because anvil hangs otherwise + // Could move this timeout to anvil setup after https://github.com/wevm/anvil.js/pull/46 + teardownTimeout: 500, + hookTimeout: 15000, + }, + server: { + watch: { + // we build+import this file in test setup, which causes vitest to restart in a loop unless we ignore it here + ignored: ["**/mock-game-contracts/out/IWorld.sol/IWorld.abi.json"], + }, + }, +}); From 7a55058c2d26bb90bb7e99ddf6ef564130ad43fc Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 12:06:03 +0100 Subject: [PATCH 02/10] don't need this --- test-setup/anvil.ts | 18 ------------------ vitest.config.ts | 2 +- 2 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 test-setup/anvil.ts diff --git a/test-setup/anvil.ts b/test-setup/anvil.ts deleted file mode 100644 index 35d83f4304..0000000000 --- a/test-setup/anvil.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { beforeAll, beforeEach } from "vitest"; -import { testClient } from "./common"; - -// Some test suites deploy contracts in a `beforeAll` handler, so we restore chain state here. -beforeAll(async () => { - const state = await testClient.dumpState(); - return async (): Promise => { - await testClient.loadState({ state }); - }; -}); - -// Some tests execute transactions, so we restore chain state here. -beforeEach(async () => { - const state = await testClient.dumpState(); - return async (): Promise => { - await testClient.loadState({ state }); - }; -}); diff --git a/vitest.config.ts b/vitest.config.ts index f0ed65772f..07598d9eb1 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "vitest/config"; export default defineConfig({ test: { globalSetup: [`${__dirname}/test-setup/global/arktype.ts`, `${__dirname}/test-setup/global/anvil.ts`], - setupFiles: [`${__dirname}/test-setup/anvil.ts`], + setupFiles: [], // Temporarily set a low teardown timeout because anvil hangs otherwise // Could move this timeout to anvil setup after https://github.com/wevm/anvil.js/pull/46 teardownTimeout: 500, From fee996a8ddb0f83d81fe95e2eaff00eb5aa9ea53 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 12:07:56 +0100 Subject: [PATCH 03/10] fix lockfile --- pnpm-lock.yaml | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a1ed1cc35..dd7f3f9be3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,9 +6,21 @@ settings: catalogs: default: + '@ark/attest': + specifier: 0.12.1 + version: 0.12.1 + '@ark/util': + specifier: 0.2.2 + version: 0.2.2 '@wagmi/core': specifier: 2.13.5 version: 2.13.5 + abitype: + specifier: 1.0.6 + version: 1.0.6 + arktype: + specifier: 2.0.0-beta.6 + version: 2.0.0-beta.6 viem: specifier: 2.21.6 version: 2.21.6 @@ -815,10 +827,10 @@ importers: version: 8.3.4 jest: specifier: ^29.3.1 - version: 29.5.0(@types/node@20.12.12) + version: 29.5.0(@types/node@18.15.11) ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) + version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -970,12 +982,6 @@ importers: tsx: specifier: ^3.12.6 version: 3.12.6 -<<<<<<< HEAD - vitest: - specifier: 0.34.6 - version: 0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) -======= ->>>>>>> 908c0e600 (move store ts test to monorepo root) packages/store-indexer: dependencies: @@ -1206,10 +1212,10 @@ importers: version: 27.4.1 jest: specifier: ^29.3.1 - version: 29.5.0(@types/node@18.15.11) + version: 29.5.0(@types/node@20.12.12) ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) + version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -9438,9 +9444,6 @@ packages: postgres@3.3.5: resolution: {integrity: sha512-+JD93VELV9gHkqpV5gdL5/70HdGtEw4/XE1S4BC8f1mcPmdib3K5XsKVbnR1XcAyC41zOnifJ+9YRKxdIsXiUw==} - preact@10.23.2: - resolution: {integrity: sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==} - preact@10.24.0: resolution: {integrity: sha512-aK8Cf+jkfyuZ0ZZRG9FbYqwmEiGQ4y/PUO4SuTWoyWL244nZZh7bd5h2APd4rSNDYTBNghg1L+5iJN3Skxtbsw==} @@ -13145,7 +13148,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.25.3 '@babel/types': 7.25.2 - debug: 4.3.4 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -13375,7 +13378,7 @@ snapshots: clsx: 1.2.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.23.2 + preact: 10.24.0 sha.js: 2.4.11 '@emotion/hash@0.9.2': {} @@ -17368,7 +17371,7 @@ snapshots: avvio@8.2.1: dependencies: archy: 1.0.0 - debug: 4.3.4 + debug: 4.3.7 fastq: 1.15.0 transitivePeerDependencies: - supports-color @@ -18707,7 +18710,7 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: - debug: 4.3.4 + debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) @@ -19717,11 +19720,11 @@ snapshots: i18next-browser-languagedetector@7.1.0: dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.6 i18next@23.11.5: dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.6 iconv-lite@0.4.24: dependencies: @@ -21973,8 +21976,6 @@ snapshots: postgres@3.3.5: {} - preact@10.23.2: {} - preact@10.24.0: {} prebuild-install@7.1.1: @@ -23849,8 +23850,6 @@ snapshots: fsevents: 2.3.3 terser: 5.33.0 -<<<<<<< HEAD -======= vite@5.4.8(@types/node@18.15.11)(terser@5.33.0): dependencies: esbuild: 0.21.5 @@ -23861,7 +23860,6 @@ snapshots: fsevents: 2.3.3 terser: 5.33.0 ->>>>>>> 908c0e600 (move store ts test to monorepo root) vitest@0.34.6(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0): dependencies: '@types/chai': 4.3.19 From 42eec212de19053d19fd9936ac3be09923811f55 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 12:29:01 +0100 Subject: [PATCH 04/10] rollback execa version for create-mud since its still dependent on cjs --- packages/create-mud/package.json | 1 + pnpm-lock.yaml | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/create-mud/package.json b/packages/create-mud/package.json index 183b25f228..d891afc02d 100644 --- a/packages/create-mud/package.json +++ b/packages/create-mud/package.json @@ -28,6 +28,7 @@ }, "devDependencies": { "@types/node": "^18.15.11", + "execa": "^7.0.0", "tsup": "^6.7.0" }, "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd7f3f9be3..9490e6f56e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -386,6 +386,9 @@ importers: '@types/node': specifier: ^18.15.11 version: 18.15.11 + execa: + specifier: ^7.0.0 + version: 7.2.0 tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -827,10 +830,10 @@ importers: version: 8.3.4 jest: specifier: ^29.3.1 - version: 29.5.0(@types/node@18.15.11) + version: 29.5.0(@types/node@20.12.12) ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) + version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -1212,10 +1215,10 @@ importers: version: 27.4.1 jest: specifier: ^29.3.1 - version: 29.5.0(@types/node@20.12.12) + version: 29.5.0(@types/node@18.15.11) ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) + version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -19044,7 +19047,7 @@ snapshots: human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 From 441a48eb237445775018ccdc8aba0634f5348aca Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 12:34:01 +0100 Subject: [PATCH 05/10] don't run CI tests in parallel for now --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a233f5069e..d8bd2a434f 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "release:publish": "pnpm install && pnpm build && changeset publish", "release:version": "changeset version && pnpm install --lockfile-only && pnpm run changelog:generate", "test": "pnpm run --recursive test", - "test:ci": "pnpm run --recursive --parallel test:ci", + "test:ci": "pnpm run --recursive --sequential test:ci", "type-bench": "pnpm --filter ./test/ts-benchmarks bench", "type-stats-repo": "attest stats packages/*", "vercel:prepare": "(forge --version || pnpm foundryup) && ln -sf /vercel/.foundry/bin/* node_modules/.bin/ && forge --version" From c597c3fd19e66ce1f0a4cc74de0d5fe861cb82d3 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 12:56:21 +0100 Subject: [PATCH 06/10] no anvil in default vitest config --- package.json | 2 +- packages/store/vitest.config.ts | 3 +++ vitest.config.ts | 27 ++++++++++++++++++++------- 3 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 packages/store/vitest.config.ts diff --git a/package.json b/package.json index d8bd2a434f..019dd50df1 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "release:publish": "pnpm install && pnpm build && changeset publish", "release:version": "changeset version && pnpm install --lockfile-only && pnpm run changelog:generate", "test": "pnpm run --recursive test", - "test:ci": "pnpm run --recursive --sequential test:ci", + "test:ci": "pnpm run --recursive test:ci", "type-bench": "pnpm --filter ./test/ts-benchmarks bench", "type-stats-repo": "attest stats packages/*", "vercel:prepare": "(forge --version || pnpm foundryup) && ln -sf /vercel/.foundry/bin/* node_modules/.bin/ && forge --version" diff --git a/packages/store/vitest.config.ts b/packages/store/vitest.config.ts new file mode 100644 index 0000000000..06a6891247 --- /dev/null +++ b/packages/store/vitest.config.ts @@ -0,0 +1,3 @@ +import anvilConfig from "../../vitest.config"; + +export default anvilConfig; diff --git a/vitest.config.ts b/vitest.config.ts index 07598d9eb1..61109b4bfe 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,13 +1,9 @@ -import { defineConfig } from "vitest/config"; +import { defineConfig, mergeConfig } from "vitest/config"; -export default defineConfig({ +export const baseConfig = defineConfig({ test: { - globalSetup: [`${__dirname}/test-setup/global/arktype.ts`, `${__dirname}/test-setup/global/anvil.ts`], + globalSetup: [`${__dirname}/test-setup/global/arktype.ts`], setupFiles: [], - // Temporarily set a low teardown timeout because anvil hangs otherwise - // Could move this timeout to anvil setup after https://github.com/wevm/anvil.js/pull/46 - teardownTimeout: 500, - hookTimeout: 15000, }, server: { watch: { @@ -16,3 +12,20 @@ export default defineConfig({ }, }, }); + +// TODO: migrate to prool: https://github.com/wevm/prool +// note that using this across packages running tests in parallel may cause port issues +export const anvilConfig = mergeConfig( + baseConfig, + defineConfig({ + test: { + globalSetup: [`${__dirname}/test-setup/global/anvil.ts`], + // Temporarily set a low teardown timeout because anvil hangs otherwise + // Could move this timeout to anvil setup after https://github.com/wevm/anvil.js/pull/46 + teardownTimeout: 500, + hookTimeout: 15000, + }, + }), +); + +export default baseConfig; From 5dcef24b72365c2fb7f4c580666e39e20fcd5e88 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 13:28:13 +0100 Subject: [PATCH 07/10] try starting anvil as a pretest step --- package.json | 5 +- packages/store/vitest.config.ts | 3 - pnpm-lock.yaml | 101 +++++++++++++++++++++++--------- test-setup/common.ts | 4 +- test-setup/global/anvil.ts | 19 ------ test-setup/startAnvil.ts | 24 ++++++++ vitest.config.ts | 25 ++------ 7 files changed, 109 insertions(+), 72 deletions(-) delete mode 100644 packages/store/vitest.config.ts delete mode 100644 test-setup/global/anvil.ts create mode 100644 test-setup/startAnvil.ts diff --git a/package.json b/package.json index 019dd50df1..a6da13ae96 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,9 @@ "release:check": "changeset status --verbose --since=origin/main", "release:publish": "pnpm install && pnpm build && changeset publish", "release:version": "changeset version && pnpm install --lockfile-only && pnpm run changelog:generate", + "pretest": "ANVIL_PORT=8556 tsx test-setup/startAnvil.ts & wait-on tcp:8556", "test": "pnpm run --recursive test", + "pretest:ci": "pnpm run pretest", "test:ci": "pnpm run --recursive test:ci", "type-bench": "pnpm --filter ./test/ts-benchmarks bench", "type-stats-repo": "attest stats packages/*", @@ -57,7 +59,8 @@ "turbo": "^1.9.3", "typescript": "5.4.2", "viem": "catalog:", - "vitest": "2.1.2" + "vitest": "2.1.2", + "wait-on": "^8.0.1" }, "packageManager": "pnpm@9.6.0", "engines": { diff --git a/packages/store/vitest.config.ts b/packages/store/vitest.config.ts deleted file mode 100644 index 06a6891247..0000000000 --- a/packages/store/vitest.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -import anvilConfig from "../../vitest.config"; - -export default anvilConfig; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9490e6f56e..524bb7f5d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,6 +95,9 @@ importers: vitest: specifier: 2.1.2 version: 2.1.2(@types/node@18.15.11)(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) + wait-on: + specifier: ^8.0.1 + version: 8.0.1 packages/abi-ts: dependencies: @@ -5776,6 +5779,9 @@ packages: resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + axobject-query@3.1.1: resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} @@ -7269,6 +7275,15 @@ packages: debug: optional: true + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -9621,6 +9636,9 @@ packages: proxy-deep@3.1.1: resolution: {integrity: sha512-kppbvLUNJ4IOMZds9/4gz/rtT5OFiesy3XosLsgMKlF3vb6GA5Y3ptyDlzKLcOcUBW+zaY+RiMINTsgE+O6e+Q==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -11294,6 +11312,11 @@ packages: typescript: optional: true + wait-on@8.0.1: + resolution: {integrity: sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==} + engines: {node: '>=12.0.0'} + hasBin: true + walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -11779,7 +11802,7 @@ snapshots: '@smithy/util-middleware': 2.2.0 '@smithy/util-retry': 2.2.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - aws-crt @@ -11822,7 +11845,7 @@ snapshots: '@smithy/util-middleware': 2.2.0 '@smithy/util-retry': 2.2.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - aws-crt @@ -11885,7 +11908,7 @@ snapshots: '@aws-sdk/types': 3.535.0 '@smithy/property-provider': 2.2.0 '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 '@aws-sdk/credential-provider-http@3.552.0': dependencies: @@ -11897,7 +11920,7 @@ snapshots: '@smithy/smithy-client': 2.5.1 '@smithy/types': 2.12.0 '@smithy/util-stream': 2.2.0 - tslib: 2.6.2 + tslib: 2.7.0 '@aws-sdk/credential-provider-ini@3.556.0(@aws-sdk/credential-provider-node@3.556.0)': dependencies: @@ -11911,7 +11934,7 @@ snapshots: '@smithy/property-provider': 2.2.0 '@smithy/shared-ini-file-loader': 2.4.0 '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt @@ -11939,7 +11962,7 @@ snapshots: '@smithy/property-provider': 2.2.0 '@smithy/shared-ini-file-loader': 2.4.0 '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 '@aws-sdk/credential-provider-sso@3.556.0(@aws-sdk/credential-provider-node@3.556.0)': dependencies: @@ -11949,7 +11972,7 @@ snapshots: '@smithy/property-provider': 2.2.0 '@smithy/shared-ini-file-loader': 2.4.0 '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt @@ -11960,7 +11983,7 @@ snapshots: '@aws-sdk/types': 3.535.0 '@smithy/property-provider': 2.2.0 '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt @@ -12009,7 +12032,7 @@ snapshots: '@smithy/property-provider': 2.2.0 '@smithy/shared-ini-file-loader': 2.4.0 '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt @@ -12028,7 +12051,7 @@ snapshots: '@aws-sdk/util-locate-window@3.535.0': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@aws-sdk/util-user-agent-browser@3.535.0': dependencies: @@ -12046,7 +12069,7 @@ snapshots: '@aws-sdk/util-utf8-browser@3.259.0': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@babel/code-frame@7.21.4': dependencies: @@ -15750,7 +15773,7 @@ snapshots: '@smithy/abort-controller@2.2.0': dependencies: '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/config-resolver@2.2.0': dependencies: @@ -15777,7 +15800,7 @@ snapshots: '@smithy/property-provider': 2.2.0 '@smithy/types': 2.12.0 '@smithy/url-parser': 2.2.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/fetch-http-handler@2.5.0': dependencies: @@ -15801,7 +15824,7 @@ snapshots: '@smithy/is-array-buffer@2.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/middleware-content-length@2.2.0': dependencies: @@ -15859,7 +15882,7 @@ snapshots: '@smithy/property-provider@2.2.0': dependencies: '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/protocol-http@3.3.0': dependencies: @@ -15870,12 +15893,12 @@ snapshots: dependencies: '@smithy/types': 2.12.0 '@smithy/util-uri-escape': 2.2.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/querystring-parser@2.2.0': dependencies: '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/service-error-classification@2.1.5': dependencies: @@ -15884,7 +15907,7 @@ snapshots: '@smithy/shared-ini-file-loader@2.4.0': dependencies: '@smithy/types': 2.12.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/signature-v4@2.3.0': dependencies: @@ -15936,7 +15959,7 @@ snapshots: '@smithy/util-config-provider@2.3.0': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/util-defaults-mode-browser@2.2.1': dependencies: @@ -15964,7 +15987,7 @@ snapshots: '@smithy/util-hex-encoding@2.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/util-middleware@2.2.0': dependencies: @@ -15986,11 +16009,11 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 '@smithy/util-hex-encoding': 2.2.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/util-uri-escape@2.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@smithy/util-utf8@2.3.0': dependencies: @@ -17381,6 +17404,14 @@ snapshots: axe-core@4.10.0: {} + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axobject-query@3.1.1: dependencies: deep-equal: 2.2.3 @@ -19317,6 +19348,8 @@ snapshots: optionalDependencies: debug: 4.3.4 + follow-redirects@1.15.9: {} + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -22104,6 +22137,8 @@ snapshots: proxy-deep@3.1.1: {} + proxy-from-env@1.1.0: {} + pseudomap@1.0.2: {} psl@1.9.0: {} @@ -22282,7 +22317,7 @@ snapshots: dependencies: react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.2.22)(react@18.2.0) - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.22 @@ -22291,7 +22326,7 @@ snapshots: react: 18.2.0 react-remove-scroll-bar: 2.3.6(@types/react@18.2.22)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.22)(react@18.2.0) - tslib: 2.6.2 + tslib: 2.7.0 use-callback-ref: 1.3.2(@types/react@18.2.22)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.22)(react@18.2.0) optionalDependencies: @@ -22342,7 +22377,7 @@ snapshots: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.22 @@ -22605,7 +22640,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 safe-array-concat@1.1.2: dependencies: @@ -23719,7 +23754,7 @@ snapshots: use-callback-ref@1.3.2(@types/react@18.2.22)(react@18.2.0): dependencies: react: 18.2.0 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.22 @@ -23732,7 +23767,7 @@ snapshots: dependencies: detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.22 @@ -23978,6 +24013,16 @@ snapshots: - utf-8-validate - zod + wait-on@8.0.1: + dependencies: + axios: 1.7.7 + joi: 17.13.3 + lodash: 4.17.21 + minimist: 1.2.8 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + walker@1.0.8: dependencies: makeerror: 1.0.12 diff --git a/test-setup/common.ts b/test-setup/common.ts index 5f24cf4266..d4d37cf6bc 100644 --- a/test-setup/common.ts +++ b/test-setup/common.ts @@ -1,7 +1,7 @@ import { createTestClient, http } from "viem"; -export const anvilHost = "127.0.0.1"; -export const anvilPort = 8556; +export const anvilHost = process.env.ANVIL_HOST ?? "127.0.0.1"; +export const anvilPort = process.env.ANVIL_PORT ?? "8556"; // ID of the current test worker. Used by the `@viem/anvil` proxy server. export const poolId = Number(process.env.VITEST_POOL_ID ?? 1); diff --git a/test-setup/global/anvil.ts b/test-setup/global/anvil.ts deleted file mode 100644 index f424fc5b0a..0000000000 --- a/test-setup/global/anvil.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { startProxy as startAnvilProxy } from "@viem/anvil"; -import { anvilHost, anvilPort } from "../common"; -import { execa } from "execa"; - -export default async function globalSetup(): Promise<() => Promise> { - console.log("building mock game"); - await execa("pnpm", ["run", "build"], { - cwd: `${__dirname}/../../test/mock-game-contracts`, - }); - - const shutdownAnvilProxy = await startAnvilProxy({ - host: anvilHost, - port: anvilPort, - }); - - return async () => { - await shutdownAnvilProxy(); - }; -} diff --git a/test-setup/startAnvil.ts b/test-setup/startAnvil.ts new file mode 100644 index 0000000000..dcce6d2d33 --- /dev/null +++ b/test-setup/startAnvil.ts @@ -0,0 +1,24 @@ +import { startProxy as startAnvilProxy } from "@viem/anvil"; +import { anvilHost, anvilPort } from "./common"; +import { execa } from "execa"; +import { fileURLToPath } from "node:url"; +import path from "node:path"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +console.log("building mock game"); +await execa("pnpm", ["run", "build"], { + cwd: `${__dirname}/../test/mock-game-contracts`, +}); + +console.log("starting anvil proxy"); +await startAnvilProxy({ + host: anvilHost, + port: Number(anvilPort), +}); + +// ensure anvil dies +process.on("SIGINT", () => process.exit()); +process.on("SIGTERM", () => process.exit()); +process.on("SIGQUIT", () => process.exit()); diff --git a/vitest.config.ts b/vitest.config.ts index 61109b4bfe..5969e8ee90 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,9 +1,13 @@ -import { defineConfig, mergeConfig } from "vitest/config"; +import { defineConfig } from "vitest/config"; -export const baseConfig = defineConfig({ +export default defineConfig({ test: { globalSetup: [`${__dirname}/test-setup/global/arktype.ts`], setupFiles: [], + // Temporarily set a low teardown timeout because anvil hangs otherwise + // Could move this timeout to anvil setup after https://github.com/wevm/anvil.js/pull/46 + teardownTimeout: 500, + hookTimeout: 15000, }, server: { watch: { @@ -12,20 +16,3 @@ export const baseConfig = defineConfig({ }, }, }); - -// TODO: migrate to prool: https://github.com/wevm/prool -// note that using this across packages running tests in parallel may cause port issues -export const anvilConfig = mergeConfig( - baseConfig, - defineConfig({ - test: { - globalSetup: [`${__dirname}/test-setup/global/anvil.ts`], - // Temporarily set a low teardown timeout because anvil hangs otherwise - // Could move this timeout to anvil setup after https://github.com/wevm/anvil.js/pull/46 - teardownTimeout: 500, - hookTimeout: 15000, - }, - }), -); - -export default baseConfig; From 4bc6c0d883952b8fae1426933126b9747cb98bee Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 13:37:05 +0100 Subject: [PATCH 08/10] try this --- package.json | 7 +++---- test-setup/common.ts | 4 ++-- test-setup/startAnvil.ts | 5 +---- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index a6da13ae96..91bd09220e 100644 --- a/package.json +++ b/package.json @@ -25,10 +25,9 @@ "release:check": "changeset status --verbose --since=origin/main", "release:publish": "pnpm install && pnpm build && changeset publish", "release:version": "changeset version && pnpm install --lockfile-only && pnpm run changelog:generate", - "pretest": "ANVIL_PORT=8556 tsx test-setup/startAnvil.ts & wait-on tcp:8556", - "test": "pnpm run --recursive test", - "pretest:ci": "pnpm run pretest", - "test:ci": "pnpm run --recursive test:ci", + "test": "pnpm run test:start-anvil & wait-on tcp:8556 && pnpm run --recursive test", + "test:ci": "pnpm run test:start-anvil & wait-on tcp:8556 && pnpm run --recursive test:ci", + "test:start-anvil": "tsx test-setup/startAnvil.ts", "type-bench": "pnpm --filter ./test/ts-benchmarks bench", "type-stats-repo": "attest stats packages/*", "vercel:prepare": "(forge --version || pnpm foundryup) && ln -sf /vercel/.foundry/bin/* node_modules/.bin/ && forge --version" diff --git a/test-setup/common.ts b/test-setup/common.ts index d4d37cf6bc..5ca803fdfe 100644 --- a/test-setup/common.ts +++ b/test-setup/common.ts @@ -1,7 +1,7 @@ import { createTestClient, http } from "viem"; -export const anvilHost = process.env.ANVIL_HOST ?? "127.0.0.1"; -export const anvilPort = process.env.ANVIL_PORT ?? "8556"; +export const anvilHost = process.env.ANVIL_HOST || "127.0.0.1"; +export const anvilPort = Number(process.env.ANVIL_PORT) || 8556; // ID of the current test worker. Used by the `@viem/anvil` proxy server. export const poolId = Number(process.env.VITEST_POOL_ID ?? 1); diff --git a/test-setup/startAnvil.ts b/test-setup/startAnvil.ts index dcce6d2d33..c890b99cc5 100644 --- a/test-setup/startAnvil.ts +++ b/test-setup/startAnvil.ts @@ -13,10 +13,7 @@ await execa("pnpm", ["run", "build"], { }); console.log("starting anvil proxy"); -await startAnvilProxy({ - host: anvilHost, - port: Number(anvilPort), -}); +await startAnvilProxy({ host: anvilHost, port: anvilPort }); // ensure anvil dies process.on("SIGINT", () => process.exit()); From 42cf12b1bbcdb9e0f5c749a8559d84c86f0f146f Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 13:41:56 +0100 Subject: [PATCH 09/10] no wait on --- package.json | 8 +++--- pnpm-lock.yaml | 53 +++------------------------------------- test-setup/startAnvil.ts | 11 --------- 3 files changed, 7 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 91bd09220e..ca8de8282a 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,8 @@ "release:check": "changeset status --verbose --since=origin/main", "release:publish": "pnpm install && pnpm build && changeset publish", "release:version": "changeset version && pnpm install --lockfile-only && pnpm run changelog:generate", - "test": "pnpm run test:start-anvil & wait-on tcp:8556 && pnpm run --recursive test", - "test:ci": "pnpm run test:start-anvil & wait-on tcp:8556 && pnpm run --recursive test:ci", - "test:start-anvil": "tsx test-setup/startAnvil.ts", + "test": "tsx test-setup/startAnvil.ts & pnpm run --recursive test", + "test:ci": "tsx test-setup/startAnvil.ts & pnpm run --recursive test:ci", "type-bench": "pnpm --filter ./test/ts-benchmarks bench", "type-stats-repo": "attest stats packages/*", "vercel:prepare": "(forge --version || pnpm foundryup) && ln -sf /vercel/.foundry/bin/* node_modules/.bin/ && forge --version" @@ -58,8 +57,7 @@ "turbo": "^1.9.3", "typescript": "5.4.2", "viem": "catalog:", - "vitest": "2.1.2", - "wait-on": "^8.0.1" + "vitest": "2.1.2" }, "packageManager": "pnpm@9.6.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 524bb7f5d8..17395df624 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,9 +95,6 @@ importers: vitest: specifier: 2.1.2 version: 2.1.2(@types/node@18.15.11)(jsdom@22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.33.0) - wait-on: - specifier: ^8.0.1 - version: 8.0.1 packages/abi-ts: dependencies: @@ -833,10 +830,10 @@ importers: version: 8.3.4 jest: specifier: ^29.3.1 - version: 29.5.0(@types/node@20.12.12) + version: 29.5.0(@types/node@18.15.11) ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) + version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -1218,10 +1215,10 @@ importers: version: 27.4.1 jest: specifier: ^29.3.1 - version: 29.5.0(@types/node@18.15.11) + version: 29.5.0(@types/node@20.12.12) ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.21.4)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@18.15.11))(typescript@5.4.2) + version: 29.0.5(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.2))(jest@29.5.0(@types/node@20.12.12))(typescript@5.4.2) tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) @@ -5779,9 +5776,6 @@ packages: resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} - axios@1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} - axobject-query@3.1.1: resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} @@ -7275,15 +7269,6 @@ packages: debug: optional: true - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -9636,9 +9621,6 @@ packages: proxy-deep@3.1.1: resolution: {integrity: sha512-kppbvLUNJ4IOMZds9/4gz/rtT5OFiesy3XosLsgMKlF3vb6GA5Y3ptyDlzKLcOcUBW+zaY+RiMINTsgE+O6e+Q==} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -11312,11 +11294,6 @@ packages: typescript: optional: true - wait-on@8.0.1: - resolution: {integrity: sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==} - engines: {node: '>=12.0.0'} - hasBin: true - walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -17404,14 +17381,6 @@ snapshots: axe-core@4.10.0: {} - axios@1.7.7: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axobject-query@3.1.1: dependencies: deep-equal: 2.2.3 @@ -19348,8 +19317,6 @@ snapshots: optionalDependencies: debug: 4.3.4 - follow-redirects@1.15.9: {} - for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -22137,8 +22104,6 @@ snapshots: proxy-deep@3.1.1: {} - proxy-from-env@1.1.0: {} - pseudomap@1.0.2: {} psl@1.9.0: {} @@ -24013,16 +23978,6 @@ snapshots: - utf-8-validate - zod - wait-on@8.0.1: - dependencies: - axios: 1.7.7 - joi: 17.13.3 - lodash: 4.17.21 - minimist: 1.2.8 - rxjs: 7.8.1 - transitivePeerDependencies: - - debug - walker@1.0.8: dependencies: makeerror: 1.0.12 diff --git a/test-setup/startAnvil.ts b/test-setup/startAnvil.ts index c890b99cc5..4d3894f0d5 100644 --- a/test-setup/startAnvil.ts +++ b/test-setup/startAnvil.ts @@ -1,16 +1,5 @@ import { startProxy as startAnvilProxy } from "@viem/anvil"; import { anvilHost, anvilPort } from "./common"; -import { execa } from "execa"; -import { fileURLToPath } from "node:url"; -import path from "node:path"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -console.log("building mock game"); -await execa("pnpm", ["run", "build"], { - cwd: `${__dirname}/../test/mock-game-contracts`, -}); console.log("starting anvil proxy"); await startAnvilProxy({ host: anvilHost, port: anvilPort }); From 988adf4b3bf44d48b50fc951104be5fccb92d748 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Sun, 6 Oct 2024 14:10:29 +0100 Subject: [PATCH 10/10] clean up --- package.json | 7 ++++--- packages/store/package.json | 5 +++-- pnpm-lock.yaml | 17 ++++++++++------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index ca8de8282a..c8e7e1b53b 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "build": "turbo run build", "changelog:generate": "tsx scripts/changelog.ts", "clean": "turbo run clean", - "dev": "TSUP_SKIP_DTS=true turbo run dev --concurrency 100", + "dev": "TSUP_SKIP_DTS=true turbo run dev --concurrency 100 --filter !@latticexyz/explorer", "dist-tag-rm": "pnpm recursive exec -- sh -c 'npm dist-tag rm $(cat package.json | jq -r \".name\") $TAG || true'", "docs:generate:api": "tsx scripts/render-api-docs.ts", "fix:package-json": "sort-package-json package.json 'packages/*/package.json' 'templates/*/package.json' 'templates/*/packages/*/package.json' 'examples/*/package.json' 'examples/*/packages/*/package.json' 'e2e/*/package.json' 'e2e/*/packages/*/package.json' 'docs/package.json' 'test/*/package.json'", @@ -25,8 +25,9 @@ "release:check": "changeset status --verbose --since=origin/main", "release:publish": "pnpm install && pnpm build && changeset publish", "release:version": "changeset version && pnpm install --lockfile-only && pnpm run changelog:generate", - "test": "tsx test-setup/startAnvil.ts & pnpm run --recursive test", - "test:ci": "tsx test-setup/startAnvil.ts & pnpm run --recursive test:ci", + "test": "pnpm run test:setup && pnpm run --recursive test", + "test:ci": "pnpm run test:setup && pnpm run --recursive test:ci", + "test:setup": "tsx test-setup/startAnvil.ts & pnpm run --filter mock-game-contracts build", "type-bench": "pnpm --filter ./test/ts-benchmarks bench", "type-stats-repo": "attest stats packages/*", "vercel:prepare": "(forge --version || pnpm foundryup) && ln -sf /vercel/.foundry/bin/* node_modules/.bin/ && forge --version" diff --git a/packages/store/package.json b/packages/store/package.json index 92cfbdefe5..6378bcf075 100644 --- a/packages/store/package.json +++ b/packages/store/package.json @@ -66,17 +66,18 @@ "@latticexyz/schema-type": "workspace:*", "abitype": "catalog:", "arktype": "catalog:", + "debug": "^4.3.4", "viem": "catalog:" }, "devDependencies": { "@latticexyz/abi-ts": "workspace:*", "@latticexyz/gas-report": "workspace:*", + "@types/debug": "^4.1.7", "@types/ejs": "^3.1.1", "@types/node": "^18.15.11", "ds-test": "https://github.com/dapphub/ds-test.git#e282159d5170298eb2455a6c05280ab5a73a4ef0", "forge-std": "https://github.com/foundry-rs/forge-std.git#74cfb77e308dd188d2f58864aaf44963ae6b88b1", "solhint": "^3.3.7", - "tsup": "^6.7.0", - "tsx": "^3.12.6" + "tsup": "^6.7.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17395df624..9f3a7afafa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -954,6 +954,9 @@ importers: arktype: specifier: 'catalog:' version: 2.0.0-beta.6 + debug: + specifier: ^4.3.4 + version: 4.3.7 viem: specifier: 'catalog:' version: 2.21.6(bufferutil@4.0.8)(typescript@5.4.2)(utf-8-validate@5.0.10)(zod@3.23.8) @@ -964,6 +967,9 @@ importers: '@latticexyz/gas-report': specifier: workspace:* version: link:../gas-report + '@types/debug': + specifier: ^4.1.7 + version: 4.1.7 '@types/ejs': specifier: ^3.1.1 version: 3.1.1 @@ -982,9 +988,6 @@ importers: tsup: specifier: ^6.7.0 version: 6.7.0(postcss@8.4.47)(typescript@5.4.2) - tsx: - specifier: ^3.12.6 - version: 3.12.6 packages/store-indexer: dependencies: @@ -14052,7 +14055,7 @@ snapshots: '@koa/router@12.0.1': dependencies: - debug: 4.3.4 + debug: 4.3.7 http-errors: 2.0.0 koa-compose: 4.1.0 methods: 1.1.2 @@ -16485,7 +16488,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) - debug: 4.3.4 + debug: 4.3.7 eslint: 8.57.0 ts-api-utils: 1.2.1(typescript@5.4.2) optionalDependencies: @@ -16499,7 +16502,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.1.1 '@typescript-eslint/visitor-keys': 7.1.1 - debug: 4.3.4 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -20724,7 +20727,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.8.0 - debug: 4.3.4 + debug: 4.3.7 delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0