From bf7c1fc6958c4b0cdf01c9066bd0a4106b0b09d8 Mon Sep 17 00:00:00 2001 From: alvrs Date: Fri, 19 May 2023 14:01:07 +0200 Subject: [PATCH 1/2] fix(network,std-client): make nodejs compatible --- packages/network/package.json | 6 +-- packages/network/src/createRelayStream.ts | 4 +- packages/network/src/initCache.ts | 5 ++- packages/network/src/v2/fetchStoreEvents.ts | 2 +- packages/network/src/v2/syncUtils.ts | 2 +- packages/std-client/src/getBurnerWallet.ts | 12 ++++-- pnpm-lock.yaml | 43 +++++++++++++-------- 7 files changed, 45 insertions(+), 29 deletions(-) diff --git a/packages/network/package.json b/packages/network/package.json index d0ce02bf2b..0673e444b2 100644 --- a/packages/network/package.json +++ b/packages/network/package.json @@ -48,7 +48,8 @@ "async-mutex": "^0.3.2", "debug": "^4.3.4", "ethers": "^5.7.2", - "lodash": "^4.17.21", + "fake-indexeddb": "^4.0.0", + "lodash-es": "^4.17.21", "mobx": "^6.7.0", "nice-grpc-web": "^2.0.1", "rxjs": "^7.5.5", @@ -58,9 +59,8 @@ "devDependencies": { "@types/debug": "^4.1.7", "@types/jest": "^27.4.1", - "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.7", "@types/node": "^18.15.11", - "fake-indexeddb": "^4.0.0", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "ts-jest": "^29.0.5", diff --git a/packages/network/src/createRelayStream.ts b/packages/network/src/createRelayStream.ts index 25688d31cf..9bd9dbd4b1 100644 --- a/packages/network/src/createRelayStream.ts +++ b/packages/network/src/createRelayStream.ts @@ -4,7 +4,7 @@ import { spawn } from "threads"; import { messagePayload } from "./utils"; import { createChannel, createClient } from "nice-grpc-web"; import { awaitPromise, awaitStreamValue } from "@latticexyz/utils"; -import { grpc } from "@improbable-eng/grpc-web"; +import grpcweb from "@improbable-eng/grpc-web"; import { ECSRelayServiceDefinition, Message, PushRequest } from "@latticexyz/services/ecs-relay"; /** @@ -15,7 +15,7 @@ import { ECSRelayServiceDefinition, Message, PushRequest } from "@latticexyz/ser */ export async function createRelayStream(signer: Signer, url: string, id: string) { const httpClient = createClient(ECSRelayServiceDefinition, createChannel(url)); - const wsClient = createClient(ECSRelayServiceDefinition, createChannel(url, grpc.WebsocketTransport())); + const wsClient = createClient(ECSRelayServiceDefinition, createChannel(url, grpcweb.grpc.WebsocketTransport())); const recoverWorker = await spawn( new Worker(new URL("./workers/Recover.worker.js", import.meta.url), { type: "module" }) diff --git a/packages/network/src/initCache.ts b/packages/network/src/initCache.ts index 78a8b39f37..215ee7e577 100644 --- a/packages/network/src/initCache.ts +++ b/packages/network/src/initCache.ts @@ -1,6 +1,9 @@ import { arrayToIterator, deferred, mergeIterators, transformIterator } from "@latticexyz/utils"; +import fakeIndexedDb from "fake-indexeddb"; -const indexedDB = self.indexedDB; +// Use an indexedDB mock for nodejs environments +// TODO: remove indexedDB requirement for better nodejs support +const indexedDB = typeof self === "undefined" ? fakeIndexedDb : self.indexedDB; const VERSION = 2; /** diff --git a/packages/network/src/v2/fetchStoreEvents.ts b/packages/network/src/v2/fetchStoreEvents.ts index a900a2177d..bb5d270729 100644 --- a/packages/network/src/v2/fetchStoreEvents.ts +++ b/packages/network/src/v2/fetchStoreEvents.ts @@ -1,6 +1,6 @@ import { Contract } from "ethers"; import { NetworkComponentUpdate } from "../types"; -import orderBy from "lodash/orderBy"; +import orderBy from "lodash-es/orderBy"; import { isDefined } from "@latticexyz/utils"; import { ephemeralEvents, storeEvents } from "./common"; import { ecsEventFromLog } from "./ecsEventFromLog"; diff --git a/packages/network/src/v2/syncUtils.ts b/packages/network/src/v2/syncUtils.ts index 9ccd7f2a5f..fb2bd7acba 100644 --- a/packages/network/src/v2/syncUtils.ts +++ b/packages/network/src/v2/syncUtils.ts @@ -1,7 +1,7 @@ import { Observable, concatMap, map, of } from "rxjs"; import { fetchStoreEvents } from "./fetchStoreEvents"; import { NetworkComponentUpdate, NetworkEvent } from "../types"; -import { orderBy } from "lodash"; +import orderBy from "lodash-es/orderBy"; import debug from "debug"; import { awaitPromise, range } from "@latticexyz/utils"; diff --git a/packages/std-client/src/getBurnerWallet.ts b/packages/std-client/src/getBurnerWallet.ts index 5fecbdf823..e209f000a6 100644 --- a/packages/std-client/src/getBurnerWallet.ts +++ b/packages/std-client/src/getBurnerWallet.ts @@ -2,6 +2,10 @@ import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; import { isHex, Hex } from "viem"; import { BehaviorSubject } from "rxjs"; +const localStorage = typeof window === "undefined" ? undefined : window.localStorage; +const addEventListener = typeof window === "undefined" ? undefined : window.addEventListener; +const removeEventListener = typeof window === "undefined" ? undefined : window.removeEventListener; + function assertPrivateKey(privateKey: string, cacheKey: string): asserts privateKey is Hex { if (!isHex(privateKey)) { console.error("Private key found in cache is not valid hex", { privateKey, cacheKey }); @@ -13,7 +17,7 @@ function assertPrivateKey(privateKey: string, cacheKey: string): asserts private } export function getBurnerWallet(cacheKey = "mud:burnerWallet"): BehaviorSubject { - const cachedPrivateKey = localStorage.getItem(cacheKey); + const cachedPrivateKey = localStorage?.getItem(cacheKey); if (cachedPrivateKey != null) { assertPrivateKey(cachedPrivateKey, cacheKey); @@ -25,14 +29,14 @@ export function getBurnerWallet(cacheKey = "mud:burnerWallet"): BehaviorSubject< : (() => { const privateKey = generatePrivateKey(); console.log("New burner wallet created:", privateKeyToAccount(privateKey)); - localStorage.setItem(cacheKey, privateKey); + localStorage?.setItem(cacheKey, privateKey); return new BehaviorSubject(privateKey); })(); - window.addEventListener("storage", function listener(event) { + addEventListener?.("storage", function listener(event) { // Clean up if (subject.closed) { - window.removeEventListener("storage", listener); + removeEventListener?.("storage", listener); return; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54fa8b0ca0..9aafddde87 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -415,7 +415,10 @@ importers: ethers: specifier: ^5.7.2 version: 5.7.2 - lodash: + fake-indexeddb: + specifier: ^4.0.0 + version: 4.0.0 + lodash-es: specifier: ^4.17.21 version: 4.17.21 mobx: @@ -440,15 +443,12 @@ importers: '@types/jest': specifier: ^27.4.1 version: 27.4.1 - '@types/lodash': - specifier: ^4.14.182 - version: 4.14.182 + '@types/lodash-es': + specifier: ^4.17.7 + version: 4.17.7 '@types/node': specifier: ^18.15.11 version: 18.15.11 - fake-indexeddb: - specifier: ^4.0.0 - version: 4.0.0 jest: specifier: ^29.3.1 version: 29.5.0(@types/node@18.15.11) @@ -3638,6 +3638,12 @@ packages: '@types/node': 18.15.11 dev: true + /@types/lodash-es@4.17.7: + resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==} + dependencies: + '@types/lodash': 4.14.182 + dev: true + /@types/lodash@4.14.182: resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} dev: true @@ -4719,7 +4725,7 @@ packages: /base64-arraybuffer-es6@0.7.0: resolution: {integrity: sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw==} engines: {node: '>=6.0.0'} - dev: true + dev: false /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -6077,7 +6083,7 @@ packages: resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==} dependencies: webidl-conversions: 4.0.2 - dev: true + dev: false /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} @@ -6987,7 +6993,7 @@ packages: resolution: {integrity: sha512-oCfWSJ/qvQn1XPZ8SHX6kY3zr1t+bN7faZ/lltGY0SBGhFOPXnWf0+pbO/MOAgfMx6khC2gK3S/bvAgQpuQHDQ==} dependencies: realistic-structured-clone: 3.0.0 - dev: true + dev: false /fancy-log@1.3.3: resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} @@ -9906,6 +9912,10 @@ packages: p-locate: 6.0.0 dev: false + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + /lodash._basecopy@3.0.1: resolution: {integrity: sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==} dev: true @@ -12445,7 +12455,7 @@ packages: domexception: 1.0.1 typeson: 6.1.0 typeson-registry: 1.0.0-alpha.39 - dev: true + dev: false /rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} @@ -13821,7 +13831,7 @@ packages: engines: {node: '>=8'} dependencies: punycode: 2.1.1 - dev: true + dev: false /tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} @@ -14279,12 +14289,12 @@ packages: base64-arraybuffer-es6: 0.7.0 typeson: 6.1.0 whatwg-url: 8.7.0 - dev: true + dev: false /typeson@6.1.0: resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} engines: {node: '>=0.1.14'} - dev: true + dev: false /typical@4.0.0: resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} @@ -14879,12 +14889,11 @@ packages: /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true /webidl-conversions@6.1.0: resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} engines: {node: '>=10.4'} - dev: true + dev: false /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -14937,7 +14946,7 @@ packages: lodash: 4.17.21 tr46: 2.1.0 webidl-conversions: 6.1.0 - dev: true + dev: false /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} From 2455c9aa9f89f5926aefe3baaacfbbecfed884e7 Mon Sep 17 00:00:00 2001 From: alvrs Date: Fri, 19 May 2023 14:10:20 +0200 Subject: [PATCH 2/2] revert switch to lodash-es --- packages/network/package.json | 4 +- packages/network/src/v2/fetchStoreEvents.ts | 2 +- packages/network/src/v2/syncUtils.ts | 2 +- pnpm-lock.yaml | 203 +++++++++++++++++--- 4 files changed, 179 insertions(+), 32 deletions(-) diff --git a/packages/network/package.json b/packages/network/package.json index 0673e444b2..a2910d90ac 100644 --- a/packages/network/package.json +++ b/packages/network/package.json @@ -49,7 +49,7 @@ "debug": "^4.3.4", "ethers": "^5.7.2", "fake-indexeddb": "^4.0.0", - "lodash-es": "^4.17.21", + "lodash": "^4.17.21", "mobx": "^6.7.0", "nice-grpc-web": "^2.0.1", "rxjs": "^7.5.5", @@ -59,7 +59,7 @@ "devDependencies": { "@types/debug": "^4.1.7", "@types/jest": "^27.4.1", - "@types/lodash-es": "^4.17.7", + "@types/lodash": "^4.14.182", "@types/node": "^18.15.11", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", diff --git a/packages/network/src/v2/fetchStoreEvents.ts b/packages/network/src/v2/fetchStoreEvents.ts index bb5d270729..a900a2177d 100644 --- a/packages/network/src/v2/fetchStoreEvents.ts +++ b/packages/network/src/v2/fetchStoreEvents.ts @@ -1,6 +1,6 @@ import { Contract } from "ethers"; import { NetworkComponentUpdate } from "../types"; -import orderBy from "lodash-es/orderBy"; +import orderBy from "lodash/orderBy"; import { isDefined } from "@latticexyz/utils"; import { ephemeralEvents, storeEvents } from "./common"; import { ecsEventFromLog } from "./ecsEventFromLog"; diff --git a/packages/network/src/v2/syncUtils.ts b/packages/network/src/v2/syncUtils.ts index fb2bd7acba..fbc8d63be8 100644 --- a/packages/network/src/v2/syncUtils.ts +++ b/packages/network/src/v2/syncUtils.ts @@ -1,7 +1,7 @@ import { Observable, concatMap, map, of } from "rxjs"; import { fetchStoreEvents } from "./fetchStoreEvents"; import { NetworkComponentUpdate, NetworkEvent } from "../types"; -import orderBy from "lodash-es/orderBy"; +import orderBy from "lodash/orderBy"; import debug from "debug"; import { awaitPromise, range } from "@latticexyz/utils"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9aafddde87..225ad4fc4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -405,20 +405,20 @@ importers: version: link:../world '@wagmi/chains': specifier: ^0.2.22 - version: 0.2.23(typescript@4.9.5) + version: 0.2.23 async-mutex: specifier: ^0.3.2 version: 0.3.2 debug: specifier: ^4.3.4 - version: 4.3.4(supports-color@8.1.1) + version: 4.3.4 ethers: specifier: ^5.7.2 version: 5.7.2 fake-indexeddb: specifier: ^4.0.0 version: 4.0.0 - lodash-es: + lodash: specifier: ^4.17.21 version: 4.17.21 mobx: @@ -435,7 +435,7 @@ importers: version: 1.7.0 viem: specifier: ^0.3.18 - version: 0.3.18(typescript@4.9.5) + version: 0.3.18 devDependencies: '@types/debug': specifier: ^4.1.7 @@ -443,9 +443,9 @@ importers: '@types/jest': specifier: ^27.4.1 version: 27.4.1 - '@types/lodash-es': - specifier: ^4.17.7 - version: 4.17.7 + '@types/lodash': + specifier: ^4.14.182 + version: 4.14.182 '@types/node': specifier: ^18.15.11 version: 18.15.11 @@ -457,13 +457,13 @@ importers: version: 29.3.1 ts-jest: specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.21.4)(esbuild@0.17.17)(jest@29.5.0)(typescript@4.9.5) + version: 29.0.5(@babel/core@7.21.4)(esbuild@0.17.17)(jest@29.5.0) tsup: specifier: ^6.7.0 - version: 6.7.0(postcss@8.4.23)(typescript@5.0.4) + version: 6.7.0 typedoc: specifier: 0.23.21 - version: 0.23.21(typescript@4.9.5) + version: 0.23.21 typedoc-plugin-markdown: specifier: ^3.13.6 version: 3.14.0(typedoc@0.23.21) @@ -1137,7 +1137,7 @@ packages: '@babel/traverse': 7.21.4 '@babel/types': 7.21.4 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.0 @@ -1450,7 +1450,7 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/parser': 7.21.4 '@babel/types': 7.21.4 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3638,12 +3638,6 @@ packages: '@types/node': 18.15.11 dev: true - /@types/lodash-es@4.17.7: - resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==} - dependencies: - '@types/lodash': 4.14.182 - dev: true - /@types/lodash@4.14.182: resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} dev: true @@ -4031,6 +4025,15 @@ packages: pretty-format: 27.5.1 dev: true + /@wagmi/chains@0.2.16: + resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dev: false + /@wagmi/chains@0.2.16(typescript@4.9.5): resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} peerDependencies: @@ -4053,6 +4056,15 @@ packages: typescript: 5.0.4 dev: false + /@wagmi/chains@0.2.23: + resolution: {integrity: sha512-oIc4ZpUL6bH/HdS7ROPWlFnP5U3XBujO/OiX4csRIezyLjMQ9FNXQRZShhi5ddL0Kj1RDbyVLe9K/QotEm1vig==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dev: false + /@wagmi/chains@0.2.23(typescript@4.9.5): resolution: {integrity: sha512-oIc4ZpUL6bH/HdS7ROPWlFnP5U3XBujO/OiX4csRIezyLjMQ9FNXQRZShhi5ddL0Kj1RDbyVLe9K/QotEm1vig==} peerDependencies: @@ -4062,6 +4074,7 @@ packages: optional: true dependencies: typescript: 4.9.5 + dev: true /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -4112,6 +4125,16 @@ packages: engines: {node: '>=6', npm: '>=3'} dev: false + /abitype@0.8.2: + resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dev: false + /abitype@0.8.2(typescript@4.9.5): resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} peerDependencies: @@ -4237,7 +4260,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -5839,6 +5862,17 @@ packages: ms: 2.0.0 dev: true + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -8072,7 +8106,7 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -8082,7 +8116,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -8811,7 +8845,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -9912,10 +9946,6 @@ packages: p-locate: 6.0.0 dev: false - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false - /lodash._basecopy@3.0.1: resolution: {integrity: sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==} dev: true @@ -11844,6 +11874,22 @@ packages: postcss: 8.4.23 dev: true + /postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + dev: true + /postcss-load-config@3.1.4(postcss@8.4.23): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -13659,7 +13705,7 @@ packages: resolution: {integrity: sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==} dependencies: callsites: 3.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 is-observable: 2.1.0 observable-fns: 0.6.1 optionalDependencies: @@ -13900,6 +13946,40 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true + /ts-jest@29.0.5(@babel/core@7.21.4)(esbuild@0.17.17)(jest@29.5.0): + resolution: {integrity: sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.21.4 + bs-logger: 0.2.6 + esbuild: 0.17.17 + fast-json-stable-stringify: 2.1.0 + jest: 29.5.0(@types/node@18.15.11) + jest-util: 29.5.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.0 + yargs-parser: 21.1.1 + dev: true + /ts-jest@29.0.5(@babel/core@7.21.4)(esbuild@0.17.17)(jest@29.5.0)(typescript@4.9.5): resolution: {integrity: sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -13980,6 +14060,41 @@ packages: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} dev: true + /tsup@6.7.0: + resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} + engines: {node: '>=14.18'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1(esbuild@0.17.17) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.17.17 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4 + resolve-from: 5.0.0 + rollup: 3.20.6 + source-map: 0.8.0-beta.0 + sucrase: 3.32.0 + tree-kill: 1.2.2 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsup@6.7.0(postcss@8.4.23)(typescript@5.0.4): resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} engines: {node: '>=14.18'} @@ -14241,7 +14356,7 @@ packages: typedoc: '>=0.23.0' dependencies: handlebars: 4.7.7 - typedoc: 0.23.21(typescript@4.9.5) + typedoc: 0.23.21 dev: true /typedoc@0.23.10(typescript@4.9.5): @@ -14258,6 +14373,19 @@ packages: typescript: 4.9.5 dev: true + /typedoc@0.23.21: + resolution: {integrity: sha512-VNE9Jv7BgclvyH9moi2mluneSviD43dCE9pY8RWkO88/DrEgJZk9KpUk7WO468c9WWs/+aG6dOnoH7ccjnErhg==} + engines: {node: '>= 14.14'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x + dependencies: + lunr: 2.3.9 + marked: 4.3.0 + minimatch: 5.1.6 + shiki: 0.11.1 + dev: true + /typedoc@0.23.21(typescript@4.9.5): resolution: {integrity: sha512-VNE9Jv7BgclvyH9moi2mluneSviD43dCE9pY8RWkO88/DrEgJZk9KpUk7WO468c9WWs/+aG6dOnoH7ccjnErhg==} engines: {node: '>= 14.14'} @@ -14531,6 +14659,25 @@ packages: builtins: 5.0.1 dev: true + /viem@0.3.18: + resolution: {integrity: sha512-orgUHs4VblpNBAn7uoGk9sWXdrtaGHuwy6CqaA2nmLjjdoWPhgQnzaVbfxt6xmSDV6MiMAfigxu43DV1j05jmw==} + dependencies: + '@adraffy/ens-normalize': 1.9.0 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/bip32': 1.3.0 + '@scure/bip39': 1.2.0 + '@wagmi/chains': 0.2.16 + abitype: 0.8.2 + isomorphic-ws: 5.0.0(ws@8.12.0) + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + /viem@0.3.18(typescript@4.9.5): resolution: {integrity: sha512-orgUHs4VblpNBAn7uoGk9sWXdrtaGHuwy6CqaA2nmLjjdoWPhgQnzaVbfxt6xmSDV6MiMAfigxu43DV1j05jmw==} dependencies: