From 28c0b1cdf12df80b1bab1067495fcfb81e4ce086 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 2 Jul 2024 14:18:15 -0300 Subject: [PATCH 001/129] Starting new code-snippets app --- apps/docs-snippets2/.eslintrc.js | 6 +++ apps/docs-snippets2/.gitignore | 2 + apps/docs-snippets2/fuels.config.ts | 7 ++++ apps/docs-snippets2/package.json | 21 ++++++++++ apps/docs-snippets2/scripts/wrap-snippets.ts | 38 +++++++++++++++++ apps/docs-snippets2/sway/.gitignore | 2 + apps/docs-snippets2/sway/Forc.toml | 2 + apps/docs-snippets2/tsconfig.json | 10 +++++ apps/docs-snippets2/tsdoc.json | 4 ++ pnpm-lock.yaml | 43 ++++++++++++++------ 10 files changed, 123 insertions(+), 12 deletions(-) create mode 100644 apps/docs-snippets2/.eslintrc.js create mode 100644 apps/docs-snippets2/.gitignore create mode 100644 apps/docs-snippets2/fuels.config.ts create mode 100644 apps/docs-snippets2/package.json create mode 100644 apps/docs-snippets2/scripts/wrap-snippets.ts create mode 100644 apps/docs-snippets2/sway/.gitignore create mode 100644 apps/docs-snippets2/sway/Forc.toml create mode 100644 apps/docs-snippets2/tsconfig.json create mode 100644 apps/docs-snippets2/tsdoc.json diff --git a/apps/docs-snippets2/.eslintrc.js b/apps/docs-snippets2/.eslintrc.js new file mode 100644 index 00000000000..2632bc8f5fa --- /dev/null +++ b/apps/docs-snippets2/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + extends: ['../../.eslintrc.js'], + rules: { + 'no-console': 'off', + }, +}; diff --git a/apps/docs-snippets2/.gitignore b/apps/docs-snippets2/.gitignore new file mode 100644 index 00000000000..76c90135f0e --- /dev/null +++ b/apps/docs-snippets2/.gitignore @@ -0,0 +1,2 @@ +src/typegend +*.wrapped.ts diff --git a/apps/docs-snippets2/fuels.config.ts b/apps/docs-snippets2/fuels.config.ts new file mode 100644 index 00000000000..cf312acb672 --- /dev/null +++ b/apps/docs-snippets2/fuels.config.ts @@ -0,0 +1,7 @@ +import { createConfig } from 'fuels'; + +export default createConfig({ + workspace: './sway', + output: './src/typegend', + forcBuildFlags: ['--release'], +}); diff --git a/apps/docs-snippets2/package.json b/apps/docs-snippets2/package.json new file mode 100644 index 00000000000..3e3a7dc5ff0 --- /dev/null +++ b/apps/docs-snippets2/package.json @@ -0,0 +1,21 @@ +{ + "name": "@fuel-ts/docs-snippets2", + "version": "0.67.0", + "description": "", + "private": true, + "scripts": { + "build": "run-s wrap:snippets build:forc", + "build:forc": "pnpm fuels build", + "wrap:snippets": "tsx scripts/wrap-snippets.ts", + "pretest": "pnpm build" + }, + "dependencies": { + "fuels": "workspace:*" + }, + "devDependencies": { + "glob": "^10.2.6" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts new file mode 100644 index 00000000000..3b76b3dcc7f --- /dev/null +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -0,0 +1,38 @@ +import { readFileSync, writeFileSync } from 'fs'; +import { globSync } from 'glob'; + +const importsReg = /import[\s\S]+from.+['"];/gm; + +const wrapper = `export const main = async (): Promise => { + const logs: any[] = []; + const console = { log (...args: any[]) { logs.push(args) }}; + // ———>>> + %SNIPPET% + // <<<——— + const singleCall = logs.length === 1 && logs[0].length === 1; + return singleCall ? logs[0][0] : logs; +}`.replace(/^\s{4}/gm, ' '); + +export const wrapSnippet = (filepath: string) => { + const raw = readFileSync(filepath, 'utf8'); + + // match + const imports = raw.match(importsReg)?.toString() ?? ''; + const snippet = imports.length ? raw.split(imports)[1] : raw; + + // format + const indented = snippet.replace(/^/gm, ' ').trim(); + const formatted = wrapper.replace('%SNIPPET%', indented); + + // write + const wrappedPath = filepath.replace('.ts', '.wrapped.ts'); + const wrappedSnippet = [imports, '\n', formatted].join(''); + + writeFileSync(wrappedPath, wrappedSnippet); +}; + +const dir = 'src/**'; +const src = `${dir}/*.ts`; +const ignore = [`src/typegend`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; + +globSync(src, { ignore }).forEach(wrapSnippet); diff --git a/apps/docs-snippets2/sway/.gitignore b/apps/docs-snippets2/sway/.gitignore new file mode 100644 index 00000000000..77d3844f58c --- /dev/null +++ b/apps/docs-snippets2/sway/.gitignore @@ -0,0 +1,2 @@ +out +target diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml new file mode 100644 index 00000000000..c4b464ff15a --- /dev/null +++ b/apps/docs-snippets2/sway/Forc.toml @@ -0,0 +1,2 @@ +[workspace] +members = [] diff --git a/apps/docs-snippets2/tsconfig.json b/apps/docs-snippets2/tsconfig.json new file mode 100644 index 00000000000..6b53687b5a2 --- /dev/null +++ b/apps/docs-snippets2/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "ES2022", + "outDir": "./dist", + "rootDir": "./", + "baseUrl": "./" + }, + "include": ["./src"] +} diff --git a/apps/docs-snippets2/tsdoc.json b/apps/docs-snippets2/tsdoc.json new file mode 100644 index 00000000000..4514b072727 --- /dev/null +++ b/apps/docs-snippets2/tsdoc.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", + "extends": ["../../tsdoc.base.json"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2803e7c1dc..4aea85e4512 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -526,6 +526,16 @@ importers: specifier: ^1.6.0 version: 1.6.0(@types/node@20.11.13)(@vitest/browser@1.6.0)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.18.2) + apps/docs-snippets2: + dependencies: + fuels: + specifier: workspace:* + version: link:../../packages/fuels + devDependencies: + glob: + specifier: ^10.2.6 + version: 10.3.10 + internal/check-imports: dependencies: '@fuel-ts/abi-coder': @@ -6554,7 +6564,6 @@ packages: bun@1.1.17: resolution: {integrity: sha512-x2vUqI75XQ11Qxb3FzQCd/AkbA8A3AiJ35xfw49JeNgu0MTi0RCuW+1zOyFf5iJM0xU07LKf2H69n4ASuEqhtQ==} - cpu: [arm64, x64] os: [darwin, linux, win32] hasBin: true @@ -20505,7 +20514,7 @@ snapshots: '@vitest/utils': 1.6.0 magic-string: 0.30.5 sirv: 2.0.4 - vitest: 1.6.0(@types/node@18.15.3)(@vitest/browser@1.6.0)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.18.2) + vitest: 1.6.0(@types/node@20.11.13)(@vitest/browser@1.6.0)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.18.2) optionalDependencies: playwright: 1.44.0 webdriverio: 8.39.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.4) @@ -23631,8 +23640,8 @@ snapshots: '@typescript-eslint/parser': 6.9.1(eslint@8.54.0)(typescript@5.2.2) eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0))(eslint@8.54.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.54.0) eslint-plugin-react: 7.33.2(eslint@8.54.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.54.0) @@ -23681,13 +23690,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0))(eslint@8.54.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.54.0): dependencies: debug: 4.3.5 enhanced-resolve: 5.15.0 eslint: 8.54.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0))(eslint@8.54.0))(eslint@8.54.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.54.0))(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -23708,14 +23717,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0))(eslint@8.54.0))(eslint@8.54.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.54.0))(eslint@8.54.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.9.1(eslint@8.54.0)(typescript@5.2.2) eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0))(eslint@8.54.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.54.0) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 6.9.1(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.54.0 + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -23766,7 +23785,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): + eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0): dependencies: array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 @@ -23776,7 +23795,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1(eslint@8.54.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.54.0))(eslint@8.54.0))(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -23787,7 +23806,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.14.2 optionalDependencies: - '@typescript-eslint/parser': 6.9.1(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.1(eslint@8.57.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack From 48bbcba4d5d871991e9b0314998738c617427e53 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 2 Jul 2024 15:05:26 -0300 Subject: [PATCH 002/129] Porting getting-started snippets --- .../introduction/getting-started.test.ts | 52 ------------------- .../connecting-to-localnode.test.ts | 11 ++++ .../introduction/connecting-to-localnode.ts | 14 +++++ .../connecting-to-testnet.test.ts | 11 ++++ .../src/introduction/connecting-to-testnet.ts | 14 +++++ .../connecting-to-a-local-node.md | 2 +- .../getting-started/connecting-to-testnet.md | 2 +- 7 files changed, 52 insertions(+), 54 deletions(-) delete mode 100644 apps/docs-snippets/src/guide/introduction/getting-started.test.ts create mode 100644 apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts create mode 100644 apps/docs-snippets2/src/introduction/connecting-to-localnode.ts create mode 100644 apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts create mode 100644 apps/docs-snippets2/src/introduction/connecting-to-testnet.ts diff --git a/apps/docs-snippets/src/guide/introduction/getting-started.test.ts b/apps/docs-snippets/src/guide/introduction/getting-started.test.ts deleted file mode 100644 index 533b2be3f49..00000000000 --- a/apps/docs-snippets/src/guide/introduction/getting-started.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { FUEL_NETWORK_URL, TESTNET_NETWORK_URL, Provider, Wallet, WalletUnlocked } from 'fuels'; - -/** - * @group node - * @group browser - */ -describe('Getting started', () => { - beforeAll(async () => { - // Avoids using the actual network. - const mockProvider = await Provider.create(FUEL_NETWORK_URL); - vi.spyOn(Provider, 'create').mockResolvedValue(mockProvider); - }); - - it('can connect to a local network', async () => { - // #region connecting-to-the-local-node - // #import { Provider, Wallet }; - - // Create a provider. - const LOCAL_FUEL_NETWORK = 'http://127.0.0.1:4000/v1/graphql'; - const provider = await Provider.create(LOCAL_FUEL_NETWORK); - - // Create our wallet (with a private key). - const PRIVATE_KEY = 'a1447cd75accc6b71a976fd3401a1f6ce318d27ba660b0315ee6ac347bf39568'; - const wallet = Wallet.fromPrivateKey(PRIVATE_KEY, provider); - // #endregion connecting-to-the-local-node - - expect(provider).toBeTruthy(); - expect(provider).toBeInstanceOf(Provider); - expect(wallet).toBeTruthy(); - expect(wallet).toBeInstanceOf(WalletUnlocked); - }); - - it('can connect to testnet', async () => { - // #region connecting-to-the-testnet - // #import { Provider, Wallet, TESTNET_NETWORK_URL }; - - // Create a provider, with the Latest Testnet URL. - const provider = await Provider.create(TESTNET_NETWORK_URL); - - // Create our wallet (with a private key). - const PRIVATE_KEY = 'a1447cd75accc6b71a976fd3401a1f6ce318d27ba660b0315ee6ac347bf39568'; - const wallet = Wallet.fromPrivateKey(PRIVATE_KEY, provider); - - // Perform a balance check. - const balances = await wallet.getBalances(); - // [{ assetId: '0x..', amount: bn(..) }, ..] - // #endregion connecting-to-the-testnet - - expect(balances).toBeTruthy(); - expect(balances).toBeInstanceOf(Array); - }); -}); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts new file mode 100644 index 00000000000..e70f56307de --- /dev/null +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -0,0 +1,11 @@ +import { main } from './connecting-to-testnet.wrapped'; + +/** + * @group node + * @group browser + */ +test('it works', async () => { + const { balances } = await main(); + expect(balances).toBeTruthy(); + expect(balances).toBeInstanceOf(Array); +}); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts new file mode 100644 index 00000000000..72339413bc9 --- /dev/null +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts @@ -0,0 +1,14 @@ +// #region main +import { Provider, Wallet, LOCAL_NETWORK_URL } from 'fuels'; + +const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; + +// Create a provider using the `LOCAL_NETWORK_URL` constant +const provider = await Provider.create(LOCAL_NETWORK_URL); + +// Then use it when creating a wallet +const wallet = Wallet.fromAddress(ADDRESS, provider); +const balances = await wallet.getBalances(); + +console.log({ balances }); +// #endregion main diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts new file mode 100644 index 00000000000..e70f56307de --- /dev/null +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts @@ -0,0 +1,11 @@ +import { main } from './connecting-to-testnet.wrapped'; + +/** + * @group node + * @group browser + */ +test('it works', async () => { + const { balances } = await main(); + expect(balances).toBeTruthy(); + expect(balances).toBeInstanceOf(Array); +}); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts new file mode 100644 index 00000000000..405f1181a80 --- /dev/null +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts @@ -0,0 +1,14 @@ +// #region main +import { Provider, Wallet, TESTNET_NETWORK_URL } from 'fuels'; + +const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; + +// Create a provider using the `TESTNET_NETWORK_URL` constant +const provider = await Provider.create(TESTNET_NETWORK_URL); + +// Then use it when creating a wallet +const wallet = Wallet.fromAddress(ADDRESS, provider); +const balances = await wallet.getBalances(); + +console.log({ balances }); +// #endregion main diff --git a/apps/docs/src/guide/getting-started/connecting-to-a-local-node.md b/apps/docs/src/guide/getting-started/connecting-to-a-local-node.md index b9c907291d1..3da9ae5ad59 100644 --- a/apps/docs/src/guide/getting-started/connecting-to-a-local-node.md +++ b/apps/docs/src/guide/getting-started/connecting-to-a-local-node.md @@ -7,4 +7,4 @@ Firstly, you will need a local node running on your machine. We recommend one of In the following example, we create a provider to connect to the local node and sign a message. -<<< @/../../docs-snippets/src/guide/introduction/getting-started.test.ts#connecting-to-the-local-node{ts:line-numbers} +<<< @/../../docs-snippets2/src/introduction/connecting-to-localnode.ts#main{ts:line-numbers} diff --git a/apps/docs/src/guide/getting-started/connecting-to-testnet.md b/apps/docs/src/guide/getting-started/connecting-to-testnet.md index 37aae6cdb4e..90ea6cde3fd 100644 --- a/apps/docs/src/guide/getting-started/connecting-to-testnet.md +++ b/apps/docs/src/guide/getting-started/connecting-to-testnet.md @@ -19,4 +19,4 @@ In the example below, we connect a [Provider](../provider/index.md) to the lates > **Note:** New wallets on the Testnet will not have any assets! You can use the [Faucet](https://faucet-testnet.fuel.network/) to fund your wallet. -<<< @/../../docs-snippets/src/guide/introduction/getting-started.test.ts#connecting-to-the-testnet{ts:line-numbers} +<<< @/../../docs-snippets2/src/introduction/connecting-to-testnet.ts#main{ts:line-numbers} From 5b4f6782a8277807ee0070821e8270f31f349a2f Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 2 Jul 2024 15:17:16 -0300 Subject: [PATCH 003/129] Ignoring new app in changesets --- .changeset/config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/config.json b/.changeset/config.json index f563048608f..ea1ab90cf05 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -17,6 +17,7 @@ "demo-node-esm", "demo-typegen", "@fuel-ts/docs-snippets", + "@fuel-ts/docs-snippets2", "template-nextjs", "create-fuels-counter-guide", "demo-wallet-sdk-react" From a45a02a653a2f7490d75eca76e31a8d1941a331e Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 2 Jul 2024 15:28:13 -0300 Subject: [PATCH 004/129] Adding changeset --- .changeset/lemon-cars-shop.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .changeset/lemon-cars-shop.md diff --git a/.changeset/lemon-cars-shop.md b/.changeset/lemon-cars-shop.md new file mode 100644 index 00000000000..1d2ece6c7b0 --- /dev/null +++ b/.changeset/lemon-cars-shop.md @@ -0,0 +1,4 @@ +--- +--- + +feat: new infra for code snippets From b382460b6240d2e5540a84a4e2cbc89397238120 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 2 Jul 2024 15:33:02 -0300 Subject: [PATCH 005/129] Ignoring wrapped snippets files (generated) --- .eslintignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.eslintignore b/.eslintignore index b6a870793a4..24543eaef99 100644 --- a/.eslintignore +++ b/.eslintignore @@ -23,3 +23,5 @@ CHANGELOG.md *.hbs templates/nextjs + +*.wrapped.ts From a83e65c1562b93fcee3f6e4adf82e83045d18e68 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 2 Jul 2024 15:56:06 -0300 Subject: [PATCH 006/129] =?UTF-8?q?Ignore=20test=20files=20trying=20to=20i?= =?UTF-8?q?mport=20files=20that=20haven=E2=80=99t=20been=20built=20yet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .knip.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.knip.json b/.knip.json index 047d7bf5d49..5aa392626c7 100644 --- a/.knip.json +++ b/.knip.json @@ -4,7 +4,8 @@ "**/*/.vitepress/*", "/apps/docs/*", "/packages/abi-typegen/test/**", - "templates/**" + "templates/**", + "/apps/docs-snippets2/**/*.test.ts" ], "ignoreDependencies": [ "@/sway-api/*", From 89bd596b9d5396deb2ba26fd555d2c607753ca8b Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:24:26 -0300 Subject: [PATCH 007/129] Using real code/file rather than code-string --- apps/docs-snippets2/scripts/wrap-snippets.ts | 14 ++++---------- apps/docs-snippets2/scripts/wrapper-fn.ts | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 apps/docs-snippets2/scripts/wrapper-fn.ts diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 3b76b3dcc7f..d57a64afbe4 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -1,17 +1,11 @@ import { readFileSync, writeFileSync } from 'fs'; import { globSync } from 'glob'; +import { join } from 'path'; const importsReg = /import[\s\S]+from.+['"];/gm; -const wrapper = `export const main = async (): Promise => { - const logs: any[] = []; - const console = { log (...args: any[]) { logs.push(args) }}; - // ———>>> - %SNIPPET% - // <<<——— - const singleCall = logs.length === 1 && logs[0].length === 1; - return singleCall ? logs[0][0] : logs; -}`.replace(/^\s{4}/gm, ' '); +const wrapperFnFilepath = join(__dirname, 'wrapper-fn.ts'); +const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); export const wrapSnippet = (filepath: string) => { const raw = readFileSync(filepath, 'utf8'); @@ -22,7 +16,7 @@ export const wrapSnippet = (filepath: string) => { // format const indented = snippet.replace(/^/gm, ' ').trim(); - const formatted = wrapper.replace('%SNIPPET%', indented); + const formatted = wrapperFnContents.replace('// %SNIPPET%', indented); // write const wrappedPath = filepath.replace('.ts', '.wrapped.ts'); diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts new file mode 100644 index 00000000000..1b7b5547eac --- /dev/null +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -0,0 +1,18 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable no-global-assign */ + +export const main = async (url?: string): Promise => { + const logs: any[] = []; + console = { + ...console, + log: (...args: any[]) => logs.push(args), + }; + if (url) { + const LOCAL_NETWORK_URL = url; + } + // ———>>> + // %SNIPPET% + // <<<——— + const singleCall = logs.length === 1 && logs[0].length === 1; + return singleCall ? logs[0][0] : logs; +}; From 89348f90a4b9d1c95e150f9f1bc1e896c7ab5b85 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:25:16 -0300 Subject: [PATCH 008/129] Adding example using `launchTestNode` and `LOCAL_NETWORK_URL` overrides --- .../src/introduction/connecting-to-localnode.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts index e70f56307de..b3242b969ec 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -1,3 +1,5 @@ +import { launchTestNode } from 'fuels/test-utils'; + import { main } from './connecting-to-testnet.wrapped'; /** @@ -5,7 +7,8 @@ import { main } from './connecting-to-testnet.wrapped'; * @group browser */ test('it works', async () => { - const { balances } = await main(); + const { provider } = await launchTestNode(); + const { balances } = await main(provider.url); expect(balances).toBeTruthy(); expect(balances).toBeInstanceOf(Array); }); From 0b790b7d60385b57dd142631c0505a7b329c8be5 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:25:43 -0300 Subject: [PATCH 009/129] Skipping until forc workspace has at least one member --- apps/docs-snippets2/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/package.json b/apps/docs-snippets2/package.json index 3e3a7dc5ff0..ea8f03b6237 100644 --- a/apps/docs-snippets2/package.json +++ b/apps/docs-snippets2/package.json @@ -5,7 +5,7 @@ "private": true, "scripts": { "build": "run-s wrap:snippets build:forc", - "build:forc": "pnpm fuels build", + "build:forc": "# pnpm fuels build", "wrap:snippets": "tsx scripts/wrap-snippets.ts", "pretest": "pnpm build" }, From 125aaad3f94c1fffcd4b1ac764a450c5818c9310 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:31:41 -0300 Subject: [PATCH 010/129] Renaming variable --- apps/docs-snippets2/scripts/wrapper-fn.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 1b7b5547eac..22a4644b8dc 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -1,14 +1,14 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable no-global-assign */ -export const main = async (url?: string): Promise => { +export const main = async (localNetworkUrl?: string): Promise => { const logs: any[] = []; console = { ...console, log: (...args: any[]) => logs.push(args), }; - if (url) { - const LOCAL_NETWORK_URL = url; + if (localNetworkUrl) { + const LOCAL_NETWORK_URL = localNetworkUrl; } // ———>>> // %SNIPPET% From 340652707763dbd4eb53c6d000e324e71198aa78 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:45:57 -0300 Subject: [PATCH 011/129] Fixing regex --- apps/docs-snippets2/scripts/wrap-snippets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index d57a64afbe4..5af9bc33c66 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -2,7 +2,7 @@ import { readFileSync, writeFileSync } from 'fs'; import { globSync } from 'glob'; import { join } from 'path'; -const importsReg = /import[\s\S]+from.+['"];/gm; +const importsReg = /^[\s\S]+from.+['"];/gm; const wrapperFnFilepath = join(__dirname, 'wrapper-fn.ts'); const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); From 01f85580b9ae0be05fc8cb32c7fa5de7f82f2e78 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:47:17 -0300 Subject: [PATCH 012/129] Ignoring lint issues individually --- apps/docs-snippets2/scripts/wrapper-fn.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 22a4644b8dc..b1bdb4b37bd 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -1,13 +1,14 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable no-global-assign */ export const main = async (localNetworkUrl?: string): Promise => { const logs: any[] = []; + // eslint-disable-next-line no-global-assign console = { ...console, log: (...args: any[]) => logs.push(args), }; if (localNetworkUrl) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const LOCAL_NETWORK_URL = localNetworkUrl; } // ———>>> From b63c1633b6684ec10d9304d50fe06a5bdd8a5f7a Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 15:47:58 -0300 Subject: [PATCH 013/129] Removing from browser group --- .../src/introduction/connecting-to-localnode.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts index b3242b969ec..82656fd79e1 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -4,7 +4,6 @@ import { main } from './connecting-to-testnet.wrapped'; /** * @group node - * @group browser */ test('it works', async () => { const { provider } = await launchTestNode(); From 36dbe163f37e8a23e9c8204dcc6878702ab7f436 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 16:04:28 -0300 Subject: [PATCH 014/129] Lintfix --- apps/docs-snippets2/scripts/wrapper-fn.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index b1bdb4b37bd..14556f03b28 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +// eslint-disable-next-line @typescript-eslint/require-await export const main = async (localNetworkUrl?: string): Promise => { const logs: any[] = []; // eslint-disable-next-line no-global-assign From 913433403c18a314576531488724f7876ee3dfef Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 17:36:12 -0300 Subject: [PATCH 015/129] Restoring console after snippet --- apps/docs-snippets2/scripts/wrapper-fn.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 14556f03b28..3580f8f742d 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -3,6 +3,7 @@ // eslint-disable-next-line @typescript-eslint/require-await export const main = async (localNetworkUrl?: string): Promise => { const logs: any[] = []; + const bkpConsole = console; // eslint-disable-next-line no-global-assign console = { ...console, @@ -15,6 +16,8 @@ export const main = async (localNetworkUrl?: string): Promise => { // ———>>> // %SNIPPET% // <<<——— + // eslint-disable-next-line no-global-assign + console = bkpConsole; const singleCall = logs.length === 1 && logs[0].length === 1; return singleCall ? logs[0][0] : logs; }; From 168f1242584b4b8034bea47358d9a33173068e22 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 17:36:40 -0300 Subject: [PATCH 016/129] Keeping wrapper free from weird hacks --- apps/docs-snippets2/scripts/wrapper-fn.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 3580f8f742d..4625c9e0776 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -1,18 +1,16 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ // eslint-disable-next-line @typescript-eslint/require-await -export const main = async (localNetworkUrl?: string): Promise => { +export const main = async (): Promise => { const logs: any[] = []; const bkpConsole = console; // eslint-disable-next-line no-global-assign console = { ...console, - log: (...args: any[]) => logs.push(args), + log: (...args: any[]) => { + logs.push(args); + }, }; - if (localNetworkUrl) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const LOCAL_NETWORK_URL = localNetworkUrl; - } // ———>>> // %SNIPPET% // <<<——— From 3dd1e3fce7c9457cef60e7040d44b4f200f8a2aa Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 17:40:20 -0300 Subject: [PATCH 017/129] Adding mock utility --- apps/docs-snippets2/test/importMocked.ts | 16 ++++++++++++++++ apps/docs-snippets2/tsconfig.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 apps/docs-snippets2/test/importMocked.ts diff --git a/apps/docs-snippets2/test/importMocked.ts b/apps/docs-snippets2/test/importMocked.ts new file mode 100644 index 00000000000..2060fc54d63 --- /dev/null +++ b/apps/docs-snippets2/test/importMocked.ts @@ -0,0 +1,16 @@ +import { launchTestNode } from 'fuels/test-utils'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { vi } from 'vitest'; + +export const mockLocalNetwork = async () => { + const { provider } = await launchTestNode(); + vi.doMock('fuels', async () => { + const mod = await vi.importActual('fuels'); + return { + __esModule: true, + ...mod, + LOCAL_NETWORK_URL: provider.url, + }; + }); + return { provider }; +}; diff --git a/apps/docs-snippets2/tsconfig.json b/apps/docs-snippets2/tsconfig.json index 6b53687b5a2..5006d44d00b 100644 --- a/apps/docs-snippets2/tsconfig.json +++ b/apps/docs-snippets2/tsconfig.json @@ -6,5 +6,5 @@ "rootDir": "./", "baseUrl": "./" }, - "include": ["./src"] + "include": ["src", "test"] } From 6ed91e2162834b4ed07a5e3afc335ce7c39f3c0d Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 17:41:06 -0300 Subject: [PATCH 018/129] Using mocking utility --- .../src/introduction/connecting-to-localnode.test.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts index 82656fd79e1..5e18f367db6 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -1,13 +1,12 @@ -import { launchTestNode } from 'fuels/test-utils'; - -import { main } from './connecting-to-testnet.wrapped'; +import { mockLocalNetwork } from '../../test/importMocked'; /** * @group node */ test('it works', async () => { - const { provider } = await launchTestNode(); - const { balances } = await main(provider.url); + await mockLocalNetwork(); + const { main } = await import('./connecting-to-localnode.wrapped'); + const { balances } = await main(); expect(balances).toBeTruthy(); expect(balances).toBeInstanceOf(Array); }); From 939f9d6dab284974c02f655044f11a526d0e2103 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 17:45:17 -0300 Subject: [PATCH 019/129] Validating if `nertworkUrl` was properly mocked --- .../src/introduction/connecting-to-localnode.test.ts | 8 +++++--- .../src/introduction/connecting-to-localnode.ts | 2 +- apps/docs-snippets2/test/importMocked.ts | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts index 5e18f367db6..1720d0fbb1c 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -1,12 +1,14 @@ -import { mockLocalNetwork } from '../../test/importMocked'; +import { mockLocalNetworkWithTestNode } from '../../test/importMocked'; /** * @group node */ test('it works', async () => { - await mockLocalNetwork(); + const { provider } = await mockLocalNetworkWithTestNode(); const { main } = await import('./connecting-to-localnode.wrapped'); - const { balances } = await main(); + const { providerUrl, balances } = await main(); + + expect(providerUrl).toEqual(provider.url); expect(balances).toBeTruthy(); expect(balances).toBeInstanceOf(Array); }); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts index 72339413bc9..216f5ecb70f 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts @@ -10,5 +10,5 @@ const provider = await Provider.create(LOCAL_NETWORK_URL); const wallet = Wallet.fromAddress(ADDRESS, provider); const balances = await wallet.getBalances(); -console.log({ balances }); +console.log({ balances, providerUrl: provider.url }); // #endregion main diff --git a/apps/docs-snippets2/test/importMocked.ts b/apps/docs-snippets2/test/importMocked.ts index 2060fc54d63..212241e8a37 100644 --- a/apps/docs-snippets2/test/importMocked.ts +++ b/apps/docs-snippets2/test/importMocked.ts @@ -2,7 +2,7 @@ import { launchTestNode } from 'fuels/test-utils'; // eslint-disable-next-line import/no-extraneous-dependencies import { vi } from 'vitest'; -export const mockLocalNetwork = async () => { +export const mockLocalNetworkWithTestNode = async () => { const { provider } = await launchTestNode(); vi.doMock('fuels', async () => { const mod = await vi.importActual('fuels'); From f795f001b5b21c475d04b5b77b64db3979e29ed3 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 18:33:52 -0300 Subject: [PATCH 020/129] Mock provider instead? --- apps/docs-snippets2/test/importMocked.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/docs-snippets2/test/importMocked.ts b/apps/docs-snippets2/test/importMocked.ts index 212241e8a37..eb1efb7133f 100644 --- a/apps/docs-snippets2/test/importMocked.ts +++ b/apps/docs-snippets2/test/importMocked.ts @@ -9,7 +9,9 @@ export const mockLocalNetworkWithTestNode = async () => { return { __esModule: true, ...mod, - LOCAL_NETWORK_URL: provider.url, + Provider: { + create: () => provider, + }, }; }); return { provider }; From 5732d8c8f1f4115e06c73cc1a0f3e1f153fef516 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 20:34:17 -0300 Subject: [PATCH 021/129] Mocking only for localhost --- apps/docs-snippets2/test/importMocked.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/test/importMocked.ts b/apps/docs-snippets2/test/importMocked.ts index eb1efb7133f..ccc5c2a6732 100644 --- a/apps/docs-snippets2/test/importMocked.ts +++ b/apps/docs-snippets2/test/importMocked.ts @@ -1,3 +1,5 @@ +import type { ProviderOptions } from 'fuels'; +import { Provider } from 'fuels'; import { launchTestNode } from 'fuels/test-utils'; // eslint-disable-next-line import/no-extraneous-dependencies import { vi } from 'vitest'; @@ -5,12 +7,18 @@ import { vi } from 'vitest'; export const mockLocalNetworkWithTestNode = async () => { const { provider } = await launchTestNode(); vi.doMock('fuels', async () => { - const mod = await vi.importActual('fuels'); + const module = await vi.importActual('fuels'); return { + ...module, __esModule: true, - ...mod, Provider: { - create: () => provider, + create: (url: string, options: ProviderOptions): Promise => { + const isLocalReg = /127\.0\.0\.1|localhost/; + if (isLocalReg.test(url)) { + return Promise.resolve(provider); + } + return Provider.create(url, options); + }, }, }; }); From 020022f9fc94c62421ea632263c9216f82be3287 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Thu, 4 Jul 2024 20:34:28 -0300 Subject: [PATCH 022/129] Adjusting snippets --- .../src/introduction/connecting-to-localnode.test.ts | 6 +++--- .../src/introduction/connecting-to-testnet.test.ts | 10 ++++++++-- .../src/introduction/connecting-to-testnet.ts | 2 +- ...{importMocked.ts => mockProviderForLocalNetwork.ts} | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) rename apps/docs-snippets2/test/{importMocked.ts => mockProviderForLocalNetwork.ts} (92%) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts index 1720d0fbb1c..f53b01cc1ba 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -1,14 +1,14 @@ -import { mockLocalNetworkWithTestNode } from '../../test/importMocked'; +import { mockProviderForLocalNetwork } from '../../test/mockProviderForLocalNetwork'; /** * @group node */ test('it works', async () => { - const { provider } = await mockLocalNetworkWithTestNode(); + const { provider } = await mockProviderForLocalNetwork(); const { main } = await import('./connecting-to-localnode.wrapped'); const { providerUrl, balances } = await main(); - expect(providerUrl).toEqual(provider.url); + expect(providerUrl).toEqual(provider.url); // TODO: remove check after PoC expect(balances).toBeTruthy(); expect(balances).toBeInstanceOf(Array); }); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts index e70f56307de..d39f0bb0101 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts @@ -1,11 +1,17 @@ +import { TESTNET_NETWORK_URL } from 'fuels'; + +import { mockProviderForLocalNetwork } from '../../test/mockProviderForLocalNetwork'; + import { main } from './connecting-to-testnet.wrapped'; /** * @group node - * @group browser */ test('it works', async () => { - const { balances } = await main(); + const { provider } = await mockProviderForLocalNetwork(); + const { providerUrl, balances } = await main(); + expect(providerUrl).toEqual(TESTNET_NETWORK_URL); // TODO: remove check after PoC + expect(providerUrl).not.toEqual(provider.url); // TODO: remove check after PoC expect(balances).toBeTruthy(); expect(balances).toBeInstanceOf(Array); }); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts index 405f1181a80..90431ad6ca6 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts @@ -10,5 +10,5 @@ const provider = await Provider.create(TESTNET_NETWORK_URL); const wallet = Wallet.fromAddress(ADDRESS, provider); const balances = await wallet.getBalances(); -console.log({ balances }); +console.log({ balances, providerUrl: provider.url }); // #endregion main diff --git a/apps/docs-snippets2/test/importMocked.ts b/apps/docs-snippets2/test/mockProviderForLocalNetwork.ts similarity index 92% rename from apps/docs-snippets2/test/importMocked.ts rename to apps/docs-snippets2/test/mockProviderForLocalNetwork.ts index ccc5c2a6732..42cd446bd8e 100644 --- a/apps/docs-snippets2/test/importMocked.ts +++ b/apps/docs-snippets2/test/mockProviderForLocalNetwork.ts @@ -4,7 +4,7 @@ import { launchTestNode } from 'fuels/test-utils'; // eslint-disable-next-line import/no-extraneous-dependencies import { vi } from 'vitest'; -export const mockLocalNetworkWithTestNode = async () => { +export const mockProviderForLocalNetwork = async () => { const { provider } = await launchTestNode(); vi.doMock('fuels', async () => { const module = await vi.importActual('fuels'); From 1388057fdce332e6c1861b58a62bf2b16faae073 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 5 Jul 2024 14:48:59 -0300 Subject: [PATCH 023/129] Wrapping snippet in a try/catch --- apps/docs-snippets2/scripts/wrapper-fn.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 4625c9e0776..99c2672255b 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -11,9 +11,14 @@ export const main = async (): Promise => { logs.push(args); }, }; - // ———>>> - // %SNIPPET% - // <<<——— + try { + // ———>>> + // %SNIPPET% + // <<<——— + } catch (error) { + console.error(error); + return { error }; + } // eslint-disable-next-line no-global-assign console = bkpConsole; const singleCall = logs.length === 1 && logs[0].length === 1; From 98b02e1e3756801206f8842c666ef1206d4ee8bc Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 17:42:09 -0300 Subject: [PATCH 024/129] Adding blank spaces --- apps/docs-snippets2/scripts/wrapper-fn.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 99c2672255b..efc87e16aaf 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -4,6 +4,7 @@ export const main = async (): Promise => { const logs: any[] = []; const bkpConsole = console; + // eslint-disable-next-line no-global-assign console = { ...console, @@ -11,6 +12,7 @@ export const main = async (): Promise => { logs.push(args); }, }; + try { // ———>>> // %SNIPPET% @@ -19,8 +21,10 @@ export const main = async (): Promise => { console.error(error); return { error }; } + // eslint-disable-next-line no-global-assign console = bkpConsole; + const singleCall = logs.length === 1 && logs[0].length === 1; return singleCall ? logs[0][0] : logs; }; From ea01d46f6a80f34e262f47a8baaabe1b3d2d398f Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 18:42:01 -0300 Subject: [PATCH 025/129] Removing mocking utility --- .../test/mockProviderForLocalNetwork.ts | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 apps/docs-snippets2/test/mockProviderForLocalNetwork.ts diff --git a/apps/docs-snippets2/test/mockProviderForLocalNetwork.ts b/apps/docs-snippets2/test/mockProviderForLocalNetwork.ts deleted file mode 100644 index 42cd446bd8e..00000000000 --- a/apps/docs-snippets2/test/mockProviderForLocalNetwork.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { ProviderOptions } from 'fuels'; -import { Provider } from 'fuels'; -import { launchTestNode } from 'fuels/test-utils'; -// eslint-disable-next-line import/no-extraneous-dependencies -import { vi } from 'vitest'; - -export const mockProviderForLocalNetwork = async () => { - const { provider } = await launchTestNode(); - vi.doMock('fuels', async () => { - const module = await vi.importActual('fuels'); - return { - ...module, - __esModule: true, - Provider: { - create: (url: string, options: ProviderOptions): Promise => { - const isLocalReg = /127\.0\.0\.1|localhost/; - if (isLocalReg.test(url)) { - return Promise.resolve(provider); - } - return Provider.create(url, options); - }, - }, - }; - }); - return { provider }; -}; From 2cacdb2dbfef3bcd9819520f946c2b7a8ac64be0 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 18:42:35 -0300 Subject: [PATCH 026/129] Adding pass-through options for `console.log` calls --- apps/docs-snippets2/scripts/wrapper-fn.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index efc87e16aaf..af9596e1139 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ // eslint-disable-next-line @typescript-eslint/require-await -export const main = async (): Promise => { +export const main = async (passLogsThrough: boolean = false): Promise => { const logs: any[] = []; const bkpConsole = console; @@ -9,6 +9,9 @@ export const main = async (): Promise => { console = { ...console, log: (...args: any[]) => { + if (passLogsThrough) { + bkpConsole.log.apply(null, args); + } logs.push(args); }, }; From 86205c4f1530864fc87be5f4b9f15683e3000b35 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 18:43:08 -0300 Subject: [PATCH 027/129] Adding new slot for injecting test node launcher into wrapped snippet --- apps/docs-snippets2/scripts/wrapper-fn.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index af9596e1139..5e1fd83b925 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -16,6 +16,10 @@ export const main = async (passLogsThrough: boolean = false): Promise>> + // %NODE_LAUNCHER% + // <<<——— + try { // ———>>> // %SNIPPET% From a6545afbb2f46e82cd929359b704ac65692d223d Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 18:43:54 -0300 Subject: [PATCH 028/129] Injecting node launcher for snippets using `LOCAL_NETWORK_URL` --- apps/docs-snippets2/scripts/wrap-snippets.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 5af9bc33c66..130ab95227d 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -11,12 +11,26 @@ export const wrapSnippet = (filepath: string) => { const raw = readFileSync(filepath, 'utf8'); // match - const imports = raw.match(importsReg)?.toString() ?? ''; + let imports = raw.match(importsReg)?.toString() ?? ''; const snippet = imports.length ? raw.split(imports)[1] : raw; + // creates node launcher injector and replaces `LOCAL_NETWORK_URL` + let nodeLauncher = ''; + if (/LOCAL_NETWORK_URL/.test(imports)) { + imports = imports.replace(/LOCAL_NETWORK_URL/, 'TESTNET_NETWORK_URL'); + imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; + nodeLauncher = [ + 'using node = await launchTestNode();', + 'const LOCAL_NETWORK_URL = node.provider.url;', + ].join('\n '); + } + // format - const indented = snippet.replace(/^/gm, ' ').trim(); - const formatted = wrapperFnContents.replace('// %SNIPPET%', indented); + const indented = snippet.replace(/^/gm, ' ').trim(); + + const formatted = wrapperFnContents + .replace('// %SNIPPET%', indented) + .replace('// %NODE_LAUNCHER%', nodeLauncher); // write const wrappedPath = filepath.replace('.ts', '.wrapped.ts'); From fd9a886f12f5e1e66c4a941f9e165d50b50e821f Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 18:44:04 -0300 Subject: [PATCH 029/129] Trim snippets --- .../src/introduction/connecting-to-localnode.ts | 8 +++----- .../src/introduction/connecting-to-testnet.ts | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts index 216f5ecb70f..3b595e79300 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts @@ -3,12 +3,10 @@ import { Provider, Wallet, LOCAL_NETWORK_URL } from 'fuels'; const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; -// Create a provider using the `LOCAL_NETWORK_URL` constant const provider = await Provider.create(LOCAL_NETWORK_URL); - -// Then use it when creating a wallet const wallet = Wallet.fromAddress(ADDRESS, provider); -const balances = await wallet.getBalances(); -console.log({ balances, providerUrl: provider.url }); +const { balances } = await wallet.getBalances(); + +console.log(balances); // #endregion main diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts index 90431ad6ca6..c7b7d445869 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts @@ -3,12 +3,10 @@ import { Provider, Wallet, TESTNET_NETWORK_URL } from 'fuels'; const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; -// Create a provider using the `TESTNET_NETWORK_URL` constant const provider = await Provider.create(TESTNET_NETWORK_URL); - -// Then use it when creating a wallet const wallet = Wallet.fromAddress(ADDRESS, provider); -const balances = await wallet.getBalances(); -console.log({ balances, providerUrl: provider.url }); +const { balances } = await wallet.getBalances(); + +console.log(balances); // #endregion main From 8295f4fac8adcb8c924e64c8442126206d83e88b Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 18:44:17 -0300 Subject: [PATCH 030/129] Cleanup snippets tests --- .../src/introduction/connecting-to-localnode.test.ts | 9 ++------- .../src/introduction/connecting-to-testnet.test.ts | 10 +--------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts index f53b01cc1ba..d6c0c14a81a 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts @@ -1,14 +1,9 @@ -import { mockProviderForLocalNetwork } from '../../test/mockProviderForLocalNetwork'; +import { main } from './connecting-to-localnode.wrapped'; /** * @group node */ test('it works', async () => { - const { provider } = await mockProviderForLocalNetwork(); - const { main } = await import('./connecting-to-localnode.wrapped'); - const { providerUrl, balances } = await main(); - - expect(providerUrl).toEqual(provider.url); // TODO: remove check after PoC - expect(balances).toBeTruthy(); + const balances = await main(); expect(balances).toBeInstanceOf(Array); }); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts index d39f0bb0101..baef76b49df 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts @@ -1,17 +1,9 @@ -import { TESTNET_NETWORK_URL } from 'fuels'; - -import { mockProviderForLocalNetwork } from '../../test/mockProviderForLocalNetwork'; - import { main } from './connecting-to-testnet.wrapped'; /** * @group node */ test('it works', async () => { - const { provider } = await mockProviderForLocalNetwork(); - const { providerUrl, balances } = await main(); - expect(providerUrl).toEqual(TESTNET_NETWORK_URL); // TODO: remove check after PoC - expect(providerUrl).not.toEqual(provider.url); // TODO: remove check after PoC - expect(balances).toBeTruthy(); + const balances = await main(); expect(balances).toBeInstanceOf(Array); }); From 70dde7cc66eff711e131b3fed44700e6420eb1b7 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 19:10:41 -0300 Subject: [PATCH 031/129] Stop ignoring test for `docs-snippets2` --- .knip.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.knip.json b/.knip.json index 808afd38f39..488634beb20 100644 --- a/.knip.json +++ b/.knip.json @@ -5,7 +5,6 @@ "/apps/docs/*", "/packages/abi-typegen/test/**", "templates/**", - "/apps/docs-snippets2/**/*.test.ts", "apps/create-fuels-counter-guide/**" ], "ignoreDependencies": [ From 45b576be6996d1b84d6bcd62b41ed8000fc98b3b Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 15 Jul 2024 19:13:49 -0300 Subject: [PATCH 032/129] Re-adding `docs-snippets2` tests to knip ignore list --- .knip.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.knip.json b/.knip.json index 488634beb20..808afd38f39 100644 --- a/.knip.json +++ b/.knip.json @@ -5,6 +5,7 @@ "/apps/docs/*", "/packages/abi-typegen/test/**", "templates/**", + "/apps/docs-snippets2/**/*.test.ts", "apps/create-fuels-counter-guide/**" ], "ignoreDependencies": [ From 802356aac73f687b7a4bd778f2fb5a9e1188bca6 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 14:37:43 -0300 Subject: [PATCH 033/129] Using internal builds --- apps/docs-snippets2/fuels.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/docs-snippets2/fuels.config.ts b/apps/docs-snippets2/fuels.config.ts index cf312acb672..5b0109ac896 100644 --- a/apps/docs-snippets2/fuels.config.ts +++ b/apps/docs-snippets2/fuels.config.ts @@ -4,4 +4,6 @@ export default createConfig({ workspace: './sway', output: './src/typegend', forcBuildFlags: ['--release'], + forcPath: 'fuels-forc', + fuelCorePath: 'fuels-core', }); From 74f7cef3c0ddea549e05d0c1c5ac4b3293e13ac0 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 14:38:50 -0300 Subject: [PATCH 034/129] Fixing ignore rule --- apps/docs-snippets2/scripts/wrap-snippets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 130ab95227d..5add442d0a2 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -41,6 +41,6 @@ export const wrapSnippet = (filepath: string) => { const dir = 'src/**'; const src = `${dir}/*.ts`; -const ignore = [`src/typegend`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; +const ignore = [`src/typegend/**`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; globSync(src, { ignore }).forEach(wrapSnippet); From 8c0be15ed1c09c0eeb07e89b49cba5e28756ee56 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 14:39:10 -0300 Subject: [PATCH 035/129] Adding basic counter Sway project --- apps/docs-snippets2/sway/Forc.toml | 2 +- apps/docs-snippets2/sway/counter/Forc.toml | 7 +++++ apps/docs-snippets2/sway/counter/src/main.sw | 27 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 apps/docs-snippets2/sway/counter/Forc.toml create mode 100644 apps/docs-snippets2/sway/counter/src/main.sw diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml index c4b464ff15a..74838452b03 100644 --- a/apps/docs-snippets2/sway/Forc.toml +++ b/apps/docs-snippets2/sway/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = [] +members = ["counter"] diff --git a/apps/docs-snippets2/sway/counter/Forc.toml b/apps/docs-snippets2/sway/counter/Forc.toml new file mode 100644 index 00000000000..e5c30097634 --- /dev/null +++ b/apps/docs-snippets2/sway/counter/Forc.toml @@ -0,0 +1,7 @@ +[project] +authors = ["Fuel Labs "] +entry = "main.sw" +license = "Apache-2.0" +name = "counter" + +[dependencies] diff --git a/apps/docs-snippets2/sway/counter/src/main.sw b/apps/docs-snippets2/sway/counter/src/main.sw new file mode 100644 index 00000000000..e3e3beddcd5 --- /dev/null +++ b/apps/docs-snippets2/sway/counter/src/main.sw @@ -0,0 +1,27 @@ +contract; + +abi Counter { + #[storage(read)] + fn get_count() -> u64; + + #[storage(write, read)] + fn increment_count(amount: u64) -> u64; +} + +storage { + counter: u64 = 0, +} + +impl Counter for Contract { + #[storage(read)] + fn get_count() -> u64 { + storage.counter.read() + } + + #[storage(write, read)] + fn increment_count(amount: u64) -> u64 { + let current = storage.counter.read(); + storage.counter.write(current + amount); + storage.counter.read() + } +} From 6af5a6a49fc028739c08492ce723b471e24eb193 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 14:39:42 -0300 Subject: [PATCH 036/129] Improving scripts --- apps/docs-snippets2/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets2/package.json b/apps/docs-snippets2/package.json index ea8f03b6237..0fe53597be9 100644 --- a/apps/docs-snippets2/package.json +++ b/apps/docs-snippets2/package.json @@ -5,9 +5,10 @@ "private": true, "scripts": { "build": "run-s wrap:snippets build:forc", - "build:forc": "# pnpm fuels build", + "build:forc": "pnpm fuels build", "wrap:snippets": "tsx scripts/wrap-snippets.ts", - "pretest": "pnpm build" + "pretest": "pnpm build", + "test": "cd ../.. && pnpm test:filter apps/docs-snippets2" }, "dependencies": { "fuels": "workspace:*" From 143d8be545be1fbf69193c46749541de89d793b4 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 15:27:23 -0300 Subject: [PATCH 037/129] Adding sample env file --- apps/docs-snippets2/src/env.ts | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 apps/docs-snippets2/src/env.ts diff --git a/apps/docs-snippets2/src/env.ts b/apps/docs-snippets2/src/env.ts new file mode 100644 index 00000000000..97453cfa9fd --- /dev/null +++ b/apps/docs-snippets2/src/env.ts @@ -0,0 +1,2 @@ +export const WALLET_ADDRESS: string = ''; +export const WALLET_PVT_KEY: string = ''; From 5a47c48f19daeba1a174474480f91840d73e7f9e Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 20:37:18 -0300 Subject: [PATCH 038/129] Standardizing snippets and tests --- apps/docs-snippets2/scripts/wrapper-fn.ts | 3 +-- .../src/introduction/connecting-to-localnode.test.ts | 2 +- .../docs-snippets2/src/introduction/connecting-to-localnode.ts | 2 +- .../src/introduction/connecting-to-testnet.test.ts | 2 +- apps/docs-snippets2/src/introduction/connecting-to-testnet.ts | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 5e1fd83b925..692c83256f4 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -32,6 +32,5 @@ export const main = async (passLogsThrough: boolean = false): Promise { - const balances = await main(); + const [[{ balances }]] = await main(); expect(balances).toBeInstanceOf(Array); }); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts index 3b595e79300..139e54ed08f 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts @@ -8,5 +8,5 @@ const wallet = Wallet.fromAddress(ADDRESS, provider); const { balances } = await wallet.getBalances(); -console.log(balances); +console.log({ balances }); // #endregion main diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts index baef76b49df..d77f0f35f3c 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts @@ -4,6 +4,6 @@ import { main } from './connecting-to-testnet.wrapped'; * @group node */ test('it works', async () => { - const balances = await main(); + const [[{ balances }]] = await main(); expect(balances).toBeInstanceOf(Array); }); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts index c7b7d445869..9ac6e93b040 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts @@ -8,5 +8,5 @@ const wallet = Wallet.fromAddress(ADDRESS, provider); const { balances } = await wallet.getBalances(); -console.log(balances); +console.log({ balances }); // #endregion main From c68ea148b7dd403ac7100a3e0ad3060f25c3543b Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 21:20:30 -0300 Subject: [PATCH 039/129] Validate env constants existence --- apps/docs-snippets2/scripts/wrap-snippets.ts | 38 ++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 5add442d0a2..cd2d858653f 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -14,14 +14,46 @@ export const wrapSnippet = (filepath: string) => { let imports = raw.match(importsReg)?.toString() ?? ''; const snippet = imports.length ? raw.split(imports)[1] : raw; - // creates node launcher injector and replaces `LOCAL_NETWORK_URL` + // 1—— creates node launcher injector + const keys = ['LOCAL_NETWORK_URL', 'WALLET_ADDRESS', 'WALLET_PVT_KEY']; + + const envImportReg = /import.+\{.+([\s\S]+).+\}.+from.+'\.\.\/env';/gm; + if (envImportReg.test(imports)) { + // match all import groups up to the `env.ts` import + const allImports = imports.match(envImportReg)?.[0]; + const envImport = `import ${allImports?.split('import ').pop()}`; + + // isolater the `env.ts` import line and extract its members + const envMembersReg = /import.+\{(.+)\}.+from.+'\.\.\/env'/m; + const envConstants = envImport.match(envMembersReg)?.[1].trim().split(/,\s?/); + + // check and warns against unsupported env members + envConstants?.forEach((envConst) => { + const found = keys.find((k) => k === envConst); + if (!found) { + throw new Error(`Mocked env consty '${envConst}' not supported in code snippets.`); + } + }); + + // Remove the env import line, favoring the + // inline declared variables. + imports = imports.replace(envImport, ''); + } + let nodeLauncher = ''; - if (/LOCAL_NETWORK_URL/.test(imports)) { - imports = imports.replace(/LOCAL_NETWORK_URL/, 'TESTNET_NETWORK_URL'); + + const localNetworkReg = /LOCAL_NETWORK_URL/; + if (localNetworkReg.test(imports)) { + // 2—— replaces `LOCAL_NETWORK_URL` + imports = imports.replace(localNetworkReg, 'TESTNET_NETWORK_URL'); imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; + + // 3—— injects launched node and env constants nodeLauncher = [ 'using node = await launchTestNode();', 'const LOCAL_NETWORK_URL = node.provider.url;', + 'const WALLET_ADDRESS = node.wallets[0].address;', + 'const WALLET_PVT_KEY = node.wallets[0].privateKey;', ].join('\n '); } From 7a6562373f9e3a3d0da894e2301dcc7078df7235 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 22:30:21 -0300 Subject: [PATCH 040/129] Drafting new snippet --- .../transaction-parameters.test.ts | 9 +++++ .../transactions/transaction-parameters.ts | 34 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 apps/docs-snippets2/src/transactions/transaction-parameters.test.ts create mode 100644 apps/docs-snippets2/src/transactions/transaction-parameters.ts diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.test.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.test.ts new file mode 100644 index 00000000000..a79ffd1cee0 --- /dev/null +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.test.ts @@ -0,0 +1,9 @@ +import { main } from './transaction-parameters.wrapped'; + +/** + * @group node + */ +test('it works', async () => { + const [[{ isStatusSuccess }]] = await main(); + expect(isStatusSuccess).toBeTruthy(); +}); diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts new file mode 100644 index 00000000000..05ebfc87984 --- /dev/null +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -0,0 +1,34 @@ +import { LOCAL_NETWORK_URL, Provider, Wallet } from 'fuels'; + +import { WALLET_ADDRESS, WALLET_PVT_KEY } from '../env'; +import { CounterAbi__factory } from '../typegend'; +import bytecode from '../typegend/contracts/CounterAbi.hex'; + +const { storageSlots } = CounterAbi__factory; + +const client = await Provider.create(LOCAL_NETWORK_URL); + +const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, client); +const wallet2 = Wallet.fromAddress(WALLET_ADDRESS, client); + +const deploy = await CounterAbi__factory.deployContract(bytecode, wallet, { + storageSlots, +}); + +const { contract } = await deploy.waitForResult(); + +// #region transaction-parameters-8 +const { waitForResult } = await contract.functions + .increment_count(15) + .txParams({ + variableOutputs: 1, + }) + .call(); + +const { + transactionResult: { isStatusSuccess }, + value, +} = await waitForResult(); + +console.log({ isStatusSuccess, value, wallet2 }); +// #endregion transaction-parameters-8 From c32a6e927e34c1d883255046c6a4637028e37a47 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 22:41:22 -0300 Subject: [PATCH 041/129] Adjusting script command --- apps/docs-snippets2/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/package.json b/apps/docs-snippets2/package.json index 0fe53597be9..87f57f55c07 100644 --- a/apps/docs-snippets2/package.json +++ b/apps/docs-snippets2/package.json @@ -8,7 +8,7 @@ "build:forc": "pnpm fuels build", "wrap:snippets": "tsx scripts/wrap-snippets.ts", "pretest": "pnpm build", - "test": "cd ../.. && pnpm test:filter apps/docs-snippets2" + "test": "cd ../.. && pnpm run test:filter apps/docs-snippets2" }, "dependencies": { "fuels": "workspace:*" From 0d810927d266a0a9a7ea8aa23e161706afe5b0ba Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 19 Jul 2024 22:44:19 -0300 Subject: [PATCH 042/129] Removing unnecessary wallet --- .../src/transactions/transaction-parameters.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index 05ebfc87984..bbc258832cf 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -1,15 +1,13 @@ import { LOCAL_NETWORK_URL, Provider, Wallet } from 'fuels'; -import { WALLET_ADDRESS, WALLET_PVT_KEY } from '../env'; +import { WALLET_PVT_KEY } from '../env'; import { CounterAbi__factory } from '../typegend'; import bytecode from '../typegend/contracts/CounterAbi.hex'; const { storageSlots } = CounterAbi__factory; const client = await Provider.create(LOCAL_NETWORK_URL); - const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, client); -const wallet2 = Wallet.fromAddress(WALLET_ADDRESS, client); const deploy = await CounterAbi__factory.deployContract(bytecode, wallet, { storageSlots, @@ -30,5 +28,5 @@ const { value, } = await waitForResult(); -console.log({ isStatusSuccess, value, wallet2 }); +console.log({ isStatusSuccess, value }); // #endregion transaction-parameters-8 From 65d6e80088542ce4aa91aeec1f29b3a34e53e598 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 00:11:21 -0300 Subject: [PATCH 043/129] Extacting launcher into another file --- apps/docs-snippets2/scripts/launcher.ts | 7 +++ apps/docs-snippets2/scripts/wrap-snippets.ts | 55 +++++++------------- 2 files changed, 27 insertions(+), 35 deletions(-) create mode 100644 apps/docs-snippets2/scripts/launcher.ts diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher.ts new file mode 100644 index 00000000000..b59c67e45ca --- /dev/null +++ b/apps/docs-snippets2/scripts/launcher.ts @@ -0,0 +1,7 @@ +import { launchTestNode } from 'fuels/test-utils'; + +using node = await launchTestNode({}); + +export const LOCAL_NETWORK_URL = node.provider.url; +export const WALLET_ADDRESS = node.wallets[0].address; +export const WALLET_PVT_KEY = node.wallets[0].privateKey; diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index cd2d858653f..1d50acd6f91 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -2,75 +2,60 @@ import { readFileSync, writeFileSync } from 'fs'; import { globSync } from 'glob'; import { join } from 'path'; -const importsReg = /^[\s\S]+from.+['"];/gm; - const wrapperFnFilepath = join(__dirname, 'wrapper-fn.ts'); const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); +/** + * Wrap snippet for testing + * @param filepath - Snippet filepath + */ export const wrapSnippet = (filepath: string) => { + // 0— filter all imports from file const raw = readFileSync(filepath, 'utf8'); - - // match + const importsReg = /^[\s\S]+from.+['"];/gm; let imports = raw.match(importsReg)?.toString() ?? ''; const snippet = imports.length ? raw.split(imports)[1] : raw; - // 1—— creates node launcher injector - const keys = ['LOCAL_NETWORK_URL', 'WALLET_ADDRESS', 'WALLET_PVT_KEY']; - + // 1— remove .env import const envImportReg = /import.+\{.+([\s\S]+).+\}.+from.+'\.\.\/env';/gm; if (envImportReg.test(imports)) { - // match all import groups up to the `env.ts` import const allImports = imports.match(envImportReg)?.[0]; const envImport = `import ${allImports?.split('import ').pop()}`; - - // isolater the `env.ts` import line and extract its members - const envMembersReg = /import.+\{(.+)\}.+from.+'\.\.\/env'/m; - const envConstants = envImport.match(envMembersReg)?.[1].trim().split(/,\s?/); - - // check and warns against unsupported env members - envConstants?.forEach((envConst) => { - const found = keys.find((k) => k === envConst); - if (!found) { - throw new Error(`Mocked env consty '${envConst}' not supported in code snippets.`); - } - }); - - // Remove the env import line, favoring the - // inline declared variables. imports = imports.replace(envImport, ''); } + // 2— creates node launcher injector let nodeLauncher = ''; - const localNetworkReg = /LOCAL_NETWORK_URL/; if (localNetworkReg.test(imports)) { - // 2—— replaces `LOCAL_NETWORK_URL` + // 2.a—— replaces `LOCAL_NETWORK_URL` imports = imports.replace(localNetworkReg, 'TESTNET_NETWORK_URL'); imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; - // 3—— injects launched node and env constants - nodeLauncher = [ - 'using node = await launchTestNode();', - 'const LOCAL_NETWORK_URL = node.provider.url;', - 'const WALLET_ADDRESS = node.wallets[0].address;', - 'const WALLET_PVT_KEY = node.wallets[0].privateKey;', - ].join('\n '); + // 2.b—— injects launched node and env constants + nodeLauncher = readFileSync(join(__dirname, 'launcher.ts'), 'utf-8') + .replace(/import.*$/gm, '') + .replace(/export/g, '') + .trim() + .replace(/\n/g, '\n '); } - // format + // 3— format indentation const indented = snippet.replace(/^/gm, ' ').trim(); - const formatted = wrapperFnContents .replace('// %SNIPPET%', indented) .replace('// %NODE_LAUNCHER%', nodeLauncher); - // write + // 4— write wrapped snippet to disk const wrappedPath = filepath.replace('.ts', '.wrapped.ts'); const wrappedSnippet = [imports, '\n', formatted].join(''); writeFileSync(wrappedPath, wrappedSnippet); }; +/* + Wrap all snippets inside `src` dir +*/ const dir = 'src/**'; const src = `${dir}/*.ts`; const ignore = [`src/typegend/**`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; From 7ddc250c51cfca3d33de22f92725d4e30761e9da Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 00:12:53 -0300 Subject: [PATCH 044/129] New API draft --- .../transaction-parameters.api.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 apps/docs-snippets2/src/transactions/transaction-parameters.api.ts diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.api.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.api.ts new file mode 100644 index 00000000000..e54725afb02 --- /dev/null +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.api.ts @@ -0,0 +1,26 @@ +// #region transaction-parameters-8 +import { LOCAL_NETWORK_URL, fuels } from 'fuels'; + +import { WALLET_PVT_KEY } from '../env'; +import { Counter } from '../typegend'; + +const client = await fuels(LOCAL_NETWORK_URL); +const wallet = client.wallet(WALLET_PVT_KEY); +const deploy = await Counter.deploy(wallet); + +const { contract } = await deploy.waitForResult(); + +const { waitForResult } = await contract.functions + .increment_count(15) + .txParams({ + variableOutputs: 1, + }) + .call(); + +const { + value, + transactionResult: { isStatusSuccess }, +} = await waitForResult(); + +console.log({ value, isStatusSuccess }); +// #endregion transaction-parameters-8 From 28cce95d371d700322c139f822850092d8e4f010 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 00:45:37 -0300 Subject: [PATCH 045/129] Syncing env and launcher template --- apps/docs-snippets2/scripts/launcher.ts | 21 ++++++++++++++++++--- apps/docs-snippets2/src/env.ts | 16 ++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher.ts index b59c67e45ca..1493d6debc8 100644 --- a/apps/docs-snippets2/scripts/launcher.ts +++ b/apps/docs-snippets2/scripts/launcher.ts @@ -1,7 +1,22 @@ import { launchTestNode } from 'fuels/test-utils'; -using node = await launchTestNode({}); +using node = await launchTestNode({ walletsConfig: { count: 5 } }); export const LOCAL_NETWORK_URL = node.provider.url; -export const WALLET_ADDRESS = node.wallets[0].address; -export const WALLET_PVT_KEY = node.wallets[0].privateKey; + +const [w0, w2, w3, w4, w5] = node.wallets; + +export const WALLET_ADDRESS = w0.address; +export const WALLET_PVT_KEY = w0.privateKey; + +export const WALLET_ADDRESS_2 = w2.address; +export const WALLET_PVT_KEY_2 = w2.privateKey; + +export const WALLET_ADDRESS_3 = w3.address; +export const WALLET_PVT_KEY_3 = w3.privateKey; + +export const WALLET_ADDRESS_4 = w4.address; +export const WALLET_PVT_KEY_4 = w4.privateKey; + +export const WALLET_ADDRESS_5 = w5.address; +export const WALLET_PVT_KEY_5 = w5.privateKey; diff --git a/apps/docs-snippets2/src/env.ts b/apps/docs-snippets2/src/env.ts index 97453cfa9fd..2ee440b5566 100644 --- a/apps/docs-snippets2/src/env.ts +++ b/apps/docs-snippets2/src/env.ts @@ -1,2 +1,14 @@ -export const WALLET_ADDRESS: string = ''; -export const WALLET_PVT_KEY: string = ''; +export const WALLET_ADDRESS = ''; +export const WALLET_PVT_KEY = ''; + +export const WALLET_ADDRESS_2 = ''; +export const WALLET_PVT_KEY_2 = ''; + +export const WALLET_ADDRESS_3 = ''; +export const WALLET_PVT_KEY_3 = ''; + +export const WALLET_ADDRESS_4 = ''; +export const WALLET_PVT_KEY_4 = ''; + +export const WALLET_ADDRESS_5 = ''; +export const WALLET_PVT_KEY_5 = ''; From 47b19bdd197d84872e882d43b3f913db00c7c718 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 00:45:51 -0300 Subject: [PATCH 046/129] Better docs --- apps/docs-snippets2/scripts/wrap-snippets.ts | 37 ++++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 1d50acd6f91..b04e55e69db 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -10,13 +10,18 @@ const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); * @param filepath - Snippet filepath */ export const wrapSnippet = (filepath: string) => { - // 0— filter all imports from file - const raw = readFileSync(filepath, 'utf8'); + const snippetContents = readFileSync(filepath, 'utf8'); + + /* + Filter all imports from file. + */ const importsReg = /^[\s\S]+from.+['"];/gm; - let imports = raw.match(importsReg)?.toString() ?? ''; - const snippet = imports.length ? raw.split(imports)[1] : raw; + let imports = snippetContents.match(importsReg)?.toString() ?? ''; + const snippetsNoImports = imports.length ? snippetContents.split(imports)[1] : snippetContents; - // 1— remove .env import + /* + Remove .env import + */ const envImportReg = /import.+\{.+([\s\S]+).+\}.+from.+'\.\.\/env';/gm; if (envImportReg.test(imports)) { const allImports = imports.match(envImportReg)?.[0]; @@ -24,15 +29,21 @@ export const wrapSnippet = (filepath: string) => { imports = imports.replace(envImport, ''); } - // 2— creates node launcher injector + /* + Inject node launcher & friends + */ let nodeLauncher = ''; const localNetworkReg = /LOCAL_NETWORK_URL/; if (localNetworkReg.test(imports)) { - // 2.a—— replaces `LOCAL_NETWORK_URL` + /* + Replaces `LOCAL_NETWORK_URL` + */ imports = imports.replace(localNetworkReg, 'TESTNET_NETWORK_URL'); imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; - // 2.b—— injects launched node and env constants + /* + Injects launched node and env constants + */ nodeLauncher = readFileSync(join(__dirname, 'launcher.ts'), 'utf-8') .replace(/import.*$/gm, '') .replace(/export/g, '') @@ -40,13 +51,17 @@ export const wrapSnippet = (filepath: string) => { .replace(/\n/g, '\n '); } - // 3— format indentation - const indented = snippet.replace(/^/gm, ' ').trim(); + /* + Format indentation + */ + const indented = snippetsNoImports.replace(/^/gm, ' ').trim(); const formatted = wrapperFnContents .replace('// %SNIPPET%', indented) .replace('// %NODE_LAUNCHER%', nodeLauncher); - // 4— write wrapped snippet to disk + /* + Write wrapped snippet to disk + */ const wrappedPath = filepath.replace('.ts', '.wrapped.ts'); const wrappedSnippet = [imports, '\n', formatted].join(''); From f0287c22ca4053978ae92bc96849d6bd8847d7f8 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 00:46:15 -0300 Subject: [PATCH 047/129] Adding new sway script --- apps/docs-snippets2/sway/script-sum/src/Forc.toml | 7 +++++++ apps/docs-snippets2/sway/script-sum/src/main.sw | 13 +++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 apps/docs-snippets2/sway/script-sum/src/Forc.toml create mode 100644 apps/docs-snippets2/sway/script-sum/src/main.sw diff --git a/apps/docs-snippets2/sway/script-sum/src/Forc.toml b/apps/docs-snippets2/sway/script-sum/src/Forc.toml new file mode 100644 index 00000000000..e5c30097634 --- /dev/null +++ b/apps/docs-snippets2/sway/script-sum/src/Forc.toml @@ -0,0 +1,7 @@ +[project] +authors = ["Fuel Labs "] +entry = "main.sw" +license = "Apache-2.0" +name = "counter" + +[dependencies] diff --git a/apps/docs-snippets2/sway/script-sum/src/main.sw b/apps/docs-snippets2/sway/script-sum/src/main.sw new file mode 100644 index 00000000000..a1bb0b021d5 --- /dev/null +++ b/apps/docs-snippets2/sway/script-sum/src/main.sw @@ -0,0 +1,13 @@ +// #region script-with-configurable-contants-1 +// #region encode-and-decode-1 +script; + +configurable { + AMOUNT: u32 = 10, +} + +fn main(inputted_amount: u32) -> u32 { + inputted_amount + AMOUNT +} +// #endregion encode-and-decode-1 +// #endregion script-with-configurable-contants-1 From 4ac46af07c1dc56cd6837ac531f7b8b5ac73af38 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 00:46:37 -0300 Subject: [PATCH 048/129] Removing API draft --- .../transaction-parameters.api.ts | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 apps/docs-snippets2/src/transactions/transaction-parameters.api.ts diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.api.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.api.ts deleted file mode 100644 index e54725afb02..00000000000 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.api.ts +++ /dev/null @@ -1,26 +0,0 @@ -// #region transaction-parameters-8 -import { LOCAL_NETWORK_URL, fuels } from 'fuels'; - -import { WALLET_PVT_KEY } from '../env'; -import { Counter } from '../typegend'; - -const client = await fuels(LOCAL_NETWORK_URL); -const wallet = client.wallet(WALLET_PVT_KEY); -const deploy = await Counter.deploy(wallet); - -const { contract } = await deploy.waitForResult(); - -const { waitForResult } = await contract.functions - .increment_count(15) - .txParams({ - variableOutputs: 1, - }) - .call(); - -const { - value, - transactionResult: { isStatusSuccess }, -} = await waitForResult(); - -console.log({ value, isStatusSuccess }); -// #endregion transaction-parameters-8 From e0c319e799311a9ed9cf192809a0cca067cb6cd3 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 01:23:28 -0300 Subject: [PATCH 049/129] Fixing file location --- apps/docs-snippets2/sway/script-sum/{src => }/Forc.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename apps/docs-snippets2/sway/script-sum/{src => }/Forc.toml (84%) diff --git a/apps/docs-snippets2/sway/script-sum/src/Forc.toml b/apps/docs-snippets2/sway/script-sum/Forc.toml similarity index 84% rename from apps/docs-snippets2/sway/script-sum/src/Forc.toml rename to apps/docs-snippets2/sway/script-sum/Forc.toml index e5c30097634..3d6ea01cf6a 100644 --- a/apps/docs-snippets2/sway/script-sum/src/Forc.toml +++ b/apps/docs-snippets2/sway/script-sum/Forc.toml @@ -2,6 +2,6 @@ authors = ["Fuel Labs "] entry = "main.sw" license = "Apache-2.0" -name = "counter" +name = "script-sum" [dependencies] From c647814d9f55298636bbedd7a63144f635dff9cd Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 01:23:39 -0300 Subject: [PATCH 050/129] Add script to workspace --- apps/docs-snippets2/sway/Forc.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml index 74838452b03..fd431b1e348 100644 --- a/apps/docs-snippets2/sway/Forc.toml +++ b/apps/docs-snippets2/sway/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = ["counter"] +members = ["counter", "script-sum"] From 1ebc19ddc67303c5272e3b99cb3e772353f7a419 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 01:23:53 -0300 Subject: [PATCH 051/129] Improve snippet --- .../transactions/transaction-parameters.ts | 47 +++++++++++++++---- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index bbc258832cf..3f202e56702 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -1,32 +1,59 @@ -import { LOCAL_NETWORK_URL, Provider, Wallet } from 'fuels'; +import type { TxParams } from 'fuels'; +import { bn, LOCAL_NETWORK_URL, Provider, ScriptTransactionRequest, Wallet } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; import { CounterAbi__factory } from '../typegend'; import bytecode from '../typegend/contracts/CounterAbi.hex'; +import { ScriptSumAbi__factory } from '../typegend/scripts'; const { storageSlots } = CounterAbi__factory; -const client = await Provider.create(LOCAL_NETWORK_URL); -const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, client); +const provider = await Provider.create(LOCAL_NETWORK_URL); +const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); const deploy = await CounterAbi__factory.deployContract(bytecode, wallet, { storageSlots, }); +// #region transaction-parameters-6 +const txParams: TxParams = { + // #region transaction-parameters-1 + gasLimit: bn(69242), + // #endregion transaction-parameters-1 + // #region transaction-parameters-2 + maxFee: bn(69242), + // #endregion transaction-parameters-2 + // #region transaction-parameters-3 + tip: bn(100), + // #endregion transaction-parameters-3 + // #region transaction-parameters-4 + maturity: 1, + // #endregion transaction-parameters-4 + // #region transaction-parameters-5 + witnessLimit: bn(5000), + // #endregion transaction-parameters-5 +}; +// #endregion transaction-parameters-6 + const { contract } = await deploy.waitForResult(); +// #region transaction-parameters-7 +const transactionRequest = new ScriptTransactionRequest({ + script: ScriptSumAbi__factory.bin, + gasLimit: 100, +}); +// #endregion transaction-parameters-7 + // #region transaction-parameters-8 -const { waitForResult } = await contract.functions - .increment_count(15) - .txParams({ - variableOutputs: 1, - }) +const { waitForResult } = await contract.functions // contract methods + .increment_count(15) // contract method params + .txParams(txParams) // custom params .call(); const { - transactionResult: { isStatusSuccess }, value, + transactionResult: { isStatusSuccess }, } = await waitForResult(); -console.log({ isStatusSuccess, value }); +console.log({ value, isStatusSuccess, transactionRequest }); // #endregion transaction-parameters-8 From 9c93682026ef13f78527fc1d0d2015d6cec5e498 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 01:24:05 -0300 Subject: [PATCH 052/129] Using new snippets --- .../transactions/transaction-parameters.ts | 38 ++++++++++++------- .../transactions/transaction-parameters.md | 38 ++++++++++--------- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index 3f202e56702..f1d1c66b7b3 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -1,9 +1,16 @@ +// #region full import type { TxParams } from 'fuels'; -import { bn, LOCAL_NETWORK_URL, Provider, ScriptTransactionRequest, Wallet } from 'fuels'; +import { + bn, + LOCAL_NETWORK_URL, + Provider, + ScriptTransactionRequest, + Wallet, +} from 'fuels'; import { WALLET_PVT_KEY } from '../env'; import { CounterAbi__factory } from '../typegend'; -import bytecode from '../typegend/contracts/CounterAbi.hex'; +import counterBytecode from '../typegend/contracts/CounterAbi.hex'; import { ScriptSumAbi__factory } from '../typegend/scripts'; const { storageSlots } = CounterAbi__factory; @@ -11,26 +18,30 @@ const { storageSlots } = CounterAbi__factory; const provider = await Provider.create(LOCAL_NETWORK_URL); const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); -const deploy = await CounterAbi__factory.deployContract(bytecode, wallet, { - storageSlots, -}); +const deploy = await CounterAbi__factory.deployContract( + counterBytecode, + wallet, + { + storageSlots, + } +); // #region transaction-parameters-6 const txParams: TxParams = { // #region transaction-parameters-1 - gasLimit: bn(69242), + gasLimit: bn(69242), // BigNumberish or undefined // #endregion transaction-parameters-1 // #region transaction-parameters-2 - maxFee: bn(69242), + maxFee: bn(69242), // BigNumberish or undefined // #endregion transaction-parameters-2 // #region transaction-parameters-3 - tip: bn(100), + tip: bn(100), // BigNumberish or undefined // #endregion transaction-parameters-3 // #region transaction-parameters-4 - maturity: 1, + maturity: 1, // BigNumberish or undefined // #endregion transaction-parameters-4 // #region transaction-parameters-5 - witnessLimit: bn(5000), + witnessLimit: bn(5000), // BigNumberish or undefined // #endregion transaction-parameters-5 }; // #endregion transaction-parameters-6 @@ -45,9 +56,9 @@ const transactionRequest = new ScriptTransactionRequest({ // #endregion transaction-parameters-7 // #region transaction-parameters-8 -const { waitForResult } = await contract.functions // contract methods - .increment_count(15) // contract method params - .txParams(txParams) // custom params +const { waitForResult } = await contract.functions + .increment_count(15) // contract method + .txParams(txParams) .call(); const { @@ -57,3 +68,4 @@ const { console.log({ value, isStatusSuccess, transactionRequest }); // #endregion transaction-parameters-8 +// #endregion full diff --git a/apps/docs/src/guide/transactions/transaction-parameters.md b/apps/docs/src/guide/transactions/transaction-parameters.md index 790dc59dd45..8402356dd8d 100644 --- a/apps/docs/src/guide/transactions/transaction-parameters.md +++ b/apps/docs/src/guide/transactions/transaction-parameters.md @@ -2,56 +2,60 @@ Transaction parameters allow you to configure various aspects of your blockchain transactions. Dependent on these parameters, it may introduce a [transaction policy](./transaction-policies.md). The parameters are: -### Gas Limit +All available parameters are shown below: + +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-6{ts:line-numbers} + +## Gas Limit The maximum amount of gas you're willing to allow the transaction to consume. If the transaction requires more gas than this limit, it will fail. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-1{ts:line-numbers} -### Max Fee +## Max Fee The maximum amount you're willing to pay for the transaction using the base asset. This allows users to set an upper limit on the transaction fee they are willing to pay, preventing unexpected high costs due to sudden network congestion or fee spikes. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-2{ts:line-numbers} -### Tip +## Tip An optional amount of the base asset to incentivise the block producer to include the transaction, ensuring faster processing for those willing to pay more. The value set here will be added to the transaction `maxFee`. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-3{ts:line-numbers} -### Maturity +## Maturity The number of blocks that must pass before the transaction can be included in a block. This is useful for time-sensitive transactions, such as those involving time-locked assets. For example, if the chain produces a new block every second, setting Maturity to `10` means the transaction will be processed after approximately 10 seconds. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-4{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-4{ts:line-numbers} -### Witness Limit +## Witness Limit The maximum byte length allowed for the transaction witnesses array. For instance, imagine a transaction that will deploy a contract. The contract bytecode will be one of the entries in the transaction witnesses. If you set this limit to `5000` and the contract bytecode length is `6000`, the transaction will be rejected because the witnesses bytes length exceeds the maximum value set. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-5{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-5{ts:line-numbers} -### Variable Outputs +## Variable Outputs The number of variable outputs that should be added to the transaction request. You can read more about it on this [guide](../contracts/variable-outputs.md) > **Note**: Setting transaction parameters is optional. If you don't specify them, the SDK will fetch some sensible defaults from the chain. -All available parameters are shown below: - -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-6{ts:line-numbers} - ## Setting Transaction Parameters To set the transaction parameters, you have access to the `txParams` method on a transaction request. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-7{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-7{ts:line-numbers} The same method is also accessible within a function invocation scope, so it can also be used when calling contract functions. -<<< @/../../docs-snippets/src/guide/transactions/transaction-parameters.test.ts#transaction-parameters-8{ts:line-numbers} +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#transaction-parameters-8{ts:line-numbers} > **Note:** When performing an action that results in a transaction (e.g. contract deployment, contract call with `.call()`, asset transfer), the SDK will automatically estimate the fee based on the gas limit and the transaction's byte size. This estimation is used when building the transaction. As a side effect, your wallet must own at least one coin of the base asset, regardless of the amount. + +## Full Example + +<<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#full{ts:line-numbers} From 739d78e5b19547a42899a44b5fe13d2e3303e4a2 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 01:44:08 -0300 Subject: [PATCH 053/129] Add new API draft --- .../src/transactions/new-api.ts | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 apps/docs-snippets2/src/transactions/new-api.ts diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts new file mode 100644 index 00000000000..8c1648931bc --- /dev/null +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -0,0 +1,42 @@ +/* +import type { TxParams } from 'fuels'; +import { + LOCAL_NETWORK_URL, + fuels, + bn, +} from 'fuels'; + +import { WALLET_PVT_KEY } from '../env'; +import { SumScript, CounterContract, counterBytecode } from '../typegend'; + +const client = await fuels(LOCAL_NETWORK_URL); +const wallet = client.wallet(WALLET_PVT_KEY, client); +const deploy = await CounterContract.deploy(wallet); + +const txParams: TxParams = { + gasLimit: bn(69242), // BigNumberish or undefined + maxFee: bn(69242), // BigNumberish or undefined + tip: bn(100), // BigNumberish or undefined + maturity: 1, // BigNumberish or undefined + witnessLimit: bn(5000), // BigNumberish or undefined +}; + +const { contract } = await deploy.waitForResult(); + +const transactionRequest = new fuels.ScriptTransactionRequest({ + script: ScriptSum.bin, + gasLimit: 100, +}); + +const { waitForResult } = await contract.functions + .increment_count(15) // contract method + .txParams(txParams) + .call(); + +const { + value, + transactionResult: { isStatusSuccess }, +} = await waitForResult(); + +console.log({ value, isStatusSuccess, transactionRequest }); +*/ From 3808175ba9973bf9e4c69805ea11b6472c78ec19 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 01:59:20 -0300 Subject: [PATCH 054/129] Matching extra blankspace --- apps/docs-snippets2/scripts/wrap-snippets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index b04e55e69db..4579ec162fb 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -46,7 +46,7 @@ export const wrapSnippet = (filepath: string) => { */ nodeLauncher = readFileSync(join(__dirname, 'launcher.ts'), 'utf-8') .replace(/import.*$/gm, '') - .replace(/export/g, '') + .replace(/export /g, '') .trim() .replace(/\n/g, '\n '); } From a91820ff11f27630f72a64bb6e9f626012cc44fd Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:26:55 -0300 Subject: [PATCH 055/129] Ignoring env file --- apps/docs-snippets2/scripts/wrap-snippets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 4579ec162fb..a50e8dc7696 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -73,6 +73,6 @@ export const wrapSnippet = (filepath: string) => { */ const dir = 'src/**'; const src = `${dir}/*.ts`; -const ignore = [`src/typegend/**`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; +const ignore = [`src/typegend/**`, `src/env.ts`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; globSync(src, { ignore }).forEach(wrapSnippet); From 7b8bbbb9ab012723c156096696b2a56dea855092 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:27:03 -0300 Subject: [PATCH 056/129] Adding region marks --- apps/docs-snippets2/src/transactions/new-api.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index 8c1648931bc..328ed9f42c8 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -1,4 +1,5 @@ /* +// #region full import type { TxParams } from 'fuels'; import { LOCAL_NETWORK_URL, @@ -39,4 +40,5 @@ const { } = await waitForResult(); console.log({ value, isStatusSuccess, transactionRequest }); +// #endregion full */ From 847c4124db69b220711f047c9f5be0176d5e6cc3 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:29:21 -0300 Subject: [PATCH 057/129] Avoid repetition --- apps/docs/src/guide/transactions/transaction-parameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/src/guide/transactions/transaction-parameters.md b/apps/docs/src/guide/transactions/transaction-parameters.md index 8402356dd8d..50b187bfb7e 100644 --- a/apps/docs/src/guide/transactions/transaction-parameters.md +++ b/apps/docs/src/guide/transactions/transaction-parameters.md @@ -1,6 +1,6 @@ # Transaction Parameters -Transaction parameters allow you to configure various aspects of your blockchain transactions. Dependent on these parameters, it may introduce a [transaction policy](./transaction-policies.md). The parameters are: +Transaction parameters allow you to configure various aspects of your blockchain transactions. Dependent on these parameters, it may introduce a [transaction policy](./transaction-policies.md). All available parameters are shown below: From 3f756e969d58cd0f9a559c9be5869efac92f6dcb Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:39:31 -0300 Subject: [PATCH 058/129] Trim env consts --- apps/docs-snippets2/scripts/launcher.ts | 8 +------- apps/docs-snippets2/src/env.ts | 6 ------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher.ts index 1493d6debc8..af09172bfd0 100644 --- a/apps/docs-snippets2/scripts/launcher.ts +++ b/apps/docs-snippets2/scripts/launcher.ts @@ -4,7 +4,7 @@ using node = await launchTestNode({ walletsConfig: { count: 5 } }); export const LOCAL_NETWORK_URL = node.provider.url; -const [w0, w2, w3, w4, w5] = node.wallets; +const [w0, w2, w3] = node.wallets; export const WALLET_ADDRESS = w0.address; export const WALLET_PVT_KEY = w0.privateKey; @@ -14,9 +14,3 @@ export const WALLET_PVT_KEY_2 = w2.privateKey; export const WALLET_ADDRESS_3 = w3.address; export const WALLET_PVT_KEY_3 = w3.privateKey; - -export const WALLET_ADDRESS_4 = w4.address; -export const WALLET_PVT_KEY_4 = w4.privateKey; - -export const WALLET_ADDRESS_5 = w5.address; -export const WALLET_PVT_KEY_5 = w5.privateKey; diff --git a/apps/docs-snippets2/src/env.ts b/apps/docs-snippets2/src/env.ts index 2ee440b5566..b0851b5917f 100644 --- a/apps/docs-snippets2/src/env.ts +++ b/apps/docs-snippets2/src/env.ts @@ -6,9 +6,3 @@ export const WALLET_PVT_KEY_2 = ''; export const WALLET_ADDRESS_3 = ''; export const WALLET_PVT_KEY_3 = ''; - -export const WALLET_ADDRESS_4 = ''; -export const WALLET_PVT_KEY_4 = ''; - -export const WALLET_ADDRESS_5 = ''; -export const WALLET_PVT_KEY_5 = ''; From 16abcb4f029b6d5fdc909389ab4551196ae4a41a Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:39:39 -0300 Subject: [PATCH 059/129] Cleanup --- .../transactions/transaction-parameters.ts | 34 +++++++------------ 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index f1d1c66b7b3..564acc18367 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -1,12 +1,6 @@ // #region full import type { TxParams } from 'fuels'; -import { - bn, - LOCAL_NETWORK_URL, - Provider, - ScriptTransactionRequest, - Wallet, -} from 'fuels'; +import { bn, LOCAL_NETWORK_URL, Provider, ScriptTransactionRequest, Wallet } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; import { CounterAbi__factory } from '../typegend'; @@ -18,36 +12,32 @@ const { storageSlots } = CounterAbi__factory; const provider = await Provider.create(LOCAL_NETWORK_URL); const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); -const deploy = await CounterAbi__factory.deployContract( - counterBytecode, - wallet, - { - storageSlots, - } -); +const deploy = await CounterAbi__factory.deployContract(counterBytecode, wallet, { + storageSlots, +}); + +const { contract } = await deploy.waitForResult(); // #region transaction-parameters-6 const txParams: TxParams = { // #region transaction-parameters-1 - gasLimit: bn(69242), // BigNumberish or undefined + gasLimit: bn(69242), // #endregion transaction-parameters-1 // #region transaction-parameters-2 - maxFee: bn(69242), // BigNumberish or undefined + maxFee: bn(69242), // #endregion transaction-parameters-2 // #region transaction-parameters-3 - tip: bn(100), // BigNumberish or undefined + tip: bn(100), // #endregion transaction-parameters-3 // #region transaction-parameters-4 - maturity: 1, // BigNumberish or undefined + maturity: 1, // #endregion transaction-parameters-4 // #region transaction-parameters-5 - witnessLimit: bn(5000), // BigNumberish or undefined + witnessLimit: bn(5000), // #endregion transaction-parameters-5 }; // #endregion transaction-parameters-6 -const { contract } = await deploy.waitForResult(); - // #region transaction-parameters-7 const transactionRequest = new ScriptTransactionRequest({ script: ScriptSumAbi__factory.bin, @@ -57,7 +47,7 @@ const transactionRequest = new ScriptTransactionRequest({ // #region transaction-parameters-8 const { waitForResult } = await contract.functions - .increment_count(15) // contract method + .increment_count(15) // contract fn .txParams(txParams) .call(); From 094355b155e119c9600389764ddbd6945d2f8f2c Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:39:52 -0300 Subject: [PATCH 060/129] Playing around new API --- .../src/transactions/new-api.ts | 34 ++++++++----------- .../transactions/transaction-parameters.ts | 2 +- .../transactions/transaction-parameters.md | 4 +++ 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index 328ed9f42c8..fdcc4dccc5d 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -1,39 +1,35 @@ /* // #region full import type { TxParams } from 'fuels'; -import { - LOCAL_NETWORK_URL, - fuels, - bn, -} from 'fuels'; +import { LOCAL_NETWORK_URL, fuels, bn } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; -import { SumScript, CounterContract, counterBytecode } from '../typegend'; +import { Sum, Counter, counterBytecode } from '../typegend'; const client = await fuels(LOCAL_NETWORK_URL); const wallet = client.wallet(WALLET_PVT_KEY, client); -const deploy = await CounterContract.deploy(wallet); +const deploy = await Counter.deploy(wallet); + +const { contract } = await deploy.waitForResult(); const txParams: TxParams = { - gasLimit: bn(69242), // BigNumberish or undefined - maxFee: bn(69242), // BigNumberish or undefined - tip: bn(100), // BigNumberish or undefined - maturity: 1, // BigNumberish or undefined - witnessLimit: bn(5000), // BigNumberish or undefined + gasLimit: bn(69242), + maxFee: bn(69242), + tip: bn(100), + maturity: 1, + witnessLimit: bn(5000), }; -const { contract } = await deploy.waitForResult(); +const { waitForResult } = await contract.functions + .increment_count(15) // + .txParams(txParams) + .call(); const transactionRequest = new fuels.ScriptTransactionRequest({ - script: ScriptSum.bin, + script: Sum.bin, gasLimit: 100, }); -const { waitForResult } = await contract.functions - .increment_count(15) // contract method - .txParams(txParams) - .call(); - const { value, transactionResult: { isStatusSuccess }, diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index 564acc18367..311c83b3342 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -47,7 +47,7 @@ const transactionRequest = new ScriptTransactionRequest({ // #region transaction-parameters-8 const { waitForResult } = await contract.functions - .increment_count(15) // contract fn + .increment_count(15) // .txParams(txParams) .call(); diff --git a/apps/docs/src/guide/transactions/transaction-parameters.md b/apps/docs/src/guide/transactions/transaction-parameters.md index 50b187bfb7e..66c3f482a90 100644 --- a/apps/docs/src/guide/transactions/transaction-parameters.md +++ b/apps/docs/src/guide/transactions/transaction-parameters.md @@ -59,3 +59,7 @@ The same method is also accessible within a function invocation scope, so it can ## Full Example <<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#full{ts:line-numbers} + +## Full Example w/ new API + +<<< @/../../docs-snippets2/src/transactions/new-api.ts#full{ts:line-numbers} From a5d3d081e305b7cabb11f2a7d84032468c5e2dbe Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:48:44 -0300 Subject: [PATCH 061/129] Tidying up --- apps/docs-snippets2/src/transactions/new-api.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index fdcc4dccc5d..6a1713a4e60 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -7,9 +7,9 @@ import { WALLET_PVT_KEY } from '../env'; import { Sum, Counter, counterBytecode } from '../typegend'; const client = await fuels(LOCAL_NETWORK_URL); -const wallet = client.wallet(WALLET_PVT_KEY, client); -const deploy = await Counter.deploy(wallet); +const wallet = client.wallet(WALLET_PVT_KEY); +const deployment = await Counter.deploy(wallet); const { contract } = await deploy.waitForResult(); const txParams: TxParams = { From 501d913308743621892b7b9c804d8e83f289774b Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 09:52:35 -0300 Subject: [PATCH 062/129] Ignoring experimental file --- apps/docs-snippets2/scripts/wrap-snippets.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index a50e8dc7696..c8eed18075d 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -73,6 +73,12 @@ export const wrapSnippet = (filepath: string) => { */ const dir = 'src/**'; const src = `${dir}/*.ts`; -const ignore = [`src/typegend/**`, `src/env.ts`, `${dir}/*.test.ts`, `${dir}/*.wrapped.ts`]; +const ignore = [ + `src/typegend/**`, + `src/env.ts`, + `src/transactions/new-api.ts`, + `${dir}/*.test.ts`, + `${dir}/*.wrapped.ts`, +]; globSync(src, { ignore }).forEach(wrapSnippet); From 71f0c010f8cb6062e528e7cf030475fbbc3e1cf3 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:03:02 -0300 Subject: [PATCH 063/129] Ignoring generated files in eslint --- .eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintignore b/.eslintignore index 24543eaef99..f94e55b712f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,6 +12,7 @@ apps/demo-nextjs apps/demo-react-cra apps/demo-react-vite apps/create-fuels-counter-guide +apps/docs-snippets2/src/typegend packages/fuels/test/fixtures/project packages/account/src/providers/__generated__ From ae8fc47aed0e51cc422d583d2a13c3e30e3372af Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:26:03 -0300 Subject: [PATCH 064/129] Adjusting wallets count --- apps/docs-snippets2/scripts/launcher.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher.ts index af09172bfd0..6b206bd7bf5 100644 --- a/apps/docs-snippets2/scripts/launcher.ts +++ b/apps/docs-snippets2/scripts/launcher.ts @@ -1,6 +1,6 @@ import { launchTestNode } from 'fuels/test-utils'; -using node = await launchTestNode({ walletsConfig: { count: 5 } }); +using node = await launchTestNode({ walletsConfig: { count: 3 } }); export const LOCAL_NETWORK_URL = node.provider.url; From 4379cffb73158c258919df548c545c04de99aa15 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:26:14 -0300 Subject: [PATCH 065/129] Moving chunk around --- apps/docs-snippets2/src/transactions/new-api.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index 6a1713a4e60..cedd34e31f3 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -25,16 +25,16 @@ const { waitForResult } = await contract.functions .txParams(txParams) .call(); -const transactionRequest = new fuels.ScriptTransactionRequest({ - script: Sum.bin, - gasLimit: 100, -}); - const { value, transactionResult: { isStatusSuccess }, } = await waitForResult(); +const transactionRequest = new fuels.ScriptTransactionRequest({ + script: Sum.bin, + gasLimit: 100, +}); + console.log({ value, isStatusSuccess, transactionRequest }); // #endregion full */ From b4f2164eb11a784aa27afff006725375a1d49846 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:26:27 -0300 Subject: [PATCH 066/129] Adjusting ignore rule --- .eslintignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.eslintignore b/.eslintignore index f94e55b712f..2455b1ef6bd 100644 --- a/.eslintignore +++ b/.eslintignore @@ -13,6 +13,7 @@ apps/demo-react-cra apps/demo-react-vite apps/create-fuels-counter-guide apps/docs-snippets2/src/typegend +apps/docs-snippets2/src/**/*.wrapped.ts packages/fuels/test/fixtures/project packages/account/src/providers/__generated__ @@ -24,5 +25,3 @@ CHANGELOG.md *.hbs templates/nextjs - -*.wrapped.ts From 8bf629372213978f82b784211d6823d53615cc2f Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:48:01 -0300 Subject: [PATCH 067/129] Improving imports manipulation --- apps/docs-snippets2/scripts/wrap-snippets.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index c8eed18075d..ae5eaa71ba3 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -20,7 +20,7 @@ export const wrapSnippet = (filepath: string) => { const snippetsNoImports = imports.length ? snippetContents.split(imports)[1] : snippetContents; /* - Remove .env import + Removes .env file import */ const envImportReg = /import.+\{.+([\s\S]+).+\}.+from.+'\.\.\/env';/gm; if (envImportReg.test(imports)) { @@ -33,12 +33,12 @@ export const wrapSnippet = (filepath: string) => { Inject node launcher & friends */ let nodeLauncher = ''; - const localNetworkReg = /LOCAL_NETWORK_URL/; + const localNetworkReg = /,?\s+LOCAL_NETWORK_URL(\s*,)?/; if (localNetworkReg.test(imports)) { /* - Replaces `LOCAL_NETWORK_URL` + Removes `LOCAL_NETWORK_URL` from `fuels` import members */ - imports = imports.replace(localNetworkReg, 'TESTNET_NETWORK_URL'); + imports = imports.replace(localNetworkReg, '$1'); imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; /* From 9590341fcd6d780349f6e0c819083fae42a50949 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:54:10 -0300 Subject: [PATCH 068/129] Adding comments --- apps/docs-snippets2/scripts/wrap-snippets.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index ae5eaa71ba3..3a77a647432 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -39,16 +39,20 @@ export const wrapSnippet = (filepath: string) => { Removes `LOCAL_NETWORK_URL` from `fuels` import members */ imports = imports.replace(localNetworkReg, '$1'); + + /* + Adds launchNode import + */ imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; /* Injects launched node and env constants */ nodeLauncher = readFileSync(join(__dirname, 'launcher.ts'), 'utf-8') - .replace(/import.*$/gm, '') - .replace(/export /g, '') - .trim() - .replace(/\n/g, '\n '); + .replace(/import.*$/gm, '') // ignore file imports + .replace(/export /g, '') // remove export keywords + .trim() // zip + .replace(/\n/g, '\n '); // indent chunk } /* From 4be8d634bf3a0b517e78ff555112f9a75c896f48 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:54:19 -0300 Subject: [PATCH 069/129] Adjusting template markers --- apps/docs-snippets2/scripts/wrapper-fn.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 692c83256f4..01c78d90931 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -16,14 +16,14 @@ export const main = async (passLogsThrough: boolean = false): Promise>> + // NODE_LAUNCHER ———>>> // %NODE_LAUNCHER% - // <<<——— + // <<<——— NODE_LAUNCHER try { - // ———>>> + // SNIPPET ———>>> // %SNIPPET% - // <<<——— + // <<<——— SNIPPET } catch (error) { console.error(error); return { error }; From 88a04b4ecc7fc9b659a9173dc128c0b7e3711b7c Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 10:56:14 -0300 Subject: [PATCH 070/129] Tyop --- apps/docs-snippets2/scripts/wrapper-fn.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts index 01c78d90931..70d071fdbcc 100644 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ b/apps/docs-snippets2/scripts/wrapper-fn.ts @@ -16,9 +16,9 @@ export const main = async (passLogsThrough: boolean = false): Promise>> + // TEST NODE LAUNCHER ———>>> // %NODE_LAUNCHER% - // <<<——— NODE_LAUNCHER + // <<<——— TEST NODE LAUNCHER try { // SNIPPET ———>>> From 57289fda971db27681fd8d3e699fe2400f02110d Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 11:13:47 -0300 Subject: [PATCH 071/129] Update draft --- apps/docs-snippets2/src/transactions/new-api.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index cedd34e31f3..49ca21a84ad 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -4,12 +4,12 @@ import type { TxParams } from 'fuels'; import { LOCAL_NETWORK_URL, fuels, bn } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; -import { Sum, Counter, counterBytecode } from '../typegend'; +import { Counter, counterBytecode } from '../typegend'; const client = await fuels(LOCAL_NETWORK_URL); const wallet = client.wallet(WALLET_PVT_KEY); -const deployment = await Counter.deploy(wallet); +const deploy = await Counter.deploy(counterBytecode, wallet); const { contract } = await deploy.waitForResult(); const txParams: TxParams = { @@ -30,11 +30,6 @@ const { transactionResult: { isStatusSuccess }, } = await waitForResult(); -const transactionRequest = new fuels.ScriptTransactionRequest({ - script: Sum.bin, - gasLimit: 100, -}); - -console.log({ value, isStatusSuccess, transactionRequest }); +console.log({ value, isStatusSuccess }); // #endregion full */ From 71847b0f845fcd30248eb07fcd3f94606eadd09c Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 11:13:54 -0300 Subject: [PATCH 072/129] Update title --- apps/docs/src/guide/transactions/transaction-parameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/src/guide/transactions/transaction-parameters.md b/apps/docs/src/guide/transactions/transaction-parameters.md index 66c3f482a90..aad16ca57c9 100644 --- a/apps/docs/src/guide/transactions/transaction-parameters.md +++ b/apps/docs/src/guide/transactions/transaction-parameters.md @@ -60,6 +60,6 @@ The same method is also accessible within a function invocation scope, so it can <<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#full{ts:line-numbers} -## Full Example w/ new API +## Full Example using Sugar API <<< @/../../docs-snippets2/src/transactions/new-api.ts#full{ts:line-numbers} From 2f02691e40354095d253291ed51950b938e8ba5b Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sat, 20 Jul 2024 11:30:00 -0300 Subject: [PATCH 073/129] Adjust deployment usage --- apps/docs-snippets2/src/transactions/new-api.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index 49ca21a84ad..ee312f803f3 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -4,12 +4,12 @@ import type { TxParams } from 'fuels'; import { LOCAL_NETWORK_URL, fuels, bn } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; -import { Counter, counterBytecode } from '../typegend'; +import { deployCounter } from '../typegend'; const client = await fuels(LOCAL_NETWORK_URL); const wallet = client.wallet(WALLET_PVT_KEY); -const deploy = await Counter.deploy(counterBytecode, wallet); +const deploy = await deployCounter(wallet); const { contract } = await deploy.waitForResult(); const txParams: TxParams = { From a7fd7e72441f977270c2e3eeee84145dd3ec864f Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 22 Jul 2024 13:51:03 -0300 Subject: [PATCH 074/129] Updating example --- apps/docs-snippets2/src/transactions/new-api.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts index ee312f803f3..d267b289a78 100644 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ b/apps/docs-snippets2/src/transactions/new-api.ts @@ -4,12 +4,12 @@ import type { TxParams } from 'fuels'; import { LOCAL_NETWORK_URL, fuels, bn } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; -import { deployCounter } from '../typegend'; +import { CounterFactory } from '../typegend'; const client = await fuels(LOCAL_NETWORK_URL); const wallet = client.wallet(WALLET_PVT_KEY); -const deploy = await deployCounter(wallet); +const deploy = await CounterFactory.deploy(wallet); const { contract } = await deploy.waitForResult(); const txParams: TxParams = { From 247898c47824fde7e637b6d4ed0b651bd5ae9740 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 22 Jul 2024 13:58:50 -0300 Subject: [PATCH 075/129] Removing temp draft --- .../src/transactions/new-api.ts | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 apps/docs-snippets2/src/transactions/new-api.ts diff --git a/apps/docs-snippets2/src/transactions/new-api.ts b/apps/docs-snippets2/src/transactions/new-api.ts deleted file mode 100644 index d267b289a78..00000000000 --- a/apps/docs-snippets2/src/transactions/new-api.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* -// #region full -import type { TxParams } from 'fuels'; -import { LOCAL_NETWORK_URL, fuels, bn } from 'fuels'; - -import { WALLET_PVT_KEY } from '../env'; -import { CounterFactory } from '../typegend'; - -const client = await fuels(LOCAL_NETWORK_URL); -const wallet = client.wallet(WALLET_PVT_KEY); - -const deploy = await CounterFactory.deploy(wallet); -const { contract } = await deploy.waitForResult(); - -const txParams: TxParams = { - gasLimit: bn(69242), - maxFee: bn(69242), - tip: bn(100), - maturity: 1, - witnessLimit: bn(5000), -}; - -const { waitForResult } = await contract.functions - .increment_count(15) // - .txParams(txParams) - .call(); - -const { - value, - transactionResult: { isStatusSuccess }, -} = await waitForResult(); - -console.log({ value, isStatusSuccess }); -// #endregion full -*/ From dfe8eb9603185e39e58c1efb6c49a5ba2463d69a Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Mon, 22 Jul 2024 13:59:31 -0300 Subject: [PATCH 076/129] Removing temp draft section --- apps/docs/src/guide/transactions/transaction-parameters.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/docs/src/guide/transactions/transaction-parameters.md b/apps/docs/src/guide/transactions/transaction-parameters.md index aad16ca57c9..50b187bfb7e 100644 --- a/apps/docs/src/guide/transactions/transaction-parameters.md +++ b/apps/docs/src/guide/transactions/transaction-parameters.md @@ -59,7 +59,3 @@ The same method is also accessible within a function invocation scope, so it can ## Full Example <<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#full{ts:line-numbers} - -## Full Example using Sugar API - -<<< @/../../docs-snippets2/src/transactions/new-api.ts#full{ts:line-numbers} From aa09fbd3e8f92a5408d2198aa143de6e2d536ff4 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Sun, 11 Aug 2024 09:38:29 -0300 Subject: [PATCH 077/129] Updating broken test --- .../src/transactions/transaction-parameters.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index 311c83b3342..e478825b36d 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -3,18 +3,13 @@ import type { TxParams } from 'fuels'; import { bn, LOCAL_NETWORK_URL, Provider, ScriptTransactionRequest, Wallet } from 'fuels'; import { WALLET_PVT_KEY } from '../env'; -import { CounterAbi__factory } from '../typegend'; -import counterBytecode from '../typegend/contracts/CounterAbi.hex'; -import { ScriptSumAbi__factory } from '../typegend/scripts'; - -const { storageSlots } = CounterAbi__factory; +import { CounterFactory } from '../typegend'; +import { ScriptSum } from '../typegend/scripts'; const provider = await Provider.create(LOCAL_NETWORK_URL); const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); -const deploy = await CounterAbi__factory.deployContract(counterBytecode, wallet, { - storageSlots, -}); +const deploy = await CounterFactory.deploy(wallet); const { contract } = await deploy.waitForResult(); @@ -40,7 +35,7 @@ const txParams: TxParams = { // #region transaction-parameters-7 const transactionRequest = new ScriptTransactionRequest({ - script: ScriptSumAbi__factory.bin, + script: ScriptSum.bytecode, gasLimit: 100, }); // #endregion transaction-parameters-7 From 9647ccfd4c8be61436f9d15999455c4a19b3523d Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 10 Sep 2024 12:23:07 -0300 Subject: [PATCH 078/129] Using `NETWORK_URL` across the board --- apps/docs-snippets2/scripts/launcher.ts | 2 +- apps/docs-snippets2/scripts/wrap-snippets.ts | 16 ++++++++-------- apps/docs-snippets2/src/env.ts | 2 ++ .../src/introduction/connecting-to-localnode.ts | 6 ++++-- .../src/introduction/connecting-to-testnet.ts | 6 ++++-- .../src/transactions/transaction-parameters.ts | 6 +++--- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher.ts index 6b206bd7bf5..9caa843d820 100644 --- a/apps/docs-snippets2/scripts/launcher.ts +++ b/apps/docs-snippets2/scripts/launcher.ts @@ -2,7 +2,7 @@ import { launchTestNode } from 'fuels/test-utils'; using node = await launchTestNode({ walletsConfig: { count: 3 } }); -export const LOCAL_NETWORK_URL = node.provider.url; +export const NETWORK_URL = node.provider.url; const [w0, w2, w3] = node.wallets; diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 3a77a647432..8fa0f94c7d6 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -10,6 +10,8 @@ const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); * @param filepath - Snippet filepath */ export const wrapSnippet = (filepath: string) => { + console.log('-----'); + const snippetContents = readFileSync(filepath, 'utf8'); /* @@ -19,6 +21,9 @@ export const wrapSnippet = (filepath: string) => { let imports = snippetContents.match(importsReg)?.toString() ?? ''; const snippetsNoImports = imports.length ? snippetContents.split(imports)[1] : snippetContents; + // checks this before resetting .env imports + const requiresNodeLauncher = /NETWORK_URL/.test(imports); + /* Removes .env file import */ @@ -33,20 +38,15 @@ export const wrapSnippet = (filepath: string) => { Inject node launcher & friends */ let nodeLauncher = ''; - const localNetworkReg = /,?\s+LOCAL_NETWORK_URL(\s*,)?/; - if (localNetworkReg.test(imports)) { - /* - Removes `LOCAL_NETWORK_URL` from `fuels` import members - */ - imports = imports.replace(localNetworkReg, '$1'); + if (requiresNodeLauncher) { /* - Adds launchNode import + Adds `launchTestNode` import */ imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; /* - Injects launched node and env constants + Injects launched code snippet and populates env constants */ nodeLauncher = readFileSync(join(__dirname, 'launcher.ts'), 'utf-8') .replace(/import.*$/gm, '') // ignore file imports diff --git a/apps/docs-snippets2/src/env.ts b/apps/docs-snippets2/src/env.ts index b0851b5917f..c32677de38f 100644 --- a/apps/docs-snippets2/src/env.ts +++ b/apps/docs-snippets2/src/env.ts @@ -1,3 +1,5 @@ +export const NETWORK_URL = ''; + export const WALLET_ADDRESS = ''; export const WALLET_PVT_KEY = ''; diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts index 139e54ed08f..f2bf82c41c5 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts @@ -1,9 +1,11 @@ // #region main -import { Provider, Wallet, LOCAL_NETWORK_URL } from 'fuels'; +import { Provider, Wallet } from 'fuels'; + +import { NETWORK_URL } from '../env'; const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; -const provider = await Provider.create(LOCAL_NETWORK_URL); +const provider = await Provider.create(NETWORK_URL); const wallet = Wallet.fromAddress(ADDRESS, provider); const { balances } = await wallet.getBalances(); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts index 9ac6e93b040..f2bf82c41c5 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts @@ -1,9 +1,11 @@ // #region main -import { Provider, Wallet, TESTNET_NETWORK_URL } from 'fuels'; +import { Provider, Wallet } from 'fuels'; + +import { NETWORK_URL } from '../env'; const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; -const provider = await Provider.create(TESTNET_NETWORK_URL); +const provider = await Provider.create(NETWORK_URL); const wallet = Wallet.fromAddress(ADDRESS, provider); const { balances } = await wallet.getBalances(); diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index e478825b36d..a99ccb2dcb8 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -1,12 +1,12 @@ // #region full import type { TxParams } from 'fuels'; -import { bn, LOCAL_NETWORK_URL, Provider, ScriptTransactionRequest, Wallet } from 'fuels'; +import { bn, Provider, ScriptTransactionRequest, Wallet } from 'fuels'; -import { WALLET_PVT_KEY } from '../env'; +import { NETWORK_URL, WALLET_PVT_KEY } from '../env'; import { CounterFactory } from '../typegend'; import { ScriptSum } from '../typegend/scripts'; -const provider = await Provider.create(LOCAL_NETWORK_URL); +const provider = await Provider.create(NETWORK_URL); const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); const deploy = await CounterFactory.deploy(wallet); From 85c8cbd78b6acc2be26a26acea230c63cc6fd008 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 10 Sep 2024 12:28:28 -0300 Subject: [PATCH 079/129] Reword comment --- apps/docs-snippets2/scripts/wrap-snippets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 8fa0f94c7d6..5e8fa5af7a0 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -21,7 +21,7 @@ export const wrapSnippet = (filepath: string) => { let imports = snippetContents.match(importsReg)?.toString() ?? ''; const snippetsNoImports = imports.length ? snippetContents.split(imports)[1] : snippetContents; - // checks this before resetting .env imports + // Does the snippet requires node launcher? const requiresNodeLauncher = /NETWORK_URL/.test(imports); /* From 1fcdf29195ef16d27f14932d0f8377f270d077c7 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 10 Sep 2024 15:08:18 -0300 Subject: [PATCH 080/129] Adding scripts dir to tsconfig --- apps/docs-snippets2/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/tsconfig.json b/apps/docs-snippets2/tsconfig.json index 5006d44d00b..b71cff574c9 100644 --- a/apps/docs-snippets2/tsconfig.json +++ b/apps/docs-snippets2/tsconfig.json @@ -6,5 +6,5 @@ "rootDir": "./", "baseUrl": "./" }, - "include": ["src", "test"] + "include": ["src", "test", "scripts"] } From 3b463d093bbe97ed4c6c185ece00858df474a0a7 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Tue, 10 Sep 2024 15:08:29 -0300 Subject: [PATCH 081/129] Starting with more wallets --- apps/docs-snippets2/scripts/launcher.ts | 14 ++++++++++---- apps/docs-snippets2/src/env.ts | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher.ts index 9caa843d820..9e90a1425a4 100644 --- a/apps/docs-snippets2/scripts/launcher.ts +++ b/apps/docs-snippets2/scripts/launcher.ts @@ -1,16 +1,22 @@ import { launchTestNode } from 'fuels/test-utils'; -using node = await launchTestNode({ walletsConfig: { count: 3 } }); +using node = await launchTestNode({ walletsConfig: { count: 5 } }); export const NETWORK_URL = node.provider.url; -const [w0, w2, w3] = node.wallets; +const [w1, w2, w3, w4, w5] = node.wallets; -export const WALLET_ADDRESS = w0.address; -export const WALLET_PVT_KEY = w0.privateKey; +export const WALLET_ADDRESS = w1.address; +export const WALLET_PVT_KEY = w1.privateKey; export const WALLET_ADDRESS_2 = w2.address; export const WALLET_PVT_KEY_2 = w2.privateKey; export const WALLET_ADDRESS_3 = w3.address; export const WALLET_PVT_KEY_3 = w3.privateKey; + +export const WALLET_ADDRESS_4 = w4.address; +export const WALLET_PVT_KEY_4 = w4.privateKey; + +export const WALLET_ADDRESS_5 = w5.address; +export const WALLET_PVT_KEY_5 = w5.privateKey; diff --git a/apps/docs-snippets2/src/env.ts b/apps/docs-snippets2/src/env.ts index c32677de38f..20daafaa27b 100644 --- a/apps/docs-snippets2/src/env.ts +++ b/apps/docs-snippets2/src/env.ts @@ -8,3 +8,9 @@ export const WALLET_PVT_KEY_2 = ''; export const WALLET_ADDRESS_3 = ''; export const WALLET_PVT_KEY_3 = ''; + +export const WALLET_ADDRESS_4 = ''; +export const WALLET_PVT_KEY_4 = ''; + +export const WALLET_ADDRESS_5 = ''; +export const WALLET_PVT_KEY_5 = ''; From 9532319fb9b8b9d6d6cf60603ad5add45a43bd15 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 13 Sep 2024 16:00:03 -0300 Subject: [PATCH 082/129] Automatically generating tests for code snippets --- apps/docs-snippets2/.gitignore | 2 +- .../{launcher.ts => launcher-snippet.ts} | 18 ++++++++ apps/docs-snippets2/scripts/test-template.ts | 8 ++++ apps/docs-snippets2/scripts/wrap-snippets.ts | 42 +++++++++++++------ apps/docs-snippets2/scripts/wrapper-fn.ts | 36 ---------------- .../connecting-to-localnode.test.ts | 9 ---- .../introduction/connecting-to-localnode.ts | 2 +- .../connecting-to-testnet.test.ts | 9 ---- .../src/introduction/connecting-to-testnet.ts | 9 ++-- .../transaction-parameters.test.ts | 9 ---- .../transactions/transaction-parameters.ts | 5 ++- 11 files changed, 66 insertions(+), 83 deletions(-) rename apps/docs-snippets2/scripts/{launcher.ts => launcher-snippet.ts} (69%) create mode 100644 apps/docs-snippets2/scripts/test-template.ts delete mode 100644 apps/docs-snippets2/scripts/wrapper-fn.ts delete mode 100644 apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts delete mode 100644 apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts delete mode 100644 apps/docs-snippets2/src/transactions/transaction-parameters.test.ts diff --git a/apps/docs-snippets2/.gitignore b/apps/docs-snippets2/.gitignore index 76c90135f0e..e2327c8eaed 100644 --- a/apps/docs-snippets2/.gitignore +++ b/apps/docs-snippets2/.gitignore @@ -1,2 +1,2 @@ src/typegend -*.wrapped.ts +src/**/*.test.ts diff --git a/apps/docs-snippets2/scripts/launcher.ts b/apps/docs-snippets2/scripts/launcher-snippet.ts similarity index 69% rename from apps/docs-snippets2/scripts/launcher.ts rename to apps/docs-snippets2/scripts/launcher-snippet.ts index 9e90a1425a4..f9da5808aa8 100644 --- a/apps/docs-snippets2/scripts/launcher.ts +++ b/apps/docs-snippets2/scripts/launcher-snippet.ts @@ -20,3 +20,21 @@ export const WALLET_PVT_KEY_4 = w4.privateKey; export const WALLET_ADDRESS_5 = w5.address; export const WALLET_PVT_KEY_5 = w5.privateKey; + +const all = [ + WALLET_ADDRESS, + WALLET_PVT_KEY, + WALLET_ADDRESS_2, + WALLET_PVT_KEY_2, + WALLET_ADDRESS_3, + WALLET_PVT_KEY_3, + WALLET_ADDRESS_4, + WALLET_PVT_KEY_4, + WALLET_ADDRESS_5, + WALLET_PVT_KEY_5, +]; + +console.assert( + all.every((x) => !!x), + `All constants should be truthy.` +); diff --git a/apps/docs-snippets2/scripts/test-template.ts b/apps/docs-snippets2/scripts/test-template.ts new file mode 100644 index 00000000000..ccf29d5c964 --- /dev/null +++ b/apps/docs-snippets2/scripts/test-template.ts @@ -0,0 +1,8 @@ +test('%NAME%', async () => { + // TEST NODE LAUNCHER ———>>> + // %NODE_LAUNCHER% + // <<<——— TEST NODE LAUNCHER + // SNIPPET ———>>> + // %SNIPPET% + // <<<——— SNIPPET +}); diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 5e8fa5af7a0..007f5ec9a07 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -1,8 +1,8 @@ import { readFileSync, writeFileSync } from 'fs'; import { globSync } from 'glob'; -import { join } from 'path'; +import { join, basename } from 'path'; -const wrapperFnFilepath = join(__dirname, 'wrapper-fn.ts'); +const wrapperFnFilepath = join(__dirname, 'test-template.ts'); const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); /** @@ -10,15 +10,15 @@ const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); * @param filepath - Snippet filepath */ export const wrapSnippet = (filepath: string) => { - console.log('-----'); - const snippetContents = readFileSync(filepath, 'utf8'); /* Filter all imports from file. */ const importsReg = /^[\s\S]+from.+['"];/gm; + let imports = snippetContents.match(importsReg)?.toString() ?? ''; + const snippetsNoImports = imports.length ? snippetContents.split(imports)[1] : snippetContents; // Does the snippet requires node launcher? @@ -27,7 +27,7 @@ export const wrapSnippet = (filepath: string) => { /* Removes .env file import */ - const envImportReg = /import.+\{.+([\s\S]+).+\}.+from.+'\.\.\/env';/gm; + const envImportReg = /\nimport.+\{.+([\s\S]+).+\}.+from.+'\.\.\/env';/gm; if (envImportReg.test(imports)) { const allImports = imports.match(envImportReg)?.[0]; const envImport = `import ${allImports?.split('import ').pop()}`; @@ -41,14 +41,24 @@ export const wrapSnippet = (filepath: string) => { if (requiresNodeLauncher) { /* - Adds `launchTestNode` import + Adds `launchTestNode` import, always right below the last `fuels` import + and before the next relative one. */ - imports += `\nimport { launchTestNode } from 'fuels/test-utils'`; + const launchImport = `import { launchTestNode } from 'fuels/test-utils';`; + + const searchStr = `from 'fuels';`; + const lastIndexStart = imports.lastIndexOf(searchStr); + const lastIndexEnd = lastIndexStart + searchStr.length; + + const prefix = imports.slice(0, lastIndexEnd).trim(); + const suffix = imports.slice(lastIndexEnd).trim(); + + imports = `${prefix}\n${launchImport}\n\n${suffix}`; /* Injects launched code snippet and populates env constants */ - nodeLauncher = readFileSync(join(__dirname, 'launcher.ts'), 'utf-8') + nodeLauncher = readFileSync(join(__dirname, 'launcher-snippet.ts'), 'utf-8') .replace(/import.*$/gm, '') // ignore file imports .replace(/export /g, '') // remove export keywords .trim() // zip @@ -58,16 +68,22 @@ export const wrapSnippet = (filepath: string) => { /* Format indentation */ - const indented = snippetsNoImports.replace(/^/gm, ' ').trim(); + const indented = snippetsNoImports.replace(/^/gm, ' ').trim(); + const formatted = wrapperFnContents + .replace('%NAME%', basename(filepath)) .replace('// %SNIPPET%', indented) - .replace('// %NODE_LAUNCHER%', nodeLauncher); + .replace('// %NODE_LAUNCHER%', nodeLauncher) + .replace(/^.*#(end)?region.+$/gm, '') + .replace(/^[\s]*$/gm, '') // trailing spaces + .replace(/^([\s\S]]*\n){2,}/, '') // multiple empty lines + .trim(); /* - Write wrapped snippet to disk + Write snippet wrapped in an test to disk */ - const wrappedPath = filepath.replace('.ts', '.wrapped.ts'); - const wrappedSnippet = [imports, '\n', formatted].join(''); + const wrappedPath = filepath.replace('.ts', '.test.ts'); + const wrappedSnippet = [imports, '\n\n', formatted].join(''); writeFileSync(wrappedPath, wrappedSnippet); }; diff --git a/apps/docs-snippets2/scripts/wrapper-fn.ts b/apps/docs-snippets2/scripts/wrapper-fn.ts deleted file mode 100644 index 70d071fdbcc..00000000000 --- a/apps/docs-snippets2/scripts/wrapper-fn.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -// eslint-disable-next-line @typescript-eslint/require-await -export const main = async (passLogsThrough: boolean = false): Promise => { - const logs: any[] = []; - const bkpConsole = console; - - // eslint-disable-next-line no-global-assign - console = { - ...console, - log: (...args: any[]) => { - if (passLogsThrough) { - bkpConsole.log.apply(null, args); - } - logs.push(args); - }, - }; - - // TEST NODE LAUNCHER ———>>> - // %NODE_LAUNCHER% - // <<<——— TEST NODE LAUNCHER - - try { - // SNIPPET ———>>> - // %SNIPPET% - // <<<——— SNIPPET - } catch (error) { - console.error(error); - return { error }; - } - - // eslint-disable-next-line no-global-assign - console = bkpConsole; - - return logs; -}; diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts deleted file mode 100644 index 4c0f6b0fdec..00000000000 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { main } from './connecting-to-localnode.wrapped'; - -/** - * @group node - */ -test('it works', async () => { - const [[{ balances }]] = await main(); - expect(balances).toBeInstanceOf(Array); -}); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts index f2bf82c41c5..2e1c935c487 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-localnode.ts @@ -10,5 +10,5 @@ const wallet = Wallet.fromAddress(ADDRESS, provider); const { balances } = await wallet.getBalances(); -console.log({ balances }); +console.assert(balances.length >= 0, 'Balances should be an array'); // #endregion main diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts deleted file mode 100644 index d77f0f35f3c..00000000000 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { main } from './connecting-to-testnet.wrapped'; - -/** - * @group node - */ -test('it works', async () => { - const [[{ balances }]] = await main(); - expect(balances).toBeInstanceOf(Array); -}); diff --git a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts index f2bf82c41c5..1665d9f38d0 100644 --- a/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts +++ b/apps/docs-snippets2/src/introduction/connecting-to-testnet.ts @@ -1,14 +1,15 @@ // #region main import { Provider, Wallet } from 'fuels'; -import { NETWORK_URL } from '../env'; - const ADDRESS = '0x767caf5b08eba21c561078a4d5be09bbd7f16b9eca22699a61f1edd9e456126f'; -const provider = await Provider.create(NETWORK_URL); +const provider = await Provider.create('https://testnet.fuel.network/v1/graphql'); const wallet = Wallet.fromAddress(ADDRESS, provider); const { balances } = await wallet.getBalances(); -console.log({ balances }); +const [{ assetId }] = balances; + +console.assert(assetId, 'Asset ID for the first item should be defined.'); + // #endregion main diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.test.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.test.ts deleted file mode 100644 index a79ffd1cee0..00000000000 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { main } from './transaction-parameters.wrapped'; - -/** - * @group node - */ -test('it works', async () => { - const [[{ isStatusSuccess }]] = await main(); - expect(isStatusSuccess).toBeTruthy(); -}); diff --git a/apps/docs-snippets2/src/transactions/transaction-parameters.ts b/apps/docs-snippets2/src/transactions/transaction-parameters.ts index a99ccb2dcb8..74400e38b2b 100644 --- a/apps/docs-snippets2/src/transactions/transaction-parameters.ts +++ b/apps/docs-snippets2/src/transactions/transaction-parameters.ts @@ -51,6 +51,9 @@ const { transactionResult: { isStatusSuccess }, } = await waitForResult(); -console.log({ value, isStatusSuccess, transactionRequest }); +console.assert(isStatusSuccess, 'Transaction status should be truthy.'); +console.assert(value, 'Transaction result should exist.'); +console.assert(transactionRequest, 'Transaction request should exist.'); + // #endregion transaction-parameters-8 // #endregion full From 00234d610826a94b8413df2f3c5f06a60b4c1ad1 Mon Sep 17 00:00:00 2001 From: Anderson Arboleya Date: Fri, 13 Sep 2024 16:26:29 -0300 Subject: [PATCH 083/129] Forcing assertion failures to throw --- apps/docs-snippets2/scripts/test-template.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apps/docs-snippets2/scripts/test-template.ts b/apps/docs-snippets2/scripts/test-template.ts index ccf29d5c964..df033e8ee85 100644 --- a/apps/docs-snippets2/scripts/test-template.ts +++ b/apps/docs-snippets2/scripts/test-template.ts @@ -1,7 +1,25 @@ +/* eslint-disable @typescript-eslint/require-await */ +/* eslint-disable no-global-assign */ +const consoleBkp = { ...console }; + +afterAll(() => { + console = { ...consoleBkp }; +}); + test('%NAME%', async () => { // TEST NODE LAUNCHER ———>>> // %NODE_LAUNCHER% // <<<——— TEST NODE LAUNCHER + + console = { + ...console, + assert(isTruthy, errorMsg) { + if (!isTruthy) { + throw new Error(errorMsg); + } + }, + }; + // SNIPPET ———>>> // %SNIPPET% // <<<——— SNIPPET From eaca43fdb079ec44bba6da06ef9da4b6bdb5c11e Mon Sep 17 00:00:00 2001 From: chad Date: Sat, 21 Sep 2024 19:00:03 -0500 Subject: [PATCH 084/129] docs: initial transpose of encoding + bytes docs --- .changeset/config.json | 4 +- apps/docs-snippets2/package.json | 4 +- .../src/create-fuels/decrement-counter.ts | 53 ++++++ .../src/encoding/encode-and-decode.ts | 115 +++++++++++ .../src/encoding/working-with-bytes.ts | 180 ++++++++++++++++++ apps/docs-snippets2/sway/counter/src/main.sw | 10 + .../src/guide/creating-a-fuel-dapp/index.md | 6 +- .../src/guide/encoding/encode-and-decode.md | 12 +- .../src/guide/encoding/working-with-bytes.md | 16 +- 9 files changed, 385 insertions(+), 15 deletions(-) create mode 100644 apps/docs-snippets2/src/create-fuels/decrement-counter.ts create mode 100644 apps/docs-snippets2/src/encoding/encode-and-decode.ts create mode 100644 apps/docs-snippets2/src/encoding/working-with-bytes.ts diff --git a/.changeset/config.json b/.changeset/config.json index 6b9d3cda7f4..7634f5d8aa1 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -16,8 +16,8 @@ "demo-nextjs", "demo-node-esm", "demo-typegen", - "@fuel-ts/docs-snippets", - "@fuel-ts/docs-snippets2", + "docs-snippets", + "docs-snippets2", "template-nextjs", "create-fuels-counter-guide", "demo-wallet-sdk-react", diff --git a/apps/docs-snippets2/package.json b/apps/docs-snippets2/package.json index 87f57f55c07..5edafe0122d 100644 --- a/apps/docs-snippets2/package.json +++ b/apps/docs-snippets2/package.json @@ -1,6 +1,6 @@ { - "name": "@fuel-ts/docs-snippets2", - "version": "0.67.0", + "name": "docs-snippets2", + "version": "1.0.0", "description": "", "private": true, "scripts": { diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts new file mode 100644 index 00000000000..379e0f02ed8 --- /dev/null +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -0,0 +1,53 @@ +// #region full +import { Wallet, Provider } from 'fuels'; + +import { NETWORK_URL, WALLET_PVT_KEY } from '../env'; +import { CounterFactory } from '../typegend/contracts'; + +// #region decrement-counter +// Let's create our provider from the network URL. +const provider = await Provider.create(NETWORK_URL); +// Let's create our wallet from the private key. +const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); + +// Then we can deploy the contract. +const { waitForResult } = await CounterFactory.deploy(wallet); +const { contract } = await waitForResult(); + +// Lets setup some values to use in the test. +const initialCount = 0; +const incrementedValue = 5; +const decrementedValue = 2; + +// We can now call the contract functions and test the results. Lets assert the initial value of the counter. +const { waitForResult: initWaitForResult } = await contract.functions.get_count().call(); +const { value: initValue } = await initWaitForResult(); +console.assert( + initValue.toNumber() === initialCount, + 'Initial value should be equal to the initial count.' +); + +// Next we'll increment the counter, so that we can decrement it. +const { waitForResult: incWaitForResult } = await contract.functions.increment_count(5).call(); +const { value: incValue } = await incWaitForResult(); +console.assert( + incValue.toNumber() === incrementedValue, + 'Incremented value should be equal to the incremented value.' +); + +// Next, we'll decrement the counter by 3 and assert the new value. +const { waitForResult: decWaitForResult } = await contract.functions.decrement_count(3).call(); +const { value: decValue } = await decWaitForResult(); +console.assert( + decValue.toNumber() === decrementedValue, + 'Decremented value should be equal to the decremented value.' +); + +// Finally, we'll test the get count function again to ensure parity. +const { waitForResult: finalWaitForResult } = await contract.functions.get_count().call(); +const { value: finalValue } = await finalWaitForResult(); +console.assert( + finalValue.toNumber() === decrementedValue, + 'Final value should be equal to the decremented value.' +); +// #endregion full diff --git a/apps/docs-snippets2/src/encoding/encode-and-decode.ts b/apps/docs-snippets2/src/encoding/encode-and-decode.ts new file mode 100644 index 00000000000..356d31eb5ee --- /dev/null +++ b/apps/docs-snippets2/src/encoding/encode-and-decode.ts @@ -0,0 +1,115 @@ +// #region full +import type { JsonAbi, TransactionResultReturnDataReceipt } from 'fuels'; +import { + buildFunctionResult, + ReceiptType, + arrayify, + Script, + Interface, + Provider, + Wallet, +} from 'fuels'; + +// #region encode-and-decode-3 +import { NETWORK_URL, WALLET_PVT_KEY } from '../env'; +import { ScriptSum } from '../typegend'; + +const provider = await Provider.create(NETWORK_URL); +const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); + +// First we need to build out the transaction via the script that we want to encode. +// For that we'll need the ABI and the bytecode of the script +const abi: JsonAbi = ScriptSum.abi; +const bytecode = ScriptSum.bytecode; + +// Create the invocation scope for the script call, passing the initial +// value for the configurable constant +const script = new Script(bytecode, abi, wallet); +const initialValue = 10; +script.setConfigurableConstants({ AMOUNT: initialValue }); +const invocationScope = script.functions.main(0); + +// Create the transaction request, this can be picked off the invocation +// scope so the script bytecode is preset on the transaction +const request = await invocationScope.getTransactionRequest(); +// #endregion encode-and-decode-3 + +// #region encode-and-decode-4 + +// Now we can encode the argument we want to pass to the function. The argument is required +// as a function parameter for all abi functions and we can extract it from the ABI itself +const argument = abi.functions + .find((f) => f.name === 'main') + ?.inputs.find((i) => i.name === 'inputted_amount')?.concreteTypeId as string; + +// The `Interface` class (imported from `fuels`) is the entry point for encoding and decoding all things abi-related. +// We will use its `encodeType` method and create the encoding required for +// a u32 which takes 4 bytes up of property space. + +const abiInterface = new Interface(abi); +const argumentToAdd = 10; +const encodedArguments = abiInterface.encodeType(argument, [argumentToAdd]); +// Therefore the value of 10 will be encoded to: +// Uint8Array([0, 0, 0, 10] + +// The encoded value can now be set on the transaction via the script data property +request.scriptData = encodedArguments; + +// Now we can build out the rest of the transaction and then fund it +const txCost = await wallet.getTransactionCost(request); +request.maxFee = txCost.maxFee; +request.gasLimit = txCost.gasUsed; +await wallet.fund(request, txCost); + +// Finally, submit the built transaction +const response = await wallet.sendTransaction(request); +await response.waitForResult(); +// #endregion encode-and-decode-4 + +// #region encode-and-decode-5 + +// Get result of the transaction, including the contract call result. For this we'll need +// the previously created invocation scope, the transaction response and the script +const invocationResult = await buildFunctionResult({ + funcScope: invocationScope, + isMultiCall: false, + program: script, + transactionResponse: response, +}); + +// The decoded value can be destructured from the `FunctionInvocationResult` +const { value } = invocationResult; + +// Or we can decode the returned bytes ourselves, by retrieving the return data +// receipt that contains the returned bytes. We can get this by filtering on +// the returned receipt types +const returnDataReceipt = invocationResult.transactionResult.receipts.find( + (r) => r.type === ReceiptType.ReturnData +) as TransactionResultReturnDataReceipt; + +// The data is in hex format so it makes sense to use arrayify so that the data +// is more human readable +const returnData = arrayify(returnDataReceipt.data); +// returnData = new Uint8Array([0, 0, 0, 20] + +// And now we can decode the returned bytes in a similar fashion to how they were +// encoded, via the `Interface` +const [decodedReturnData] = abiInterface.decodeType(argument, returnData); +// 20 + +const totalValue = argumentToAdd + initialValue; +// #endregion encode-and-decode-5 +// #endregion full +console.assert(value === totalValue, 'Value should be equal to the total value.'); +console.assert( + decodedReturnData === totalValue, + 'Decoded return data should be equal to the total value.' +); +console.assert( + encodedArguments.toString() === new Uint8Array([0, 0, 0, 10]).toString(), + 'Encoded arguments should be equal to the total value.' +); +console.assert( + returnData.toString() === new Uint8Array([0, 0, 0, 20]).toString(), + 'Return data should be equal to the total value.' +); diff --git a/apps/docs-snippets2/src/encoding/working-with-bytes.ts b/apps/docs-snippets2/src/encoding/working-with-bytes.ts new file mode 100644 index 00000000000..e66df30771a --- /dev/null +++ b/apps/docs-snippets2/src/encoding/working-with-bytes.ts @@ -0,0 +1,180 @@ +// #region full +import { randomBytes } from 'crypto'; +import { + ArrayCoder, + B256Coder, + B512Coder, + BigNumberCoder, + BooleanCoder, + EnumCoder, + NumberCoder, + RawSliceCoder, + StdStringCoder, + StringCoder, + StructCoder, + TupleCoder, + VecCoder, + hexlify, +} from 'fuels'; + +// #region working-with-bytes-1 +const u8Coder = new NumberCoder('u8'); +const encodedU8 = u8Coder.encode(255); +// encodedU8 = new Uint8Array([255]); + +const u16Coder = new NumberCoder('u16'); +const encodedU16 = u16Coder.encode(255); +// encodedU16 = new Uint8Array([0, 255]); + +const u32Coder = new NumberCoder('u32'); +const encodedU32 = u32Coder.encode(255); +// encodedU32 = new Uint8Array([0, 0, 0, 255]); + +const u64Coder = new BigNumberCoder('u64'); +const encodedU64 = u64Coder.encode(255); +// encodedU64 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255]); + +const u256Coder = new BigNumberCoder('u256'); +const encodedU256 = u256Coder.encode(255); +// encodedU256 = new Uint8Array([ +// 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 +// ]); +// #endregion working-with-bytes-1 + +console.assert( + encodedU8.toString() === new Uint8Array([255]).toString(), + 'Encoded U8 should be equal to 255' +); +console.assert( + encodedU16.toString() === new Uint8Array([0, 255]).toString(), + 'Encoded U16 should be equal to 255' +); +console.assert( + encodedU32.toString() === new Uint8Array([0, 0, 0, 255]).toString(), + 'Encoded U32 should be equal to 255' +); +console.assert( + encodedU64.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255]).toString(), + 'Encoded U64 should be equal to 255' +); +console.assert( + encodedU256.toString() === + new Uint8Array([ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 255, + ]).toString(), + 'Encoded U256 should be equal to 255' +); + +// #region working-with-bytes-2 + +const booleanCoder = new BooleanCoder(); +const encodedTrue = booleanCoder.encode(true); +// encodedTrue = new Uint8Array([1]); + +const encodedFalse = booleanCoder.encode(false); +// encodedFalse = new Uint8Array([0]); +// #endregion working-with-bytes-2 + +console.assert( + encodedTrue.toString() === new Uint8Array([1]).toString(), + 'Encoded True should be equal to 1' +); +console.assert( + encodedFalse.toString() === new Uint8Array([0]).toString(), + 'Encoded False should be equal to 0' +); + +// #region working-with-bytes-3 + +const stringCoder = new StringCoder(5); +const encoded = stringCoder.encode('hello'); +// #endregion working-with-bytes-3 + +console.assert( + encoded.toString() === new Uint8Array([104, 101, 108, 108, 111]).toString(), + 'Encoded should be equal to hello' +); + +// #region working-with-bytes-4 + +const b256Coder = new B256Coder(); +const encodedB256 = b256Coder.encode(hexlify(randomBytes(32))); +// encodedB256 = new Uint8Array(32); + +const b512Coder = new B512Coder(); +const encodedB512 = b512Coder.encode(hexlify(randomBytes(64))); +// encodedB512 = new Uint8Array(64); +// #endregion working-with-bytes-4 + +console.assert(encodedB256.length === 32, 'Encoded B256 should be equal to 32'); +console.assert(encodedB512.length === 64, 'Encoded B512 should be equal to 64'); + +// #region working-with-bytes-5 + +const tupleCoder = new TupleCoder([new NumberCoder('u8'), new NumberCoder('u16')]); +const encodedTuple = tupleCoder.encode([255, 255]); +// encodedTuple = new Uint8Array([255, 0, 255]); + +const structCoder = new StructCoder('struct', { + a: new NumberCoder('u8'), + b: new NumberCoder('u16'), +}); +const encodedStruct = structCoder.encode({ a: 255, b: 255 }); +// encodedStruct = new Uint8Array([255, 0, 255]); + +const arrayCoder = new ArrayCoder(new NumberCoder('u8'), 4); +const encodedArray = arrayCoder.encode([255, 0, 255, 0]); +// encodedArray = new Uint8Array([255, 0, 255, 0]); + +const enumCoder = new EnumCoder('enum', { a: new NumberCoder('u32') }); +const encodedEnum = enumCoder.encode({ a: 255 }); +// encodedEnum = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]); +// #endregion working-with-bytes-5 + +console.assert( + encodedTuple.toString() === new Uint8Array([255, 0, 255]).toString(), + 'Encoded Tuple should be equal to [255, 0, 255]' +); +console.assert( + encodedStruct.toString() === new Uint8Array([255, 0, 255]).toString(), + 'Encoded Struct should be equal to [255, 0, 255]' +); +console.assert( + encodedArray.toString() === new Uint8Array([255, 0, 255, 0]).toString(), + 'Encoded Array should be equal to [255, 0, 255, 0]' +); +console.assert( + encodedEnum.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]).toString(), + 'Encoded Enum should be equal to [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]' +); + +// #region working-with-bytes-6 + +const vecCoder = new VecCoder(new NumberCoder('u8')); +const encodedVec = vecCoder.encode([255, 0, 255]); +// encodedVec = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]); + +const stdStringCoder = new StdStringCoder(); +const encodedStdString = stdStringCoder.encode('hello'); +// encodedStdString = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]); + +const rawSliceCoder = new RawSliceCoder(); +const encodedRawSlice = rawSliceCoder.encode([1, 2, 3, 4]); +// encodedRawSlice = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]); +// #endregion working-with-bytes-6 + +console.assert( + encodedVec.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]).toString(), + 'Encoded Vec should be equal to [0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]' +); +console.assert( + encodedStdString.toString() === + new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]).toString(), + 'Encoded StdString should be equal to [0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]' +); +console.assert( + encodedRawSlice.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]).toString(), + 'Encoded RawSlice should be equal to [0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]' +); +// #endregion full diff --git a/apps/docs-snippets2/sway/counter/src/main.sw b/apps/docs-snippets2/sway/counter/src/main.sw index e3e3beddcd5..615a53c7dce 100644 --- a/apps/docs-snippets2/sway/counter/src/main.sw +++ b/apps/docs-snippets2/sway/counter/src/main.sw @@ -6,6 +6,9 @@ abi Counter { #[storage(write, read)] fn increment_count(amount: u64) -> u64; + + #[storage(write, read)] + fn decrement_count(amount: u64) -> u64; } storage { @@ -24,4 +27,11 @@ impl Counter for Contract { storage.counter.write(current + amount); storage.counter.read() } + + #[storage(write, read)] + fn decrement_count(amount: u64) -> u64 { + let current = storage.counter.read(); + storage.counter.write(current - amount); + storage.counter.read() + } } diff --git a/apps/docs/src/guide/creating-a-fuel-dapp/index.md b/apps/docs/src/guide/creating-a-fuel-dapp/index.md index a6c344a0acc..a7a5b737535 100644 --- a/apps/docs/src/guide/creating-a-fuel-dapp/index.md +++ b/apps/docs/src/guide/creating-a-fuel-dapp/index.md @@ -197,7 +197,7 @@ Testing the integration with your smart contract isn't essential, but it's good We've provided some examples for each program type in the `./test` directory of your project. But let's also add a test for our new `decrement_counter` function in the `./test/contract.test.ts` file: -<<< @/../../docs-snippets/src/guide/create-fuels/decrement_counter.test.ts#decrement-counter{ts:line-numbers} +<<< @/../../docs-snippets2/src/create-fuels/decrement-counter.ts#decrement-counter{ts:line-numbers} The template also comes with a UI testing setup using [Playwright](https://playwright.dev/). We can add a test for our new `decrement_counter` function in the `./test/ui/ui.test.ts` file: @@ -216,3 +216,7 @@ The template also comes with a UI testing setup using [Playwright](https://playw - If you have any questions or need help, feel free to reach out to us on the [Official Fuel Forum](https://forum.fuel.network/). - If you want to learn more about the Fuel Stack, check out the [Fuel Docs](https://docs.fuel.network/). + +# Full Example + +<<< @/../../docs-snippets2/src/create-fuels/decrement-counter.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/encoding/encode-and-decode.md b/apps/docs/src/guide/encoding/encode-and-decode.md index 8a6821829cf..f6194115672 100644 --- a/apps/docs/src/guide/encoding/encode-and-decode.md +++ b/apps/docs/src/guide/encoding/encode-and-decode.md @@ -11,7 +11,7 @@ The `Interface` class requires you to pass the [ABI](https://docs.fuel.network/d Imagine we are working with the following script that returns the sum of two `u32` integers: -<<< @/../../docs-snippets/test/fixtures/forc-projects/sum-script/src/main.sw#encode-and-decode-1{rust:line-numbers} +<<< @/../../docs-snippets2/sway/script-sum/src/main.sw#encode-and-decode-1{rust:line-numbers} When you build this script, using: @@ -27,16 +27,20 @@ Now, let's prepare some data to pass to the `main` function to retrieve the comb First, let's prepare the transaction: -<<< @/../../docs-snippets/src/guide/encoding/encode-and-decode.test.ts#encode-and-decode-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/encode-and-decode.ts#encode-and-decode-3{ts:line-numbers} Now, we can encode the script data to use in the transaction: -<<< @/../../docs-snippets/src/guide/encoding/encode-and-decode.test.ts#encode-and-decode-4{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/encode-and-decode.ts#encode-and-decode-4{ts:line-numbers} Finally, we can decode the result: -<<< @/../../docs-snippets/src/guide/encoding/encode-and-decode.test.ts#encode-and-decode-5{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/encode-and-decode.ts#encode-and-decode-5{ts:line-numbers} A similar approach can be taken with [Predicates](../predicates/index.md); however, you must set the encoded values to the `predicateData` property. [Contracts](../contracts/index.md) require more care. Although you can utilize the `scriptData` property, the arguments must be encoded as part of the [contract call script](https://docs.fuel.network/docs/sway/sway-program-types/smart_contracts/#calling-a-smart-contract-from-a-script). Therefore, it is recommended to use a `FunctionInvocationScope` when working with contracts which will be instantiated for you when [submitting a contract function](../contracts/methods.md), and therefore handles all the encoding. + +## Full Example + +<<< @/../../docs-snippets2/src/encoding/encode-and-decode.ts#full{ts:line-numbers} \ No newline at end of file diff --git a/apps/docs/src/guide/encoding/working-with-bytes.md b/apps/docs/src/guide/encoding/working-with-bytes.md index c9e4eda1cdb..3a488636665 100644 --- a/apps/docs/src/guide/encoding/working-with-bytes.md +++ b/apps/docs/src/guide/encoding/working-with-bytes.md @@ -10,34 +10,38 @@ We know the sizes of all core types at compile time. They are the building block Each type will only contain the number of bits specified in the name. For example, a `u8` will contain 8 bits, and a `u256` will contain 256 bits and take up the exact property space with no additional padding. -<<< @/../../docs-snippets/src/guide/encoding/working-with-bytes.test.ts#working-with-bytes-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#working-with-bytes-1{ts:line-numbers} ### Boolean A boolean is encoded as a single byte like a `u8`, its value being either `0` or `1`. -<<< @/../../docs-snippets/src/guide/encoding/working-with-bytes.test.ts#working-with-bytes-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#working-with-bytes-2{ts:line-numbers} ### Fixed Length String A fixed-length string's size is known at compile time due to the argument declaration of `str[n]` with `n` denoting its length. Each character in the string is encoded as a `utf-8` bit. -<<< @/../../docs-snippets/src/guide/encoding/working-with-bytes.test.ts#working-with-bytes-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#working-with-bytes-3{ts:line-numbers} ### `b256` / `b512` These are fixed-length byte arrays, with `b256` containing 256 bits and `b512` containing 512 bits. You can use them for address and signature formats. -<<< @/../../docs-snippets/src/guide/encoding/working-with-bytes.test.ts#working-with-bytes-4{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#working-with-bytes-4{ts:line-numbers} ## Automatically Encoded Types These are the types that will contain nested types and no additional encoding is required other than the encoding of the nested types. This is relevant to `array`s, `tuple`s, and `struct`s and `enum`s. The only caveat here, is an `enum` will also contain a `u64` representing the `enum` case value. `option`s are encoded in the same way as `enum`s. -<<< @/../../docs-snippets/src/guide/encoding/working-with-bytes.test.ts#working-with-bytes-5{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#working-with-bytes-5{ts:line-numbers} ## Heap types Heap types are types with a dynamic length that we do not know at compile time. These are `Vec`, `String`, and `raw_slice`. These types are encoded with a `u64` representing the length of the data, followed by the data itself. -<<< @/../../docs-snippets/src/guide/encoding/working-with-bytes.test.ts#working-with-bytes-6{ts:line-numbers} +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#working-with-bytes-6{ts:line-numbers} + +## Full Example + +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#full{ts:line-numbers} \ No newline at end of file From 2e53e9d91b23cd3fdf2707781af322a0e034f308 Mon Sep 17 00:00:00 2001 From: chad Date: Sat, 21 Sep 2024 20:30:43 -0500 Subject: [PATCH 085/129] docs: add wallet management + utilities --- .../src/create-fuels/decrement-counter.ts | 1 - .../src/utilities/unit-conversion.ts | 113 ++++++++++++++++++ .../getting-started-with-wallet-manager.ts | 74 ++++++++++++ .../locking-and-unlocking-wallet-manager.ts | 49 ++++++++ apps/docs-snippets2/sway/Forc.toml | 2 +- .../docs-snippets2/sway/echo-values/Forc.toml | 7 ++ .../sway/echo-values/src/main.sw | 48 ++++++++ .../src/guide/creating-a-fuel-dapp/index.md | 6 +- .../src/guide/encoding/encode-and-decode.md | 2 + .../src/guide/encoding/working-with-bytes.md | 4 +- .../transactions/transaction-parameters.md | 2 + .../src/guide/utilities/unit-conversion.md | 33 +++-- apps/docs/src/guide/wallets/wallet-manager.md | 22 ++-- 13 files changed, 331 insertions(+), 32 deletions(-) create mode 100644 apps/docs-snippets2/src/utilities/unit-conversion.ts create mode 100644 apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts create mode 100644 apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts create mode 100644 apps/docs-snippets2/sway/echo-values/Forc.toml create mode 100644 apps/docs-snippets2/sway/echo-values/src/main.sw diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts index 379e0f02ed8..2be5c9ea6a5 100644 --- a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -4,7 +4,6 @@ import { Wallet, Provider } from 'fuels'; import { NETWORK_URL, WALLET_PVT_KEY } from '../env'; import { CounterFactory } from '../typegend/contracts'; -// #region decrement-counter // Let's create our provider from the network URL. const provider = await Provider.create(NETWORK_URL); // Let's create our wallet from the private key. diff --git a/apps/docs-snippets2/src/utilities/unit-conversion.ts b/apps/docs-snippets2/src/utilities/unit-conversion.ts new file mode 100644 index 00000000000..30663999d47 --- /dev/null +++ b/apps/docs-snippets2/src/utilities/unit-conversion.ts @@ -0,0 +1,113 @@ +// #region full +import { BN, DECIMAL_GWEI, DECIMAL_KWEI, bn, Provider, Wallet } from 'fuels'; + +import { NETWORK_URL, WALLET_PVT_KEY } from '../env'; +import { EchoValuesFactory } from '../typegend/contracts/EchoValuesFactory'; + +// #region instantiation-1 +const myBigNumberOne = '100000000'; + +const resultOne = new BN('100000000').toString(); +console.assert(resultOne === myBigNumberOne, 'BN is not equal to expected'); +// #endregion instantiation-1 + +const myBigNumberTwo = '100000000'; + +// #region instantiation-2 + +const resultTwo = bn('100000000').toString(); +console.assert(resultTwo === myBigNumberTwo, 'BN is not equal to expected'); +// #endregion instantiation-2 + +// #region contract-calls-1 + +// Let's deploy a contract that has a function that takes a u64 as input +const provider = await Provider.create(NETWORK_URL); + +const wallet = await Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); + +const deployedContract = await new EchoValuesFactory(wallet).deploy(); +const { contract } = await deployedContract.waitForResult(); + +const MAX_U64 = bn('18446744073709551615'); + +const { waitForResult } = await contract.functions.echo_u64(MAX_U64).call(); +const { value } = await waitForResult(); + +console.assert(value.toString() === MAX_U64.toString(), 'BN is not equal to expected'); +// #endregion contract-calls-1 + +const myBigNumberThree = '1'; + +// #region parse-units-1 +const resultThree = bn.parseUnits('0.000000001').toString(); +console.assert(resultThree === myBigNumberThree, 'BN is not equal to expected'); +// #endregion parse-units-1 + +// #endregion parse-units-1 + +// #region parse-units-2 +const myBigNumberFour = '100100000000000'; +const resultFour = bn.parseUnits('100100').toString(); +console.assert(resultFour === myBigNumberFour, 'BN is not equal to expected'); +// #endregion parse-units-2 + +// #endregion parse-units-3 + +// #region parse-units-3 +const myBigNumberFive = '100100000200001'; + +const resultFive = bn.parseUnits('100,100.000200001').toString(); +console.assert(resultFive === myBigNumberFive, 'BN is not equal to expected'); +// #endregion parse-units-3 + +// #endregion parse-units-4 + +// #region parse-units-4 +const myBigNumberSix = '1000000000'; + +const resultSix = bn.parseUnits('1', DECIMAL_GWEI).toString(); +console.assert(resultSix === myBigNumberSix, 'BN is not equal to expected'); +// #endregion parse-units-4 + +// #region format-1 +const myBigNumberSeven = '1.000'; +const oneGwei = bn('1000000000'); + +const resultSeven = oneGwei.format(); +console.assert(resultSeven === myBigNumberSeven, 'BN is not equal to expected'); +// #endregion format-1 + +// #region format-2 +const myBigNumberEight = '2.000'; + +const twoGwei = bn('2000000000'); + +const resultEight = twoGwei.format({ units: DECIMAL_GWEI }); +console.assert(resultEight === myBigNumberEight, 'BN is not equal to expected'); +// #endregion format-2 + +// #region format-3 +const oneDecimalGwei = '1.0'; + +const formattedGwei = oneGwei.format({ precision: 1 }); +console.assert(formattedGwei === oneDecimalGwei, 'BN is not equal to expected'); +// #endregion format-3 + +// #region format-units-1 +const myFormattedGwei = '1.000000000'; + +const formattedUnitsGwei = oneGwei.formatUnits(); +console.assert(formattedUnitsGwei === myFormattedGwei, 'BN is not equal to expected'); +// #endregion format-units-1 + +// #region format-units-2 +const myFormattedKwei = '1.000000000000000'; + +const oneKwei = bn('1000000000000000'); + +const formattedUnitsKwei = oneKwei.formatUnits(DECIMAL_KWEI); +console.assert(formattedUnitsKwei === myFormattedKwei, 'BN is not equal to expected'); +// #endregion format-units-2 + +// #endregion full diff --git a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts new file mode 100644 index 00000000000..ef768fb15fa --- /dev/null +++ b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts @@ -0,0 +1,74 @@ +// #region full +import { WalletManager, Wallet, Provider } from 'fuels'; + +import { NETWORK_URL } from '../env'; + +// #region getting-started-with-wallet-manager-1 + +// Initialize a WalletManager +const walletManager = new WalletManager(); +// #endregion getting-started-with-wallet-manager-1 + +// #region getting-started-with-wallet-manager-2 +const password = 'my-password'; + +await walletManager.unlock(password); +// #endregion getting-started-with-wallet-manager-2 + +// #region getting-started-with-wallet-manager-3 +// Initialize a Provider +const provider = await Provider.create(NETWORK_URL); +const myWallet = Wallet.generate({ + provider, +}); + +const privateKey = myWallet.privateKey; + +await walletManager.addVault({ + type: 'privateKey', + secret: privateKey, + title: 'My first private key vault', +}); +// #endregion getting-started-with-wallet-manager-3 + +// #region getting-started-with-wallet-manager-4 +await walletManager.addVault({ + type: 'privateKey', + secret: privateKey, + title: 'My second private key vault', +}); +// #endregion getting-started-with-wallet-manager-4 + +// #region getting-started-with-wallet-manager-5 +const vaults = walletManager.getVaults(); + +// #context console.log(vaults); +// #endregion getting-started-with-wallet-manager-5 + +// #region getting-started-with-wallet-manager-6 + +console.assert( + JSON.stringify(vaults) === + JSON.stringify([ + { + title: 'My first private key vault', + type: 'privateKey', + vaultId: 0, + }, + { + title: 'My second private key vault', + type: 'privateKey', + vaultId: 1, + }, + ]), + 'Vaults do not match expected structure' +); +// #endregion getting-started-with-wallet-manager-6 + +// #region getting-started-with-wallet-manager-7 +const retrievedWallet = walletManager.getWallet(myWallet.address); +console.assert(retrievedWallet.address.equals(myWallet.address), 'Wallets do not match'); +console.assert(vaults.length > 0, 'Vaults length should be greater than 0'); +// #endregion getting-started-with-wallet-manager-7 + +// #endregion full diff --git a/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts new file mode 100644 index 00000000000..fde13a7b36a --- /dev/null +++ b/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts @@ -0,0 +1,49 @@ +// #region full +import { WalletManager } from 'fuels'; + +const password = '0b540281-f87b-49ca-be37-2264c7f260f7'; +// #region locking-and-unlocking-wallet-manager-1 +const walletManager = new WalletManager(); + +// #context const password = 'my-password'; + +await walletManager.unlock(password); +// #endregion locking-and-unlocking-wallet-manager-1 + +const privateKey = '0xc7079e195cca2495e47b056115f850a8be1f2c4ffe2a806922accb36d2ff0dde'; + +await walletManager.addVault({ + type: 'privateKey', + secret: privateKey, +}); + +// #region locking-and-unlocking-wallet-manager-2 +await walletManager.lock(); +// #endregion locking-and-unlocking-wallet-manager-2 + +// #region locking-and-unlocking-wallet-manager-3 +await walletManager.unlock(password); +// #endregion locking-and-unlocking-wallet-manager-3 + +// #region locking-and-unlocking-wallet-manager-4 +const isLocked = walletManager.isLocked; + +console.assert(isLocked === false, 'WalletManager is locked'); +// #endregion locking-and-unlocking-wallet-manager-4 + +// #region locking-and-unlocking-wallet-manager-5 +const newPassword = 'my-new-password'; + +await walletManager.updatePassphrase(password, newPassword); +// #endregion locking-and-unlocking-wallet-manager-5 + +// #region locking-and-unlocking-wallet-manager-6 +await walletManager.unlock(newPassword); + +// perform your tasks... + +walletManager.lock(); // Always lock your WalletManager when you're done + +console.assert(walletManager.isLocked === true, 'WalletManager is unlocked'); +// #endregion locking-and-unlocking-wallet-manager-6 +// #endregion full diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml index fd431b1e348..135feb055fe 100644 --- a/apps/docs-snippets2/sway/Forc.toml +++ b/apps/docs-snippets2/sway/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = ["counter", "script-sum"] +members = ["counter", "script-sum", "echo-values"] diff --git a/apps/docs-snippets2/sway/echo-values/Forc.toml b/apps/docs-snippets2/sway/echo-values/Forc.toml new file mode 100644 index 00000000000..999e1134150 --- /dev/null +++ b/apps/docs-snippets2/sway/echo-values/Forc.toml @@ -0,0 +1,7 @@ +[project] +authors = ["Fuel Labs "] +entry = "main.sw" +license = "Apache-2.0" +name = "echo-values" + +[dependencies] diff --git a/apps/docs-snippets2/sway/echo-values/src/main.sw b/apps/docs-snippets2/sway/echo-values/src/main.sw new file mode 100644 index 00000000000..87bb47a673d --- /dev/null +++ b/apps/docs-snippets2/sway/echo-values/src/main.sw @@ -0,0 +1,48 @@ +// #region understanding-fuel-binary-file +contract; + +use std::b512::B512; + +abi EchoValues { + fn echo_u8(value: u8) -> u8; + + fn echo_str_8(value: str[8]) -> str[8]; + + fn echo_str(value: str) -> str; + + fn echo_tuple(tuple: (u8, bool, u64)) -> (u8, bool, u64); + + fn echo_b512(input: B512) -> B512; + + fn echo_u64(value: u64) -> u64; +} + +impl EchoValues for Contract { + fn echo_u8(value: u8) -> u8 { + value + } + + fn echo_str(value: str) -> str { + value + } + + fn echo_str_8(value: str[8]) -> str[8] { + value + } + + // #region tuples-2 + fn echo_tuple(tuple: (u8, bool, u64)) -> (u8, bool, u64) { + tuple + } + // #endregion tuples-2 + + // #region bits512-3 + fn echo_b512(input: B512) -> B512 { + input + } + // #endregion bits512-3 + fn echo_u64(value: u64) -> u64 { + value + } +} +// #endregion understanding-fuel-binary-file diff --git a/apps/docs/src/guide/creating-a-fuel-dapp/index.md b/apps/docs/src/guide/creating-a-fuel-dapp/index.md index a7a5b737535..059500115e5 100644 --- a/apps/docs/src/guide/creating-a-fuel-dapp/index.md +++ b/apps/docs/src/guide/creating-a-fuel-dapp/index.md @@ -197,7 +197,7 @@ Testing the integration with your smart contract isn't essential, but it's good We've provided some examples for each program type in the `./test` directory of your project. But let's also add a test for our new `decrement_counter` function in the `./test/contract.test.ts` file: -<<< @/../../docs-snippets2/src/create-fuels/decrement-counter.ts#decrement-counter{ts:line-numbers} +<<< @/../../docs-snippets2/src/create-fuels/decrement-counter.ts#full{ts:line-numbers} The template also comes with a UI testing setup using [Playwright](https://playwright.dev/). We can add a test for our new `decrement_counter` function in the `./test/ui/ui.test.ts` file: @@ -216,7 +216,3 @@ The template also comes with a UI testing setup using [Playwright](https://playw - If you have any questions or need help, feel free to reach out to us on the [Official Fuel Forum](https://forum.fuel.network/). - If you want to learn more about the Fuel Stack, check out the [Fuel Docs](https://docs.fuel.network/). - -# Full Example - -<<< @/../../docs-snippets2/src/create-fuels/decrement-counter.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/encoding/encode-and-decode.md b/apps/docs/src/guide/encoding/encode-and-decode.md index f6194115672..2d55cd7d771 100644 --- a/apps/docs/src/guide/encoding/encode-and-decode.md +++ b/apps/docs/src/guide/encoding/encode-and-decode.md @@ -43,4 +43,6 @@ A similar approach can be taken with [Predicates](../predicates/index.md); howev ## Full Example +Here is the full example of the encoding and decoding methods: + <<< @/../../docs-snippets2/src/encoding/encode-and-decode.ts#full{ts:line-numbers} \ No newline at end of file diff --git a/apps/docs/src/guide/encoding/working-with-bytes.md b/apps/docs/src/guide/encoding/working-with-bytes.md index 3a488636665..e42d996062e 100644 --- a/apps/docs/src/guide/encoding/working-with-bytes.md +++ b/apps/docs/src/guide/encoding/working-with-bytes.md @@ -44,4 +44,6 @@ Heap types are types with a dynamic length that we do not know at compile time. ## Full Example -<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#full{ts:line-numbers} \ No newline at end of file +Here is the full example of the working with bytes functions: + +<<< @/../../docs-snippets2/src/encoding/working-with-bytes.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/transactions/transaction-parameters.md b/apps/docs/src/guide/transactions/transaction-parameters.md index 50b187bfb7e..524d72b5123 100644 --- a/apps/docs/src/guide/transactions/transaction-parameters.md +++ b/apps/docs/src/guide/transactions/transaction-parameters.md @@ -58,4 +58,6 @@ The same method is also accessible within a function invocation scope, so it can ## Full Example +Here is the full example of the transaction parameters: + <<< @/../../docs-snippets2/src/transactions/transaction-parameters.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/utilities/unit-conversion.md b/apps/docs/src/guide/utilities/unit-conversion.md index 5903cf4ee7c..8c21d0f70d7 100644 --- a/apps/docs/src/guide/utilities/unit-conversion.md +++ b/apps/docs/src/guide/utilities/unit-conversion.md @@ -10,17 +10,17 @@ Below we will go over some common use cases for unit conversion. Using our `BN` class we can instantiate these numbers. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#instantiation-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#instantiation-1{ts:line-numbers} Or using our `bn` utility function. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#instantiation-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#instantiation-2{ts:line-numbers} ## Contract calls Generally, we will need to convert `u64` and `u256` numbers to a `BN` object when passing them to a Sway program from JavaScript. More information on this can be found [here](../types/numbers.md). -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#contract-calls-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#contract-calls-1{ts:line-numbers} > Note: If a contract call returns a number that is too large to be represented as a JavaScript number, you can convert it to a string using the `toString` method instead of `toNumber`. @@ -28,19 +28,19 @@ Generally, we will need to convert `u64` and `u256` numbers to a `BN` object whe Parsing string-represented numbers (from user input) has never been easier, than using the `parseUnits` function. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#parse-units-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#parse-units-1{ts:line-numbers} We can parse large numbers. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#parse-units-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#parse-units-2{ts:line-numbers} Or numbers formatted for human readability. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#parse-units-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#parse-units-3{ts:line-numbers} We can also parse numbers in other units of measure. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#parse-units-4{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#parse-units-4{ts:line-numbers} ## Formatting @@ -48,26 +48,33 @@ We can format common units of measure using the `format` function. In the following example, we format a BigNumber representation of one Gwei, into units for the Fuel network (with 3 decimal place precision). -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#format-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#format-1{ts:line-numbers} We can also format numbers in other units of measure by specifying the `units` variable. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#format-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#format-2{ts:line-numbers} A `precision` variable will allow for the formatting of numbers with a specific number of decimal places. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#format-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#format-3{ts:line-numbers} ### Format units The `formatUnits` function is a lesser alternative to the `format` function, as it will maintain the same precision as the input value. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#format-units-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#format-units-1{ts:line-numbers} We can also format numbers in other units of measure by specifying the `units` variable. -<<< @/../../docs-snippets/src/guide/utilities/unit-conversion.test.ts#format-units-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#format-units-2{ts:line-numbers} ## See also -- [Sway Numbers](../types/numbers.md) \ No newline at end of file +- [Sway Numbers](../types/numbers.md) + + +## Full Example + +For the full example of unit conversion see the snippet below: + +<<< @/../../docs-snippets2/src/utilities/unit-conversion.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/wallets/wallet-manager.md b/apps/docs/src/guide/wallets/wallet-manager.md index 56dd4cf2f48..a70ed0c1ee9 100644 --- a/apps/docs/src/guide/wallets/wallet-manager.md +++ b/apps/docs/src/guide/wallets/wallet-manager.md @@ -28,13 +28,13 @@ For now, let's keep it simple and not worry about the storage. Later we will dis To instantiate a `WalletManager` you can simply: -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-1{ts:line-numbers} ### Setting `WalletManager` Password By default, a `WalletManager` instance is locked when created. Before using it, you need to unlock it by setting a password. You can do this by calling the `unlock` method. -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-2{ts:line-numbers} Once your `WalletManager` is unlocked, it can manage your wallets. @@ -44,7 +44,7 @@ A vault in `WalletManager` serves as a secure container for wallets. The `Wallet To add a vault, we utilize the `addVault` method. Here's how we can create a private key vault and add a private key from a wallet we own: -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-3{ts:line-numbers} The `addVault` method requires an object with three properties: `type`, `secret`, and `title`. The `WalletManager` currently supports two types of vaults: `privateKeyVault` and `mnemonicVault`. For the `secret`, we use our wallet's private key, and for the `title`, we can provide a custom name. @@ -52,7 +52,7 @@ By running this code, `WalletManager` creates a new vault instance of the type ` A key feature of the `WalletManager` is its ability to manage multiple vaults, even of the same type. This implies that if you run the `addVault` method again, with the same parameters, `WalletManager` will create another vault of the type `privateKey`, holding the same wallet. Here's an example: -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-4{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-4{ts:line-numbers} After executing this, you will find that your `WalletManager` is managing two `privateKey` vaults, both storing the same wallet. @@ -62,17 +62,17 @@ Remember, both `title` and `secret` are optional when adding vaults, but providi With your `WalletManager` set up, you can now access your vaults and wallets. Here's how to retrieve the details of your vaults: -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-5{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-5{ts:line-numbers} This will output something like this: -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-6{bash:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-6{bash:line-numbers} As you can see, the `WalletManager` assigns unique `vaultIds` for each vault. The first vault you added has a `vaultId` of `0`, and the second one has a `vaultId` of `1`. Let's retrieve your wallet instance with the `getWallet` method: -<<< @/../../docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts#getting-started-with-wallet-manager-7{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts#getting-started-with-wallet-manager-7{ts:line-numbers} This guide walked through the steps to instantiate a `WalletManager`, set up its first vault, and retrieve vault information. The following sections will explore more functionalities of `WalletManager`, and go deeper into the usage of its vaults and the details of its storage system. @@ -98,7 +98,7 @@ Remember, it's crucial to lock your `WalletManager` when it's not in use to ensu The `unlock` method requires the previously set password to unlock the `WalletManager` and all its vaults. The password decrypts the stored vaults, allowing `WalletManager` to load its saved data. -<<< @/../../docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts#locking-and-unlocking-wallet-manager-3{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts#locking-and-unlocking-wallet-manager-3{ts:line-numbers} Providing an incorrect password will result in an error. However, when unlocked successfully, `WalletManager` is ready for use again. @@ -106,18 +106,18 @@ Providing an incorrect password will result in an error. However, when unlocked You can confirm the current lock state of the `WalletManager` by using the `isLocked` method: -<<< @/../../docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts#locking-and-unlocking-wallet-manager-4{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts#locking-and-unlocking-wallet-manager-4{ts:line-numbers} ### Updating the Password To change the current password, invoke the `updatePassphrase` method, and provide both the old and new passwords: -<<< @/../../docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts#locking-and-unlocking-wallet-manager-5{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts#locking-and-unlocking-wallet-manager-5{ts:line-numbers} ### Reminder: Always Lock Your `WalletManager` Always ensure you lock the `WalletManager` after completing operations. This step is critical for securing your wallets. -<<< @/../../docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts#locking-and-unlocking-wallet-manager-6{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts#locking-and-unlocking-wallet-manager-6{ts:line-numbers} By using `WalletManager` to manage lock and unlock states, you introduce an additional layer of security. Never forget to lock your `WalletManager` when it's not in use. From 1ba314b5eed5da41bb5ea8b3e6b577206e8bfb57 Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 26 Sep 2024 18:46:59 -0500 Subject: [PATCH 086/129] docs: add launch node testing snippets --- .../testing/launching-a-test-node.test.ts | 4 +- apps/docs-snippets2/scripts/wrap-snippets.ts | 2 +- .../src/testing/launching-a-test-node.ts | 224 ++++++++++++++++++ .../src/testing/tweaking-the-blockchain.ts | 44 ++++ .../src/guide/testing/advanced-example.md | 2 +- apps/docs/src/guide/testing/basic-example.md | 2 +- apps/docs/src/guide/testing/custom-blocks.md | 9 +- .../guide/testing/launching-a-test-node.md | 4 +- .../src/guide/testing/test-node-options.md | 10 +- 9 files changed, 287 insertions(+), 14 deletions(-) create mode 100644 apps/docs-snippets2/src/testing/launching-a-test-node.ts create mode 100644 apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts diff --git a/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts b/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts index 3557da4f374..33c02d54b47 100644 --- a/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts +++ b/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts @@ -30,8 +30,8 @@ describe('launching a test node', () => { const launched = await launchTestNode(); /* - Do your things, run your tests, and then call - `launched.cleanup()` to dispose of everything. + * Do your things, run your tests, and then call + `launched.cleanup()` to dispose of everything. */ launched.cleanup(); diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index a19dc9e2845..ad37fc15cb4 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -22,7 +22,7 @@ export const wrapSnippet = (filepath: string) => { const snippetsNoImports = imports.length ? snippetContents.split(imports)[1] : snippetContents; // Does the snippet requires node launcher? - const requiresNodeLauncher = /LOCAL_NETWORK_URL/.test(imports); + const requiresNodeLauncher = /NETWORK_URL/.test(imports); /* Removes .env file import diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.ts new file mode 100644 index 00000000000..a75058d6add --- /dev/null +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.ts @@ -0,0 +1,224 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable import/first */ +import { WalletUnlocked, Provider } from 'fuels'; +import { launchTestNode, TestAssetId, TestMessage } from 'fuels/test-utils'; +import { join } from 'path'; + +// #region automatic-cleanup + +using launched = await launchTestNode(); + +/* + * The method `launched.cleanup()` will be automatically + * called when the variable `launched` goes out of block scope. + */ + +// #endregion automatic-cleanup + +// #region manual-cleanup + +const launchedTestNode = await launchTestNode(); + +/* + Do your things, run your tests, and then call + `launchedTestNode.cleanup()` to dispose of everything. + */ + +launchedTestNode.cleanup(); +// #endregion manual-cleanup + +// #region options + +const customLaunchTestNode = await launchTestNode(/* options */); +// #endregion options + +customLaunchTestNode.cleanup(); +// #region basic-example +import { CounterFactory } from '../typegend/contracts/CounterFactory'; + +using launchedContractNode = await launchTestNode({ + contractsConfigs: [{ factory: CounterFactory }], +}); + +const { + contracts: [contract], + provider, + wallets, +} = launchedContractNode; + +const { waitForResult } = await contract.functions.get_count().call(); +const response = await waitForResult(); + +console.assert(response.value.toNumber() === 0, 'Counter is not initialized'); +console.assert(provider instanceof Provider, 'Provider is not instance of Provider'); +console.assert(wallets.length === 4, 'Wallets length is not 4'); +// #endregion basic-example + +// #region advanced-example + +const assets = TestAssetId.random(2); +const message = new TestMessage({ amount: 1000 }); + +using counterContractNode = await launchTestNode({ + walletsConfig: { + count: 4, + assets, + coinsPerAsset: 2, + amountPerCoin: 1_000_000, + messages: [message], + }, + contractsConfigs: [ + { + factory: CounterFactory, + walletIndex: 3, + options: { storageSlots: [] }, + }, + ], +}); + +const { + contracts: [counterContract], + wallets: [wallet1, wallet2, wallet3, wallet4], +} = counterContractNode; + +console.assert( + counterContract instanceof CounterFactory, + 'CounterFactory is not instance of CounterFactory' +); +console.assert(wallet1 instanceof WalletUnlocked, 'Wallet1 is not instance of WalletUnlocked'); +console.assert(wallet2 instanceof WalletUnlocked, 'Wallet2 is not instance of WalletUnlocked'); +console.assert(wallet3 instanceof WalletUnlocked, 'Wallet3 is not instance of WalletUnlocked'); +console.assert(wallet4 instanceof WalletUnlocked, 'Wallet4 is not instance of WalletUnlocked'); + +// #endregion advanced-example + +// #region custom-fuel-core-args + +process.env.DEFAULT_FUEL_CORE_ARGS = `--tx-max-depth 20`; + +// `nodeOptions.args` will override the above values if provided. + +const nodeWithCustomArgs = await launchTestNode(); +const { provider: providerWithCustomArgs } = nodeWithCustomArgs; + +console.assert(providerWithCustomArgs.getNode().maxDepth.toNumber() === 20, 'Max depth is not 20'); +process.env.DEFAULT_FUEL_CORE_ARGS = ''; +// #endregion custom-fuel-core-args + +nodeWithCustomArgs.cleanup(); + +const mySnapshotDirPath = join(__dirname, '../../../../', '.fuel-core', 'configs'); + +// #region custom-chain-config +process.env.DEFAULT_CHAIN_SNAPSHOT_DIR = mySnapshotDirPath; + +const launchedWithCustomChainConfig = await launchTestNode(); + +const { provider: providerWithCustomChainConfig } = launchedWithCustomChainConfig; + +const { name } = await providerWithCustomChainConfig.fetchChain(); + +console.assert(name === 'custom-chain-config', 'Chain name is not custom-chain-config'); +// #endregion custom-chain-config + +launchedWithCustomChainConfig.cleanup(); +// #region custom-node-options + +const [baseAssetId] = TestAssetId.random(); + +const nodeWithCustomBaseAssetId = await launchTestNode({ + nodeOptions: { + snapshotConfig: { + chainConfig: { + consensus_parameters: { + V1: { + base_asset_id: baseAssetId.value, + }, + }, + }, + }, + }, +}); +// #endregion custom-node-options + +nodeWithCustomBaseAssetId.cleanup(); + +// #region asset-ids + +const randomAssetIds = TestAssetId.random(); + +const nodeWithCustomAssetIds = await launchTestNode({ + walletsConfig: { + assets: randomAssetIds, + }, +}); + +const { + wallets: [walletWithCustomAssetIds], +} = nodeWithCustomAssetIds; + +const { coins } = await walletWithCustomAssetIds.getCoins(randomAssetIds[0].value); +console.assert( + coins[0].assetId === randomAssetIds[0].value, + 'Asset id is not randomAssetIds[0].value' +); +// #endregion asset-ids + +nodeWithCustomAssetIds.cleanup(); + +// #region test-messages + +const testMessage = new TestMessage({ amount: 1000 }); + +const nodeWithTestMessages = await launchTestNode({ + walletsConfig: { + messages: [testMessage], + }, +}); + +const { + wallets: [walletWithTestMessages], +} = nodeWithTestMessages; + +const { + messages: [messageWithTestMessages], +} = await walletWithTestMessages.getMessages(); + +console.assert( + messageWithTestMessages.nonce === testMessage.nonce, + 'Nonce is not testMessage.nonce' +); +// #endregion test-messages + +nodeWithTestMessages.cleanup(); + +// #region test-messages-chain +const recipient = WalletUnlocked.generate(); +const testMessageOnChain = new TestMessage({ + amount: 1000, + recipient: recipient.address, +}); + +using launchedWithTestMessagesOnChain = await launchTestNode({ + nodeOptions: { + snapshotConfig: { + stateConfig: { + messages: [testMessageOnChain.toChainMessage()], + }, + }, + }, +}); + +const { provider: providerWithTestMessagesOnChain } = launchedWithTestMessagesOnChain; + +recipient.provider = providerWithTestMessagesOnChain; + +const { + messages: [messageOnChain], +} = await recipient.getMessages(); +// message.nonce === testMessage.nonce +console.assert( + messageOnChain.nonce === testMessageOnChain.nonce, + 'Nonce is not testMessageOnChain.nonce' +); +// #endregion test-messages-chain diff --git a/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts b/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts new file mode 100644 index 00000000000..9d316eaf602 --- /dev/null +++ b/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts @@ -0,0 +1,44 @@ +// #region full +// #region produce-blocks +import { DateTime } from 'fuels'; +import { launchTestNode } from 'fuels/test-utils'; + +using launched = await launchTestNode(); +const { provider } = launched; +const block = await provider.getBlock('latest'); +if (!block) { + throw new Error('No latest block'); +} +const { time: timeLastBlockProduced } = block; + +const producedBlockHeight = await provider.produceBlocks(3); + +const producedBlock = await provider.getBlock(producedBlockHeight.toNumber()); + +const oldest = DateTime.fromTai64(timeLastBlockProduced); +const newest = DateTime.fromTai64(producedBlock!.time); +// newest >= oldest +console.assert(producedBlock, 'No latest block'); +console.assert(newest >= oldest, 'Newest block is not greater or equal to oldest block'); +// #endregion produce-blocks + +// #region produceBlocks-custom-timestamp +using launchedWithCustomTimestamp = await launchTestNode(); +const { provider: providerWithCustomTimestamp } = launchedWithCustomTimestamp; + +const latestBlock = await providerWithCustomTimestamp.getBlock('latest'); +if (!latestBlock) { + throw new Error('No latest block'); +} +const latestBlockTimestamp = DateTime.fromTai64(latestBlock.time).toUnixMilliseconds(); +const newBlockHeight = await providerWithCustomTimestamp.produceBlocks( + 3, + latestBlockTimestamp + 1000 +); + +console.assert( + newBlockHeight.toHex() === latestBlock.height.add(3).toHex(), + 'New block height is not equal to latest block height + 3' +); +// #endregion produceBlocks-custom-timestamp +// #endregion full diff --git a/apps/docs/src/guide/testing/advanced-example.md b/apps/docs/src/guide/testing/advanced-example.md index 7989c31b613..d8432d63a53 100644 --- a/apps/docs/src/guide/testing/advanced-example.md +++ b/apps/docs/src/guide/testing/advanced-example.md @@ -8,7 +8,7 @@ A more complex example showcasing genesis block state configuration with [`walletsConfig`](./test-node-options.md#walletsconfig) and deployment of multiple contracts is shown below. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#advanced-example{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#advanced-example{ts:line-numbers} ## Summary diff --git a/apps/docs/src/guide/testing/basic-example.md b/apps/docs/src/guide/testing/basic-example.md index df30c0b8fcf..4eab7cae852 100644 --- a/apps/docs/src/guide/testing/basic-example.md +++ b/apps/docs/src/guide/testing/basic-example.md @@ -10,7 +10,7 @@ Let's use `launchTestNode` with the counter contract from the [Fuel dApp tutoria _Note: you will have to change the import paths of the contract factory and bytecode to match your folder structure._ -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#basic-example{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#basic-example{ts:line-numbers} ## Summary diff --git a/apps/docs/src/guide/testing/custom-blocks.md b/apps/docs/src/guide/testing/custom-blocks.md index a00447c9ad0..afd35dbd0ab 100644 --- a/apps/docs/src/guide/testing/custom-blocks.md +++ b/apps/docs/src/guide/testing/custom-blocks.md @@ -2,10 +2,15 @@ You can force-produce blocks using the `produceBlocks` helper to achieve an arbitrary block height. This is especially useful when you want to do some testing regarding transaction maturity. -<<< @/../../docs-snippets/src/guide/testing/tweaking-the-blockchain.test.ts#produce-blocks{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/tweaking-the-blockchain.ts#produce-blocks{ts:line-numbers} # Blocks With Custom Timestamps You can also produce blocks with a custom block time using the `produceBlocks` helper by specifying the second optional parameter. -<<< @/../../docs-snippets/src/guide/testing/tweaking-the-blockchain.test.ts#produceBlocks-custom-timestamp{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/tweaking-the-blockchain.ts#produceBlocks-custom-timestamp{ts:line-numbers} + +# Full Example + +For a full example, see the following file: +<<< @/../../docs-snippets2/src/testing/tweaking-the-blockchain.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/testing/launching-a-test-node.md b/apps/docs/src/guide/testing/launching-a-test-node.md index 993a0d47672..a08f5f92636 100644 --- a/apps/docs/src/guide/testing/launching-a-test-node.md +++ b/apps/docs/src/guide/testing/launching-a-test-node.md @@ -10,7 +10,7 @@ For usage information for `launchTestNode` including it's inputs, outputs and op We support [explicit resource management](https://www.typescriptlang.org/docs/handbook/variable-declarations.html#using-declarations), introduced in TypeScript 5.2, which automatically calls a `cleanup` function after a variable instantiated with the `using` keyword goes out of block scope: -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#automatic-cleanup{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#automatic-cleanup{ts:line-numbers} ### Configuring Typescript @@ -35,4 +35,4 @@ If you don't want, or can't use [explicit resource management](https://www.types In this case, remember you must call `.cleanup()` to dispose of the node. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#manual-cleanup{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#manual-cleanup{ts:line-numbers} diff --git a/apps/docs/src/guide/testing/test-node-options.md b/apps/docs/src/guide/testing/test-node-options.md index 65ffb589718..edae0e429d4 100644 --- a/apps/docs/src/guide/testing/test-node-options.md +++ b/apps/docs/src/guide/testing/test-node-options.md @@ -7,7 +7,7 @@ This reference describes all the options of the [`launchTestNode`](./launching-a - [`nodeOptions`](./test-node-options.md#nodeoptions) - [`providerOptions`](./test-node-options.md#provideroptions) -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#options{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#options{ts:line-numbers} Check out the [API reference](../../api/Contract/LaunchTestNodeOptions.md) for usage information on the Test Node Options. @@ -26,17 +26,17 @@ Used to set the node's genesis block state (coins and messages). The `TestAssetId` utility integrates with [`walletsConfig`](./test-node-options.md#walletsconfig) and gives you an easy way to generate multiple random asset ids via the `TestAssetId.random` static method. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#asset-ids{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#asset-ids{ts:line-numbers} ### `walletsConfig.messages` The `TestMessage` helper class is used to create messages for testing purposes. When passed via `walletsConfig.messages`, the `recipient` field of the message is overriden to be the wallet's address. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#test-messages{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#test-messages{ts:line-numbers} It can also be used standalone and passed into the initial state of the chain via the `TestMessage.toChainMessage` instance method. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#test-messages-chain{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#test-messages-chain{ts:line-numbers} ## `contractsConfigs` @@ -54,7 +54,7 @@ Options to modify the behavior of the node. For example, you can specify your own base asset id of the chain like below: -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#custom-node-options{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#custom-node-options{ts:line-numbers} _Note: The API for these options is still not fully complete and better documentation will come in the future._ From 63ebc631d6b04fbea73021d294312384130219ab Mon Sep 17 00:00:00 2001 From: chad Date: Fri, 27 Sep 2024 14:23:18 -0500 Subject: [PATCH 087/129] docs: added configurable constant + custom transaction snippets --- .eslintignore | 1 + .../src/scripts/script-custom-transaction.ts | 65 +++++++++++++++++++ .../src/scripts/script-with-configurable.ts | 55 ++++++++++++++++ .../src/testing/tweaking-the-blockchain.ts | 1 + apps/docs-snippets2/sway/Forc.toml | 2 +- .../script-transfer-to-contract/Forc.toml | 7 ++ .../script-transfer-to-contract/src/main.sw | 19 ++++++ .../src/guide/cookbook/custom-transactions.md | 10 ++- .../guide/scripts/configurable-constants.md | 11 +++- tsconfig.test.json | 2 +- 10 files changed, 167 insertions(+), 6 deletions(-) create mode 100644 apps/docs-snippets2/src/scripts/script-custom-transaction.ts create mode 100644 apps/docs-snippets2/src/scripts/script-with-configurable.ts create mode 100644 apps/docs-snippets2/sway/script-transfer-to-contract/Forc.toml create mode 100644 apps/docs-snippets2/sway/script-transfer-to-contract/src/main.sw diff --git a/.eslintignore b/.eslintignore index 5a12f6796af..2fa61cc9a3e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -14,6 +14,7 @@ apps/demo-react-vite apps/create-fuels-counter-guide apps/docs-snippets2/src/typegend apps/docs-snippets2/src/**/*.wrapped.ts +apps/docs-snippets2/src/**/*.test.ts packages/fuels/src/cli/commands/deploy/proxy packages/fuels/test/fixtures/project diff --git a/apps/docs-snippets2/src/scripts/script-custom-transaction.ts b/apps/docs-snippets2/src/scripts/script-custom-transaction.ts new file mode 100644 index 00000000000..265dc6fd971 --- /dev/null +++ b/apps/docs-snippets2/src/scripts/script-custom-transaction.ts @@ -0,0 +1,65 @@ +// #region full +import { BN, ScriptTransactionRequest, coinQuantityfy } from 'fuels'; +import { ASSET_A, ASSET_B, launchTestNode } from 'fuels/test-utils'; + +import { EchoValuesFactory } from '../typegend/contracts/EchoValuesFactory'; +import { ScriptTransferToContract } from '../typegend/scripts/ScriptTransferToContract'; + +using launched = await launchTestNode({ + contractsConfigs: [{ factory: EchoValuesFactory }], +}); +const { + contracts: [contract], + wallets: [wallet], +} = launched; + +const defaultTxParams = { + gasLimit: 10000, +}; + +// #region custom-transactions-2 + +// 1. Create a script transaction using the script binary +const request = new ScriptTransactionRequest({ + ...defaultTxParams, + gasLimit: 3_000_000, + script: ScriptTransferToContract.bytecode, +}); + +// 2. Instantiate the script main arguments +const scriptArguments = [ + contract.id.toB256(), + { bits: ASSET_A }, + new BN(1000), + { bits: ASSET_B }, + new BN(500), +]; + +// 3. Populate the script data and add the contract input and output +request + .setData(ScriptTransferToContract.abi, scriptArguments) + .addContractInputAndOutput(contract.id); + +// 4. Get the transaction resources +const quantities = [coinQuantityfy([1000, ASSET_A]), coinQuantityfy([500, ASSET_B])]; + +// 5. Calculate the transaction fee +const txCost = await wallet.getTransactionCost(request, { quantities }); + +request.gasLimit = txCost.gasUsed; +request.maxFee = txCost.maxFee; + +await wallet.fund(request, txCost); + +// 6. Send the transaction +const tx = await wallet.sendTransaction(request); +await tx.waitForResult(); + +const contractFinalBalanceAssetA = await contract.getBalance(ASSET_A); +const contractFinalBalanceAssetB = await contract.getBalance(ASSET_B); + +console.assert(new BN(contractFinalBalanceAssetA).toNumber() === 1000, 'unexpected balance'); +console.assert(new BN(contractFinalBalanceAssetB).toNumber() === 500, 'unexpected balance'); +// #endregion custom-transactions-2 + +// #endregion full diff --git a/apps/docs-snippets2/src/scripts/script-with-configurable.ts b/apps/docs-snippets2/src/scripts/script-with-configurable.ts new file mode 100644 index 00000000000..1f519755f50 --- /dev/null +++ b/apps/docs-snippets2/src/scripts/script-with-configurable.ts @@ -0,0 +1,55 @@ +// #region full +import { Script, BN, Wallet, Provider } from 'fuels'; + +import { WALLET_PVT_KEY, LOCAL_NETWORK_URL } from '../env'; +import { ScriptSum } from '../typegend/scripts/ScriptSum'; + +// #region script-with-configurable-contants-2 +const provider = await Provider.create(LOCAL_NETWORK_URL); +const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); +const script = new Script(ScriptSum.bytecode, ScriptSum.abi, wallet); + +const configurableConstants = { + AMOUNT: 81, +}; + +script.setConfigurableConstants(configurableConstants); + +const inputtedValue = 10; + +const { waitForResult } = await script.functions.main(inputtedValue).call(); +const { value } = await waitForResult(); + +const expectedTotal = inputtedValue + configurableConstants.AMOUNT; + +console.assert(new BN(value as number).toNumber() === expectedTotal, 'unexpected total'); +// #endregion script-with-configurable-contants-2 + +const argument = 10; +const expected = 20; + +// #region preparing-scripts +const myMainScript = new Script(ScriptSum.bytecode, ScriptSum.abi, wallet); + +const tx = myMainScript.functions.main(argument); + +// Set the call parameters +tx.callParams({ gasLimit: 1500 }); + +// Get the entire transaction request prior to +const txRequest = await tx.getTransactionRequest(); + +// Get the transaction ID +const txId = await tx.getTransactionId(); + +// Retrieve the value of the call and the actual gas used +const { waitForResult: waitForActualGasUsed } = await tx.call(); +const { value: valueOfActualGasUsed, gasUsed: gasUsedOfActualGasUsed } = + await waitForActualGasUsed(); +// #endregion preparing-scripts +console.assert(txRequest, 'txn request undefined'); +console.assert(txId, 'txn id undefined'); +console.assert(new BN(valueOfActualGasUsed as number).toNumber() === expected, 'unexpected total'); +console.assert(new BN(gasUsedOfActualGasUsed).toNumber() > 0, 'gas used is 0'); + +// #endregion full diff --git a/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts b/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts index 9d316eaf602..bb35b35a55d 100644 --- a/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts +++ b/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ // #region full // #region produce-blocks import { DateTime } from 'fuels'; diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml index 135feb055fe..20603e51397 100644 --- a/apps/docs-snippets2/sway/Forc.toml +++ b/apps/docs-snippets2/sway/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = ["counter", "script-sum", "echo-values"] +members = ["counter", "script-sum", "echo-values", "script-transfer-to-contract"] diff --git a/apps/docs-snippets2/sway/script-transfer-to-contract/Forc.toml b/apps/docs-snippets2/sway/script-transfer-to-contract/Forc.toml new file mode 100644 index 00000000000..27eb944eb8b --- /dev/null +++ b/apps/docs-snippets2/sway/script-transfer-to-contract/Forc.toml @@ -0,0 +1,7 @@ +[project] +authors = ["Fuel Labs "] +entry = "main.sw" +license = "Apache-2.0" +name = "script-transfer-to-contract" + +[dependencies] diff --git a/apps/docs-snippets2/sway/script-transfer-to-contract/src/main.sw b/apps/docs-snippets2/sway/script-transfer-to-contract/src/main.sw new file mode 100644 index 00000000000..0e8cd4d742e --- /dev/null +++ b/apps/docs-snippets2/sway/script-transfer-to-contract/src/main.sw @@ -0,0 +1,19 @@ +// #region custom-transactions-1 +script; + +use std::asset::transfer; + +fn main( + contract_address: b256, + asset_a: AssetId, + amount_asset_a: u64, + asset_b: AssetId, + amount_asset_b: u64, +) -> bool { + let wrapped_contract = ContractId::from(contract_address); + let contract_id = Identity::ContractId(wrapped_contract); + transfer(contract_id, asset_a, amount_asset_a); + transfer(contract_id, asset_b, amount_asset_b); + true +} +// #endregion custom-transactions-1 diff --git a/apps/docs/src/guide/cookbook/custom-transactions.md b/apps/docs/src/guide/cookbook/custom-transactions.md index 0f25df68887..aafbfade7db 100644 --- a/apps/docs/src/guide/cookbook/custom-transactions.md +++ b/apps/docs/src/guide/cookbook/custom-transactions.md @@ -4,8 +4,14 @@ There may be scenarios where you need to build out transactions that involve mul Consider the following script that transfers multiple assets to a contract: -<<< @/../../docs-snippets/test/fixtures/forc-projects/script-transfer-to-contract/src/main.sw#custom-transactions-1{ts:line-numbers} +<<< @/../../docs-snippets2/sway/script-transfer-to-contract/src/main.sw#custom-transactions-1{rust:line-numbers} This script can be executed by creating a [`ScriptTransactionRequest`](../../api/Account/ScriptTransactionRequest.md), appending the resource and contract inputs/outputs and then sending the transaction, as follows: -<<< @/../../docs-snippets/src/guide/scripts/script-custom-transaction.test.ts#custom-transactions-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/scripts/script-custom-transaction.ts#custom-transactions-2{ts:line-numbers} + +## Full Example + +For a full example, see below: + +<<< @/../../docs-snippets2/src/scripts/script-custom-transaction.ts#full{ts:line-numbers} diff --git a/apps/docs/src/guide/scripts/configurable-constants.md b/apps/docs/src/guide/scripts/configurable-constants.md index 65a4e6e1a83..b1b9d6a4e20 100644 --- a/apps/docs/src/guide/scripts/configurable-constants.md +++ b/apps/docs/src/guide/scripts/configurable-constants.md @@ -6,16 +6,23 @@ Configurable constants are fairly straightforward to add and set in your scripts Let's consider the following script: -<<< @/../../docs-snippets/test/fixtures/forc-projects/sum-script/src/main.sw#script-with-configurable-contants-1{rust:line-numbers} +<<< @/../../docs-snippets2/sway/script-sum/src/main.sw#script-with-configurable-contants-1{rust:line-numbers} In this script, `AMOUNT` is a configurable constant with a default value of `10`. The main function returns the sum of the `inputted_amount` and the configurable constant `AMOUNT`. To change the value of the `AMOUNT` constant, we can use the `setConfigurableConstants` method as shown in the following example: -<<< @/../../docs-snippets/src/guide/scripts/script-with-configurable.test.ts#script-with-configurable-contants-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/scripts/script-with-configurable.ts#script-with-configurable-contants-2{ts:line-numbers} In this example, we're setting a new value `81` for the `AMOUNT` constant. We then call the main function with an inputted value of `10`. The expectation is that the script will return the sum of the inputted value and the new value of `AMOUNT`. This way, configurable constants in scripts allow for more flexibility and dynamic behavior during execution. + + +## Full Example + +For a full example, see below: + +<<< @/../../docs-snippets2/src/scripts/script-with-configurable.ts#full{ts:line-numbers} diff --git a/tsconfig.test.json b/tsconfig.test.json index 0330aadf23a..3408c0b62a3 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -4,5 +4,5 @@ "noEmit": true }, "include": ["**/*.test.ts"], - "exclude": ["node_modules"] + "exclude": ["node_modules", "apps/docs-snippets2/src/**/*.test.ts"] } From dfee87d12db64d71f9abffa021d297aa7f1a1e26 Mon Sep 17 00:00:00 2001 From: chad Date: Fri, 27 Sep 2024 14:31:13 -0500 Subject: [PATCH 088/129] lint: forc formatting --- apps/docs-snippets2/sway/Forc.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml index 20603e51397..8b2b9950cf4 100644 --- a/apps/docs-snippets2/sway/Forc.toml +++ b/apps/docs-snippets2/sway/Forc.toml @@ -1,2 +1,7 @@ [workspace] -members = ["counter", "script-sum", "echo-values", "script-transfer-to-contract"] +members = [ + "counter", + "script-sum", + "echo-values", + "script-transfer-to-contract", +] From 60be4a518b4d91624429a34a20c7570ce5066ef5 Mon Sep 17 00:00:00 2001 From: chad Date: Fri, 27 Sep 2024 17:56:50 -0500 Subject: [PATCH 089/129] docs: run test snippets in node --- apps/docs-snippets2/scripts/test-template.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/scripts/test-template.ts b/apps/docs-snippets2/scripts/test-template.ts index 95513d3ac3c..6494b2eaf62 100644 --- a/apps/docs-snippets2/scripts/test-template.ts +++ b/apps/docs-snippets2/scripts/test-template.ts @@ -10,7 +10,6 @@ afterAll(() => { /** * @group node - * @group browser */ test('%NAME%', async () => { // TEST NODE LAUNCHER ———>>> From 546c1163e4ebc9640126dcfaa463d2a14e5aceb7 Mon Sep 17 00:00:00 2001 From: chad Date: Sat, 28 Sep 2024 12:33:59 -0500 Subject: [PATCH 090/129] docs: revert changes in test node original snippets --- .../src/guide/testing/launching-a-test-node.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts b/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts index 33c02d54b47..3557da4f374 100644 --- a/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts +++ b/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts @@ -30,8 +30,8 @@ describe('launching a test node', () => { const launched = await launchTestNode(); /* - * Do your things, run your tests, and then call - `launched.cleanup()` to dispose of everything. + Do your things, run your tests, and then call + `launched.cleanup()` to dispose of everything. */ launched.cleanup(); From 607a87288387f9870d5e1f55e21795c174cc325c Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 30 Sep 2024 15:27:49 -0500 Subject: [PATCH 091/129] chore: modify template to check test environment --- apps/docs-snippets2/scripts/test-template.ts | 4 +--- apps/docs-snippets2/scripts/wrap-snippets.ts | 15 +++++++++++++++ ...test-node.ts => launching-a-test-node.node.ts} | 0 3 files changed, 16 insertions(+), 3 deletions(-) rename apps/docs-snippets2/src/testing/{launching-a-test-node.ts => launching-a-test-node.node.ts} (100%) diff --git a/apps/docs-snippets2/scripts/test-template.ts b/apps/docs-snippets2/scripts/test-template.ts index 6494b2eaf62..ac07fd0196c 100644 --- a/apps/docs-snippets2/scripts/test-template.ts +++ b/apps/docs-snippets2/scripts/test-template.ts @@ -8,9 +8,7 @@ afterAll(() => { console = { ...consoleBkp }; }); -/** - * @group node - */ +// %TEST_ENVIRONMENT% test('%NAME%', async () => { // TEST NODE LAUNCHER ———>>> // %NODE_LAUNCHER% diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index ad37fc15cb4..71f01e183a4 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -12,6 +12,20 @@ const wrapperFnContents = readFileSync(wrapperFnFilepath, 'utf-8'); export const wrapSnippet = (filepath: string) => { const snippetContents = readFileSync(filepath, 'utf8'); + /** + * Test environment + */ + let testEnvironments = ''; + + // Check if the filepath includes '.node' or '.browser' + if (filepath.includes('.node')) { + testEnvironments = '/**\n * @group node\n */'; + } else if (filepath.includes('.browser')) { + testEnvironments = '/**\n * @group browser\n */'; + } else { + testEnvironments = '/**\n * @group node\n * @group browser\n */'; + } + /* Filter all imports from file. */ @@ -74,6 +88,7 @@ export const wrapSnippet = (filepath: string) => { const wrappedSnippet = // eslintDisableRule + wrapperFnContents + .replace('// %TEST_ENVIRONMENT%', testEnvironments) .replace('%IMPORTS%', imports) .replace('%NAME%', basename(filepath)) .replace('// %SNIPPET%', indented) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts similarity index 100% rename from apps/docs-snippets2/src/testing/launching-a-test-node.ts rename to apps/docs-snippets2/src/testing/launching-a-test-node.node.ts From 7baad23672d51dd5f0a7cce5fb4ad670aad574a9 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 30 Sep 2024 16:10:16 -0500 Subject: [PATCH 092/129] docs: fix doc links --- apps/docs/src/guide/testing/advanced-example.md | 2 +- apps/docs/src/guide/testing/basic-example.md | 2 +- apps/docs/src/guide/testing/launching-a-test-node.md | 4 ++-- apps/docs/src/guide/testing/test-node-options.md | 10 +++++----- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/docs/src/guide/testing/advanced-example.md b/apps/docs/src/guide/testing/advanced-example.md index d8432d63a53..733aa513def 100644 --- a/apps/docs/src/guide/testing/advanced-example.md +++ b/apps/docs/src/guide/testing/advanced-example.md @@ -8,7 +8,7 @@ A more complex example showcasing genesis block state configuration with [`walletsConfig`](./test-node-options.md#walletsconfig) and deployment of multiple contracts is shown below. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#advanced-example{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#advanced-example{ts:line-numbers} ## Summary diff --git a/apps/docs/src/guide/testing/basic-example.md b/apps/docs/src/guide/testing/basic-example.md index 4eab7cae852..c3be04517df 100644 --- a/apps/docs/src/guide/testing/basic-example.md +++ b/apps/docs/src/guide/testing/basic-example.md @@ -10,7 +10,7 @@ Let's use `launchTestNode` with the counter contract from the [Fuel dApp tutoria _Note: you will have to change the import paths of the contract factory and bytecode to match your folder structure._ -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#basic-example{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#basic-example{ts:line-numbers} ## Summary diff --git a/apps/docs/src/guide/testing/launching-a-test-node.md b/apps/docs/src/guide/testing/launching-a-test-node.md index a08f5f92636..e9b546477c8 100644 --- a/apps/docs/src/guide/testing/launching-a-test-node.md +++ b/apps/docs/src/guide/testing/launching-a-test-node.md @@ -10,7 +10,7 @@ For usage information for `launchTestNode` including it's inputs, outputs and op We support [explicit resource management](https://www.typescriptlang.org/docs/handbook/variable-declarations.html#using-declarations), introduced in TypeScript 5.2, which automatically calls a `cleanup` function after a variable instantiated with the `using` keyword goes out of block scope: -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#automatic-cleanup{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#automatic-cleanup{ts:line-numbers} ### Configuring Typescript @@ -35,4 +35,4 @@ If you don't want, or can't use [explicit resource management](https://www.types In this case, remember you must call `.cleanup()` to dispose of the node. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#manual-cleanup{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#manual-cleanup{ts:line-numbers} diff --git a/apps/docs/src/guide/testing/test-node-options.md b/apps/docs/src/guide/testing/test-node-options.md index edae0e429d4..2bbf8624dd4 100644 --- a/apps/docs/src/guide/testing/test-node-options.md +++ b/apps/docs/src/guide/testing/test-node-options.md @@ -7,7 +7,7 @@ This reference describes all the options of the [`launchTestNode`](./launching-a - [`nodeOptions`](./test-node-options.md#nodeoptions) - [`providerOptions`](./test-node-options.md#provideroptions) -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#options{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#options{ts:line-numbers} Check out the [API reference](../../api/Contract/LaunchTestNodeOptions.md) for usage information on the Test Node Options. @@ -26,17 +26,17 @@ Used to set the node's genesis block state (coins and messages). The `TestAssetId` utility integrates with [`walletsConfig`](./test-node-options.md#walletsconfig) and gives you an easy way to generate multiple random asset ids via the `TestAssetId.random` static method. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#asset-ids{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#asset-ids{ts:line-numbers} ### `walletsConfig.messages` The `TestMessage` helper class is used to create messages for testing purposes. When passed via `walletsConfig.messages`, the `recipient` field of the message is overriden to be the wallet's address. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#test-messages{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#test-messages{ts:line-numbers} It can also be used standalone and passed into the initial state of the chain via the `TestMessage.toChainMessage` instance method. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#test-messages-chain{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#test-messages-chain{ts:line-numbers} ## `contractsConfigs` @@ -54,7 +54,7 @@ Options to modify the behavior of the node. For example, you can specify your own base asset id of the chain like below: -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#custom-node-options{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#custom-node-options{ts:line-numbers} _Note: The API for these options is still not fully complete and better documentation will come in the future._ From f6a58695f958b27b28e2df3959bc367a2b0142d6 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 10:57:06 -0500 Subject: [PATCH 093/129] docs: update test comments Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/create-fuels/decrement-counter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts index 1a407277a89..5b9fbff99cb 100644 --- a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -13,7 +13,7 @@ const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); const { waitForResult } = await CounterFactory.deploy(wallet); const { contract } = await waitForResult(); -// Lets setup some values to use in the test. +// Lets setup some values to use in our example. const initialCount = 0; const incrementedValue = 5; const decrementedValue = 2; From 9a58d2cd34393f451f17aaa335d8b42aaba5efe5 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:15:04 -0500 Subject: [PATCH 094/129] docs: remove unnecessary spacing Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index a75058d6add..33fd06f267b 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -93,7 +93,6 @@ console.assert(wallet4 instanceof WalletUnlocked, 'Wallet4 is not instance of Wa // #endregion advanced-example // #region custom-fuel-core-args - process.env.DEFAULT_FUEL_CORE_ARGS = `--tx-max-depth 20`; // `nodeOptions.args` will override the above values if provided. From f5893e5e107eb75ea83721110f279d3f16dcc201 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:15:20 -0500 Subject: [PATCH 095/129] docs: update variable naming Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/create-fuels/decrement-counter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts index 5b9fbff99cb..bb278547f5f 100644 --- a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -19,8 +19,8 @@ const incrementedValue = 5; const decrementedValue = 2; // We can now call the contract functions and test the results. Lets assert the initial value of the counter. -const { waitForResult: initWaitForResult } = await contract.functions.get_count().call(); -const { value: initValue } = await initWaitForResult(); +const { waitForResult: getCountWaitForResult } = await contract.functions.get_count().call(); +const { value: initialGetCountValue } = await getCountWaitForResult(); console.assert( initValue.toNumber() === initialCount, 'Initial value should be equal to the initial count.' From a9aa0f29a364322ba4d05acc5b78079111618ad6 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:15:29 -0500 Subject: [PATCH 096/129] docs: update vars Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/create-fuels/decrement-counter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts index bb278547f5f..ae3e3cc6451 100644 --- a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -22,7 +22,7 @@ const decrementedValue = 2; const { waitForResult: getCountWaitForResult } = await contract.functions.get_count().call(); const { value: initialGetCountValue } = await getCountWaitForResult(); console.assert( - initValue.toNumber() === initialCount, + initialGetCountValue.toNumber() === initialCount, 'Initial value should be equal to the initial count.' ); From f725f954248a95c9915636a36b42b91528c2313e Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:15:44 -0500 Subject: [PATCH 097/129] docs: update spacing Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 33fd06f267b..3881bf25cb2 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -55,7 +55,6 @@ console.assert(wallets.length === 4, 'Wallets length is not 4'); // #endregion basic-example // #region advanced-example - const assets = TestAssetId.random(2); const message = new TestMessage({ amount: 1000 }); From ab529f271cd02d6f4dfea64ef8b684ba93c72477 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:15:59 -0500 Subject: [PATCH 098/129] docs: whitespace Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 3881bf25cb2..c0727603528 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -5,7 +5,6 @@ import { launchTestNode, TestAssetId, TestMessage } from 'fuels/test-utils'; import { join } from 'path'; // #region automatic-cleanup - using launched = await launchTestNode(); /* From 561b33c6d32888ec6e95522e1b3f4c4ab543b85e Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:16:30 -0500 Subject: [PATCH 099/129] docs: remove unnecessary comments Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index c0727603528..1c6875c67dc 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -213,7 +213,6 @@ recipient.provider = providerWithTestMessagesOnChain; const { messages: [messageOnChain], } = await recipient.getMessages(); -// message.nonce === testMessage.nonce console.assert( messageOnChain.nonce === testMessageOnChain.nonce, 'Nonce is not testMessageOnChain.nonce' From 84af072a8ef3c8b7e767500dae8d7a3663bbfa16 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:16:41 -0500 Subject: [PATCH 100/129] docs: whitespace Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 1c6875c67dc..76791a1f9a9 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -15,7 +15,6 @@ using launched = await launchTestNode(); // #endregion automatic-cleanup // #region manual-cleanup - const launchedTestNode = await launchTestNode(); /* From 098b3db4fe6c969dd38fbe971a206eb3e20f01df Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:16:58 -0500 Subject: [PATCH 101/129] docs: remove whitespace Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 76791a1f9a9..fff9bdd108a 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -163,7 +163,6 @@ console.assert( nodeWithCustomAssetIds.cleanup(); // #region test-messages - const testMessage = new TestMessage({ amount: 1000 }); const nodeWithTestMessages = await launchTestNode({ From 29f83c7afbb0ee7062f6a073bae4a476af96199f Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:17:19 -0500 Subject: [PATCH 102/129] docs: remove whitespace Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index fff9bdd108a..8c06238c038 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -26,7 +26,6 @@ launchedTestNode.cleanup(); // #endregion manual-cleanup // #region options - const customLaunchTestNode = await launchTestNode(/* options */); // #endregion options From 2f094a1d9bbae69aeea5ec5c36cd79f129bb550c Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:17:37 -0500 Subject: [PATCH 103/129] docs: remove whitespace Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 8c06238c038..c296a1d82b0 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -139,7 +139,6 @@ const nodeWithCustomBaseAssetId = await launchTestNode({ nodeWithCustomBaseAssetId.cleanup(); // #region asset-ids - const randomAssetIds = TestAssetId.random(); const nodeWithCustomAssetIds = await launchTestNode({ From b2b4d1338cd256dbef72df7670f05718b8e51c9d Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:19:05 -0500 Subject: [PATCH 104/129] docs: whitespace Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/testing/launching-a-test-node.node.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index c296a1d82b0..6fe9323a7f8 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -118,7 +118,6 @@ console.assert(name === 'custom-chain-config', 'Chain name is not custom-chain-c launchedWithCustomChainConfig.cleanup(); // #region custom-node-options - const [baseAssetId] = TestAssetId.random(); const nodeWithCustomBaseAssetId = await launchTestNode({ From 1a4dbe03e50de4e1ae06a83b1f5a723dc8e1bf03 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 11:46:25 -0500 Subject: [PATCH 105/129] docs: add more spacing Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- apps/docs-snippets2/src/utilities/unit-conversion.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/docs-snippets2/src/utilities/unit-conversion.ts b/apps/docs-snippets2/src/utilities/unit-conversion.ts index 6c8eba283e1..1c441deed48 100644 --- a/apps/docs-snippets2/src/utilities/unit-conversion.ts +++ b/apps/docs-snippets2/src/utilities/unit-conversion.ts @@ -8,6 +8,7 @@ import { EchoValuesFactory } from '../typegend/contracts/EchoValuesFactory'; const myBigNumberOne = '100000000'; const resultOne = new BN('100000000').toString(); + console.assert(resultOne === myBigNumberOne, 'BN is not equal to expected'); // #endregion instantiation-1 From 3c30cd27656c1d7d116c5fde2282702b3157df6f Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 1 Oct 2024 02:42:27 -0500 Subject: [PATCH 106/129] ci: update workflows to include next branch (#3234) --- .changeset/sour-actors-tease.md | 3 +++ .github/workflows/codeql.yml | 4 ++-- .github/workflows/forc-version.yaml | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .changeset/sour-actors-tease.md diff --git a/.changeset/sour-actors-tease.md b/.changeset/sour-actors-tease.md new file mode 100644 index 00000000000..5c9afe68934 --- /dev/null +++ b/.changeset/sour-actors-tease.md @@ -0,0 +1,3 @@ +--- +--- +ci: update workflows to include next branch \ No newline at end of file diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9be4c8e60bd..05fe5ab9787 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -2,9 +2,9 @@ name: "CodeQL" on: push: - branches: [ "master" ] + branches: [ "master" , "next" ] pull_request: - branches: [ "master" ] + branches: [ "master" , "next" ] schedule: - cron: '40 13 * * 4' diff --git a/.github/workflows/forc-version.yaml b/.github/workflows/forc-version.yaml index 52211abdf38..881f0abf809 100644 --- a/.github/workflows/forc-version.yaml +++ b/.github/workflows/forc-version.yaml @@ -4,6 +4,7 @@ on: pull_request: branches: - master + - next jobs: verify-forc-version: From afa017e90527663640a8c2e18a83b13ebb261431 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 08:23:48 +0000 Subject: [PATCH 107/129] build(deps): bump the deps-minor group with 9 updates (#3229) * build(deps): bump the deps-minor group with 9 updates Bumps the deps-minor group with 9 updates: | Package | From | To | | --- | --- | --- | | [@types/web](https://github.com/microsoft/TypeScript-DOM-Lib-Generator) | `0.0.164` | `0.0.167` | | [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `5.30.5` | `5.30.6` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `5.4.7` | `5.4.8` | | [@wagmi/connectors](https://github.com/wevm/wagmi/tree/HEAD/packages/connectors) | `5.1.12` | `5.1.14` | | [@wagmi/core](https://github.com/wevm/wagmi/tree/HEAD/packages/core) | `2.13.6` | `2.13.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.9` | `18.3.10` | | [typedoc-plugin-markdown](https://github.com/typedoc2md/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown) | `4.2.7` | `4.2.8` | | [vue](https://github.com/vuejs/core) | `3.5.8` | `3.5.10` | | [@tanstack/router-plugin](https://github.com/TanStack/router/tree/HEAD/packages/router-plugin) | `1.58.4` | `1.58.12` | Updates `@types/web` from 0.0.164 to 0.0.167 - [Release notes](https://github.com/microsoft/TypeScript-DOM-Lib-Generator/releases) - [Commits](https://github.com/microsoft/TypeScript-DOM-Lib-Generator/compare/@types/web@0.0.164...@types/web@0.0.167) Updates `knip` from 5.30.5 to 5.30.6 - [Release notes](https://github.com/webpro-nl/knip/releases) - [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json) - [Commits](https://github.com/webpro-nl/knip/commits/5.30.6/packages/knip) Updates `vite` from 5.4.7 to 5.4.8 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.8/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.8/packages/vite) Updates `@wagmi/connectors` from 5.1.12 to 5.1.14 - [Release notes](https://github.com/wevm/wagmi/releases) - [Changelog](https://github.com/wevm/wagmi/blob/main/packages/connectors/CHANGELOG.md) - [Commits](https://github.com/wevm/wagmi/commits/@wagmi/connectors@5.1.14/packages/connectors) Updates `@wagmi/core` from 2.13.6 to 2.13.8 - [Release notes](https://github.com/wevm/wagmi/releases) - [Changelog](https://github.com/wevm/wagmi/blob/main/packages/core/CHANGELOG.md) - [Commits](https://github.com/wevm/wagmi/commits/@wagmi/core@2.13.8/packages/core) Updates `@types/react` from 18.3.9 to 18.3.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `typedoc-plugin-markdown` from 4.2.7 to 4.2.8 - [Release notes](https://github.com/typedoc2md/typedoc-plugin-markdown/releases) - [Changelog](https://github.com/typedoc2md/typedoc-plugin-markdown/blob/main/packages/typedoc-plugin-markdown/CHANGELOG.md) - [Commits](https://github.com/typedoc2md/typedoc-plugin-markdown/commits/typedoc-plugin-markdown@4.2.8/packages/typedoc-plugin-markdown) Updates `vue` from 3.5.8 to 3.5.10 - [Release notes](https://github.com/vuejs/core/releases) - [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md) - [Commits](https://github.com/vuejs/core/compare/v3.5.8...v3.5.10) Updates `@tanstack/router-plugin` from 1.58.4 to 1.58.12 - [Release notes](https://github.com/TanStack/router/releases) - [Commits](https://github.com/TanStack/router/commits/v1.58.12/packages/router-plugin) --- updated-dependencies: - dependency-name: "@types/web" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: knip dependency-type: direct:development update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: "@wagmi/connectors" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: "@wagmi/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: "@types/react" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: typedoc-plugin-markdown dependency-type: direct:production update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: vue dependency-type: direct:development update-type: version-update:semver-patch dependency-group: deps-minor - dependency-name: "@tanstack/router-plugin" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: deps-minor ... Signed-off-by: dependabot[bot] * build: update dependency changeset * docs: update changeset * Update .changeset/tall-lemons-explode.md --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: chad Co-authored-by: Peter Smith <16990131+petertonysmith94@users.noreply.github.com> --- .changeset/tall-lemons-explode.md | 6 + apps/create-fuels-counter-guide/package.json | 8 +- apps/demo-nextjs/package.json | 2 +- apps/demo-react-cra/package.json | 2 +- apps/demo-react-vite/package.json | 4 +- apps/demo-wallet-sdk-react/package.json | 2 +- apps/docs/package.json | 4 +- package.json | 6 +- packages/fuels/package.json | 2 +- pnpm-lock.yaml | 2997 ++++++++---------- templates/nextjs/package.json | 6 +- templates/vite/package.json | 10 +- 12 files changed, 1296 insertions(+), 1753 deletions(-) create mode 100644 .changeset/tall-lemons-explode.md diff --git a/.changeset/tall-lemons-explode.md b/.changeset/tall-lemons-explode.md new file mode 100644 index 00000000000..7a2bd94b608 --- /dev/null +++ b/.changeset/tall-lemons-explode.md @@ -0,0 +1,6 @@ +--- +"fuels": patch +"create-fuels": patch +--- + +build(deps): bump the deps-minor group with 9 updates diff --git a/apps/create-fuels-counter-guide/package.json b/apps/create-fuels-counter-guide/package.json index 8f3698d79f4..cf7f9884ad9 100644 --- a/apps/create-fuels-counter-guide/package.json +++ b/apps/create-fuels-counter-guide/package.json @@ -18,8 +18,8 @@ "@fuels/react": "^0.27.1", "@tanstack/react-query": "^5.55.4", "clsx": "2.1.1", - "@wagmi/connectors": "^5.1.12", - "@wagmi/core": "^2.13.6", + "@wagmi/connectors": "^5.1.14", + "@wagmi/core": "^2.13.8", "dotenv": "^16.4.5", "fuels": "workspace:*", "react": "^18.3.1", @@ -31,7 +31,7 @@ "@eslint/js": "^9.10.0", "@types/node": "^22.5.5", "@playwright/test": "^1.47.2", - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3", "autoprefixer": "^10.4.20", "eslint": "^8.57.0", @@ -42,7 +42,7 @@ "tailwindcss": "^3.4.12", "typescript": "~5.6.2", "typescript-eslint": "^8.5.0", - "vite": "^5.4.7", + "vite": "^5.4.8", "vitest": "~2.0.5" } } diff --git a/apps/demo-nextjs/package.json b/apps/demo-nextjs/package.json index c0277509488..d88585b6e5f 100644 --- a/apps/demo-nextjs/package.json +++ b/apps/demo-nextjs/package.json @@ -13,7 +13,7 @@ "@fuels/vm-asm": "0.57.1", "@types/node": "^22.5.5", "@types/react-dom": "^18.3", - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "fuels": "workspace:*", "next": "14.2.13", "react-dom": "^18.3.1", diff --git a/apps/demo-react-cra/package.json b/apps/demo-react-cra/package.json index d400a802b1a..1da1a7486a0 100644 --- a/apps/demo-react-cra/package.json +++ b/apps/demo-react-cra/package.json @@ -6,7 +6,7 @@ "@fuels/vm-asm": "0.57.1", "@testing-library/react": "^16.0.1", "@types/node": "^22.5.5", - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3", "eslint-config-react-app": "^7.0.1", "fuels": "workspace:*", diff --git a/apps/demo-react-vite/package.json b/apps/demo-react-vite/package.json index 138ef78dc0e..347424fd3a0 100644 --- a/apps/demo-react-vite/package.json +++ b/apps/demo-react-vite/package.json @@ -17,7 +17,7 @@ "react": "^18.3.1" }, "devDependencies": { - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.21.0", @@ -26,6 +26,6 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.12", "typescript": "~5.6.2", - "vite": "^5.4.7" + "vite": "^5.4.8" } } diff --git a/apps/demo-wallet-sdk-react/package.json b/apps/demo-wallet-sdk-react/package.json index baaca40f34f..09fd3638bae 100644 --- a/apps/demo-wallet-sdk-react/package.json +++ b/apps/demo-wallet-sdk-react/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@types/node": "^22.5.5", - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3", "eslint": "^8.57.0", "eslint-config-next": "14.2.13", diff --git a/apps/docs/package.json b/apps/docs/package.json index 97e4e7136be..e9fc56fce22 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -17,7 +17,7 @@ "@fuel-ts/errors": "workspace:*", "@fuel-ts/versions": "workspace:*", "fuels": "workspace:*", - "typedoc-plugin-markdown": "^4.2.7" + "typedoc-plugin-markdown": "^4.2.8" }, "devDependencies": { "@types/markdown-it": "^14.1.2", @@ -30,6 +30,6 @@ "typedoc-plugin-merge-modules": "^6.0.1", "vitepress-plugin-search": "1.0.4-alpha.22", "vitepress": "1.3.4", - "vue": "^3.5.8" + "vue": "^3.5.10" } } diff --git a/package.json b/package.json index bbe89cfe5eb..99cd29f5da3 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "@playwright/test": "^1.47.2", "@types/node": "^22.5.5", "@types/node-fetch": "^2.6.11", - "@types/web": "^0.0.164", + "@types/web": "^0.0.167", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.21.0", "@vitest/browser": "~2.0.5", @@ -109,7 +109,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-tsdoc": "^0.3.0", "glob": "^10.4.5", - "knip": "^5.30.4", + "knip": "^5.30.6", "memfs": "^4.11.1", "nodemon": "^3.1.7", "npm-run-all": "^4.1.5", @@ -125,7 +125,7 @@ "tsx": "^4.19.1", "turbo": "^2.1.2", "typescript": "~5.6.2", - "vite": "^5.4.7", + "vite": "^5.4.8", "vite-plugin-json5": "^1.1.2", "vite-plugin-node-polyfills": "^0.22.0", "vite-plugin-plain-text": "^1.4.2", diff --git a/packages/fuels/package.json b/packages/fuels/package.json index 45fd141bd30..8086d0254ed 100644 --- a/packages/fuels/package.json +++ b/packages/fuels/package.json @@ -96,7 +96,7 @@ "devDependencies": { "@types/lodash.camelcase": "^4.3.9", "@types/rimraf": "^3.0.2", - "vite": "^5.4.7" + "vite": "^5.4.8" }, "keywords": [ "ethereum", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd7199b6edf..bb9b2f7b5db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: 6.0.0 '@codspeed/vitest-plugin': specifier: ^3.1.1 - version: 3.1.1(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6)) + version: 3.1.1(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1))(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1)) '@elasticpath/textlint-rule-no-dead-relative-link': specifier: ^1.1.1 version: 1.1.1 @@ -60,8 +60,8 @@ importers: specifier: ^2.6.11 version: 2.6.11 '@types/web': - specifier: ^0.0.164 - version: 0.0.164 + specifier: ^0.0.167 + version: 0.0.167 '@typescript-eslint/eslint-plugin': specifier: ^6.9.1 version: 6.9.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) @@ -73,7 +73,7 @@ importers: version: 2.0.5(bufferutil@4.0.8)(playwright@1.47.2)(typescript@5.6.2)(utf-8-validate@6.0.4)(vitest@2.0.5)(webdriverio@9.0.9(bufferutil@4.0.8)(utf-8-validate@6.0.4)) '@vitest/coverage-istanbul': specifier: ~2.0.5 - version: 2.0.5(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6)) + version: 2.0.5(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1)) autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -126,8 +126,8 @@ importers: specifier: ^10.4.5 version: 10.4.5 knip: - specifier: ^5.30.4 - version: 5.30.5(@types/node@22.5.5)(typescript@5.6.2) + specifier: ^5.30.6 + version: 5.30.6(@types/node@22.5.5)(typescript@5.6.2) memfs: specifier: ^4.11.1 version: 4.11.1 @@ -174,20 +174,20 @@ importers: specifier: ~5.6.2 version: 5.6.2 vite: - specifier: ^5.4.7 - version: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.5.5)(terser@5.34.1) vite-plugin-json5: specifier: ^1.1.2 - version: 1.1.2(@rollup/pluginutils@5.1.0(rollup@4.21.0))(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)) + version: 1.1.2(@rollup/pluginutils@5.1.0(rollup@4.22.5))(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1)) vite-plugin-node-polyfills: specifier: ^0.22.0 - version: 0.22.0(rollup@4.21.0)(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)) + version: 0.22.0(rollup@4.22.5)(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1)) vite-plugin-plain-text: specifier: ^1.4.2 version: 1.4.2 vitest: specifier: ~2.0.5 - version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6) + version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1) webdriverio: specifier: ^9.0.9 version: 9.0.9(bufferutil@4.0.8)(utf-8-validate@6.0.4) @@ -196,7 +196,7 @@ importers: dependencies: '@fuels/connectors': specifier: ^0.27.1 - version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))(zod@3.23.8) + version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))(zod@3.23.8) '@fuels/react': specifier: ^0.27.1 version: 0.27.1(@tanstack/react-query@5.56.2(react@18.3.1))(@types/react-dom@18.3.0)(fuels@packages+fuels)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -204,11 +204,11 @@ importers: specifier: ^5.55.4 version: 5.56.2(react@18.3.1) '@wagmi/connectors': - specifier: ^5.1.12 - version: 5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + specifier: ^5.1.14 + version: 5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': - specifier: ^2.13.6 - version: 2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + specifier: ^2.13.8 + version: 2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) clsx: specifier: 2.1.1 version: 2.1.1 @@ -238,14 +238,14 @@ importers: specifier: ^22.5.5 version: 22.5.5 '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)) + version: 4.3.1(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -274,11 +274,11 @@ importers: specifier: ^8.5.0 version: 8.5.0(eslint@8.57.0)(typescript@5.6.2) vite: - specifier: ^5.4.7 - version: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.5.5)(terser@5.34.1) vitest: specifier: ~2.0.5 - version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.31.6) + version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.34.1) apps/demo-bun-fuels: dependencies: @@ -317,8 +317,8 @@ importers: specifier: ^22.5.5 version: 22.5.5 '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 @@ -351,13 +351,13 @@ importers: version: 0.57.1 '@testing-library/react': specifier: ^16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/node': specifier: ^22.5.5 version: 22.5.5 '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 @@ -403,8 +403,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 @@ -416,7 +416,7 @@ importers: version: 6.21.0(eslint@8.57.0)(typescript@5.6.2) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)) + version: 4.3.1(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -430,8 +430,8 @@ importers: specifier: ~5.6.2 version: 5.6.2 vite: - specifier: ^5.4.7 - version: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.7.4)(terser@5.34.1) apps/demo-typegen: dependencies: @@ -453,7 +453,7 @@ importers: dependencies: '@fuels/connectors': specifier: ^0.27.1 - version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))(zod@3.23.8) + version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))(zod@3.23.8) '@fuels/react': specifier: ^0.27.1 version: 0.27.1(@tanstack/react-query@5.56.2(react@18.3.1))(@types/react-dom@18.3.0)(fuels@packages+fuels)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -477,8 +477,8 @@ importers: specifier: ^22.5.5 version: 22.5.5 '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 @@ -493,7 +493,7 @@ importers: version: 8.4.47 postcss-load-config: specifier: ^6.0.1 - version: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.0) + version: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) tailwindcss: specifier: ^3.4.12 version: 3.4.13(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.5.5)(typescript@5.6.2)) @@ -513,8 +513,8 @@ importers: specifier: workspace:* version: link:../../packages/fuels typedoc-plugin-markdown: - specifier: ^4.2.7 - version: 4.2.7(typedoc@0.26.6(typescript@5.6.2)) + specifier: ^4.2.8 + version: 4.2.8(typedoc@0.26.6(typescript@5.6.2)) devDependencies: '@types/markdown-it': specifier: ^14.1.2 @@ -542,13 +542,13 @@ importers: version: 6.0.1(typedoc@0.26.6(typescript@5.6.2)) vitepress: specifier: 1.3.4 - version: 1.3.4(@algolia/client-search@4.22.1)(@types/node@22.5.5)(@types/react@18.3.9)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.31.6)(typescript@5.6.2) + version: 1.3.4(@algolia/client-search@4.22.1)(@types/node@22.7.4)(@types/react@18.3.10)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.34.1)(typescript@5.6.2) vitepress-plugin-search: specifier: 1.0.4-alpha.22 - version: 1.0.4-alpha.22(flexsearch@0.7.43)(vitepress@1.3.4(@algolia/client-search@4.22.1)(@types/node@22.5.5)(@types/react@18.3.9)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.31.6)(typescript@5.6.2))(vue@3.5.8(typescript@5.6.2)) + version: 1.0.4-alpha.22(flexsearch@0.7.43)(vitepress@1.3.4(@algolia/client-search@4.22.1)(@types/node@22.7.4)(@types/react@18.3.10)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.34.1)(typescript@5.6.2))(vue@3.5.10(typescript@5.6.2)) vue: - specifier: ^3.5.8 - version: 3.5.8(typescript@5.6.2) + specifier: ^3.5.10 + version: 3.5.10(typescript@5.6.2) apps/docs-snippets: devDependencies: @@ -569,7 +569,7 @@ importers: version: link:../../packages/fuels vitest: specifier: ~2.0.5 - version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6) + version: 2.0.5(@types/node@22.7.4)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1) apps/docs-snippets2: dependencies: @@ -789,7 +789,7 @@ importers: devDependencies: '@graphql-codegen/cli': specifier: ^5.0.2 - version: 5.0.2(@parcel/watcher@2.4.1)(@types/node@22.5.5)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(enquirer@2.4.1)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4) + version: 5.0.2(@parcel/watcher@2.4.1)(@types/node@22.7.4)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(enquirer@2.4.1)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4) '@graphql-codegen/typescript': specifier: ^4.0.9 version: 4.0.9(graphql@16.9.0) @@ -1062,8 +1062,8 @@ importers: specifier: ^3.0.2 version: 3.0.2 vite: - specifier: ^5.4.7 - version: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.7.4)(terser@5.34.1) packages/hasher: dependencies: @@ -1252,7 +1252,7 @@ importers: dependencies: '@fuels/connectors': specifier: ^0.27.1 - version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))(zod@3.23.8) + version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))(zod@3.23.8) '@fuels/react': specifier: ^0.27.1 version: 0.27.1(@tanstack/react-query@5.56.2(react@18.3.1))(@types/react-dom@18.3.0)(fuels@packages+fuels)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1260,11 +1260,11 @@ importers: specifier: ^5.55.4 version: 5.56.2(react@18.3.1) '@wagmi/connectors': - specifier: ^5.1.12 - version: 5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + specifier: ^5.1.14 + version: 5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': - specifier: ^2.13.6 - version: 2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + specifier: ^2.13.8 + version: 2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) clsx: specifier: 2.1.1 version: 2.1.1 @@ -1297,8 +1297,8 @@ importers: specifier: ^22.5.5 version: 22.5.5 '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 @@ -1322,13 +1322,13 @@ importers: version: 5.6.2 vitest: specifier: ~2.0.5 - version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.31.6) + version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.34.1) templates/vite: dependencies: '@fuels/connectors': specifier: ^0.27.1 - version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))(zod@3.23.8) + version: 0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))(zod@3.23.8) '@fuels/react': specifier: ^0.27.1 version: 0.27.1(@tanstack/react-query@5.56.2(react@18.3.1))(@types/react-dom@18.3.0)(fuels@packages+fuels)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1336,11 +1336,11 @@ importers: specifier: ^5.55.4 version: 5.56.2(react@18.3.1) '@wagmi/connectors': - specifier: ^5.1.12 - version: 5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + specifier: ^5.1.14 + version: 5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': - specifier: ^2.13.6 - version: 2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + specifier: ^2.13.8 + version: 2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) clsx: specifier: 2.1.1 version: 2.1.1 @@ -1367,17 +1367,17 @@ importers: specifier: ^1.47.2 version: 1.47.2 '@tanstack/router-plugin': - specifier: ^1.56.4 - version: 1.58.4(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))(webpack-sources@3.2.3) + specifier: ^1.58.12 + version: 1.58.12(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(webpack-sources@3.2.3) '@types/react': - specifier: ^18.3.8 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3 version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)) + version: 4.3.1(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -1398,7 +1398,7 @@ importers: version: 8.4.47 tailwindcss: specifier: ^3.4.12 - version: 3.4.13(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.5.5)(typescript@5.6.2)) + version: 3.4.13(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.7.4)(typescript@5.6.2)) typescript: specifier: ~5.6.2 version: 5.6.2 @@ -1406,11 +1406,11 @@ importers: specifier: ^8.5.0 version: 8.5.0(eslint@8.57.0)(typescript@5.6.2) vite: - specifier: ^5.4.7 - version: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.7.4)(terser@5.34.1) vitest: specifier: ~2.0.5 - version: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.31.6) + version: 2.0.5(@types/node@22.7.4)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.34.1) packages: @@ -1584,14 +1584,6 @@ packages: resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.25.5': - resolution: {integrity: sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} @@ -1680,18 +1672,10 @@ packages: resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.22.5': resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.22.5': resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} @@ -1786,10 +1770,6 @@ packages: resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.6': - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} - engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -1798,10 +1778,6 @@ packages: resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} @@ -1858,16 +1834,6 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.22.5': - resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.25.6': resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} @@ -2063,12 +2029,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.22.5': - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} @@ -2679,34 +2639,18 @@ packages: resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.6': - resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/template@7.24.6': + resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.22.5': - resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.4': - resolution: {integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} @@ -2715,10 +2659,6 @@ packages: resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} - engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} @@ -3537,6 +3477,10 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.5.1': resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -4061,9 +4005,6 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.3': - resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} - '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} @@ -4142,8 +4083,8 @@ packages: resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} engines: {node: ^18.18 || >=20} - '@metamask/rpc-errors@6.3.1': - resolution: {integrity: sha512-ugDY7cKjF4/yH5LtBaOIKHw/AiGGSAmzptAUEiAEGr/78LwuzcXAxmzEQfSfMIfI+f9Djr8cttq1pRJJKfTuCg==} + '@metamask/rpc-errors@6.4.0': + resolution: {integrity: sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==} engines: {node: '>=16.0.0'} '@metamask/safe-event-emitter@2.0.0': @@ -4200,8 +4141,8 @@ packages: resolution: {integrity: sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==} engines: {node: '>=16.0.0'} - '@metamask/utils@9.1.0': - resolution: {integrity: sha512-g2REf+xSt0OZfMoNNdC4+/Yy8eP3KUqvIArel54XRFKPoXbHI6+YjFfrLtfykWBjffOp7DTfIc3Kvk5TLfuiyg==} + '@metamask/utils@9.2.1': + resolution: {integrity: sha512-/u663aUaB6+Xe75i3Mt/1cCljm41HDYIsna5oBrwGvgkY2zH7/9k9Zjd706cxoAbxN7QgLSVAReUiGnuxCuXrQ==} engines: {node: '>=16.0.0'} '@microsoft/tsdoc-config@0.17.0': @@ -4972,83 +4913,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.21.0': - resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} + '@rollup/rollup-android-arm-eabi@4.22.5': + resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.0': - resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} + '@rollup/rollup-android-arm64@4.22.5': + resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.0': - resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} + '@rollup/rollup-darwin-arm64@4.22.5': + resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.0': - resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} + '@rollup/rollup-darwin-x64@4.22.5': + resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} + '@rollup/rollup-linux-arm-gnueabihf@4.22.5': + resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} + '@rollup/rollup-linux-arm-musleabihf@4.22.5': + resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.0': - resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} + '@rollup/rollup-linux-arm64-gnu@4.22.5': + resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.0': - resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} + '@rollup/rollup-linux-arm64-musl@4.22.5': + resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': + resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} + '@rollup/rollup-linux-riscv64-gnu@4.22.5': + resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.0': - resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} + '@rollup/rollup-linux-s390x-gnu@4.22.5': + resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.0': - resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} + '@rollup/rollup-linux-x64-gnu@4.22.5': + resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.0': - resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} + '@rollup/rollup-linux-x64-musl@4.22.5': + resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.0': - resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} + '@rollup/rollup-win32-arm64-msvc@4.22.5': + resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.0': - resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} + '@rollup/rollup-win32-ia32-msvc@4.22.5': + resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.0': - resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} + '@rollup/rollup-win32-x64-msvc@4.22.5': + resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} cpu: [x64] os: [win32] @@ -5400,12 +5341,12 @@ packages: peerDependencies: react: ^18 || ^19 - '@tanstack/router-generator@1.58.1': - resolution: {integrity: sha512-oj/97KWi8EHFx/w07fAuXXyhWi5xgSMCfzbB9q42c1ZdLbv8wzBo4a6PO1fCi01tpKKHUopA8dSlGIOeJDhBAA==} + '@tanstack/router-generator@1.58.12': + resolution: {integrity: sha512-Ovzb+zCbiRgJAg6awTXWQjn1uRkVyiBc4jiIk7ll2hg0bHjIOsgiegwx/F2YKycY98vWj9TLv/U4Hoo4rmK0IA==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.58.4': - resolution: {integrity: sha512-Ypoy+HrHwpv9A41bj7dpHhtLYavu7CU8WyuJnuFBY3SI5ZKWF7s/hMYUtVmEVwwT7fJCVQ8gcTkbfAag4uy/pA==} + '@tanstack/router-plugin@1.58.12': + resolution: {integrity: sha512-WVR5UupNcvj7lvCrle7CrmHm6aezTG98g3N81oNPaCS0U3cEUaUiNqna0cWk4M4WuzAzUbpbQ81xBapIMc8Thw==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' @@ -5538,9 +5479,6 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - '@types/babel__core@7.20.1': - resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} - '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -5592,6 +5530,9 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/express-serve-static-core@4.17.35': resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} @@ -5709,8 +5650,8 @@ packages: '@types/node@18.15.13': resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - '@types/node@18.19.45': - resolution: {integrity: sha512-VZxPKNNhjKmaC1SUYowuXSRSMGyQGmQjvvA1xE4QZ0xce2kLtEhPDS+kqpCPBZYgqblCLQ2DAjSzmgCM5auvhA==} + '@types/node@18.19.54': + resolution: {integrity: sha512-+BRgt0G5gYjTvdLac9sIeE0iZcJxi4Jc4PV5EUzqi+88jmQLr+fRZdv2tCTV7IHKSGxM6SaLoOXQWWUiLUItMw==} '@types/node@20.14.15': resolution: {integrity: sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==} @@ -5718,6 +5659,9 @@ packages: '@types/node@22.5.5': resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} + '@types/offscreencanvas@2019.3.0': resolution: {integrity: sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==} @@ -5751,8 +5695,8 @@ packages: '@types/react@18.3.1': resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} - '@types/react@18.3.9': - resolution: {integrity: sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==} + '@types/react@18.3.10': + resolution: {integrity: sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==} '@types/resolve@0.0.8': resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} @@ -5826,8 +5770,8 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - '@types/web@0.0.164': - resolution: {integrity: sha512-71djRqHpHbvyYG/Vap1B7Wa61J0TH9fa0QEwahUVp28awcImIgqOPlfnKi5vswcmUBpRyGKvaGs42/5iPwCixg==} + '@types/web@0.0.167': + resolution: {integrity: sha512-IhdCUXL+vwofU/IzuOD+/T8Xteuk8fS9TvVJi7y7HTuURs7pWf3Kysxz4+lU0NSkj2LjDQ8AbKaaFFoAgeqYPg==} '@types/webgl-ext@0.0.30': resolution: {integrity: sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==} @@ -6152,17 +6096,17 @@ packages: '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vue/compiler-core@3.5.8': - resolution: {integrity: sha512-Uzlxp91EPjfbpeO5KtC0KnXPkuTfGsNDeaKQJxQN718uz+RqDYarEf7UhQJGK+ZYloD2taUbHTI2J4WrUaZQNA==} + '@vue/compiler-core@3.5.10': + resolution: {integrity: sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA==} - '@vue/compiler-dom@3.5.8': - resolution: {integrity: sha512-GUNHWvoDSbSa5ZSHT9SnV5WkStWfzJwwTd6NMGzilOE/HM5j+9EB9zGXdtu/fCNEmctBqMs6C9SvVPpVPuk1Eg==} + '@vue/compiler-dom@3.5.10': + resolution: {integrity: sha512-DyxHC6qPcktwYGKOIy3XqnHRrrXyWR2u91AjP+nLkADko380srsC2DC3s7Y1Rk6YfOlxOlvEQKa9XXmLI+W4ZA==} - '@vue/compiler-sfc@3.5.8': - resolution: {integrity: sha512-taYpngQtSysrvO9GULaOSwcG5q821zCoIQBtQQSx7Uf7DxpR6CIHR90toPr9QfDD2mqHQPCSgoWBvJu0yV9zjg==} + '@vue/compiler-sfc@3.5.10': + resolution: {integrity: sha512-to8E1BgpakV7224ZCm8gz1ZRSyjNCAWEplwFMWKlzCdP9DkMKhRRwt0WkCjY7jkzi/Vz3xgbpeig5Pnbly4Tow==} - '@vue/compiler-ssr@3.5.8': - resolution: {integrity: sha512-W96PtryNsNG9u0ZnN5Q5j27Z/feGrFV6zy9q5tzJVyJaLiwYxvC0ek4IXClZygyhjm+XKM7WD9pdKi/wIRVC/Q==} + '@vue/compiler-ssr@3.5.10': + resolution: {integrity: sha512-hxP4Y3KImqdtyUKXDRSxKSRkSm1H9fCvhojEYrnaoWhE4w/y8vwWhnosJoPPe2AXm5sU7CSbYYAgkt2ZPhDz+A==} '@vue/devtools-api@6.6.3': resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} @@ -6176,25 +6120,25 @@ packages: '@vue/devtools-shared@7.3.8': resolution: {integrity: sha512-1NiJbn7Yp47nPDWhFZyEKpB2+5/+7JYv8IQnU0ccMrgslPR2dL7u1DIyI7mLqy4HN1ll36gQy0k8GqBYSFgZJw==} - '@vue/reactivity@3.5.8': - resolution: {integrity: sha512-mlgUyFHLCUZcAYkqvzYnlBRCh0t5ZQfLYit7nukn1GR96gc48Bp4B7OIcSfVSvlG1k3BPfD+p22gi1t2n9tsXg==} + '@vue/reactivity@3.5.10': + resolution: {integrity: sha512-kW08v06F6xPSHhid9DJ9YjOGmwNDOsJJQk0ax21wKaUYzzuJGEuoKNU2Ujux8FLMrP7CFJJKsHhXN9l2WOVi2g==} - '@vue/runtime-core@3.5.8': - resolution: {integrity: sha512-fJuPelh64agZ8vKkZgp5iCkPaEqFJsYzxLk9vSC0X3G8ppknclNDr61gDc45yBGTaN5Xqc1qZWU3/NoaBMHcjQ==} + '@vue/runtime-core@3.5.10': + resolution: {integrity: sha512-9Q86I5Qq3swSkFfzrZ+iqEy7Vla325M7S7xc1NwKnRm/qoi1Dauz0rT6mTMmscqx4qz0EDJ1wjB+A36k7rl8mA==} - '@vue/runtime-dom@3.5.8': - resolution: {integrity: sha512-DpAUz+PKjTZPUOB6zJgkxVI3GuYc2iWZiNeeHQUw53kdrparSTG6HeXUrYDjaam8dVsCdvQxDz6ZWxnyjccUjQ==} + '@vue/runtime-dom@3.5.10': + resolution: {integrity: sha512-t3x7ht5qF8ZRi1H4fZqFzyY2j+GTMTDxRheT+i8M9Ph0oepUxoadmbwlFwMoW7RYCpNQLpP2Yx3feKs+fyBdpA==} - '@vue/server-renderer@3.5.8': - resolution: {integrity: sha512-7AmC9/mEeV9mmXNVyUIm1a1AjUhyeeGNbkLh39J00E7iPeGks8OGRB5blJiMmvqSh8SkaS7jkLWSpXtxUCeagA==} + '@vue/server-renderer@3.5.10': + resolution: {integrity: sha512-IVE97tt2kGKwHNq9yVO0xdh1IvYfZCShvDSy46JIh5OQxP1/EXSpoDqetVmyIzL7CYOWnnmMkVqd7YK2QSWkdw==} peerDependencies: - vue: 3.5.8 + vue: 3.5.10 '@vue/shared@3.4.38': resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} - '@vue/shared@3.5.8': - resolution: {integrity: sha512-mJleSWbAGySd2RJdX1RBtcrUBX6snyOc0qHpgk3lGi4l9/P/3ny3ELqFWqYdkXIwwNN/kdm8nD9ky8o6l/Lx2A==} + '@vue/shared@3.5.10': + resolution: {integrity: sha512-VkkBhU97Ki+XJ0xvl4C9YJsIZ2uIlQ7HqPpZOS3m9VCvmROPaChZU6DexdMJqvz9tbgG+4EtFVrSuailUq5KGQ==} '@vueuse/core@11.0.0': resolution: {integrity: sha512-shibzNGjmRjZucEm97B8V0NO5J3vPHMCE/mltxQ3vHezbDoFQBMtK11XsfwfPionxSbo+buqPmsCljtYuXIBpw==} @@ -6246,10 +6190,10 @@ packages: '@vueuse/shared@11.0.0': resolution: {integrity: sha512-i4ZmOrIEjSsL94uAEt3hz88UCz93fMyP/fba9S+vypX90fKg3uYX9cThqvWc9aXxuTzR0UGhOKOTQd//Goh1nQ==} - '@wagmi/connectors@5.1.12': - resolution: {integrity: sha512-w/MCH+J/sdqfy9ZFoEA3YKnJWlaExTCjMN4qjVNGsRtvy4ADz//zjQsmOZx51oa5xt42hv3fITN36aYZe/rO7g==} + '@wagmi/connectors@5.1.14': + resolution: {integrity: sha512-3faf6gXFI1nX/kud5e2s+8fMjnuWp14XwqHVNCOfl7nVXQlEFAvjQxI1GrGyHckfHm7e6oXdm2eJwJGgPWi0QQ==} peerDependencies: - '@wagmi/core': 2.13.6 + '@wagmi/core': 2.13.8 typescript: '>=5.0.4' viem: 2.x peerDependenciesMeta: @@ -6268,8 +6212,8 @@ packages: typescript: optional: true - '@wagmi/core@2.13.6': - resolution: {integrity: sha512-5QkYd9dWntUJMH3EFQqPJRDBwc0+PVPmuMQF09wKXCFvTIdTLFnEI3itPIoMwO4ULtvsrftDzpT71lqpu1EJJQ==} + '@wagmi/core@2.13.8': + resolution: {integrity: sha512-bX84cpLq3WWQgGthJlSgcWPAOdLzrP/W0jnbz5XowkCUn6j/T77WyxN5pBb+HmLoJf3ei9tkX9zWhMpczTc3cA==} peerDependencies: '@tanstack/query-core': '>=5.0.0' typescript: '>=5.0.4' @@ -6681,8 +6625,8 @@ packages: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} acorn@7.4.1: @@ -6795,8 +6739,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -7316,6 +7260,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bs58@4.0.1: resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} @@ -7466,6 +7415,9 @@ packages: caniuse-lite@1.0.30001647: resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} + caniuse-lite@1.0.30001664: + resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} + capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -8657,6 +8609,9 @@ packages: electron-to-chromium@1.4.442: resolution: {integrity: sha512-RkrZF//Ya+0aJq2NM3OdisNh5ZodZq1rdXOS96G8DdDgpDKqKE81yTbbQ3F/4CKm1JBPsGu1Lp/akkna2xO06Q==} + electron-to-chromium@1.5.29: + resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} + electron-to-chromium@1.5.4: resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} @@ -8694,6 +8649,10 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + encoding-sniffer@0.2.0: resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} @@ -8736,8 +8695,8 @@ packages: env-string@1.0.1: resolution: {integrity: sha512-/DhCJDf5DSFK32joQiWRpWrT0h7p3hVQfMKxiBb7Nt8C8IF8BYyPtclDnuGGLOoj16d/8udKeiE7JbkotDmorQ==} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} engines: {node: '>=4'} hasBin: true @@ -8850,6 +8809,10 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-goat@2.1.1: resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} engines: {node: '>=8'} @@ -9078,8 +9041,8 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.0.2: - resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@2.1.0: @@ -9090,8 +9053,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-webpack-plugin@3.2.0: @@ -9120,8 +9083,8 @@ packages: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} engines: {node: '>=0.10'} - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -9137,6 +9100,10 @@ packages: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -9347,6 +9314,10 @@ packages: resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} + hasBin: true + fastest-stable-stringify@2.0.2: resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} @@ -9493,8 +9464,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.244.0: - resolution: {integrity: sha512-Dkc88m5k8bx1VvHTO9HEJ7tvMcSb3Zvcv1PY4OHK7pHdtdY2aUjhmPy6vpjVJ2uUUOIybRlb91sXE8g4doChtA==} + flow-parser@0.247.1: + resolution: {integrity: sha512-DHwcm06fWbn2Z6uFD3NaBZ5lMOoABIQ4asrVA80IWvYjjT5WdbghkUOL1wIcbLcagnFTdCZYOlSNnKNp/xnRZQ==} engines: {node: '>=0.4.0'} focus-trap@7.5.4: @@ -9973,14 +9944,14 @@ packages: hermes-estree@0.19.1: resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} - hermes-estree@0.23.0: - resolution: {integrity: sha512-Rkp0PNLGpORw4ktsttkVbpYJbrYKS3hAnkxu8D9nvQi6LvSbuPa+tYw/t2u3Gjc35lYd/k95YkjqyTcN4zspag==} + hermes-estree@0.23.1: + resolution: {integrity: sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==} hermes-parser@0.19.1: resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} - hermes-parser@0.23.0: - resolution: {integrity: sha512-xLwM4ylfHGwrm+2qXfO1JT/fnqEDGSnpS/9hQ4VLtqTexSviu2ZpBgz07U8jVtndq67qdb/ps0qvaWDZ3fkTyg==} + hermes-parser@0.23.1: + resolution: {integrity: sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==} hermes-profile-transformer@0.0.6: resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} @@ -11123,8 +11094,8 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - knip@5.30.5: - resolution: {integrity: sha512-opta1VVKAfIzhvj1iyOr/3SgSDC6jYPoUaYkvjftNqMTeURppYY5VqrAa5DOcJnIsdcAdyoIKHUFg9NRiFaM5w==} + knip@5.30.6: + resolution: {integrity: sha512-YkcnRVl0N99xZ7eaXE7KlH/4cPTCn6BGuk9KxINEdCMFN3yita2vGBizApy97ZOHgghy8tb589gQ3xvLMFIO4w==} engines: {node: '>=18.6.0'} hasBin: true peerDependencies: @@ -11562,61 +11533,61 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - metro-babel-transformer@0.80.10: - resolution: {integrity: sha512-GXHueUzgzcazfzORDxDzWS9jVVRV6u+cR6TGvHOfGdfLzJCj7/D0PretLfyq+MwN20twHxLW+BUXkoaB8sCQBg==} + metro-babel-transformer@0.80.12: + resolution: {integrity: sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==} engines: {node: '>=18'} - metro-cache-key@0.80.10: - resolution: {integrity: sha512-57qBhO3zQfoU/hP4ZlLW5hVej2jVfBX6B4NcSfMj4LgDPL3YknWg80IJBxzQfjQY/m+fmMLmPy8aUMHzUp/guA==} + metro-cache-key@0.80.12: + resolution: {integrity: sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==} engines: {node: '>=18'} - metro-cache@0.80.10: - resolution: {integrity: sha512-8CBtDJwMguIE5RvV3PU1QtxUG8oSSX54mIuAbRZmcQ0MYiOl9JdrMd4JCBvIyhiZLoSStph425SMyCSnjtJsdA==} + metro-cache@0.80.12: + resolution: {integrity: sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==} engines: {node: '>=18'} - metro-config@0.80.10: - resolution: {integrity: sha512-0GYAw0LkmGbmA81FepKQepL1KU/85Cyv7sAiWm6QWeV6AcVCpsKg6jGLqGHJ0LLPL60rWzA4TV1DQAlzdJAEtA==} + metro-config@0.80.12: + resolution: {integrity: sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==} engines: {node: '>=18'} - metro-core@0.80.10: - resolution: {integrity: sha512-nwBB6HbpGlNsZMuzxVqxqGIOsn5F3JKpsp8PziS7Z4mV8a/jA1d44mVOgYmDa2q5WlH5iJfRIIhdz24XRNDlLA==} + metro-core@0.80.12: + resolution: {integrity: sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==} engines: {node: '>=18'} - metro-file-map@0.80.10: - resolution: {integrity: sha512-ytsUq8coneaN7ZCVk1IogojcGhLIbzWyiI2dNmw2nnBgV/0A+M5WaTTgZ6dJEz3dzjObPryDnkqWPvIGLCPtiw==} + metro-file-map@0.80.12: + resolution: {integrity: sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==} engines: {node: '>=18'} - metro-minify-terser@0.80.10: - resolution: {integrity: sha512-Xyv9pEYpOsAerrld7cSLIcnCCpv8ItwysOmTA+AKf1q4KyE9cxrH2O2SA0FzMCkPzwxzBWmXwHUr+A89BpEM6g==} + metro-minify-terser@0.80.12: + resolution: {integrity: sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==} engines: {node: '>=18'} - metro-resolver@0.80.10: - resolution: {integrity: sha512-EYC5CL7f+bSzrqdk1bylKqFNGabfiI5PDctxoPx70jFt89Jz+ThcOscENog8Jb4LEQFG6GkOYlwmPpsi7kx3QA==} + metro-resolver@0.80.12: + resolution: {integrity: sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==} engines: {node: '>=18'} - metro-runtime@0.80.10: - resolution: {integrity: sha512-Xh0N589ZmSIgJYAM+oYwlzTXEHfASZac9TYPCNbvjNTn0EHKqpoJ/+Im5G3MZT4oZzYv4YnvzRtjqS5k0tK94A==} + metro-runtime@0.80.12: + resolution: {integrity: sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==} engines: {node: '>=18'} - metro-source-map@0.80.10: - resolution: {integrity: sha512-EyZswqJW8Uukv/HcQr6K19vkMXW1nzHAZPWJSEyJFKIbgp708QfRZ6vnZGmrtFxeJEaFdNup4bGnu8/mIOYlyA==} + metro-source-map@0.80.12: + resolution: {integrity: sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==} engines: {node: '>=18'} - metro-symbolicate@0.80.10: - resolution: {integrity: sha512-qAoVUoSxpfZ2DwZV7IdnQGXCSsf2cAUExUcZyuCqGlY5kaWBb0mx2BL/xbMFDJ4wBp3sVvSBPtK/rt4J7a0xBA==} + metro-symbolicate@0.80.12: + resolution: {integrity: sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==} engines: {node: '>=18'} hasBin: true - metro-transform-plugins@0.80.10: - resolution: {integrity: sha512-leAx9gtA+2MHLsCeWK6XTLBbv2fBnNFu/QiYhWzMq8HsOAP4u1xQAU0tSgPs8+1vYO34Plyn79xTLUtQCRSSUQ==} + metro-transform-plugins@0.80.12: + resolution: {integrity: sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==} engines: {node: '>=18'} - metro-transform-worker@0.80.10: - resolution: {integrity: sha512-zNfNLD8Rz99U+JdOTqtF2o7iTjcDMMYdVS90z6+81Tzd2D0lDWVpls7R1hadS6xwM+ymgXFQTjM6V6wFoZaC0g==} + metro-transform-worker@0.80.12: + resolution: {integrity: sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==} engines: {node: '>=18'} - metro@0.80.10: - resolution: {integrity: sha512-FDPi0X7wpafmDREXe1lgg3WzETxtXh6Kpq8+IwsG35R2tMyp2kFIqDdshdohuvDt1J/qDARcEPq7V/jElTb1kA==} + metro@0.80.12: + resolution: {integrity: sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==} engines: {node: '>=18'} hasBin: true @@ -12039,6 +12010,10 @@ packages: resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} hasBin: true + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -12137,8 +12112,8 @@ packages: oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - ob1@0.80.10: - resolution: {integrity: sha512-dJHyB0S6JkMorUSfSGcYGkkg9kmq3qDUu3ygZUKIfkr47XOPuG35r2Sk6tbwtHXbdKIXmcMvM8DF2CwgdyaHfQ==} + ob1@0.80.12: + resolution: {integrity: sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==} engines: {node: '>=18'} obj-multiplex@1.0.0: @@ -12273,6 +12248,10 @@ packages: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -13149,6 +13128,9 @@ packages: preact@10.23.2: resolution: {integrity: sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==} + preact@10.24.1: + resolution: {integrity: sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==} + preact@10.4.1: resolution: {integrity: sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==} @@ -13836,8 +13818,8 @@ packages: rollup: optional: true - rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true @@ -13846,8 +13828,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.21.0: - resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} + rollup@4.22.5: + resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -14024,6 +14006,10 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} @@ -14049,6 +14035,10 @@ packages: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -14741,8 +14731,8 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.31.6: - resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -15172,8 +15162,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typedoc-plugin-markdown@4.2.7: - resolution: {integrity: sha512-bLsQdweSm48P9j6kGqQ3/4GCH5zu2EnURSkkxqirNc+uVFE9YK825ogDw+WbNkRHIV6eZK/1U43gT7YfglyYOg==} + typedoc-plugin-markdown@4.2.8: + resolution: {integrity: sha512-1EDsc66jaCjZtxdYy+Rl0KDU1WY/iyuCOOPaeFzcYFZ81FNXV8CmgUDOHri20WGmYnkEM5nQ+ooxj1vyuQo0Lg==} engines: {node: '>= 18'} peerDependencies: typedoc: 0.26.x @@ -15424,6 +15414,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-notifier@5.1.0: resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} engines: {node: '>=10'} @@ -15611,8 +15607,8 @@ packages: vite-plugin-plain-text@1.4.2: resolution: {integrity: sha512-nkCWW16lkTidaGZ9kItwMZ5OEkUeXMrY4Okc9IQXrN/p6SAuDYmEiGqMRKl1rnhm6CR1h98uJtn+ODkv0cL7DA==} - vite@5.4.7: - resolution: {integrity: sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==} + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -15704,8 +15700,8 @@ packages: '@vue/composition-api': optional: true - vue@3.5.8: - resolution: {integrity: sha512-hvuvuCy51nP/1fSRvrrIqTLSvrSyz2Pq+KQ8S8SXCxTWVE0nMaOnSDnSOxV1eYmGfvK7mqiwvd1C59CEEz7dAQ==} + vue@3.5.10: + resolution: {integrity: sha512-Vy2kmJwHPlouC/tSnIgXVg03SG+9wSqT1xu1Vehc+ChsXsRd7jLkKgMltVEFOzUdBr3uFwBCG+41LJtfAcBRng==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -16106,6 +16102,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@13.1.2: resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} @@ -16168,8 +16169,8 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod-validation-error@3.3.1: - resolution: {integrity: sha512-uFzCZz7FQis256dqw4AhPQgD6f3pzNca/Zh62RNELavlumQB3nDIUFbF5JQfFLcMbO1s02Q7Xg/gpcOBlEnYZA==} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 @@ -16368,10 +16369,10 @@ snapshots: '@ardatan/relay-compiler@12.0.0(graphql@16.9.0)': dependencies: '@babel/core': 7.25.2 - '@babel/generator': 7.25.5 + '@babel/generator': 7.25.6 '@babel/parser': 7.25.6 - '@babel/runtime': 7.25.4 - '@babel/traverse': 7.25.4 + '@babel/runtime': 7.25.6 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 babel-preset-fbjs: 3.4.0(@babel/core@7.25.2) chalk: 4.1.2 @@ -16427,14 +16428,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.5 - '@babel/generator': 7.24.4 + '@babel/generator': 7.25.6 '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-module-transforms': 7.22.5 '@babel/helpers': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/template': 7.24.6 - '@babel/traverse': 7.22.5 - '@babel/types': 7.24.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 1.9.0 debug: 4.3.7(supports-color@5.5.0) gensync: 1.0.0-beta.2 @@ -16447,14 +16448,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.25.6 '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 debug: 4.3.7(supports-color@5.5.0) gensync: 1.0.0-beta.2 @@ -16492,20 +16493,6 @@ snapshots: semver: 6.3.1 '@babel/generator@7.24.4': - dependencies: - '@babel/types': 7.24.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/generator@7.24.7': - dependencies: - '@babel/types': 7.25.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/generator@7.25.5': dependencies: '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 @@ -16544,24 +16531,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@7.22.5(@babel/core@7.24.7)': - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.24.7 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-compilation-targets@7.22.5(@babel/core@7.25.2)': - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.25.2 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-compilation-targets@7.24.7': dependencies: '@babel/compat-data': 7.24.7 @@ -16574,25 +16543,10 @@ snapshots: dependencies: '@babel/compat-data': 7.25.4 '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 + browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -16649,13 +16603,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -16684,18 +16631,6 @@ snapshots: regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.4.0(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.7(supports-color@5.5.0) - lodash.debounce: 4.0.8 - resolve: 1.22.8 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-define-polyfill-provider@0.4.0(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -16760,19 +16695,10 @@ snapshots: '@babel/template': 7.25.0 '@babel/types': 7.25.6 - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - '@babel/helper-hoist-variables@7.22.5': dependencies: '@babel/types': 7.25.6 - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.25.6 - '@babel/helper-member-expression-to-functions@7.22.5': dependencies: '@babel/types': 7.25.6 @@ -16790,7 +16716,7 @@ snapshots: '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -16801,9 +16727,9 @@ snapshots: '@babel/helper-module-imports': 7.22.5 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-validator-identifier': 7.24.7 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -16853,16 +16779,6 @@ snapshots: '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-remap-async-to-generator@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-wrap-function': 7.22.5 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/helper-remap-async-to-generator@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -16907,7 +16823,7 @@ snapshots: '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -16936,7 +16852,7 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -16956,18 +16872,12 @@ snapshots: dependencies: '@babel/types': 7.25.6 - '@babel/helper-split-export-declaration@7.24.6': - dependencies: - '@babel/types': 7.25.6 - '@babel/helper-split-export-declaration@7.24.7': dependencies: '@babel/types': 7.25.6 '@babel/helper-string-parser@7.24.6': {} - '@babel/helper-string-parser@7.24.7': {} - '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.6': {} @@ -16984,7 +16894,7 @@ snapshots: dependencies: '@babel/helper-function-name': 7.24.6 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -17000,7 +16910,7 @@ snapshots: '@babel/helpers@7.22.5': dependencies: '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -17017,7 +16927,7 @@ snapshots: '@babel/highlight@7.22.5': dependencies: - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 @@ -17035,51 +16945,31 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.22.5': - dependencies: - '@babel/types': 7.25.6 - - '@babel/parser@7.24.7': - dependencies: - '@babel/types': 7.25.6 - '@babel/parser@7.25.6': dependencies: '@babel/types': 7.25.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.24.7) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.25.2) @@ -17103,19 +16993,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -17123,18 +17005,18 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-proposal-decorators@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 - '@babel/plugin-syntax-decorators': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-syntax-decorators': 7.22.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -17162,40 +17044,28 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) - '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.7)': @@ -17228,39 +17098,28 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.22.5)': + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -17269,22 +17128,16 @@ snapshots: dependencies: '@babel/core': 7.25.2 - '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.22.5)': + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -17300,77 +17153,67 @@ snapshots: '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-syntax-decorators@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.5)': + '@babel/plugin-syntax-decorators@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.24.7)': dependencies: @@ -17382,25 +17225,20 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-syntax-flow@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-flow@7.24.6(@babel/core@7.25.2)': dependencies: @@ -17422,70 +17260,55 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.22.5)': dependencies: @@ -17505,126 +17328,116 @@ snapshots: '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.24.7)': @@ -17637,38 +17450,27 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)': dependencies: @@ -17680,21 +17482,11 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-async-generator-functions@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-async-generator-functions@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.24.7) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) transitivePeerDependencies: @@ -17704,26 +17496,17 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.25.2) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.24.7) transitivePeerDependencies: - supports-color @@ -17731,8 +17514,8 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -17755,35 +17538,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.24.7)': dependencies: @@ -17795,19 +17568,11 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -17815,16 +17580,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -17832,7 +17588,7 @@ snapshots: dependencies: '@babel/core': 7.24.7 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) transitivePeerDependencies: - supports-color @@ -17841,35 +17597,20 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-classes@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.24.7) + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 globals: 11.12.0 @@ -17880,11 +17621,11 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.25.2) + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 globals: 11.12.0 @@ -17915,22 +17656,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/template': 7.25.0 - '@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.25.0 '@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.25.0 '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)': @@ -17945,20 +17680,15 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.25.0 - '@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.7)': dependencies: @@ -17970,98 +17700,69 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.5) + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.25.2) '@babel/plugin-transform-flow-strip-types@7.24.6(@babel/core@7.25.2)': dependencies: @@ -18081,41 +17782,29 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-for-of@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-for-of@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-function-name': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-function-name@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.24.7) + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-function-name': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-function-name@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.25.2) + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-function-name': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.24.7)': dependencies: @@ -18135,38 +17824,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-literals@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-literals@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-literals@7.25.2(@babel/core@7.24.7)': dependencies: @@ -18178,87 +17856,59 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5) - '@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) '@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - transitivePeerDependencies: - - supports-color + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-simple-access': 7.22.5 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-simple-access': 7.22.5 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-simple-access': 7.22.5 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color @@ -18280,23 +17930,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color @@ -18304,53 +17944,39 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)': dependencies: @@ -18364,96 +17990,62 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-new-target@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-new-target@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) - '@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) '@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.24.7)': dependencies: - '@babel/compat-data': 7.22.5 + '@babel/compat-data': 7.25.4 '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.24.7) '@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/compat-data': 7.22.5 + '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.25.2) - '@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.22.5 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-object-super@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.22.5 transitivePeerDependencies: - supports-color @@ -18461,64 +18053,46 @@ snapshots: '@babel/plugin-transform-object-super@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.22.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-transform-optional-chaining@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-optional-chaining@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-parameters@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-parameters@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)': dependencies: @@ -18530,19 +18104,11 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -18550,7 +18116,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -18570,22 +18136,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) transitivePeerDependencies: - supports-color @@ -18595,7 +18151,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -18620,35 +18176,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-react-constant-elements@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-react-constant-elements@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.7)': dependencies: @@ -18660,10 +18206,12 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': dependencies: @@ -18690,14 +18238,16 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.22.5) + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2)': dependencies: @@ -18743,53 +18293,42 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - regenerator-transform: 0.15.1 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.1 '@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.1 - '@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-runtime@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-runtime@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5) - babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5) - babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.24.8 + babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -18818,20 +18357,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7)': dependencies: @@ -18843,22 +18377,16 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-spread@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-spread@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)': @@ -18877,20 +18405,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)': dependencies: @@ -18902,43 +18425,33 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typescript@7.22.5(@babel/core@7.22.5)': + '@babel/plugin-transform-typescript@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -18964,56 +18477,39 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)': dependencies: @@ -19027,121 +18523,29 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/polyfill@7.12.1': dependencies: core-js: 2.6.12 regenerator-runtime: 0.13.11 - '@babel/preset-env@7.22.5(@babel/core@7.22.5)': - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.5) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-async-generator-functions': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-classes': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.5) - '@babel/preset-modules': 0.1.5(@babel/core@7.22.5) - '@babel/types': 7.25.6 - babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5) - babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5) - babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5) - core-js-compat: 3.31.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/preset-env@7.22.5(@babel/core@7.24.7)': dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.22.5 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.24.7) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.24.7) @@ -19226,8 +18630,8 @@ snapshots: dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.22.5 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.25.2) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.25.2) @@ -19315,19 +18719,10 @@ snapshots: '@babel/helper-validator-option': 7.24.8 '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) - '@babel/preset-modules@0.1.5(@babel/core@7.22.5)': - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.5) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5) - '@babel/types': 7.25.6 - esutils: 2.0.3 - '@babel/preset-modules@0.1.5(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.24.7) '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.24.7) '@babel/types': 7.25.6 @@ -19336,30 +18731,32 @@ snapshots: '@babel/preset-modules@0.1.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.25.2) '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.25.2) '@babel/types': 7.25.6 esutils: 2.0.3 - '@babel/preset-react@7.22.5(@babel/core@7.22.5)': + '@babel/preset-react@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color - '@babel/preset-typescript@7.22.5(@babel/core@7.22.5)': + '@babel/preset-typescript@7.22.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-typescript': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.22.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -19389,80 +18786,21 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.6': - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.6 - - '@babel/template@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - - '@babel/template@7.25.0': + '@babel/runtime@7.25.6': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + regenerator-runtime: 0.14.1 - '@babel/traverse@7.22.5': + '@babel/template@7.24.6': dependencies: '@babel/code-frame': 7.24.6 - '@babel/generator': 7.25.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@5.5.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/traverse@7.24.1': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.5 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.6 '@babel/parser': 7.25.6 '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@5.5.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.5 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@5.5.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/traverse@7.25.4': + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.5 '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@5.5.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color '@babel/traverse@7.25.6': dependencies: @@ -19482,12 +18820,6 @@ snapshots: '@babel/helper-validator-identifier': 7.24.6 to-fast-properties: 2.0.0 - '@babel/types@7.24.7': - dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 @@ -19786,11 +19118,11 @@ snapshots: transitivePeerDependencies: - debug - '@codspeed/vitest-plugin@3.1.1(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6))': + '@codspeed/vitest-plugin@3.1.1(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1))(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1))': dependencies: '@codspeed/core': 3.1.1 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) - vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6) + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) + vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1) transitivePeerDependencies: - debug @@ -19803,7 +19135,7 @@ snapshots: eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.23.2 + preact: 10.24.1 sha.js: 2.4.11 transitivePeerDependencies: - supports-color @@ -19814,7 +19146,7 @@ snapshots: clsx: 1.2.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.23.2 + preact: 10.24.1 sha.js: 2.4.11 '@colors/colors@1.5.0': @@ -19907,9 +19239,9 @@ snapshots: '@docsearch/css@3.6.1': {} - '@docsearch/js@3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)': + '@docsearch/js@3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)': dependencies: - '@docsearch/react': 3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0) + '@docsearch/react': 3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0) preact: 10.23.2 transitivePeerDependencies: - '@algolia/client-search' @@ -19918,14 +19250,14 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)': + '@docsearch/react@3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)': dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.11.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) '@docsearch/css': 3.6.1 algoliasearch: 4.22.1 optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) search-insights: 2.11.0 @@ -20240,6 +19572,8 @@ snapshots: '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.11.1': {} + '@eslint-community/regexpp@4.5.1': {} '@eslint/config-array@0.18.0': @@ -20268,7 +19602,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.3.7(supports-color@5.5.0) - espree: 10.1.0 + espree: 10.2.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -20327,16 +19661,16 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@fuels/connectors@0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))(zod@3.23.8)': + '@fuels/connectors@0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))(zod@3.23.8)': dependencies: '@ethereumjs/util': 9.0.3 '@ethersproject/bytes': 5.7.0 '@solana/web3.js': 1.93.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@web3modal/core': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/solana': 5.0.0(@types/react@18.3.9)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2)) - '@web3modal/wagmi': 5.0.0(mq76p5xygmrqrzqw4n6hh3kbd4) + '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@web3modal/core': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/solana': 5.0.0(@types/react@18.3.10)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2)) + '@web3modal/wagmi': 5.0.0(5kldriemlb2tx5lxhknwu7ajm4) fuels: link:packages/fuels rpc-websockets: 7.11.0 socket.io-client: 4.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -20370,16 +19704,16 @@ snapshots: - vue - zod - '@fuels/connectors@0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))(zod@3.23.8)': + '@fuels/connectors@0.27.1(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(fuels@packages+fuels)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))(zod@3.23.8)': dependencies: '@ethereumjs/util': 9.0.3 '@ethersproject/bytes': 5.7.0 '@solana/web3.js': 1.93.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@web3modal/core': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/solana': 5.0.0(@types/react@18.3.9)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2)) - '@web3modal/wagmi': 5.0.0(n7lvsomc3vqwa5ijyxhghe6nqq) + '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@web3modal/core': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/solana': 5.0.0(@types/react@18.3.10)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2)) + '@web3modal/wagmi': 5.0.0(ixqlaj433fz4d3bc2hewfnhw5m) fuels: link:packages/fuels rpc-websockets: 7.11.0 socket.io-client: 4.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -20433,7 +19767,7 @@ snapshots: graphql: 16.9.0 tslib: 2.6.3 - '@graphql-codegen/cli@5.0.2(@parcel/watcher@2.4.1)(@types/node@22.5.5)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(enquirer@2.4.1)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4)': + '@graphql-codegen/cli@5.0.2(@parcel/watcher@2.4.1)(@types/node@22.7.4)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(enquirer@2.4.1)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4)': dependencies: '@babel/generator': 7.24.4 '@babel/template': 7.24.6 @@ -20444,12 +19778,12 @@ snapshots: '@graphql-tools/apollo-engine-loader': 8.0.1(graphql@16.9.0) '@graphql-tools/code-file-loader': 8.1.2(graphql@16.9.0) '@graphql-tools/git-loader': 8.0.6(graphql@16.9.0) - '@graphql-tools/github-loader': 8.0.1(@types/node@22.5.5)(graphql@16.9.0) + '@graphql-tools/github-loader': 8.0.1(@types/node@22.7.4)(graphql@16.9.0) '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.9.0) '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) '@graphql-tools/load': 8.0.2(graphql@16.9.0) - '@graphql-tools/prisma-loader': 8.0.4(@types/node@22.5.5)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) - '@graphql-tools/url-loader': 8.0.2(@types/node@22.5.5)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) + '@graphql-tools/prisma-loader': 8.0.4(@types/node@22.7.4)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) + '@graphql-tools/url-loader': 8.0.2(@types/node@22.7.4)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) '@graphql-tools/utils': 10.2.2(graphql@16.9.0) '@whatwg-node/fetch': 0.8.8 chalk: 4.1.2 @@ -20457,7 +19791,7 @@ snapshots: debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.9.0 - graphql-config: 5.0.3(@types/node@22.5.5)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4) + graphql-config: 5.0.3(@types/node@22.7.4)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4) inquirer: 8.2.5 is-glob: 4.0.3 jiti: 1.21.0 @@ -20486,7 +19820,7 @@ snapshots: '@graphql-codegen/client-preset@4.3.0(graphql@16.9.0)': dependencies: '@babel/helper-plugin-utils': 7.24.6 - '@babel/template': 7.24.6 + '@babel/template': 7.25.0 '@graphql-codegen/add': 5.0.3(graphql@16.9.0) '@graphql-codegen/gql-tag-operations': 4.0.7(graphql@16.9.0) '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) @@ -20717,14 +20051,14 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@1.0.9(@types/node@22.5.5)(graphql@16.9.0)': + '@graphql-tools/executor-http@1.0.9(@types/node@22.7.4)(graphql@16.9.0)': dependencies: '@graphql-tools/utils': 10.2.2(graphql@16.9.0) '@repeaterjs/repeater': 3.0.4 '@whatwg-node/fetch': 0.9.18 extract-files: 11.0.0 graphql: 16.9.0 - meros: 1.3.0(@types/node@22.5.5) + meros: 1.3.0(@types/node@22.7.4) tslib: 2.7.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -20763,10 +20097,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.1(@types/node@22.5.5)(graphql@16.9.0)': + '@graphql-tools/github-loader@8.0.1(@types/node@22.7.4)(graphql@16.9.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.0.9(@types/node@22.5.5)(graphql@16.9.0) + '@graphql-tools/executor-http': 1.0.9(@types/node@22.7.4)(graphql@16.9.0) '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) '@graphql-tools/utils': 10.2.2(graphql@16.9.0) '@whatwg-node/fetch': 0.9.18 @@ -20792,7 +20126,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/parser': 7.25.6 '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.25.2) - '@babel/traverse': 7.24.1 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 '@graphql-tools/utils': 10.2.2(graphql@16.9.0) graphql: 16.9.0 @@ -20839,9 +20173,9 @@ snapshots: graphql: 16.9.0 tslib: 2.7.0 - '@graphql-tools/prisma-loader@8.0.4(@types/node@22.5.5)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4)': + '@graphql-tools/prisma-loader@8.0.4(@types/node@22.7.4)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4)': dependencies: - '@graphql-tools/url-loader': 8.0.2(@types/node@22.5.5)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) + '@graphql-tools/url-loader': 8.0.2(@types/node@22.7.4)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) '@graphql-tools/utils': 10.2.2(graphql@16.9.0) '@types/js-yaml': 4.0.5 '@whatwg-node/fetch': 0.9.18 @@ -20893,12 +20227,12 @@ snapshots: tslib: 2.7.0 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@8.0.2(@types/node@22.5.5)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4)': + '@graphql-tools/url-loader@8.0.2(@types/node@22.7.4)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4)': dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.0.11(graphql@16.9.0) '@graphql-tools/executor-graphql-ws': 1.1.2(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) - '@graphql-tools/executor-http': 1.0.9(@types/node@22.5.5)(graphql@16.9.0) + '@graphql-tools/executor-http': 1.0.9(@types/node@22.7.4)(graphql@16.9.0) '@graphql-tools/executor-legacy-ws': 1.0.6(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) '@graphql-tools/utils': 10.2.2(graphql@16.9.0) '@graphql-tools/wrap': 10.0.5(graphql@16.9.0) @@ -21037,7 +20371,7 @@ snapshots: '@jest/console@28.1.3': dependencies: '@jest/types': 28.1.3 - '@types/node': 22.5.5 + '@types/node': 22.7.4 chalk: 4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 @@ -21088,14 +20422,14 @@ snapshots: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-mock: 27.5.1 '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-mock: 29.7.0 '@jest/expect-utils@29.5.0': @@ -21106,7 +20440,7 @@ snapshots: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -21115,7 +20449,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -21217,7 +20551,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/yargs': 15.0.19 chalk: 4.1.2 @@ -21282,11 +20616,6 @@ snapshots: '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.3': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -21361,7 +20690,7 @@ snapshots: '@metamask/json-rpc-engine@7.3.3': dependencies: - '@metamask/rpc-errors': 6.3.1 + '@metamask/rpc-errors': 6.4.0 '@metamask/safe-event-emitter': 3.1.1 '@metamask/utils': 8.5.0 transitivePeerDependencies: @@ -21369,7 +20698,7 @@ snapshots: '@metamask/json-rpc-engine@8.0.2': dependencies: - '@metamask/rpc-errors': 6.3.1 + '@metamask/rpc-errors': 6.4.0 '@metamask/safe-event-emitter': 3.1.1 '@metamask/utils': 8.5.0 transitivePeerDependencies: @@ -21398,7 +20727,7 @@ snapshots: '@metamask/json-rpc-engine': 8.0.2 '@metamask/json-rpc-middleware-stream': 7.0.2 '@metamask/object-multiplex': 2.0.0 - '@metamask/rpc-errors': 6.3.1 + '@metamask/rpc-errors': 6.4.0 '@metamask/safe-event-emitter': 3.1.1 '@metamask/utils': 8.5.0 detect-browser: 5.3.0 @@ -21410,9 +20739,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@metamask/rpc-errors@6.3.1': + '@metamask/rpc-errors@6.4.0': dependencies: - '@metamask/utils': 9.1.0 + '@metamask/utils': 9.2.1 fast-safe-stringify: 2.1.1 transitivePeerDependencies: - supports-color @@ -21436,30 +20765,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: i18next: 23.11.5 qr-code-styling: 1.6.0-rc.1 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: i18next: 23.11.5 qr-code-styling: 1.6.0-rc.1 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - '@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(utf-8-validate@5.0.10)': + '@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(utf-8-validate@5.0.10)': dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 '@metamask/sdk-communication-layer': 0.28.2(cross-fetch@4.0.0)(eciesjs@0.3.20)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 '@types/uuid': 10.0.0 bowser: 2.11.0 @@ -21473,9 +20802,9 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.0 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.21.0) + rollup-plugin-visualizer: 5.12.0(rollup@4.22.5) socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) util: 0.12.5 uuid: 8.3.2 @@ -21490,12 +20819,12 @@ snapshots: - supports-color - utf-8-validate - '@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(utf-8-validate@5.0.10)': + '@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(utf-8-validate@5.0.10)': dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 '@metamask/sdk-communication-layer': 0.28.2(cross-fetch@4.0.0)(eciesjs@0.3.20)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 '@types/uuid': 10.0.0 bowser: 2.11.0 @@ -21509,9 +20838,9 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.0 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.21.0) + rollup-plugin-visualizer: 5.12.0(rollup@4.22.5) socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) util: 0.12.5 uuid: 8.3.2 @@ -21552,7 +20881,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@metamask/utils@9.1.0': + '@metamask/utils@9.2.1': dependencies: '@ethereumjs/tx': 4.2.0 '@metamask/superstruct': 3.1.0 @@ -22092,7 +21421,7 @@ snapshots: '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 react: 18.3.1 optionalDependencies: '@types/react': 18.3.1 @@ -22107,7 +21436,7 @@ snapshots: '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -22115,7 +21444,7 @@ snapshots: '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 react: 18.3.1 optionalDependencies: '@types/react': 18.3.1 @@ -22142,7 +21471,7 @@ snapshots: '@react-native-community/cli-debugger-ui@13.6.6': dependencies: - serve-static: 1.15.0 + serve-static: 1.16.2 transitivePeerDependencies: - supports-color @@ -22156,7 +21485,7 @@ snapshots: chalk: 4.1.2 command-exists: 1.2.9 deepmerge: 4.3.1 - envinfo: 7.13.0 + envinfo: 7.14.0 execa: 5.1.1 hermes-profile-transformer: 0.0.6 node-stream-zip: 1.15.0 @@ -22164,7 +21493,7 @@ snapshots: semver: 7.6.3 strip-ansi: 5.2.0 wcwidth: 1.0.1 - yaml: 2.5.0 + yaml: 2.5.1 transitivePeerDependencies: - encoding @@ -22183,7 +21512,7 @@ snapshots: chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.2 - fast-xml-parser: 4.4.1 + fast-xml-parser: 4.5.0 logkitty: 0.7.1 transitivePeerDependencies: - encoding @@ -22194,7 +21523,7 @@ snapshots: chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.2 - fast-xml-parser: 4.4.1 + fast-xml-parser: 4.5.0 ora: 5.4.1 transitivePeerDependencies: - encoding @@ -22214,7 +21543,7 @@ snapshots: errorhandler: 1.5.1 nocache: 3.0.4 pretty-format: 26.6.2 - serve-static: 1.15.0 + serve-static: 1.16.2 ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil @@ -22415,9 +21744,9 @@ snapshots: '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7)) chalk: 4.1.2 execa: 5.1.1 - metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-config: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-core: 0.80.10 + metro: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-config: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-core: 0.80.12 node-fetch: 2.7.0 querystring: 0.2.1 readline: 1.3.0 @@ -22437,9 +21766,9 @@ snapshots: '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2)) chalk: 4.1.2 execa: 5.1.1 - metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-config: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-core: 0.80.10 + metro: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-config: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-core: 0.80.12 node-fetch: 2.7.0 querystring: 0.2.1 readline: 1.3.0 @@ -22465,7 +21794,7 @@ snapshots: nullthrows: 1.1.1 open: 7.4.2 selfsigned: 2.4.1 - serve-static: 1.15.0 + serve-static: 1.16.2 temp-dir: 2.0.0 ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -22500,29 +21829,29 @@ snapshots: '@react-native/normalize-colors@0.74.83': {} - '@react-native/virtualized-lists@0.74.83(@types/react@18.3.9)(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + '@react-native/virtualized-lists@0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 - '@react-native/virtualized-lists@0.74.83(@types/react@18.3.9)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + '@react-native/virtualized-lists@0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 '@repeaterjs/repeater@3.0.4': {} '@rnx-kit/chromium-edge-launcher@1.0.0': dependencies: - '@types/node': 18.19.45 + '@types/node': 18.19.54 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -22531,100 +21860,102 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-babel@5.3.1(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@2.79.1)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.22.5 - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 + '@babel/helper-module-imports': 7.24.7 + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + rollup: 2.79.2 optionalDependencies: '@types/babel__core': 7.20.5 + transitivePeerDependencies: + - supports-color - '@rollup/plugin-inject@5.0.5(rollup@4.21.0)': + '@rollup/plugin-inject@5.0.5(rollup@4.22.5)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@rollup/pluginutils': 5.1.0(rollup@4.22.5) estree-walker: 2.0.2 magic-string: 0.30.11 optionalDependencies: - rollup: 4.21.0 + rollup: 4.22.5 - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': + '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/plugin-replace@2.4.2(rollup@2.79.1)': + '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) magic-string: 0.25.9 - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/pluginutils@3.1.0(rollup@2.79.1)': + '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/pluginutils@5.1.0(rollup@4.21.0)': + '@rollup/pluginutils@5.1.0(rollup@4.22.5)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.21.0 + rollup: 4.22.5 - '@rollup/rollup-android-arm-eabi@4.21.0': + '@rollup/rollup-android-arm-eabi@4.22.5': optional: true - '@rollup/rollup-android-arm64@4.21.0': + '@rollup/rollup-android-arm64@4.22.5': optional: true - '@rollup/rollup-darwin-arm64@4.21.0': + '@rollup/rollup-darwin-arm64@4.22.5': optional: true - '@rollup/rollup-darwin-x64@4.21.0': + '@rollup/rollup-darwin-x64@4.22.5': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + '@rollup/rollup-linux-arm-gnueabihf@4.22.5': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.0': + '@rollup/rollup-linux-arm-musleabihf@4.22.5': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.0': + '@rollup/rollup-linux-arm64-gnu@4.22.5': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.0': + '@rollup/rollup-linux-arm64-musl@4.22.5': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.0': + '@rollup/rollup-linux-riscv64-gnu@4.22.5': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.0': + '@rollup/rollup-linux-s390x-gnu@4.22.5': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.0': + '@rollup/rollup-linux-x64-gnu@4.22.5': optional: true - '@rollup/rollup-linux-x64-musl@4.21.0': + '@rollup/rollup-linux-x64-musl@4.22.5': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.0': + '@rollup/rollup-win32-arm64-msvc@4.22.5': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.0': + '@rollup/rollup-win32-ia32-msvc@4.22.5': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.0': + '@rollup/rollup-win32-x64-msvc@4.22.5': optional: true '@rtsao/scc@1.1.0': {} @@ -22987,10 +22318,10 @@ snapshots: '@svgr/webpack@5.5.0': dependencies: - '@babel/core': 7.22.5 - '@babel/plugin-transform-react-constant-elements': 7.22.5(@babel/core@7.22.5) - '@babel/preset-env': 7.22.5(@babel/core@7.22.5) - '@babel/preset-react': 7.22.5(@babel/core@7.22.5) + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-constant-elements': 7.22.5(@babel/core@7.25.2) + '@babel/preset-env': 7.22.5(@babel/core@7.25.2) + '@babel/preset-react': 7.22.5(@babel/core@7.25.2) '@svgr/core': 5.5.0 '@svgr/plugin-jsx': 5.5.0 '@svgr/plugin-svgo': 5.5.0 @@ -23073,14 +22404,14 @@ snapshots: '@tanstack/query-core': 5.56.2 react: 18.3.1 - '@tanstack/router-generator@1.58.1': + '@tanstack/router-generator@1.58.12': dependencies: '@tanstack/virtual-file-routes': 1.56.0 prettier: 3.3.3 tsx: 4.19.1 zod: 3.23.8 - '@tanstack/router-plugin@1.58.4(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))(webpack-sources@3.2.3)': + '@tanstack/router-plugin@1.58.12(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(webpack-sources@3.2.3)': dependencies: '@babel/core': 7.25.2 '@babel/generator': 7.25.6 @@ -23090,7 +22421,7 @@ snapshots: '@babel/template': 7.25.0 '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 - '@tanstack/router-generator': 1.58.1 + '@tanstack/router-generator': 1.58.12 '@tanstack/virtual-file-routes': 1.56.0 '@types/babel__core': 7.20.5 '@types/babel__generator': 7.6.8 @@ -23101,7 +22432,7 @@ snapshots: unplugin: 1.14.1(webpack-sources@3.2.3) zod: 3.23.8 optionalDependencies: - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - supports-color - webpack-sources @@ -23138,14 +22469,14 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.4 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 '@types/react-dom': 18.3.0 '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': @@ -23294,14 +22625,6 @@ snapshots: '@types/aria-query@5.0.4': {} - '@types/babel__core@7.20.1': - dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.25.6 @@ -23358,17 +22681,19 @@ snapshots: '@types/eslint-scope@3.7.4': dependencies: '@types/eslint': 8.40.2 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/eslint@8.40.2': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.12 '@types/estree@0.0.39': {} '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/express-serve-static-core@4.17.35': dependencies: '@types/node': 22.5.5 @@ -23441,7 +22766,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/linkify-it@5.0.0': {} @@ -23483,7 +22808,7 @@ snapshots: '@types/mute-stream@0.0.4': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/node-fetch@2.6.11': dependencies: @@ -23492,13 +22817,13 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/node@12.20.55': {} '@types/node@18.15.13': {} - '@types/node@18.19.45': + '@types/node@18.19.54': dependencies: undici-types: 5.26.5 @@ -23510,6 +22835,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@22.7.4': + dependencies: + undici-types: 6.19.8 + '@types/offscreencanvas@2019.3.0': {} '@types/parse-json@4.0.0': {} @@ -23535,14 +22864,14 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 '@types/react@18.3.1': dependencies: '@types/prop-types': 15.7.5 csstype: 3.1.3 - '@types/react@18.3.9': + '@types/react@18.3.10': dependencies: '@types/prop-types': 15.7.5 csstype: 3.1.3 @@ -23553,11 +22882,11 @@ snapshots: '@types/resolve@1.17.1': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/responselike@1.0.3': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/retry@0.12.0': {} @@ -23568,7 +22897,7 @@ snapshots: '@types/secp256k1@4.0.6': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/seedrandom@2.4.34': {} @@ -23579,7 +22908,7 @@ snapshots: '@types/send@0.17.1': dependencies: '@types/mime': 1.3.2 - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/serve-index@1.9.1': dependencies: @@ -23617,7 +22946,7 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@types/web@0.0.164': {} + '@types/web@0.0.167': {} '@types/webgl-ext@0.0.30': {} @@ -23659,7 +22988,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 optional: true '@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.9.1(jiti@1.21.6))(typescript@5.6.2)': @@ -23990,21 +23319,32 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.1(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))': + '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.2(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))(vue@3.5.8(typescript@5.6.2))': + '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': dependencies: - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) - vue: 3.5.8(typescript@5.6.2) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.7) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.1.2(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vue@3.5.10(typescript@5.6.2))': + dependencies: + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vue: 3.5.10(typescript@5.6.2) '@vitest/browser@2.0.5(bufferutil@4.0.8)(playwright@1.47.2)(typescript@5.6.2)(utf-8-validate@5.0.10)(vitest@2.0.5)(webdriverio@9.0.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: @@ -24014,7 +23354,7 @@ snapshots: magic-string: 0.30.11 msw: 2.4.7(typescript@5.6.2) sirv: 2.0.4 - vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.31.6) + vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.34.1) ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: playwright: 1.47.2 @@ -24033,7 +23373,7 @@ snapshots: magic-string: 0.30.11 msw: 2.4.7(typescript@5.6.2) sirv: 2.0.4 - vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6) + vitest: 2.0.5(@types/node@22.7.4)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1) ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) optionalDependencies: playwright: 1.47.2 @@ -24043,7 +23383,7 @@ snapshots: - typescript - utf-8-validate - '@vitest/coverage-istanbul@2.0.5(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6))': + '@vitest/coverage-istanbul@2.0.5(vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.3.7(supports-color@5.5.0) @@ -24055,7 +23395,7 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6) + vitest: 2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1) transitivePeerDependencies: - supports-color @@ -24096,35 +23436,35 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@vue/compiler-core@3.5.8': + '@vue/compiler-core@3.5.10': dependencies: '@babel/parser': 7.25.6 - '@vue/shared': 3.5.8 + '@vue/shared': 3.5.10 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.8': + '@vue/compiler-dom@3.5.10': dependencies: - '@vue/compiler-core': 3.5.8 - '@vue/shared': 3.5.8 + '@vue/compiler-core': 3.5.10 + '@vue/shared': 3.5.10 - '@vue/compiler-sfc@3.5.8': + '@vue/compiler-sfc@3.5.10': dependencies: '@babel/parser': 7.25.6 - '@vue/compiler-core': 3.5.8 - '@vue/compiler-dom': 3.5.8 - '@vue/compiler-ssr': 3.5.8 - '@vue/shared': 3.5.8 + '@vue/compiler-core': 3.5.10 + '@vue/compiler-dom': 3.5.10 + '@vue/compiler-ssr': 3.5.10 + '@vue/shared': 3.5.10 estree-walker: 2.0.2 magic-string: 0.30.11 postcss: 8.4.47 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.8': + '@vue/compiler-ssr@3.5.10': dependencies: - '@vue/compiler-dom': 3.5.8 - '@vue/shared': 3.5.8 + '@vue/compiler-dom': 3.5.10 + '@vue/shared': 3.5.10 '@vue/devtools-api@6.6.3': {} @@ -24146,47 +23486,47 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/reactivity@3.5.8': + '@vue/reactivity@3.5.10': dependencies: - '@vue/shared': 3.5.8 + '@vue/shared': 3.5.10 - '@vue/runtime-core@3.5.8': + '@vue/runtime-core@3.5.10': dependencies: - '@vue/reactivity': 3.5.8 - '@vue/shared': 3.5.8 + '@vue/reactivity': 3.5.10 + '@vue/shared': 3.5.10 - '@vue/runtime-dom@3.5.8': + '@vue/runtime-dom@3.5.10': dependencies: - '@vue/reactivity': 3.5.8 - '@vue/runtime-core': 3.5.8 - '@vue/shared': 3.5.8 + '@vue/reactivity': 3.5.10 + '@vue/runtime-core': 3.5.10 + '@vue/shared': 3.5.10 csstype: 3.1.3 - '@vue/server-renderer@3.5.8(vue@3.5.8(typescript@5.6.2))': + '@vue/server-renderer@3.5.10(vue@3.5.10(typescript@5.6.2))': dependencies: - '@vue/compiler-ssr': 3.5.8 - '@vue/shared': 3.5.8 - vue: 3.5.8(typescript@5.6.2) + '@vue/compiler-ssr': 3.5.10 + '@vue/shared': 3.5.10 + vue: 3.5.10(typescript@5.6.2) '@vue/shared@3.4.38': {} - '@vue/shared@3.5.8': {} + '@vue/shared@3.5.10': {} - '@vueuse/core@11.0.0(vue@3.5.8(typescript@5.6.2))': + '@vueuse/core@11.0.0(vue@3.5.10(typescript@5.6.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 11.0.0 - '@vueuse/shared': 11.0.0(vue@3.5.8(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.8(typescript@5.6.2)) + '@vueuse/shared': 11.0.0(vue@3.5.10(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.10(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@11.0.0(axios@1.7.7)(focus-trap@7.5.4)(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.5.8(typescript@5.6.2))': + '@vueuse/integrations@11.0.0(axios@1.7.7)(focus-trap@7.5.4)(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.5.10(typescript@5.6.2))': dependencies: - '@vueuse/core': 11.0.0(vue@3.5.8(typescript@5.6.2)) - '@vueuse/shared': 11.0.0(vue@3.5.8(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.8(typescript@5.6.2)) + '@vueuse/core': 11.0.0(vue@3.5.10(typescript@5.6.2)) + '@vueuse/shared': 11.0.0(vue@3.5.10(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.10(typescript@5.6.2)) optionalDependencies: axios: 1.7.7 focus-trap: 7.5.4 @@ -24198,22 +23538,22 @@ snapshots: '@vueuse/metadata@11.0.0': {} - '@vueuse/shared@11.0.0(vue@3.5.8(typescript@5.6.2))': + '@vueuse/shared@11.0.0(vue@3.5.10(typescript@5.6.2))': dependencies: - vue-demi: 0.14.10(vue@3.5.8(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.10(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': + '@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.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.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(utf-8-validate@5.0.10) + '@metamask/sdk': 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.6.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.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) - '@wagmi/core': 2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.16.1(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - '@walletconnect/modal': 2.6.2(@types/react@18.3.9)(react@18.3.1) + '@wagmi/core': 2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@walletconnect/ethereum-provider': 2.16.1(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + '@walletconnect/modal': 2.6.2(@types/react@18.3.10)(react@18.3.1) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' viem: 2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) optionalDependencies: @@ -24244,15 +23584,15 @@ snapshots: - utf-8-validate - zod - '@wagmi/connectors@5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': + '@wagmi/connectors@5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.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.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(utf-8-validate@5.0.10) + '@metamask/sdk': 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.6.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.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) - '@wagmi/core': 2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.16.1(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - '@walletconnect/modal': 2.6.2(@types/react@18.3.9)(react@18.3.1) + '@wagmi/core': 2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@walletconnect/ethereum-provider': 2.16.1(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + '@walletconnect/modal': 2.6.2(@types/react@18.3.10)(react@18.3.1) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' viem: 2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) optionalDependencies: @@ -24283,12 +23623,12 @@ snapshots: - utf-8-validate - zod - '@wagmi/core@2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@wagmi/core@2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.6.2) viem: 2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) - zustand: 4.4.1(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1) + zustand: 4.4.1(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1) optionalDependencies: '@tanstack/query-core': 5.56.2 typescript: 5.6.2 @@ -24297,12 +23637,12 @@ snapshots: - immer - react - '@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.6.2) viem: 2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) - zustand: 4.4.1(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1) + zustand: 4.4.1(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1) optionalDependencies: '@tanstack/query-core': 5.56.2 typescript: 5.6.2 @@ -24445,13 +23785,13 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.13.0(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)': + '@walletconnect/ethereum-provider@2.13.0(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.3.9)(react@18.3.1) + '@walletconnect/modal': 2.6.2(@types/react@18.3.10)(react@18.3.1) '@walletconnect/sign-client': 2.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/types': 2.13.0 '@walletconnect/universal-provider': 2.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -24478,13 +23818,13 @@ snapshots: - uWebSockets.js - utf-8-validate - '@walletconnect/ethereum-provider@2.16.1(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)': + '@walletconnect/ethereum-provider@2.16.1(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.3.9)(react@18.3.1) + '@walletconnect/modal': 2.6.2(@types/react@18.3.10)(react@18.3.1) '@walletconnect/sign-client': 2.16.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/types': 2.16.1 '@walletconnect/universal-provider': 2.16.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -24602,16 +23942,16 @@ snapshots: '@walletconnect/mobile-registry@1.4.0': {} - '@walletconnect/modal-core@2.6.2(@types/react@18.3.9)(react@18.3.1)': + '@walletconnect/modal-core@2.6.2(@types/react@18.3.10)(react@18.3.1)': dependencies: - valtio: 1.11.2(@types/react@18.3.9)(react@18.3.1) + valtio: 1.11.2(@types/react@18.3.10)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react - '@walletconnect/modal-ui@2.6.2(@types/react@18.3.9)(react@18.3.1)': + '@walletconnect/modal-ui@2.6.2(@types/react@18.3.10)(react@18.3.1)': dependencies: - '@walletconnect/modal-core': 2.6.2(@types/react@18.3.9)(react@18.3.1) + '@walletconnect/modal-core': 2.6.2(@types/react@18.3.10)(react@18.3.1) lit: 2.8.0 motion: 10.16.2 qrcode: 1.5.3 @@ -24619,10 +23959,10 @@ snapshots: - '@types/react' - react - '@walletconnect/modal@2.6.2(@types/react@18.3.9)(react@18.3.1)': + '@walletconnect/modal@2.6.2(@types/react@18.3.10)(react@18.3.1)': dependencies: - '@walletconnect/modal-core': 2.6.2(@types/react@18.3.9)(react@18.3.1) - '@walletconnect/modal-ui': 2.6.2(@types/react@18.3.9)(react@18.3.1) + '@walletconnect/modal-core': 2.6.2(@types/react@18.3.10)(react@18.3.1) + '@walletconnect/modal-ui': 2.6.2(@types/react@18.3.10)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react @@ -25144,11 +24484,11 @@ snapshots: bignumber.js: 9.1.2 dayjs: 1.11.10 - '@web3modal/core@5.0.0(@types/react@18.3.9)(react@18.3.1)': + '@web3modal/core@5.0.0(@types/react@18.3.10)(react@18.3.1)': dependencies: '@web3modal/common': 5.0.0 '@web3modal/wallet': 5.0.0 - valtio: 1.11.2(@types/react@18.3.9)(react@18.3.1) + valtio: 1.11.2(@types/react@18.3.10)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react @@ -25157,9 +24497,9 @@ snapshots: dependencies: buffer: 6.0.3 - '@web3modal/scaffold-react@5.0.0(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@web3modal/scaffold-react@5.0.0(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25180,20 +24520,20 @@ snapshots: - ioredis - uWebSockets.js - '@web3modal/scaffold-utils@5.0.0(@types/react@18.3.9)(react@18.3.1)': + '@web3modal/scaffold-utils@5.0.0(@types/react@18.3.10)(react@18.3.1)': dependencies: - '@web3modal/core': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/core': 5.0.0(@types/react@18.3.10)(react@18.3.1) '@web3modal/polyfills': 5.0.0 - valtio: 1.11.2(@types/react@18.3.9)(react@18.3.1) + valtio: 1.11.2(@types/react@18.3.10)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react - '@web3modal/scaffold-vue@5.0.0(@types/react@18.3.9)(react@18.3.1)(vue@3.5.8(typescript@5.6.2))': + '@web3modal/scaffold-vue@5.0.0(@types/react@18.3.10)(react@18.3.1)(vue@3.5.10(typescript@5.6.2))': dependencies: - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) optionalDependencies: - vue: 3.5.8(typescript@5.6.2) + vue: 3.5.10(typescript@5.6.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25212,12 +24552,12 @@ snapshots: - react - uWebSockets.js - '@web3modal/scaffold@5.0.0(@types/react@18.3.9)(react@18.3.1)': + '@web3modal/scaffold@5.0.0(@types/react@18.3.10)(react@18.3.1)': dependencies: '@web3modal/common': 5.0.0 - '@web3modal/core': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/siwe': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/core': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/siwe': 5.0.0(@types/react@18.3.10)(react@18.3.1) '@web3modal/ui': 5.0.0 '@web3modal/wallet': 5.0.0 lit: 3.1.0 @@ -25239,13 +24579,13 @@ snapshots: - react - uWebSockets.js - '@web3modal/siwe@5.0.0(@types/react@18.3.9)(react@18.3.1)': + '@web3modal/siwe@5.0.0(@types/react@18.3.10)(react@18.3.1)': dependencies: '@walletconnect/utils': 2.12.0 - '@web3modal/core': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/core': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.10)(react@18.3.1) lit: 3.1.0 - valtio: 1.11.2(@types/react@18.3.9)(react@18.3.1) + valtio: 1.11.2(@types/react@18.3.10)(react@18.3.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25264,7 +24604,7 @@ snapshots: - react - uWebSockets.js - '@web3modal/solana@5.0.0(@types/react@18.3.9)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(vue@3.5.8(typescript@5.6.2))': + '@web3modal/solana@5.0.0(@types/react@18.3.10)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(vue@3.5.10(typescript@5.6.2))': dependencies: '@ethersproject/sha2': 5.7.0 '@solana/wallet-adapter-backpack': 0.1.14(@solana/web3.js@1.91.7(bufferutil@4.0.8)(utf-8-validate@5.0.10)) @@ -25276,16 +24616,16 @@ snapshots: '@solana/web3.js': 1.91.7(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/universal-provider': 2.11.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@web3modal/polyfills': 5.0.0 - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-react': 5.0.0(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-vue': 5.0.0(@types/react@18.3.9)(react@18.3.1)(vue@3.5.8(typescript@5.6.2)) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-react': 5.0.0(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-vue': 5.0.0(@types/react@18.3.10)(react@18.3.1)(vue@3.5.10(typescript@5.6.2)) bn.js: 5.2.1 bs58: 5.0.0 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vue: 3.5.8(typescript@5.6.2) + vue: 3.5.10(typescript@5.6.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25311,22 +24651,22 @@ snapshots: lit: 3.1.0 qrcode: 1.5.3 - '@web3modal/wagmi@5.0.0(mq76p5xygmrqrzqw4n6hh3kbd4)': + '@web3modal/wagmi@5.0.0(5kldriemlb2tx5lxhknwu7ajm4)': dependencies: - '@wagmi/connectors': 5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) - '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.13.0(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + '@wagmi/connectors': 5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@walletconnect/ethereum-provider': 2.13.0(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) '@web3modal/polyfills': 5.0.0 - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-react': 5.0.0(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-vue': 5.0.0(@types/react@18.3.9)(react@18.3.1)(vue@3.5.8(typescript@5.6.2)) - '@web3modal/siwe': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-react': 5.0.0(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-vue': 5.0.0(@types/react@18.3.10)(react@18.3.1)(vue@3.5.10(typescript@5.6.2)) + '@web3modal/siwe': 5.0.0(@types/react@18.3.10)(react@18.3.1) viem: 2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vue: 3.5.8(typescript@5.6.2) + vue: 3.5.10(typescript@5.6.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25347,22 +24687,22 @@ snapshots: - uWebSockets.js - utf-8-validate - '@web3modal/wagmi@5.0.0(n7lvsomc3vqwa5ijyxhghe6nqq)': + '@web3modal/wagmi@5.0.0(ixqlaj433fz4d3bc2hewfnhw5m)': dependencies: - '@wagmi/connectors': 5.1.12(@types/react@18.3.9)(@wagmi/core@2.13.6(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) - '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.13.0(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + '@wagmi/connectors': 5.1.14(@types/react@18.3.10)(@wagmi/core@2.13.8(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + '@wagmi/core': 2.13.4(@tanstack/query-core@5.56.2)(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1)(typescript@5.6.2)(viem@2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@walletconnect/ethereum-provider': 2.13.0(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) '@web3modal/polyfills': 5.0.0 - '@web3modal/scaffold': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-react': 5.0.0(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.9)(react@18.3.1) - '@web3modal/scaffold-vue': 5.0.0(@types/react@18.3.9)(react@18.3.1)(vue@3.5.8(typescript@5.6.2)) - '@web3modal/siwe': 5.0.0(@types/react@18.3.9)(react@18.3.1) + '@web3modal/scaffold': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-react': 5.0.0(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@web3modal/scaffold-utils': 5.0.0(@types/react@18.3.10)(react@18.3.1) + '@web3modal/scaffold-vue': 5.0.0(@types/react@18.3.10)(react@18.3.1)(vue@3.5.10(typescript@5.6.2)) + '@web3modal/siwe': 5.0.0(@types/react@18.3.10)(react@18.3.1) viem: 2.20.1(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vue: 3.5.8(typescript@5.6.2) + vue: 3.5.10(typescript@5.6.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25551,7 +24891,7 @@ snapshots: acorn-walk@7.2.0: {} - acorn-walk@8.3.3: + acorn-walk@8.3.4: dependencies: acorn: 8.12.1 optional: true @@ -25670,7 +25010,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@2.2.1: {} @@ -25989,7 +25329,7 @@ snapshots: '@babel/core': 7.22.5 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.20.1 + '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 27.5.1(@babel/core@7.22.5) chalk: 4.1.2 @@ -26003,7 +25343,7 @@ snapshots: '@babel/core': 7.25.2 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.20.1 + '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 27.5.1(@babel/core@7.25.2) chalk: 4.1.2 @@ -26023,7 +25363,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.8 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -26066,18 +25406,9 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.22.5): - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.5 - '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.24.7): dependencies: - '@babel/compat-data': 7.22.5 + '@babel/compat-data': 7.25.4 '@babel/core': 7.24.7 '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.24.7) semver: 6.3.1 @@ -26086,7 +25417,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.25.2): dependencies: - '@babel/compat-data': 7.22.5 + '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.25.2) semver: 6.3.1 @@ -26109,14 +25440,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.8.1(@babel/core@7.22.5): - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) - core-js-compat: 3.31.0 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs3@0.8.1(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 @@ -26133,13 +25456,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.5.0(@babel/core@7.22.5): - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-regenerator@0.5.0(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 @@ -26263,20 +25579,20 @@ snapshots: babel-preset-react-app@10.0.1: dependencies: - '@babel/core': 7.22.5 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.5) - '@babel/plugin-proposal-decorators': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.22.5) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.22.5) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.22.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.22.5) - '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-runtime': 7.22.5(@babel/core@7.22.5) - '@babel/preset-env': 7.22.5(@babel/core@7.22.5) - '@babel/preset-react': 7.22.5(@babel/core@7.22.5) - '@babel/preset-typescript': 7.22.5(@babel/core@7.22.5) + '@babel/core': 7.25.2 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-proposal-decorators': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.25.2) + '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.25.2) + '@babel/plugin-transform-runtime': 7.22.5(@babel/core@7.25.2) + '@babel/preset-env': 7.22.5(@babel/core@7.25.2) + '@babel/preset-react': 7.22.5(@babel/core@7.25.2) + '@babel/preset-typescript': 7.22.5(@babel/core@7.25.2) '@babel/runtime': 7.25.4 babel-plugin-macros: 3.1.0 babel-plugin-transform-react-remove-prop-types: 0.4.24 @@ -26569,6 +25885,13 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001664 + electron-to-chromium: 1.5.29 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + bs58@4.0.1: dependencies: base-x: 3.0.10 @@ -26720,13 +26043,15 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.23.3 - caniuse-lite: 1.0.30001647 + browserslist: 4.24.0 + caniuse-lite: 1.0.30001664 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 caniuse-lite@1.0.30001647: {} + caniuse-lite@1.0.30001664: {} + capital-case@1.0.4: dependencies: no-case: 3.0.4 @@ -26877,7 +26202,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -27213,11 +26538,11 @@ snapshots: core-js-compat@3.31.0: dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 core-js-compat@3.38.1: dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 core-js-pure@3.31.0: {} @@ -27660,7 +26985,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 dayjs@1.11.10: {} @@ -28031,6 +27356,8 @@ snapshots: electron-to-chromium@1.4.442: {} + electron-to-chromium@1.5.29: {} + electron-to-chromium@1.5.4: {} elliptic@6.5.7: @@ -28061,6 +27388,8 @@ snapshots: encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + encoding-sniffer@0.2.0: dependencies: iconv-lite: 0.6.3 @@ -28108,7 +27437,7 @@ snapshots: env-string@1.0.1: {} - envinfo@7.13.0: {} + envinfo@7.14.0: {} error-ex@1.3.2: dependencies: @@ -28421,6 +27750,8 @@ snapshots: escalade@3.1.2: {} + escalade@3.2.0: {} + escape-goat@2.1.1: {} escape-html@1.0.3: {} @@ -28822,7 +28153,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.0.2: + eslint-scope@8.1.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -28831,7 +28162,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.0.0: {} + eslint-visitor-keys@4.1.0: {} eslint-webpack-plugin@3.2.0(eslint@9.9.1(jiti@1.21.6))(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.12))(esbuild@0.17.19)): dependencies: @@ -28889,7 +28220,7 @@ snapshots: eslint@9.9.1(jiti@1.21.6): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 '@eslint/js': 9.9.1 @@ -28901,10 +28232,10 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.7(supports-color@5.5.0) escape-string-regexp: 4.0.0 - eslint-scope: 8.0.2 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - esquery: 1.5.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -28919,7 +28250,7 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: @@ -28934,11 +28265,11 @@ snapshots: event-emitter: 0.3.5 type: 2.7.3 - espree@10.1.0: + espree@10.2.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.0.0 + eslint-visitor-keys: 4.1.0 espree@9.6.1: dependencies: @@ -28952,6 +28283,10 @@ snapshots: dependencies: estraverse: 5.3.0 + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -28970,7 +28305,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -29231,6 +28566,10 @@ snapshots: dependencies: strnum: 1.0.5 + fast-xml-parser@4.5.0: + dependencies: + strnum: 1.0.5 + fastest-stable-stringify@2.0.2: {} fastq@1.17.1: @@ -29407,7 +28746,7 @@ snapshots: flow-enums-runtime@0.0.6: {} - flow-parser@0.244.0: {} + flow-parser@0.247.1: {} focus-trap@7.5.4: dependencies: @@ -29782,17 +29121,17 @@ snapshots: graphemer@1.4.0: {} - graphql-config@5.0.3(@types/node@22.5.5)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4): + graphql-config@5.0.3(@types/node@22.7.4)(bufferutil@4.0.8)(cosmiconfig-toml-loader@1.0.0)(graphql@16.9.0)(typescript@5.6.2)(utf-8-validate@6.0.4): dependencies: '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.9.0) '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) '@graphql-tools/load': 8.0.2(graphql@16.9.0) '@graphql-tools/merge': 9.0.4(graphql@16.9.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@22.5.5)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) + '@graphql-tools/url-loader': 8.0.2(@types/node@22.7.4)(bufferutil@4.0.8)(graphql@16.9.0)(utf-8-validate@6.0.4) '@graphql-tools/utils': 10.2.2(graphql@16.9.0) cosmiconfig: 8.3.6(typescript@5.6.2) graphql: 16.9.0 - jiti: 1.21.6 + jiti: 1.21.0 minimatch: 4.2.3 string-env-interpolation: 1.0.1 tslib: 2.7.0 @@ -29948,15 +29287,15 @@ snapshots: hermes-estree@0.19.1: {} - hermes-estree@0.23.0: {} + hermes-estree@0.23.1: {} hermes-parser@0.19.1: dependencies: hermes-estree: 0.19.1 - hermes-parser@0.23.0: + hermes-parser@0.23.1: dependencies: - hermes-estree: 0.23.0 + hermes-estree: 0.23.1 hermes-profile-transformer@0.0.6: dependencies: @@ -30169,11 +29508,11 @@ snapshots: i18next-browser-languagedetector@7.1.0: dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 i18next@23.11.5: dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 iconv-lite@0.4.24: dependencies: @@ -30757,7 +30096,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.5.5 + '@types/node': 22.7.4 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -30862,7 +30201,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -30877,7 +30216,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -30886,7 +30225,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -30917,7 +30256,7 @@ snapshots: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.5.5 + '@types/node': 22.7.4 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -30991,12 +30330,12 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): @@ -31195,7 +30534,7 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 merge-stream: 2.0.0 supports-color: 7.2.0 @@ -31213,7 +30552,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -31283,7 +30622,7 @@ snapshots: '@babel/register': 7.24.6(@babel/core@7.25.2) babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) chalk: 4.1.2 - flow-parser: 0.244.0 + flow-parser: 0.247.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -31308,7 +30647,7 @@ snapshots: '@babel/register': 7.24.6(@babel/core@7.25.2) babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) chalk: 4.1.2 - flow-parser: 0.244.0 + flow-parser: 0.247.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -31476,7 +30815,7 @@ snapshots: keccak@3.0.4: dependencies: node-addon-api: 2.0.2 - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 readable-stream: 3.6.2 keyv@3.1.0: @@ -31495,7 +30834,7 @@ snapshots: klona@2.0.6: {} - knip@5.30.5(@types/node@22.5.5)(typescript@5.6.2): + knip@5.30.6(@types/node@22.5.5)(typescript@5.6.2): dependencies: '@nodelib/fs.walk': 1.2.8 '@snyk/github-codeowners': 1.1.0 @@ -31514,7 +30853,7 @@ snapshots: summary: 2.1.0 typescript: 5.6.2 zod: 3.23.8 - zod-validation-error: 3.3.1(zod@3.23.8) + zod-validation-error: 3.4.0(zod@3.23.8) labeled-stream-splicer@2.0.2: dependencies: @@ -32009,54 +31348,53 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@22.5.5): + meros@1.3.0(@types/node@22.7.4): optionalDependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 methods@1.1.2: {} - metro-babel-transformer@0.80.10: + metro-babel-transformer@0.80.12: dependencies: '@babel/core': 7.25.2 flow-enums-runtime: 0.0.6 - hermes-parser: 0.23.0 + hermes-parser: 0.23.1 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - metro-cache-key@0.80.10: + metro-cache-key@0.80.12: dependencies: flow-enums-runtime: 0.0.6 - metro-cache@0.80.10: + metro-cache@0.80.12: dependencies: exponential-backoff: 3.1.1 flow-enums-runtime: 0.0.6 - metro-core: 0.80.10 + metro-core: 0.80.12 - metro-config@0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + metro-config@0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-cache: 0.80.10 - metro-core: 0.80.10 - metro-runtime: 0.80.10 + metro: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-cache: 0.80.12 + metro-core: 0.80.12 + metro-runtime: 0.80.12 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate - metro-core@0.80.10: + metro-core@0.80.12: dependencies: flow-enums-runtime: 0.0.6 lodash.throttle: 4.1.1 - metro-resolver: 0.80.10 + metro-resolver: 0.80.12 - metro-file-map@0.80.10: + metro-file-map@0.80.12: dependencies: anymatch: 3.1.3 debug: 2.6.9 @@ -32074,39 +31412,39 @@ snapshots: transitivePeerDependencies: - supports-color - metro-minify-terser@0.80.10: + metro-minify-terser@0.80.12: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.31.6 + terser: 5.34.1 - metro-resolver@0.80.10: + metro-resolver@0.80.12: dependencies: flow-enums-runtime: 0.0.6 - metro-runtime@0.80.10: + metro-runtime@0.80.12: dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 flow-enums-runtime: 0.0.6 - metro-source-map@0.80.10: + metro-source-map@0.80.12: dependencies: '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-symbolicate: 0.80.10 + metro-symbolicate: 0.80.12 nullthrows: 1.1.1 - ob1: 0.80.10 + ob1: 0.80.12 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-symbolicate@0.80.10: + metro-symbolicate@0.80.12: dependencies: flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-source-map: 0.80.10 + metro-source-map: 0.80.12 nullthrows: 1.1.1 source-map: 0.5.7 through2: 2.0.5 @@ -32114,7 +31452,7 @@ snapshots: transitivePeerDependencies: - supports-color - metro-transform-plugins@0.80.10: + metro-transform-plugins@0.80.12: dependencies: '@babel/core': 7.25.2 '@babel/generator': 7.25.6 @@ -32125,28 +31463,27 @@ snapshots: transitivePeerDependencies: - supports-color - metro-transform-worker@0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + metro-transform-worker@0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@babel/core': 7.25.2 '@babel/generator': 7.25.6 '@babel/parser': 7.25.6 '@babel/types': 7.25.6 flow-enums-runtime: 0.0.6 - metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-babel-transformer: 0.80.10 - metro-cache: 0.80.10 - metro-cache-key: 0.80.10 - metro-minify-terser: 0.80.10 - metro-source-map: 0.80.10 - metro-transform-plugins: 0.80.10 + metro: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.80.12 + metro-cache: 0.80.12 + metro-cache-key: 0.80.12 + metro-minify-terser: 0.80.12 + metro-source-map: 0.80.12 + metro-transform-plugins: 0.80.12 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate - metro@0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + metro@0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@babel/code-frame': 7.24.7 '@babel/core': 7.25.2 @@ -32164,26 +31501,25 @@ snapshots: error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 - hermes-parser: 0.23.0 + hermes-parser: 0.23.1 image-size: 1.1.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.80.10 - metro-cache: 0.80.10 - metro-cache-key: 0.80.10 - metro-config: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - metro-core: 0.80.10 - metro-file-map: 0.80.10 - metro-resolver: 0.80.10 - metro-runtime: 0.80.10 - metro-source-map: 0.80.10 - metro-symbolicate: 0.80.10 - metro-transform-plugins: 0.80.10 - metro-transform-worker: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.80.12 + metro-cache: 0.80.12 + metro-cache-key: 0.80.12 + metro-config: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-core: 0.80.12 + metro-file-map: 0.80.12 + metro-resolver: 0.80.12 + metro-runtime: 0.80.12 + metro-source-map: 0.80.12 + metro-symbolicate: 0.80.12 + metro-transform-plugins: 0.80.12 + metro-transform-worker: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) mime-types: 2.1.35 - node-fetch: 2.7.0 nullthrows: 1.1.1 serialize-error: 2.1.0 source-map: 0.5.7 @@ -32193,7 +31529,6 @@ snapshots: yargs: 17.7.2 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate @@ -32662,6 +31997,8 @@ snapshots: node-gyp-build@4.8.1: {} + node-gyp-build@4.8.2: {} + node-int64@0.4.0: {} node-preload@0.2.1: @@ -32817,7 +32154,7 @@ snapshots: oauth-sign@0.9.0: {} - ob1@0.80.10: + ob1@0.80.12: dependencies: flow-enums-runtime: 0.0.6 @@ -32986,6 +32323,15 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@5.4.1: dependencies: bl: 4.1.0 @@ -33427,7 +32773,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.47 @@ -33435,7 +32781,7 @@ snapshots: postcss-convert-values@5.1.3(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -33558,14 +32904,22 @@ snapshots: postcss: 8.4.47 ts-node: 10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.5.5)(typescript@5.6.2) - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.0): + postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.7.4)(typescript@5.6.2)): + dependencies: + lilconfig: 2.1.0 + yaml: 2.5.0 + optionalDependencies: + postcss: 8.4.47 + ts-node: 10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.7.4)(typescript@5.6.2) + + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 1.21.6 postcss: 8.4.47 tsx: 4.19.1 - yaml: 2.5.0 + yaml: 2.5.1 postcss-loader@6.2.1(postcss@8.4.47)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.12))(esbuild@0.17.19)): dependencies: @@ -33591,7 +32945,7 @@ snapshots: postcss-merge-rules@5.1.4(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.47) postcss: 8.4.47 @@ -33611,7 +32965,7 @@ snapshots: postcss-minify-params@5.1.4(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 cssnano-utils: 3.1.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -33684,7 +33038,7 @@ snapshots: postcss-normalize-unicode@5.1.1(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -33791,7 +33145,7 @@ snapshots: postcss-reduce-initial@5.1.2(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 caniuse-api: 3.0.0 postcss: 8.4.47 @@ -33846,6 +33200,8 @@ snapshots: preact@10.23.2: {} + preact@10.24.1: {} + preact@10.4.1: {} prelude-ls@1.1.2: {} @@ -34194,21 +33550,21 @@ snapshots: react-is@18.3.1: {} - react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): + react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): + react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10): + react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -34220,7 +33576,7 @@ snapshots: '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.9)(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.24.7)(@babel/preset-env@7.22.5(@babel/core@7.24.7))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -34232,8 +33588,8 @@ snapshots: jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.80.10 - metro-source-map: 0.80.10 + metro-runtime: 0.80.12 + metro-source-map: 0.80.12 mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 26.6.2 @@ -34249,7 +33605,7 @@ snapshots: ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) yargs: 17.7.2 optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' @@ -34258,7 +33614,7 @@ snapshots: - supports-color - utf-8-validate - react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10): + react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -34270,7 +33626,7 @@ snapshots: '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.9)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.9)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.22.5(@babel/core@7.25.2))(@types/react@18.3.10)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -34282,8 +33638,8 @@ snapshots: jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.80.10 - metro-source-map: 0.80.10 + metro-runtime: 0.80.12 + metro-source-map: 0.80.12 mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 26.6.2 @@ -34299,7 +33655,7 @@ snapshots: ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) yargs: 17.7.2 optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' @@ -34572,7 +33928,7 @@ snapshots: regenerator-transform@0.15.1: dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 regex-parser@2.2.11: {} @@ -34610,7 +33966,7 @@ snapshots: relay-runtime@12.0.0: dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 fbjs: 3.0.5 invariant: 2.2.4 transitivePeerDependencies: @@ -34792,24 +34148,24 @@ snapshots: hash-base: 3.1.0 inherits: 2.0.4 - rollup-plugin-terser@7.0.2(rollup@2.79.1): + rollup-plugin-terser@7.0.2(rollup@2.79.2): dependencies: '@babel/code-frame': 7.24.7 jest-worker: 26.6.2 - rollup: 2.79.1 + rollup: 2.79.2 serialize-javascript: 4.0.0 - terser: 5.31.6 + terser: 5.34.1 - rollup-plugin-visualizer@5.12.0(rollup@4.21.0): + rollup-plugin-visualizer@5.12.0(rollup@4.22.5): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.21.0 + rollup: 4.22.5 - rollup@2.79.1: + rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 @@ -34817,26 +34173,26 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.21.0: + rollup@4.22.5: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.0 - '@rollup/rollup-android-arm64': 4.21.0 - '@rollup/rollup-darwin-arm64': 4.21.0 - '@rollup/rollup-darwin-x64': 4.21.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 - '@rollup/rollup-linux-arm-musleabihf': 4.21.0 - '@rollup/rollup-linux-arm64-gnu': 4.21.0 - '@rollup/rollup-linux-arm64-musl': 4.21.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 - '@rollup/rollup-linux-riscv64-gnu': 4.21.0 - '@rollup/rollup-linux-s390x-gnu': 4.21.0 - '@rollup/rollup-linux-x64-gnu': 4.21.0 - '@rollup/rollup-linux-x64-musl': 4.21.0 - '@rollup/rollup-win32-arm64-msvc': 4.21.0 - '@rollup/rollup-win32-ia32-msvc': 4.21.0 - '@rollup/rollup-win32-x64-msvc': 4.21.0 + '@rollup/rollup-android-arm-eabi': 4.22.5 + '@rollup/rollup-android-arm64': 4.22.5 + '@rollup/rollup-darwin-arm64': 4.22.5 + '@rollup/rollup-darwin-x64': 4.22.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.5 + '@rollup/rollup-linux-arm-musleabihf': 4.22.5 + '@rollup/rollup-linux-arm64-gnu': 4.22.5 + '@rollup/rollup-linux-arm64-musl': 4.22.5 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.5 + '@rollup/rollup-linux-riscv64-gnu': 4.22.5 + '@rollup/rollup-linux-s390x-gnu': 4.22.5 + '@rollup/rollup-linux-x64-gnu': 4.22.5 + '@rollup/rollup-linux-x64-musl': 4.22.5 + '@rollup/rollup-win32-arm64-msvc': 4.22.5 + '@rollup/rollup-win32-ia32-msvc': 4.22.5 + '@rollup/rollup-win32-x64-msvc': 4.22.5 fsevents: 2.3.3 rpc-websockets@7.11.0: @@ -34977,7 +34333,7 @@ snapshots: dependencies: elliptic: 6.5.7 node-addon-api: 5.1.0 - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 seedrandom@3.0.5: {} @@ -35030,6 +34386,24 @@ snapshots: transitivePeerDependencies: - supports-color + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + sentence-case@3.0.4: dependencies: no-case: 3.0.4 @@ -35071,6 +34445,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -35634,7 +35017,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@2.0.0: dependencies: @@ -35675,7 +35058,7 @@ snapshots: stylehacks@5.1.1(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 postcss: 8.4.47 postcss-selector-parser: 6.0.13 @@ -35861,6 +35244,33 @@ snapshots: transitivePeerDependencies: - ts-node + tailwindcss@3.4.13(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.7.4)(typescript@5.6.2)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.7.4)(typescript@5.6.2)) + postcss-nested: 6.0.1(postcss@8.4.47) + postcss-selector-parser: 6.0.13 + resolve: 1.22.8 + sucrase: 3.32.0 + transitivePeerDependencies: + - ts-node + tapable@1.1.3: {} tapable@2.2.1: {} @@ -35905,7 +35315,7 @@ snapshots: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.31.6 + terser: 5.34.1 webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.12))(esbuild@0.17.19) optionalDependencies: '@swc/core': 1.7.14(@swc/helpers@0.5.12) @@ -35920,12 +35330,12 @@ snapshots: terser@5.18.2: dependencies: - '@jridgewell/source-map': 0.3.3 + '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 - terser@5.31.6: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -36187,7 +35597,28 @@ snapshots: '@tsconfig/node16': 1.0.4 '@types/node': 22.5.5 acorn: 8.12.1 - acorn-walk: 8.3.3 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.14(@swc/helpers@0.5.12) + optional: true + + ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.12))(@types/node@22.7.4)(typescript@5.6.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.7.4 + acorn: 8.12.1 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -36389,7 +35820,7 @@ snapshots: typedarray@0.0.6: {} - typedoc-plugin-markdown@4.2.7(typedoc@0.26.6(typescript@5.6.2)): + typedoc-plugin-markdown@4.2.8(typedoc@0.26.6(typescript@5.6.2)): dependencies: typedoc: 0.26.6(typescript@5.6.2) @@ -36596,6 +36027,12 @@ snapshots: dependencies: browserslist: 4.23.3 escalade: 3.1.2 + picocolors: 1.0.1 + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 picocolors: 1.1.0 update-notifier@5.1.0: @@ -36676,7 +36113,7 @@ snapshots: utf-8-validate@6.0.4: dependencies: - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 optional: true util-deprecate@1.0.2: {} @@ -36730,12 +36167,12 @@ snapshots: validate-npm-package-name@5.0.1: {} - valtio@1.11.2(@types/react@18.3.9)(react@18.3.1): + valtio@1.11.2(@types/react@18.3.10)(react@18.3.1): dependencies: proxy-compare: 2.5.1 use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 react: 18.3.1 value-or-promise@1.0.12: {} @@ -36782,13 +36219,31 @@ snapshots: - utf-8-validate - zod - vite-node@2.0.5(@types/node@22.5.5)(terser@5.31.6): + vite-node@2.0.5(@types/node@22.5.5)(terser@5.34.1): + dependencies: + cac: 6.7.14 + debug: 4.3.7(supports-color@5.5.0) + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@2.0.5(@types/node@22.7.4)(terser@5.34.1): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@5.5.0) pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - '@types/node' - less @@ -36800,17 +36255,17 @@ snapshots: - supports-color - terser - vite-plugin-json5@1.1.2(@rollup/pluginutils@5.1.0(rollup@4.21.0))(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)): + vite-plugin-json5@1.1.2(@rollup/pluginutils@5.1.0(rollup@4.22.5))(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1)): dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@rollup/pluginutils': 5.1.0(rollup@4.22.5) json5: 2.2.3 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) - vite-plugin-node-polyfills@0.22.0(rollup@4.21.0)(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6)): + vite-plugin-node-polyfills@0.22.0(rollup@4.22.5)(vite@5.4.8(@types/node@22.5.5)(terser@5.34.1)): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.21.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.22.5) node-stdlib-browser: 1.2.0 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) transitivePeerDependencies: - rollup @@ -36820,44 +36275,54 @@ snapshots: fast-glob: 3.3.1 minimatch: 6.2.0 - vite@5.4.7(@types/node@22.5.5)(terser@5.31.6): + vite@5.4.8(@types/node@22.5.5)(terser@5.34.1): dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.21.0 + rollup: 4.22.5 optionalDependencies: '@types/node': 22.5.5 fsevents: 2.3.3 - terser: 5.31.6 + terser: 5.34.1 + + vite@5.4.8(@types/node@22.7.4)(terser@5.34.1): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.22.5 + optionalDependencies: + '@types/node': 22.7.4 + fsevents: 2.3.3 + terser: 5.34.1 - vitepress-plugin-search@1.0.4-alpha.22(flexsearch@0.7.43)(vitepress@1.3.4(@algolia/client-search@4.22.1)(@types/node@22.5.5)(@types/react@18.3.9)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.31.6)(typescript@5.6.2))(vue@3.5.8(typescript@5.6.2)): + vitepress-plugin-search@1.0.4-alpha.22(flexsearch@0.7.43)(vitepress@1.3.4(@algolia/client-search@4.22.1)(@types/node@22.7.4)(@types/react@18.3.10)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.34.1)(typescript@5.6.2))(vue@3.5.10(typescript@5.6.2)): dependencies: '@types/flexsearch': 0.7.3 '@types/markdown-it': 12.2.3 flexsearch: 0.7.43 glob-to-regexp: 0.4.1 markdown-it: 13.0.1 - vitepress: 1.3.4(@algolia/client-search@4.22.1)(@types/node@22.5.5)(@types/react@18.3.9)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.31.6)(typescript@5.6.2) - vue: 3.5.8(typescript@5.6.2) + vitepress: 1.3.4(@algolia/client-search@4.22.1)(@types/node@22.7.4)(@types/react@18.3.10)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.34.1)(typescript@5.6.2) + vue: 3.5.10(typescript@5.6.2) - vitepress@1.3.4(@algolia/client-search@4.22.1)(@types/node@22.5.5)(@types/react@18.3.9)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.31.6)(typescript@5.6.2): + vitepress@1.3.4(@algolia/client-search@4.22.1)(@types/node@22.7.4)(@types/react@18.3.10)(axios@1.7.7)(idb-keyval@6.2.1)(postcss@8.4.47)(qrcode@1.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0)(terser@5.34.1)(typescript@5.6.2): dependencies: '@docsearch/css': 3.6.1 - '@docsearch/js': 3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0) + '@docsearch/js': 3.6.1(@algolia/client-search@4.22.1)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.11.0) '@shikijs/core': 1.14.1 '@shikijs/transformers': 1.14.1 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.2(vite@5.4.7(@types/node@22.5.5)(terser@5.31.6))(vue@3.5.8(typescript@5.6.2)) + '@vitejs/plugin-vue': 5.1.2(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vue@3.5.10(typescript@5.6.2)) '@vue/devtools-api': 7.3.8 '@vue/shared': 3.4.38 - '@vueuse/core': 11.0.0(vue@3.5.8(typescript@5.6.2)) - '@vueuse/integrations': 11.0.0(axios@1.7.7)(focus-trap@7.5.4)(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.5.8(typescript@5.6.2)) + '@vueuse/core': 11.0.0(vue@3.5.10(typescript@5.6.2)) + '@vueuse/integrations': 11.0.0(axios@1.7.7)(focus-trap@7.5.4)(idb-keyval@6.2.1)(qrcode@1.5.3)(vue@3.5.10(typescript@5.6.2)) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 7.1.0 shiki: 1.14.1 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) - vue: 3.5.8(typescript@5.6.2) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vue: 3.5.10(typescript@5.6.2) optionalDependencies: postcss: 8.4.47 transitivePeerDependencies: @@ -36888,7 +36353,7 @@ snapshots: - typescript - universal-cookie - vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.31.6): + vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.34.1): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -36906,8 +36371,8 @@ snapshots: tinybench: 2.9.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) - vite-node: 2.0.5(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) + vite-node: 2.0.5(@types/node@22.5.5)(terser@5.34.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.5.5 @@ -36923,7 +36388,7 @@ snapshots: - supports-color - terser - vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.31.6): + vitest@2.0.5(@types/node@22.5.5)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -36941,8 +36406,8 @@ snapshots: tinybench: 2.9.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.7(@types/node@22.5.5)(terser@5.31.6) - vite-node: 2.0.5(@types/node@22.5.5)(terser@5.31.6) + vite: 5.4.8(@types/node@22.5.5)(terser@5.34.1) + vite-node: 2.0.5(@types/node@22.5.5)(terser@5.34.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.5.5 @@ -36958,21 +36423,91 @@ snapshots: - supports-color - terser + vitest@2.0.5(@types/node@22.7.4)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.34.1): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.1.1 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.7(supports-color@5.5.0) + execa: 8.0.1 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vite-node: 2.0.5(@types/node@22.7.4)(terser@5.34.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.7.4 + '@vitest/browser': 2.0.5(bufferutil@4.0.8)(playwright@1.47.2)(typescript@5.6.2)(utf-8-validate@5.0.10)(vitest@2.0.5)(webdriverio@9.0.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + jsdom: 16.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vitest@2.0.5(@types/node@22.7.4)(@vitest/browser@2.0.5)(jsdom@16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(terser@5.34.1): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.1.1 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.7(supports-color@5.5.0) + execa: 8.0.1 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vite-node: 2.0.5(@types/node@22.7.4)(terser@5.34.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.7.4 + '@vitest/browser': 2.0.5(bufferutil@4.0.8)(playwright@1.47.2)(typescript@5.6.2)(utf-8-validate@6.0.4)(vitest@2.0.5)(webdriverio@9.0.9(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + jsdom: 16.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vlq@1.0.1: {} vm-browserify@1.1.2: {} - vue-demi@0.14.10(vue@3.5.8(typescript@5.6.2)): + vue-demi@0.14.10(vue@3.5.10(typescript@5.6.2)): dependencies: - vue: 3.5.8(typescript@5.6.2) + vue: 3.5.10(typescript@5.6.2) - vue@3.5.8(typescript@5.6.2): + vue@3.5.10(typescript@5.6.2): dependencies: - '@vue/compiler-dom': 3.5.8 - '@vue/compiler-sfc': 3.5.8 - '@vue/runtime-dom': 3.5.8 - '@vue/server-renderer': 3.5.8(vue@3.5.8(typescript@5.6.2)) - '@vue/shared': 3.5.8 + '@vue/compiler-dom': 3.5.10 + '@vue/compiler-sfc': 3.5.10 + '@vue/runtime-dom': 3.5.10 + '@vue/server-renderer': 3.5.10(vue@3.5.10(typescript@5.6.2)) + '@vue/shared': 3.5.10 optionalDependencies: typescript: 5.6.2 @@ -37365,9 +36900,9 @@ snapshots: '@babel/core': 7.25.2 '@babel/preset-env': 7.22.5(@babel/core@7.25.2) '@babel/runtime': 7.25.4 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@2.79.1) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) - '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@2.79.2) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.12.0 common-tags: 1.8.2 @@ -37376,8 +36911,8 @@ snapshots: glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.79.1 - rollup-plugin-terser: 7.0.2(rollup@2.79.1) + rollup: 2.79.2 + rollup-plugin-terser: 7.0.2(rollup@2.79.2) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 @@ -37584,6 +37119,8 @@ snapshots: yaml@2.5.0: {} + yaml@2.5.1: {} + yargs-parser@13.1.2: dependencies: camelcase: 5.3.1 @@ -37691,7 +37228,7 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-validation-error@3.3.1(zod@3.23.8): + zod-validation-error@3.4.0(zod@3.23.8): dependencies: zod: 3.23.8 @@ -37699,11 +37236,11 @@ snapshots: zod@3.23.8: {} - zustand@4.4.1(@types/react@18.3.9)(immer@9.0.21)(react@18.3.1): + zustand@4.4.1(@types/react@18.3.10)(immer@9.0.21)(react@18.3.1): dependencies: use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 immer: 9.0.21 react: 18.3.1 diff --git a/templates/nextjs/package.json b/templates/nextjs/package.json index 54fcff17546..a190740d78c 100644 --- a/templates/nextjs/package.json +++ b/templates/nextjs/package.json @@ -17,8 +17,8 @@ "@fuels/react": "^0.27.1", "@tanstack/react-query": "^5.55.4", "clsx": "2.1.1", - "@wagmi/connectors": "^5.1.12", - "@wagmi/core": "^2.13.6", + "@wagmi/connectors": "^5.1.14", + "@wagmi/core": "^2.13.8", "dotenv": "^16.4.5", "fuels": "workspace:*", "next": "14.2.13", @@ -30,7 +30,7 @@ "devDependencies": { "@types/node": "^22.5.5", "@playwright/test": "^1.47.2", - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3", "autoprefixer": "^10.4.20", "eslint": "^8.57.0", diff --git a/templates/vite/package.json b/templates/vite/package.json index d0fc36f802b..9ba09b19748 100644 --- a/templates/vite/package.json +++ b/templates/vite/package.json @@ -17,8 +17,8 @@ "@fuels/react": "^0.27.1", "@tanstack/react-query": "^5.55.4", "clsx": "2.1.1", - "@wagmi/connectors": "^5.1.12", - "@wagmi/core": "^2.13.6", + "@wagmi/connectors": "^5.1.14", + "@wagmi/core": "^2.13.8", "dotenv": "^16.4.5", "fuels": "workspace:*", "react": "^18.3.1", @@ -28,9 +28,9 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.1", "@eslint/js": "^9.10.0", - "@tanstack/router-plugin": "^1.56.4", + "@tanstack/router-plugin": "^1.58.12", "@playwright/test": "^1.47.2", - "@types/react": "^18.3.8", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3", "autoprefixer": "^10.4.20", "eslint": "^8.57.0", @@ -41,7 +41,7 @@ "tailwindcss": "^3.4.12", "typescript": "~5.6.2", "typescript-eslint": "^8.5.0", - "vite": "^5.4.7", + "vite": "^5.4.8", "vitest": "~2.0.5" } } From a4b16b1abbfbf1df8e4d9c5b78fcb96d26a1bf6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 10:57:02 +0000 Subject: [PATCH 108/129] build(deps): bump chalk from 4.0.0 to 4.1.2 (#3231) * build(deps): bump chalk from 4.0.0 to 4.1.2 Bumps [chalk](https://github.com/chalk/chalk) from 4.0.0 to 4.1.2. - [Release notes](https://github.com/chalk/chalk/releases) - [Commits](https://github.com/chalk/chalk/compare/v4.0.0...v4.1.2) --- updated-dependencies: - dependency-name: chalk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * build: update dependency changeset --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/honest-toes-punch.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .changeset/honest-toes-punch.md diff --git a/.changeset/honest-toes-punch.md b/.changeset/honest-toes-punch.md new file mode 100644 index 00000000000..f258b42be2f --- /dev/null +++ b/.changeset/honest-toes-punch.md @@ -0,0 +1,4 @@ +--- +--- + +build(deps): bump chalk from 4.0.0 to 4.1.2 From b43cf2b7060fda1daac5b50ef6163747d5e1ba5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nedim=20Salki=C4=87?= Date: Tue, 1 Oct 2024 14:00:02 +0200 Subject: [PATCH 109/129] chore: disable `no-continue` eslint rule (#3225) --- .changeset/thin-waves-care.md | 4 ++++ .eslintrc.js | 1 + packages/account/src/providers/fuel-graphql-subscriber.ts | 1 - packages/contract/src/contract-factory.ts | 1 - packages/merkle/src/sparse/sparseMerkleTree.ts | 4 ---- packages/utils/src/utils/toUtf8String.ts | 1 - 6 files changed, 5 insertions(+), 7 deletions(-) create mode 100644 .changeset/thin-waves-care.md diff --git a/.changeset/thin-waves-care.md b/.changeset/thin-waves-care.md new file mode 100644 index 00000000000..12799d87b0e --- /dev/null +++ b/.changeset/thin-waves-care.md @@ -0,0 +1,4 @@ +--- +--- + +chore: disable `no-continue` eslint rule \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 90c1d962869..7624456d5ca 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -21,6 +21,7 @@ module.exports = { }, }, rules: { + 'no-continue': 'off', 'no-restricted-syntax': [ 'off', { diff --git a/packages/account/src/providers/fuel-graphql-subscriber.ts b/packages/account/src/providers/fuel-graphql-subscriber.ts index 5ada84b9356..d0ff7a9ad42 100644 --- a/packages/account/src/providers/fuel-graphql-subscriber.ts +++ b/packages/account/src/providers/fuel-graphql-subscriber.ts @@ -76,7 +76,6 @@ export class FuelGraphqlSubscriber implements AsyncIterator { .replace(':keep-alive-text\n\n', ''); if (decoded === '') { - // eslint-disable-next-line no-continue continue; } diff --git a/packages/contract/src/contract-factory.ts b/packages/contract/src/contract-factory.ts index 981091700ae..9adcfb3a55b 100644 --- a/packages/contract/src/contract-factory.ts +++ b/packages/contract/src/contract-factory.ts @@ -344,7 +344,6 @@ export default class ContractFactory { // is still valid so we can use this for the loader contract if ((err).message.indexOf(`BlobId is already taken ${blobId}`) > -1) { uploadedBlobs.push(blobId); - // eslint-disable-next-line no-continue continue; } diff --git a/packages/merkle/src/sparse/sparseMerkleTree.ts b/packages/merkle/src/sparse/sparseMerkleTree.ts index cadf8780a97..2e738f63174 100644 --- a/packages/merkle/src/sparse/sparseMerkleTree.ts +++ b/packages/merkle/src/sparse/sparseMerkleTree.ts @@ -114,7 +114,6 @@ export class SparseMerkleTree { for (let i = 0; i < sideNodes.length; i += 1) { if (sideNodes[i] === '') { - // eslint-disable-next-line no-continue continue; } @@ -127,7 +126,6 @@ export class SparseMerkleTree { // This is the leaf sibling that needs to be percolated up the tree. currentHash = sideNode; currentData = sideNode; - // eslint-disable-next-line no-continue continue; } else { // This is the node sibling that needs to be left in its place. @@ -139,7 +137,6 @@ export class SparseMerkleTree { if (!nonPlaceholderReached && sideNode === ZERO) { // We found another placeholder sibling node, keep going up the // tree until we find the first sibling that is not a placeholder. - // eslint-disable-next-line no-continue continue; } else if (!nonPlaceholderReached) { // We found the first sibling node that is not a placeholder, it is @@ -221,7 +218,6 @@ export class SparseMerkleTree { if (commonPrefixCount !== MAX_HEIGHT && commonPrefixCount > MAX_HEIGHT - 1 - i) { sideNode = ZERO; } else { - // eslint-disable-next-line no-continue continue; } } else { diff --git a/packages/utils/src/utils/toUtf8String.ts b/packages/utils/src/utils/toUtf8String.ts index a4a3795b1a7..992f37b667b 100644 --- a/packages/utils/src/utils/toUtf8String.ts +++ b/packages/utils/src/utils/toUtf8String.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-continue */ import type { BytesLike } from '@fuel-ts/interfaces'; import { arrayify } from './arrayify'; From 7f38a0cb5dd59e8d229d1e77fc5b8db633c31862 Mon Sep 17 00:00:00 2001 From: chad Date: Tue, 1 Oct 2024 12:09:13 -0500 Subject: [PATCH 110/129] chore: re-arrange console.assert statements --- .../src/encoding/working-with-bytes.ts | 102 +++++++----------- 1 file changed, 38 insertions(+), 64 deletions(-) diff --git a/apps/docs-snippets2/src/encoding/working-with-bytes.ts b/apps/docs-snippets2/src/encoding/working-with-bytes.ts index e66df30771a..31e3c66ff4b 100644 --- a/apps/docs-snippets2/src/encoding/working-with-bytes.ts +++ b/apps/docs-snippets2/src/encoding/working-with-bytes.ts @@ -20,43 +20,35 @@ import { // #region working-with-bytes-1 const u8Coder = new NumberCoder('u8'); const encodedU8 = u8Coder.encode(255); -// encodedU8 = new Uint8Array([255]); - -const u16Coder = new NumberCoder('u16'); -const encodedU16 = u16Coder.encode(255); -// encodedU16 = new Uint8Array([0, 255]); - -const u32Coder = new NumberCoder('u32'); -const encodedU32 = u32Coder.encode(255); -// encodedU32 = new Uint8Array([0, 0, 0, 255]); - -const u64Coder = new BigNumberCoder('u64'); -const encodedU64 = u64Coder.encode(255); -// encodedU64 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255]); - -const u256Coder = new BigNumberCoder('u256'); -const encodedU256 = u256Coder.encode(255); -// encodedU256 = new Uint8Array([ -// 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 -// ]); -// #endregion working-with-bytes-1 - console.assert( encodedU8.toString() === new Uint8Array([255]).toString(), 'Encoded U8 should be equal to 255' ); + +const u16Coder = new NumberCoder('u16'); +const encodedU16 = u16Coder.encode(255); console.assert( encodedU16.toString() === new Uint8Array([0, 255]).toString(), 'Encoded U16 should be equal to 255' ); + +const u32Coder = new NumberCoder('u32'); +const encodedU32 = u32Coder.encode(255); + console.assert( encodedU32.toString() === new Uint8Array([0, 0, 0, 255]).toString(), 'Encoded U32 should be equal to 255' ); + +const u64Coder = new BigNumberCoder('u64'); +const encodedU64 = u64Coder.encode(255); console.assert( encodedU64.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255]).toString(), 'Encoded U64 should be equal to 255' ); + +const u256Coder = new BigNumberCoder('u256'); +const encodedU256 = u256Coder.encode(255); console.assert( encodedU256.toString() === new Uint8Array([ @@ -65,28 +57,25 @@ console.assert( ]).toString(), 'Encoded U256 should be equal to 255' ); +// #endregion working-with-bytes-1 // #region working-with-bytes-2 - const booleanCoder = new BooleanCoder(); const encodedTrue = booleanCoder.encode(true); -// encodedTrue = new Uint8Array([1]); - -const encodedFalse = booleanCoder.encode(false); -// encodedFalse = new Uint8Array([0]); -// #endregion working-with-bytes-2 - console.assert( encodedTrue.toString() === new Uint8Array([1]).toString(), 'Encoded True should be equal to 1' ); + +const encodedFalse = booleanCoder.encode(false); console.assert( encodedFalse.toString() === new Uint8Array([0]).toString(), 'Encoded False should be equal to 0' ); -// #region working-with-bytes-3 +// #endregion working-with-bytes-2 +// #region working-with-bytes-3 const stringCoder = new StringCoder(5); const encoded = stringCoder.encode('hello'); // #endregion working-with-bytes-3 @@ -97,84 +86,69 @@ console.assert( ); // #region working-with-bytes-4 - const b256Coder = new B256Coder(); const encodedB256 = b256Coder.encode(hexlify(randomBytes(32))); -// encodedB256 = new Uint8Array(32); +console.assert(encodedB256.length === 32, 'Encoded B256 should be equal to 32'); const b512Coder = new B512Coder(); const encodedB512 = b512Coder.encode(hexlify(randomBytes(64))); -// encodedB512 = new Uint8Array(64); -// #endregion working-with-bytes-4 - -console.assert(encodedB256.length === 32, 'Encoded B256 should be equal to 32'); console.assert(encodedB512.length === 64, 'Encoded B512 should be equal to 64'); +// #endregion working-with-bytes-4 // #region working-with-bytes-5 - const tupleCoder = new TupleCoder([new NumberCoder('u8'), new NumberCoder('u16')]); const encodedTuple = tupleCoder.encode([255, 255]); -// encodedTuple = new Uint8Array([255, 0, 255]); +console.assert( + encodedTuple.toString() === new Uint8Array([255, 0, 255]).toString(), + 'Encoded Tuple should be equal to [255, 0, 255]' +); const structCoder = new StructCoder('struct', { a: new NumberCoder('u8'), b: new NumberCoder('u16'), }); const encodedStruct = structCoder.encode({ a: 255, b: 255 }); -// encodedStruct = new Uint8Array([255, 0, 255]); - -const arrayCoder = new ArrayCoder(new NumberCoder('u8'), 4); -const encodedArray = arrayCoder.encode([255, 0, 255, 0]); -// encodedArray = new Uint8Array([255, 0, 255, 0]); - -const enumCoder = new EnumCoder('enum', { a: new NumberCoder('u32') }); -const encodedEnum = enumCoder.encode({ a: 255 }); -// encodedEnum = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]); -// #endregion working-with-bytes-5 - -console.assert( - encodedTuple.toString() === new Uint8Array([255, 0, 255]).toString(), - 'Encoded Tuple should be equal to [255, 0, 255]' -); console.assert( encodedStruct.toString() === new Uint8Array([255, 0, 255]).toString(), 'Encoded Struct should be equal to [255, 0, 255]' ); + +const arrayCoder = new ArrayCoder(new NumberCoder('u8'), 4); +const encodedArray = arrayCoder.encode([255, 0, 255, 0]); console.assert( encodedArray.toString() === new Uint8Array([255, 0, 255, 0]).toString(), 'Encoded Array should be equal to [255, 0, 255, 0]' ); + +const enumCoder = new EnumCoder('enum', { a: new NumberCoder('u32') }); +const encodedEnum = enumCoder.encode({ a: 255 }); console.assert( encodedEnum.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]).toString(), 'Encoded Enum should be equal to [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]' ); +// #endregion working-with-bytes-5 // #region working-with-bytes-6 - const vecCoder = new VecCoder(new NumberCoder('u8')); const encodedVec = vecCoder.encode([255, 0, 255]); -// encodedVec = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]); - -const stdStringCoder = new StdStringCoder(); -const encodedStdString = stdStringCoder.encode('hello'); -// encodedStdString = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]); - -const rawSliceCoder = new RawSliceCoder(); -const encodedRawSlice = rawSliceCoder.encode([1, 2, 3, 4]); -// encodedRawSlice = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]); -// #endregion working-with-bytes-6 - console.assert( encodedVec.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]).toString(), 'Encoded Vec should be equal to [0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]' ); + +const stdStringCoder = new StdStringCoder(); +const encodedStdString = stdStringCoder.encode('hello'); console.assert( encodedStdString.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]).toString(), 'Encoded StdString should be equal to [0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]' ); + +const rawSliceCoder = new RawSliceCoder(); +const encodedRawSlice = rawSliceCoder.encode([1, 2, 3, 4]); console.assert( encodedRawSlice.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]).toString(), 'Encoded RawSlice should be equal to [0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]' ); +// #endregion working-with-bytes-6 // #endregion full From 9fe51f23afbbfc432efcca40035266bfcafe6f3c Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 3 Oct 2024 11:45:18 -0500 Subject: [PATCH 111/129] chore: remove console.assert --- .../src/create-fuels/decrement-counter.ts | 34 ++++----- .../src/encoding/encode-and-decode.ts | 14 +--- .../src/encoding/working-with-bytes.ts | 76 ++----------------- .../src/scripts/script-custom-transaction.ts | 9 ++- .../src/scripts/script-with-configurable.ts | 6 +- .../src/testing/launching-a-test-node.node.ts | 41 +++------- .../src/testing/tweaking-the-blockchain.ts | 11 +-- .../src/utilities/unit-conversion.ts | 13 +--- .../getting-started-with-wallet-manager.ts | 19 +---- .../locking-and-unlocking-wallet-manager.ts | 7 +- 10 files changed, 46 insertions(+), 184 deletions(-) diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts index ae3e3cc6451..1839115afaf 100644 --- a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { Wallet, Provider } from 'fuels'; @@ -19,34 +20,25 @@ const incrementedValue = 5; const decrementedValue = 2; // We can now call the contract functions and test the results. Lets assert the initial value of the counter. -const { waitForResult: getCountWaitForResult } = await contract.functions.get_count().call(); +const { waitForResult: getCountWaitForResult } = await contract.functions + .get_count() + .call(); const { value: initialGetCountValue } = await getCountWaitForResult(); -console.assert( - initialGetCountValue.toNumber() === initialCount, - 'Initial value should be equal to the initial count.' -); - // Next we'll increment the counter, so that we can decrement it. -const { waitForResult: incWaitForResult } = await contract.functions.increment_count(5).call(); +const { waitForResult: incWaitForResult } = await contract.functions + .increment_count(5) + .call(); const { value: incValue } = await incWaitForResult(); -console.assert( - incValue.toNumber() === incrementedValue, - 'Incremented value should be equal to the incremented value.' -); // Next, we'll decrement the counter by 3 and assert the new value. -const { waitForResult: decWaitForResult } = await contract.functions.decrement_count(3).call(); +const { waitForResult: decWaitForResult } = await contract.functions + .decrement_count(3) + .call(); const { value: decValue } = await decWaitForResult(); -console.assert( - decValue.toNumber() === decrementedValue, - 'Decremented value should be equal to the decremented value.' -); // Finally, we'll test the get count function again to ensure parity. -const { waitForResult: finalWaitForResult } = await contract.functions.get_count().call(); +const { waitForResult: finalWaitForResult } = await contract.functions + .get_count() + .call(); const { value: finalValue } = await finalWaitForResult(); -console.assert( - finalValue.toNumber() === decrementedValue, - 'Final value should be equal to the decremented value.' -); // #endregion full diff --git a/apps/docs-snippets2/src/encoding/encode-and-decode.ts b/apps/docs-snippets2/src/encoding/encode-and-decode.ts index eec55decdd0..276e34706d8 100644 --- a/apps/docs-snippets2/src/encoding/encode-and-decode.ts +++ b/apps/docs-snippets2/src/encoding/encode-and-decode.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import type { JsonAbi, TransactionResultReturnDataReceipt } from 'fuels'; import { @@ -100,16 +101,3 @@ const [decodedReturnData] = abiInterface.decodeType(argument, returnData); const totalValue = argumentToAdd + initialValue; // #endregion encode-and-decode-5 // #endregion full -console.assert(value === totalValue, 'Value should be equal to the total value.'); -console.assert( - decodedReturnData === totalValue, - 'Decoded return data should be equal to the total value.' -); -console.assert( - encodedArguments.toString() === new Uint8Array([0, 0, 0, 10]).toString(), - 'Encoded arguments should be equal to the total value.' -); -console.assert( - returnData.toString() === new Uint8Array([0, 0, 0, 20]).toString(), - 'Return data should be equal to the total value.' -); diff --git a/apps/docs-snippets2/src/encoding/working-with-bytes.ts b/apps/docs-snippets2/src/encoding/working-with-bytes.ts index 31e3c66ff4b..1dc89c369dd 100644 --- a/apps/docs-snippets2/src/encoding/working-with-bytes.ts +++ b/apps/docs-snippets2/src/encoding/working-with-bytes.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { randomBytes } from 'crypto'; import { @@ -20,58 +21,25 @@ import { // #region working-with-bytes-1 const u8Coder = new NumberCoder('u8'); const encodedU8 = u8Coder.encode(255); -console.assert( - encodedU8.toString() === new Uint8Array([255]).toString(), - 'Encoded U8 should be equal to 255' -); const u16Coder = new NumberCoder('u16'); const encodedU16 = u16Coder.encode(255); -console.assert( - encodedU16.toString() === new Uint8Array([0, 255]).toString(), - 'Encoded U16 should be equal to 255' -); const u32Coder = new NumberCoder('u32'); const encodedU32 = u32Coder.encode(255); -console.assert( - encodedU32.toString() === new Uint8Array([0, 0, 0, 255]).toString(), - 'Encoded U32 should be equal to 255' -); - const u64Coder = new BigNumberCoder('u64'); const encodedU64 = u64Coder.encode(255); -console.assert( - encodedU64.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255]).toString(), - 'Encoded U64 should be equal to 255' -); const u256Coder = new BigNumberCoder('u256'); const encodedU256 = u256Coder.encode(255); -console.assert( - encodedU256.toString() === - new Uint8Array([ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 255, - ]).toString(), - 'Encoded U256 should be equal to 255' -); // #endregion working-with-bytes-1 // #region working-with-bytes-2 const booleanCoder = new BooleanCoder(); const encodedTrue = booleanCoder.encode(true); -console.assert( - encodedTrue.toString() === new Uint8Array([1]).toString(), - 'Encoded True should be equal to 1' -); const encodedFalse = booleanCoder.encode(false); -console.assert( - encodedFalse.toString() === new Uint8Array([0]).toString(), - 'Encoded False should be equal to 0' -); // #endregion working-with-bytes-2 @@ -80,75 +48,41 @@ const stringCoder = new StringCoder(5); const encoded = stringCoder.encode('hello'); // #endregion working-with-bytes-3 -console.assert( - encoded.toString() === new Uint8Array([104, 101, 108, 108, 111]).toString(), - 'Encoded should be equal to hello' -); - // #region working-with-bytes-4 const b256Coder = new B256Coder(); const encodedB256 = b256Coder.encode(hexlify(randomBytes(32))); -console.assert(encodedB256.length === 32, 'Encoded B256 should be equal to 32'); - const b512Coder = new B512Coder(); const encodedB512 = b512Coder.encode(hexlify(randomBytes(64))); -console.assert(encodedB512.length === 64, 'Encoded B512 should be equal to 64'); // #endregion working-with-bytes-4 // #region working-with-bytes-5 -const tupleCoder = new TupleCoder([new NumberCoder('u8'), new NumberCoder('u16')]); +const tupleCoder = new TupleCoder([ + new NumberCoder('u8'), + new NumberCoder('u16'), +]); const encodedTuple = tupleCoder.encode([255, 255]); -console.assert( - encodedTuple.toString() === new Uint8Array([255, 0, 255]).toString(), - 'Encoded Tuple should be equal to [255, 0, 255]' -); const structCoder = new StructCoder('struct', { a: new NumberCoder('u8'), b: new NumberCoder('u16'), }); const encodedStruct = structCoder.encode({ a: 255, b: 255 }); -console.assert( - encodedStruct.toString() === new Uint8Array([255, 0, 255]).toString(), - 'Encoded Struct should be equal to [255, 0, 255]' -); const arrayCoder = new ArrayCoder(new NumberCoder('u8'), 4); const encodedArray = arrayCoder.encode([255, 0, 255, 0]); -console.assert( - encodedArray.toString() === new Uint8Array([255, 0, 255, 0]).toString(), - 'Encoded Array should be equal to [255, 0, 255, 0]' -); const enumCoder = new EnumCoder('enum', { a: new NumberCoder('u32') }); const encodedEnum = enumCoder.encode({ a: 255 }); -console.assert( - encodedEnum.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]).toString(), - 'Encoded Enum should be equal to [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]' -); // #endregion working-with-bytes-5 // #region working-with-bytes-6 const vecCoder = new VecCoder(new NumberCoder('u8')); const encodedVec = vecCoder.encode([255, 0, 255]); -console.assert( - encodedVec.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]).toString(), - 'Encoded Vec should be equal to [0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]' -); const stdStringCoder = new StdStringCoder(); const encodedStdString = stdStringCoder.encode('hello'); -console.assert( - encodedStdString.toString() === - new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]).toString(), - 'Encoded StdString should be equal to [0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]' -); const rawSliceCoder = new RawSliceCoder(); const encodedRawSlice = rawSliceCoder.encode([1, 2, 3, 4]); -console.assert( - encodedRawSlice.toString() === new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]).toString(), - 'Encoded RawSlice should be equal to [0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]' -); // #endregion working-with-bytes-6 // #endregion full diff --git a/apps/docs-snippets2/src/scripts/script-custom-transaction.ts b/apps/docs-snippets2/src/scripts/script-custom-transaction.ts index 265dc6fd971..d229b093fee 100644 --- a/apps/docs-snippets2/src/scripts/script-custom-transaction.ts +++ b/apps/docs-snippets2/src/scripts/script-custom-transaction.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { BN, ScriptTransactionRequest, coinQuantityfy } from 'fuels'; import { ASSET_A, ASSET_B, launchTestNode } from 'fuels/test-utils'; @@ -41,7 +42,10 @@ request .addContractInputAndOutput(contract.id); // 4. Get the transaction resources -const quantities = [coinQuantityfy([1000, ASSET_A]), coinQuantityfy([500, ASSET_B])]; +const quantities = [ + coinQuantityfy([1000, ASSET_A]), + coinQuantityfy([500, ASSET_B]), +]; // 5. Calculate the transaction fee const txCost = await wallet.getTransactionCost(request, { quantities }); @@ -57,9 +61,6 @@ await tx.waitForResult(); const contractFinalBalanceAssetA = await contract.getBalance(ASSET_A); const contractFinalBalanceAssetB = await contract.getBalance(ASSET_B); - -console.assert(new BN(contractFinalBalanceAssetA).toNumber() === 1000, 'unexpected balance'); -console.assert(new BN(contractFinalBalanceAssetB).toNumber() === 500, 'unexpected balance'); // #endregion custom-transactions-2 // #endregion full diff --git a/apps/docs-snippets2/src/scripts/script-with-configurable.ts b/apps/docs-snippets2/src/scripts/script-with-configurable.ts index 1f519755f50..102ac12eef2 100644 --- a/apps/docs-snippets2/src/scripts/script-with-configurable.ts +++ b/apps/docs-snippets2/src/scripts/script-with-configurable.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { Script, BN, Wallet, Provider } from 'fuels'; @@ -22,7 +23,6 @@ const { value } = await waitForResult(); const expectedTotal = inputtedValue + configurableConstants.AMOUNT; -console.assert(new BN(value as number).toNumber() === expectedTotal, 'unexpected total'); // #endregion script-with-configurable-contants-2 const argument = 10; @@ -47,9 +47,5 @@ const { waitForResult: waitForActualGasUsed } = await tx.call(); const { value: valueOfActualGasUsed, gasUsed: gasUsedOfActualGasUsed } = await waitForActualGasUsed(); // #endregion preparing-scripts -console.assert(txRequest, 'txn request undefined'); -console.assert(txId, 'txn id undefined'); -console.assert(new BN(valueOfActualGasUsed as number).toNumber() === expected, 'unexpected total'); -console.assert(new BN(gasUsedOfActualGasUsed).toNumber() > 0, 'gas used is 0'); // #endregion full diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 6fe9323a7f8..789dce56fdb 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -46,9 +46,6 @@ const { const { waitForResult } = await contract.functions.get_count().call(); const response = await waitForResult(); -console.assert(response.value.toNumber() === 0, 'Counter is not initialized'); -console.assert(provider instanceof Provider, 'Provider is not instance of Provider'); -console.assert(wallets.length === 4, 'Wallets length is not 4'); // #endregion basic-example // #region advanced-example @@ -77,15 +74,6 @@ const { wallets: [wallet1, wallet2, wallet3, wallet4], } = counterContractNode; -console.assert( - counterContract instanceof CounterFactory, - 'CounterFactory is not instance of CounterFactory' -); -console.assert(wallet1 instanceof WalletUnlocked, 'Wallet1 is not instance of WalletUnlocked'); -console.assert(wallet2 instanceof WalletUnlocked, 'Wallet2 is not instance of WalletUnlocked'); -console.assert(wallet3 instanceof WalletUnlocked, 'Wallet3 is not instance of WalletUnlocked'); -console.assert(wallet4 instanceof WalletUnlocked, 'Wallet4 is not instance of WalletUnlocked'); - // #endregion advanced-example // #region custom-fuel-core-args @@ -96,24 +84,28 @@ process.env.DEFAULT_FUEL_CORE_ARGS = `--tx-max-depth 20`; const nodeWithCustomArgs = await launchTestNode(); const { provider: providerWithCustomArgs } = nodeWithCustomArgs; -console.assert(providerWithCustomArgs.getNode().maxDepth.toNumber() === 20, 'Max depth is not 20'); process.env.DEFAULT_FUEL_CORE_ARGS = ''; // #endregion custom-fuel-core-args nodeWithCustomArgs.cleanup(); -const mySnapshotDirPath = join(__dirname, '../../../../', '.fuel-core', 'configs'); +const mySnapshotDirPath = join( + __dirname, + '../../../../', + '.fuel-core', + 'configs' +); // #region custom-chain-config process.env.DEFAULT_CHAIN_SNAPSHOT_DIR = mySnapshotDirPath; const launchedWithCustomChainConfig = await launchTestNode(); -const { provider: providerWithCustomChainConfig } = launchedWithCustomChainConfig; +const { provider: providerWithCustomChainConfig } = + launchedWithCustomChainConfig; const { name } = await providerWithCustomChainConfig.fetchChain(); -console.assert(name === 'custom-chain-config', 'Chain name is not custom-chain-config'); // #endregion custom-chain-config launchedWithCustomChainConfig.cleanup(); @@ -150,10 +142,8 @@ const { wallets: [walletWithCustomAssetIds], } = nodeWithCustomAssetIds; -const { coins } = await walletWithCustomAssetIds.getCoins(randomAssetIds[0].value); -console.assert( - coins[0].assetId === randomAssetIds[0].value, - 'Asset id is not randomAssetIds[0].value' +const { coins } = await walletWithCustomAssetIds.getCoins( + randomAssetIds[0].value ); // #endregion asset-ids @@ -176,10 +166,6 @@ const { messages: [messageWithTestMessages], } = await walletWithTestMessages.getMessages(); -console.assert( - messageWithTestMessages.nonce === testMessage.nonce, - 'Nonce is not testMessage.nonce' -); // #endregion test-messages nodeWithTestMessages.cleanup(); @@ -201,15 +187,12 @@ using launchedWithTestMessagesOnChain = await launchTestNode({ }, }); -const { provider: providerWithTestMessagesOnChain } = launchedWithTestMessagesOnChain; +const { provider: providerWithTestMessagesOnChain } = + launchedWithTestMessagesOnChain; recipient.provider = providerWithTestMessagesOnChain; const { messages: [messageOnChain], } = await recipient.getMessages(); -console.assert( - messageOnChain.nonce === testMessageOnChain.nonce, - 'Nonce is not testMessageOnChain.nonce' -); // #endregion test-messages-chain diff --git a/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts b/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts index bb35b35a55d..59450cd4531 100644 --- a/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts +++ b/apps/docs-snippets2/src/testing/tweaking-the-blockchain.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/no-non-null-assertion */ // #region full // #region produce-blocks @@ -19,8 +20,6 @@ const producedBlock = await provider.getBlock(producedBlockHeight.toNumber()); const oldest = DateTime.fromTai64(timeLastBlockProduced); const newest = DateTime.fromTai64(producedBlock!.time); // newest >= oldest -console.assert(producedBlock, 'No latest block'); -console.assert(newest >= oldest, 'Newest block is not greater or equal to oldest block'); // #endregion produce-blocks // #region produceBlocks-custom-timestamp @@ -31,15 +30,13 @@ const latestBlock = await providerWithCustomTimestamp.getBlock('latest'); if (!latestBlock) { throw new Error('No latest block'); } -const latestBlockTimestamp = DateTime.fromTai64(latestBlock.time).toUnixMilliseconds(); +const latestBlockTimestamp = DateTime.fromTai64( + latestBlock.time +).toUnixMilliseconds(); const newBlockHeight = await providerWithCustomTimestamp.produceBlocks( 3, latestBlockTimestamp + 1000 ); -console.assert( - newBlockHeight.toHex() === latestBlock.height.add(3).toHex(), - 'New block height is not equal to latest block height + 3' -); // #endregion produceBlocks-custom-timestamp // #endregion full diff --git a/apps/docs-snippets2/src/utilities/unit-conversion.ts b/apps/docs-snippets2/src/utilities/unit-conversion.ts index 1c441deed48..6622df70563 100644 --- a/apps/docs-snippets2/src/utilities/unit-conversion.ts +++ b/apps/docs-snippets2/src/utilities/unit-conversion.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { BN, DECIMAL_GWEI, DECIMAL_KWEI, bn, Provider, Wallet } from 'fuels'; @@ -9,7 +10,6 @@ const myBigNumberOne = '100000000'; const resultOne = new BN('100000000').toString(); -console.assert(resultOne === myBigNumberOne, 'BN is not equal to expected'); // #endregion instantiation-1 const myBigNumberTwo = '100000000'; @@ -17,7 +17,6 @@ const myBigNumberTwo = '100000000'; // #region instantiation-2 const resultTwo = bn('100000000').toString(); -console.assert(resultTwo === myBigNumberTwo, 'BN is not equal to expected'); // #endregion instantiation-2 // #region contract-calls-1 @@ -35,14 +34,12 @@ const MAX_U64 = bn('18446744073709551615'); const { waitForResult } = await contract.functions.echo_u64(MAX_U64).call(); const { value } = await waitForResult(); -console.assert(value.toString() === MAX_U64.toString(), 'BN is not equal to expected'); // #endregion contract-calls-1 const myBigNumberThree = '1'; // #region parse-units-1 const resultThree = bn.parseUnits('0.000000001').toString(); -console.assert(resultThree === myBigNumberThree, 'BN is not equal to expected'); // #endregion parse-units-1 // #endregion parse-units-1 @@ -50,7 +47,6 @@ console.assert(resultThree === myBigNumberThree, 'BN is not equal to expected'); // #region parse-units-2 const myBigNumberFour = '100100000000000'; const resultFour = bn.parseUnits('100100').toString(); -console.assert(resultFour === myBigNumberFour, 'BN is not equal to expected'); // #endregion parse-units-2 // #endregion parse-units-3 @@ -59,7 +55,6 @@ console.assert(resultFour === myBigNumberFour, 'BN is not equal to expected'); const myBigNumberFive = '100100000200001'; const resultFive = bn.parseUnits('100,100.000200001').toString(); -console.assert(resultFive === myBigNumberFive, 'BN is not equal to expected'); // #endregion parse-units-3 // #endregion parse-units-4 @@ -68,7 +63,6 @@ console.assert(resultFive === myBigNumberFive, 'BN is not equal to expected'); const myBigNumberSix = '1000000000'; const resultSix = bn.parseUnits('1', DECIMAL_GWEI).toString(); -console.assert(resultSix === myBigNumberSix, 'BN is not equal to expected'); // #endregion parse-units-4 // #region format-1 @@ -76,7 +70,6 @@ const myBigNumberSeven = '1.000'; const oneGwei = bn('1000000000'); const resultSeven = oneGwei.format(); -console.assert(resultSeven === myBigNumberSeven, 'BN is not equal to expected'); // #endregion format-1 // #region format-2 @@ -85,21 +78,18 @@ const myBigNumberEight = '2.000'; const twoGwei = bn('2000000000'); const resultEight = twoGwei.format({ units: DECIMAL_GWEI }); -console.assert(resultEight === myBigNumberEight, 'BN is not equal to expected'); // #endregion format-2 // #region format-3 const oneDecimalGwei = '1.0'; const formattedGwei = oneGwei.format({ precision: 1 }); -console.assert(formattedGwei === oneDecimalGwei, 'BN is not equal to expected'); // #endregion format-3 // #region format-units-1 const myFormattedGwei = '1.000000000'; const formattedUnitsGwei = oneGwei.formatUnits(); -console.assert(formattedUnitsGwei === myFormattedGwei, 'BN is not equal to expected'); // #endregion format-units-1 // #region format-units-2 @@ -108,7 +98,6 @@ const myFormattedKwei = '1.000000000000000'; const oneKwei = bn('1000000000000000'); const formattedUnitsKwei = oneKwei.formatUnits(DECIMAL_KWEI); -console.assert(formattedUnitsKwei === myFormattedKwei, 'BN is not equal to expected'); // #endregion format-units-2 // #endregion full diff --git a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts index 36eb3f4313d..e4cc611ae5e 100644 --- a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts +++ b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { WalletManager, Wallet, Provider } from 'fuels'; @@ -47,28 +48,10 @@ const vaults = walletManager.getVaults(); // #region getting-started-with-wallet-manager-6 -console.assert( - JSON.stringify(vaults) === - JSON.stringify([ - { - title: 'My first private key vault', - type: 'privateKey', - vaultId: 0, - }, - { - title: 'My second private key vault', - type: 'privateKey', - vaultId: 1, - }, - ]), - 'Vaults do not match expected structure' -); // #endregion getting-started-with-wallet-manager-6 // #region getting-started-with-wallet-manager-7 const retrievedWallet = walletManager.getWallet(myWallet.address); -console.assert(retrievedWallet.address.equals(myWallet.address), 'Wallets do not match'); -console.assert(vaults.length > 0, 'Vaults length should be greater than 0'); // #endregion getting-started-with-wallet-manager-7 // #endregion full diff --git a/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts index fde13a7b36a..909700ce511 100644 --- a/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts +++ b/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region full import { WalletManager } from 'fuels'; @@ -10,7 +11,8 @@ const walletManager = new WalletManager(); await walletManager.unlock(password); // #endregion locking-and-unlocking-wallet-manager-1 -const privateKey = '0xc7079e195cca2495e47b056115f850a8be1f2c4ffe2a806922accb36d2ff0dde'; +const privateKey = + '0xc7079e195cca2495e47b056115f850a8be1f2c4ffe2a806922accb36d2ff0dde'; await walletManager.addVault({ type: 'privateKey', @@ -28,7 +30,6 @@ await walletManager.unlock(password); // #region locking-and-unlocking-wallet-manager-4 const isLocked = walletManager.isLocked; -console.assert(isLocked === false, 'WalletManager is locked'); // #endregion locking-and-unlocking-wallet-manager-4 // #region locking-and-unlocking-wallet-manager-5 @@ -43,7 +44,5 @@ await walletManager.unlock(newPassword); // perform your tasks... walletManager.lock(); // Always lock your WalletManager when you're done - -console.assert(walletManager.isLocked === true, 'WalletManager is unlocked'); // #endregion locking-and-unlocking-wallet-manager-6 // #endregion full From e19b126effabcd1a9e2c943160bd8733abc0458d Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 3 Oct 2024 19:42:57 -0500 Subject: [PATCH 112/129] docs: add README for snippets --- apps/docs-snippets2/README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 apps/docs-snippets2/README.md diff --git a/apps/docs-snippets2/README.md b/apps/docs-snippets2/README.md new file mode 100644 index 00000000000..d1a132047b2 --- /dev/null +++ b/apps/docs-snippets2/README.md @@ -0,0 +1,26 @@ +# `docs-snippets` + +**docs-snippets** is a private package for generating snippets for the Fuel documentation site. + + +# Table of contents + +- [building](#building) +- [running](#running) + +## Building + +This builds the snippets into testable scripts from the `src` folder and generates the Typegen `types` in the `typegend` folder. All test scripts end with a `.test.ts` suffix. +```sh +pnpm build +``` + +## Testing + +This will build the snippets and run the generated tests. To specific a particular environment for a test, the snippet should be named as `{name}.{environment}.test.ts`. e.g. `deploy-contract.node.test.ts` + +If no environment is specified, it will run in the browser and node environments by default. + +```sh +pnpm test +``` From 4716eaad6b8a7c3fe0c848596790eb45b493947d Mon Sep 17 00:00:00 2001 From: chad Date: Fri, 4 Oct 2024 12:44:08 -0500 Subject: [PATCH 113/129] lint: update README --- apps/docs-snippets2/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/README.md b/apps/docs-snippets2/README.md index d1a132047b2..6c2a92b505b 100644 --- a/apps/docs-snippets2/README.md +++ b/apps/docs-snippets2/README.md @@ -5,9 +5,10 @@ # Table of contents -- [building](#building) -- [running](#running) - +- [`docs-snippets`](#docs-snippets) +- [Table of contents](#table-of-contents) + - [Building](#building) + - [Testing](#testing) ## Building This builds the snippets into testable scripts from the `src` folder and generates the Typegen `types` in the `typegend` folder. All test scripts end with a `.test.ts` suffix. From 088d76810196f7dc38cd3d086ff1163c5444d124 Mon Sep 17 00:00:00 2001 From: Daniel Bate Date: Thu, 17 Oct 2024 10:29:37 +0700 Subject: [PATCH 114/129] test: bump gas limit --- apps/docs-snippets2/src/scripts/script-with-configurable.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/src/scripts/script-with-configurable.ts b/apps/docs-snippets2/src/scripts/script-with-configurable.ts index 102ac12eef2..aa7c104a296 100644 --- a/apps/docs-snippets2/src/scripts/script-with-configurable.ts +++ b/apps/docs-snippets2/src/scripts/script-with-configurable.ts @@ -34,7 +34,7 @@ const myMainScript = new Script(ScriptSum.bytecode, ScriptSum.abi, wallet); const tx = myMainScript.functions.main(argument); // Set the call parameters -tx.callParams({ gasLimit: 1500 }); +tx.callParams({ gasLimit: 7500 }); // Get the entire transaction request prior to const txRequest = await tx.getTransactionRequest(); From 9e408206a66def77eb891b11df1edf3c6a1f085d Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Wed, 23 Oct 2024 21:55:12 -0500 Subject: [PATCH 115/129] update README Co-authored-by: Daniel Bate --- apps/docs-snippets2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/README.md b/apps/docs-snippets2/README.md index 6c2a92b505b..b8a0ac967c2 100644 --- a/apps/docs-snippets2/README.md +++ b/apps/docs-snippets2/README.md @@ -18,7 +18,7 @@ pnpm build ## Testing -This will build the snippets and run the generated tests. To specific a particular environment for a test, the snippet should be named as `{name}.{environment}.test.ts`. e.g. `deploy-contract.node.test.ts` +This will build the snippets and run the generated tests. To test a specific environment (`node` or `browser`), the snippet should be named as `{name}.{environment}.test.ts`. e.g. `deploy-contract.node.test.ts` If no environment is specified, it will run in the browser and node environments by default. From 695c332054e6d5e245e17924347e14563f8ad253 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Wed, 23 Oct 2024 21:55:29 -0500 Subject: [PATCH 116/129] docs: update spacing Co-authored-by: Daniel Bate --- .../src/testing/launching-a-test-node.node.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts index 789dce56fdb..4a50ea4e4ae 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts @@ -18,9 +18,9 @@ using launched = await launchTestNode(); const launchedTestNode = await launchTestNode(); /* - Do your things, run your tests, and then call - `launchedTestNode.cleanup()` to dispose of everything. - */ + Do your things, run your tests, and then call + `launchedTestNode.cleanup()` to dispose of everything. +*/ launchedTestNode.cleanup(); // #endregion manual-cleanup From 5e57e6b787720efa04a3668dd5e6d3df4d496cf2 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Wed, 23 Oct 2024 21:55:54 -0500 Subject: [PATCH 117/129] docs: remove unnecessary context tag Co-authored-by: Daniel Bate --- .../src/wallet-manager/getting-started-with-wallet-manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts index e4cc611ae5e..30fe8c176da 100644 --- a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts +++ b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts @@ -43,7 +43,7 @@ await walletManager.addVault({ // #region getting-started-with-wallet-manager-5 const vaults = walletManager.getVaults(); -// #context console.log(vaults); +console.log(vaults); // #endregion getting-started-with-wallet-manager-5 // #region getting-started-with-wallet-manager-6 From 51158e9e887eed5e96da389d5004eee757281933 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Wed, 23 Oct 2024 21:56:04 -0500 Subject: [PATCH 118/129] nit Co-authored-by: Peter Smith --- apps/docs-snippets2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/docs-snippets2/README.md b/apps/docs-snippets2/README.md index b8a0ac967c2..5ee3b6e13a0 100644 --- a/apps/docs-snippets2/README.md +++ b/apps/docs-snippets2/README.md @@ -12,6 +12,7 @@ ## Building This builds the snippets into testable scripts from the `src` folder and generates the Typegen `types` in the `typegend` folder. All test scripts end with a `.test.ts` suffix. + ```sh pnpm build ``` From 1b55819ae976a951fdc9906e6386c37b0b8b6018 Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 23 Oct 2024 23:47:18 -0500 Subject: [PATCH 119/129] chore: integrated PR feedback --- .../docs-snippets2/src/create-fuels/decrement-counter.ts | 9 +++++++++ .../locking-and-unlocking-wallet-manager.ts | 5 ++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts index 1839115afaf..2d229410208 100644 --- a/apps/docs-snippets2/src/create-fuels/decrement-counter.ts +++ b/apps/docs-snippets2/src/create-fuels/decrement-counter.ts @@ -24,21 +24,30 @@ const { waitForResult: getCountWaitForResult } = await contract.functions .get_count() .call(); const { value: initialGetCountValue } = await getCountWaitForResult(); + +console.log('Initial value', initialGetCountValue); + // Next we'll increment the counter, so that we can decrement it. const { waitForResult: incWaitForResult } = await contract.functions .increment_count(5) .call(); const { value: incValue } = await incWaitForResult(); +console.log('Incremented value', incValue); + // Next, we'll decrement the counter by 3 and assert the new value. const { waitForResult: decWaitForResult } = await contract.functions .decrement_count(3) .call(); const { value: decValue } = await decWaitForResult(); +console.log('Decremented value', decValue); + // Finally, we'll test the get count function again to ensure parity. const { waitForResult: finalWaitForResult } = await contract.functions .get_count() .call(); const { value: finalValue } = await finalWaitForResult(); + +console.log('Final value', finalValue); // #endregion full diff --git a/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts index 909700ce511..b1264c3f599 100644 --- a/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts +++ b/apps/docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts @@ -2,11 +2,10 @@ // #region full import { WalletManager } from 'fuels'; -const password = '0b540281-f87b-49ca-be37-2264c7f260f7'; // #region locking-and-unlocking-wallet-manager-1 -const walletManager = new WalletManager(); +const password = '0b540281-f87b-49ca-be37-2264c7f260f7'; -// #context const password = 'my-password'; +const walletManager = new WalletManager(); await walletManager.unlock(password); // #endregion locking-and-unlocking-wallet-manager-1 From 72dffa7ab506c134f163f195ade29d0dd3bbec7d Mon Sep 17 00:00:00 2001 From: Peter Smith Date: Thu, 24 Oct 2024 14:02:39 +0100 Subject: [PATCH 120/129] chore: removed merge conflict --- apps/docs-snippets2/sway/echo-values/src/main.sw | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/docs-snippets2/sway/echo-values/src/main.sw b/apps/docs-snippets2/sway/echo-values/src/main.sw index 501b58b0b56..f48734129c6 100644 --- a/apps/docs-snippets2/sway/echo-values/src/main.sw +++ b/apps/docs-snippets2/sway/echo-values/src/main.sw @@ -46,14 +46,11 @@ impl EchoValues for Contract { fn echo_u64(value: u64) -> u64 { value } -<<<<<<< HEAD -======= // #region arrays-2 fn echo_u64_array(u64_array: [u64; 2]) -> [u64; 2] { u64_array } // #endregion arrays-2 ->>>>>>> master } // #endregion understanding-fuel-binary-file From 609f8745aba4f4f7b138d3128541ad210239a707 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 13:39:46 +0400 Subject: [PATCH 121/129] build: remove unused files --- .../create-fuels/decrement_counter.test.ts | 62 ----- .../guide/encoding/encode-and-decode.test.ts | 118 --------- .../guide/encoding/working-with-bytes.test.ts | 160 ------------ .../guide/scripts/deploying-scripts.test.ts | 61 ----- .../scripts/script-custom-transaction.test.ts | 76 ------ .../scripts/script-with-configurable.test.ts | 69 ----- .../testing/launching-a-test-node.test.ts | 247 ------------------ .../testing/tweaking-the-blockchain.test.ts | 46 ---- ...etting-started-with-wallet-manager.test.ts | 87 ------ ...cking-and-unlocking-wallet-manager.test.ts | 57 ---- .../getting-started-with-wallet-manager.ts | 15 +- apps/docs-snippets2/sway/Forc.toml | 2 - 12 files changed, 12 insertions(+), 988 deletions(-) delete mode 100644 apps/docs-snippets/src/guide/create-fuels/decrement_counter.test.ts delete mode 100644 apps/docs-snippets/src/guide/encoding/encode-and-decode.test.ts delete mode 100644 apps/docs-snippets/src/guide/encoding/working-with-bytes.test.ts delete mode 100644 apps/docs-snippets/src/guide/scripts/deploying-scripts.test.ts delete mode 100644 apps/docs-snippets/src/guide/scripts/script-custom-transaction.test.ts delete mode 100644 apps/docs-snippets/src/guide/scripts/script-with-configurable.test.ts delete mode 100644 apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts delete mode 100644 apps/docs-snippets/src/guide/testing/tweaking-the-blockchain.test.ts delete mode 100644 apps/docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts delete mode 100644 apps/docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts diff --git a/apps/docs-snippets/src/guide/create-fuels/decrement_counter.test.ts b/apps/docs-snippets/src/guide/create-fuels/decrement_counter.test.ts deleted file mode 100644 index 90b255b1f0a..00000000000 --- a/apps/docs-snippets/src/guide/create-fuels/decrement_counter.test.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { launchTestNode } from 'fuels/test-utils'; -import { describe, test, expect } from 'vitest'; - -import { CounterFactory } from '../../../test/typegen'; - -/** - * @group node - * @group browser - */ -describe('Counter Contract', () => { - // #region decrement-counter - // #context import { Counter } from './sway-programs-api'; - - test('calls the decrement_counter function', async () => { - // First, we'll launch a test node, passing the contract factory and bytecode. This will deploy the contract - // to our test node so we can test against it. - using launched = await launchTestNode({ - // The test node will be killed automatically once the `launched` variable goes out of scope, - // because we are instantiating it with the `using` keyword. - contractsConfigs: [ - { - factory: CounterFactory, - }, - ], - }); - - // We can now destructure the contract from the launched object. - const { - contracts: [contract], - } = launched; - - // Lets setup some values to use in the test. - const initialCount = 0; - const incrementedValue = 5; - const decrementedValue = 2; - - // We can now call the contract functions and test the results. Lets assert the initial value of the counter. - const { waitForResult: initWaitForResult } = await contract.functions.get_count().call(); - const { value: initValue } = await initWaitForResult(); - expect(initValue.toNumber()).toBe(initialCount); - - // Next we'll increment the counter, so that we can decrement it. - const { waitForResult: incWaitForResult } = await contract.functions - .increment_counter(5) - .call(); - const { value: incValue } = await incWaitForResult(); - expect(incValue.toNumber()).toBe(incrementedValue); - - // Next, we'll decrement the counter by 3 and assert the new value. - const { waitForResult: decWaitForResult } = await contract.functions - .decrement_counter(3) - .call(); - const { value: decValue } = await decWaitForResult(); - expect(decValue.toNumber()).toBe(decrementedValue); - - // Finally, we'll test the get count function again to ensure parity. - const { waitForResult: finalWaitForResult } = await contract.functions.get_count().call(); - const { value: finalValue } = await finalWaitForResult(); - expect(finalValue.toNumber()).toBe(decrementedValue); - }); - // #endregion decrement-counter -}); diff --git a/apps/docs-snippets/src/guide/encoding/encode-and-decode.test.ts b/apps/docs-snippets/src/guide/encoding/encode-and-decode.test.ts deleted file mode 100644 index 3e9595453e4..00000000000 --- a/apps/docs-snippets/src/guide/encoding/encode-and-decode.test.ts +++ /dev/null @@ -1,118 +0,0 @@ -import type { JsonAbi, TransactionResultReturnDataReceipt } from 'fuels'; -import { buildFunctionResult, ReceiptType, arrayify, Script, Interface } from 'fuels'; -import { launchTestNode } from 'fuels/test-utils'; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore JSONC extension requires mapping but behaves fine -import abiSnippet from '../../../test/fixtures/abi/encode-and-decode.jsonc'; -import { SumScript as factory } from '../../../test/typegen/scripts/SumScript'; - -/** - * @group node - * @group browser - */ -describe('encode and decode', () => { - it('generates valid ABI', () => { - expect(abiSnippet).toEqual(factory.abi); - }); - - it('encodes and decodes', async () => { - using launched = await launchTestNode(); - const { - wallets: [wallet], - } = launched; - - // #region encode-and-decode-3 - // #import { JsonAbi, Script }; - // #context import { factory } from './sway-programs-api'; - - // First we need to build out the transaction via the script that we want to encode. - // For that we'll need the ABI and the bytecode of the script - const abi: JsonAbi = factory.abi; - const bytecode = factory.bytecode; - - // Create the invocation scope for the script call, passing the initial - // value for the configurable constant - const script = new Script(bytecode, abi, wallet); - const initialValue = 10; - script.setConfigurableConstants({ AMOUNT: initialValue }); - const invocationScope = script.functions.main(0); - - // Create the transaction request, this can be picked off the invocation - // scope so the script bytecode is preset on the transaction - const request = await invocationScope.getTransactionRequest(); - // #endregion encode-and-decode-3 - - // #region encode-and-decode-4 - // #import { Interface }; - - // Now we can encode the argument we want to pass to the function. The argument is required - // as a function parameter for all abi functions and we can extract it from the ABI itself - const argument = abi.functions - .find((f) => f.name === 'main') - ?.inputs.find((i) => i.name === 'inputted_amount')?.concreteTypeId as string; - - // The `Interface` class is the entry point for encoding and decoding all things abi-related. - // We will use its `encodeType` method and create the encoding required for - // a u32 which takes 4 bytes up of property space. - - const abiInterface = new Interface(abi); - const argumentToAdd = 10; - const encodedArguments = abiInterface.encodeType(argument, [argumentToAdd]); - // Therefore the value of 10 will be encoded to: - // Uint8Array([0, 0, 0, 10] - - // The encoded value can now be set on the transaction via the script data property - request.scriptData = encodedArguments; - - // Now we can build out the rest of the transaction and then fund it - const txCost = await wallet.getTransactionCost(request); - request.maxFee = txCost.maxFee; - request.gasLimit = txCost.gasUsed; - await wallet.fund(request, txCost); - - // Finally, submit the built transaction - const response = await wallet.sendTransaction(request); - await response.waitForResult(); - // #endregion encode-and-decode-4 - - // #region encode-and-decode-5 - // #import { ReceiptType, TransactionResultReturnDataReceipt, arrayify, buildFunctionResult }; - - // Get result of the transaction, including the contract call result. For this we'll need - // the previously created invocation scope, the transaction response and the script - const invocationResult = await buildFunctionResult({ - funcScope: invocationScope, - isMultiCall: false, - program: script, - transactionResponse: response, - }); - - // The decoded value can be destructured from the `FunctionInvocationResult` - const { value } = invocationResult; - - // Or we can decode the returned bytes ourselves, by retrieving the return data - // receipt that contains the returned bytes. We can get this by filtering on - // the returned receipt types - const returnDataReceipt = invocationResult.transactionResult.receipts.find( - (r) => r.type === ReceiptType.ReturnData - ) as TransactionResultReturnDataReceipt; - - // The data is in hex format so it makes sense to use arrayify so that the data - // is more human readable - const returnData = arrayify(returnDataReceipt.data); - // returnData = new Uint8Array([0, 0, 0, 20] - - // And now we can decode the returned bytes in a similar fashion to how they were - // encoded, via the `Interface` - const [decodedReturnData] = abiInterface.decodeType(argument, returnData); - // 20 - // #endregion encode-and-decode-5 - - const totalValue = argumentToAdd + initialValue; - expect(value).toBe(totalValue); - expect(decodedReturnData).toBe(totalValue); - expect(encodedArguments).toStrictEqual(new Uint8Array([0, 0, 0, 10])); - expect(returnData).toStrictEqual(new Uint8Array([0, 0, 0, 20])); - }); -}); diff --git a/apps/docs-snippets/src/guide/encoding/working-with-bytes.test.ts b/apps/docs-snippets/src/guide/encoding/working-with-bytes.test.ts deleted file mode 100644 index dbec9691cd3..00000000000 --- a/apps/docs-snippets/src/guide/encoding/working-with-bytes.test.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { randomBytes } from 'crypto'; -import { - ArrayCoder, - B256Coder, - B512Coder, - BigNumberCoder, - BooleanCoder, - EnumCoder, - NumberCoder, - RawSliceCoder, - StdStringCoder, - StringCoder, - StructCoder, - TupleCoder, - VecCoder, - hexlify, -} from 'fuels'; - -/** - * @group node - */ -describe('working with bytes', () => { - it('integers', () => { - // #region working-with-bytes-1 - // #import { NumberCoder, BigNumberCoder }; - - const u8Coder = new NumberCoder('u8'); - const encodedU8 = u8Coder.encode(255); - // encodedU8 = new Uint8Array([255]); - - const u16Coder = new NumberCoder('u16'); - const encodedU16 = u16Coder.encode(255); - // encodedU16 = new Uint8Array([0, 255]); - - const u32Coder = new NumberCoder('u32'); - const encodedU32 = u32Coder.encode(255); - // encodedU32 = new Uint8Array([0, 0, 0, 255]); - - const u64Coder = new BigNumberCoder('u64'); - const encodedU64 = u64Coder.encode(255); - // encodedU64 = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255]); - - const u256Coder = new BigNumberCoder('u256'); - const encodedU256 = u256Coder.encode(255); - // encodedU256 = new Uint8Array([ - // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 - // ]); - // #endregion working-with-bytes-1 - - expect(encodedU8).toEqual(new Uint8Array([255])); - expect(encodedU16).toEqual(new Uint8Array([0, 255])); - expect(encodedU32).toEqual(new Uint8Array([0, 0, 0, 255])); - expect(encodedU64).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 255])); - expect(encodedU256).toEqual( - new Uint8Array([ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 255, - ]) - ); - }); - - it('boolean', () => { - // #region working-with-bytes-2 - // #import { BooleanCoder }; - - const booleanCoder = new BooleanCoder(); - const encodedTrue = booleanCoder.encode(true); - // encodedTrue = new Uint8Array([1]); - - const encodedFalse = booleanCoder.encode(false); - // encodedFalse = new Uint8Array([0]); - // #endregion working-with-bytes-2 - - expect(encodedTrue).toEqual(new Uint8Array([1])); - expect(encodedFalse).toEqual(new Uint8Array([0])); - }); - - it('fixed len strings', () => { - // #region working-with-bytes-3 - // #import { StringCoder }; - - const stringCoder = new StringCoder(5); - const encoded = stringCoder.encode('hello'); - // encoded = new Uint8Array([104, 101, 108, 108, 111]); - // #endregion working-with-bytes-3 - - expect(encoded).toEqual(new Uint8Array([104, 101, 108, 108, 111])); - }); - - it('b256 / b512', () => { - // #region working-with-bytes-4 - // #import { B256Coder, B512Coder, hexlify, randomBytes }; - - const b256Coder = new B256Coder(); - const encodedB256 = b256Coder.encode(hexlify(randomBytes(32))); - // encodedB256 = new Uint8Array(32); - - const b512Coder = new B512Coder(); - const encodedB512 = b512Coder.encode(hexlify(randomBytes(64))); - // encodedB512 = new Uint8Array(64); - // #endregion working-with-bytes-4 - - expect(encodedB256).toHaveLength(32); - expect(encodedB512).toHaveLength(64); - }); - - it('automatically encoded types', () => { - // #region working-with-bytes-5 - // #import { TupleCoder, StructCoder, ArrayCoder, EnumCoder }; - - const tupleCoder = new TupleCoder([new NumberCoder('u8'), new NumberCoder('u16')]); - const encodedTuple = tupleCoder.encode([255, 255]); - // encodedTuple = new Uint8Array([255, 0, 255]); - - const structCoder = new StructCoder('struct', { - a: new NumberCoder('u8'), - b: new NumberCoder('u16'), - }); - const encodedStruct = structCoder.encode({ a: 255, b: 255 }); - // encodedStruct = new Uint8Array([255, 0, 255]); - - const arrayCoder = new ArrayCoder(new NumberCoder('u8'), 4); - const encodedArray = arrayCoder.encode([255, 0, 255, 0]); - // encodedArray = new Uint8Array([255, 0, 255, 0]); - - const enumCoder = new EnumCoder('enum', { a: new NumberCoder('u32') }); - const encodedEnum = enumCoder.encode({ a: 255 }); - // encodedEnum = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255]); - // #endregion working-with-bytes-5 - - expect(encodedTuple).toEqual(new Uint8Array([255, 0, 255])); - expect(encodedStruct).toEqual(new Uint8Array([255, 0, 255])); - expect(encodedArray).toEqual(new Uint8Array([255, 0, 255, 0])); - expect(encodedEnum).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255])); - }); - - it('heap types', () => { - // #region working-with-bytes-6 - // #import { VecCoder, StdStringCoder, RawSliceCoder }; - - const vecCoder = new VecCoder(new NumberCoder('u8')); - const encodedVec = vecCoder.encode([255, 0, 255]); - // encodedVec = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255]); - - const stdStringCoder = new StdStringCoder(); - const encodedStdString = stdStringCoder.encode('hello'); - // encodedStdString = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]); - - const rawSliceCoder = new RawSliceCoder(); - const encodedRawSlice = rawSliceCoder.encode([1, 2, 3, 4]); - // encodedRawSlice = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4]); - // #endregion working-with-bytes-6 - - expect(encodedVec).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3, 255, 0, 255])); - expect(encodedStdString).toEqual( - new Uint8Array([0, 0, 0, 0, 0, 0, 0, 5, 104, 101, 108, 108, 111]) - ); - expect(encodedRawSlice).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 4, 1, 2, 3, 4])); - }); -}); diff --git a/apps/docs-snippets/src/guide/scripts/deploying-scripts.test.ts b/apps/docs-snippets/src/guide/scripts/deploying-scripts.test.ts deleted file mode 100644 index 5990ef108f7..00000000000 --- a/apps/docs-snippets/src/guide/scripts/deploying-scripts.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { ContractFactory, Provider, Wallet, hexlify } from 'fuels'; -import { launchTestNode } from 'fuels/test-utils'; - -import { - SumScript as TypegenScript, - SumScriptLoader as TypegenScriptLoader, -} from '../../../test/typegen'; - -/** - * @group browser - * @group node - */ -describe('Deploying Scripts', () => { - it('deploys a script via loader and calls', async () => { - using launched = await launchTestNode(); - - const { - provider: testProvider, - wallets: [testWallet], - } = launched; - - const providerUrl = testProvider.url; - const WALLET_PVT_KEY = hexlify(testWallet.privateKey); - - const factory = new ContractFactory(TypegenScript.bytecode, TypegenScript.abi, testWallet); - const { waitForResult: waitForDeploy } = await factory.deployAsBlobTxForScript(); - await waitForDeploy(); - - // #region deploying-scripts - // #import { Provider, Wallet }; - // #context import { WALLET_PVT_KEY } from 'path/to/my/env/file'; - // #context import { TypegenScriptLoader } from 'path/to/typegen/outputs'; - - const provider = await Provider.create(providerUrl); - const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); - - // First, we will need to instantiate the script via it's loader bytecode. This can be imported from the typegen outputs - // that were created on `fuels deploy` - const script = new TypegenScriptLoader(wallet); - - // Now we are free to interact with the script as we would normally, such as overriding the configurables - const configurable = { - AMOUNT: 20, - }; - script.setConfigurableConstants(configurable); - - const { waitForResult } = await script.functions.main(10).call(); - const { value, gasUsed } = await waitForResult(); - // value: 10 - // #endregion deploying-scripts - - const scriptWithoutLoader = new TypegenScript(wallet); - scriptWithoutLoader.setConfigurableConstants(configurable); - const { waitForResult: waitForAnotherResult } = await script.functions.main(10).call(); - const { value: anotherValue, gasUsed: anotherGasUsed } = await waitForAnotherResult(); - - expect(value).toBe(30); - expect(anotherValue).toBe(30); - expect(gasUsed.toNumber()).toBeLessThanOrEqual(anotherGasUsed.toNumber()); - }); -}); diff --git a/apps/docs-snippets/src/guide/scripts/script-custom-transaction.test.ts b/apps/docs-snippets/src/guide/scripts/script-custom-transaction.test.ts deleted file mode 100644 index f7a1eda4adf..00000000000 --- a/apps/docs-snippets/src/guide/scripts/script-custom-transaction.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { BN, ScriptTransactionRequest, coinQuantityfy } from 'fuels'; -import { ASSET_A, ASSET_B, launchTestNode } from 'fuels/test-utils'; - -import { EchoValuesFactory, ScriptTransferToContract } from '../../../test/typegen'; - -/** - * @group node - * @group browser - */ -describe('Script Custom Transaction', () => { - it('transfer multiple assets to a contract', async () => { - using launched = await launchTestNode({ - contractsConfigs: [{ factory: EchoValuesFactory }], - }); - const { - contracts: [contract], - wallets: [wallet], - } = launched; - - const contractInitialBalanceAssetA = await contract.getBalance(ASSET_A); - const contractInitialBalanceAssetB = await contract.getBalance(ASSET_B); - - expect(contractInitialBalanceAssetA).toStrictEqual(new BN(0)); - expect(contractInitialBalanceAssetB).toStrictEqual(new BN(0)); - - const defaultTxParams = { - gasLimit: 10000, - }; - - // #region custom-transactions-2 - // #import { BN, ScriptTransactionRequest }; - - // 1. Create a script transaction using the script binary - const request = new ScriptTransactionRequest({ - ...defaultTxParams, - gasLimit: 3_000_000, - script: ScriptTransferToContract.bytecode, - }); - - // 2. Instantiate the script main arguments - const scriptArguments = [ - contract.id.toB256(), - { bits: ASSET_A }, - new BN(1000), - { bits: ASSET_B }, - new BN(500), - ]; - - // 3. Populate the script data and add the contract input and output - request - .setData(ScriptTransferToContract.abi, scriptArguments) - .addContractInputAndOutput(contract.id); - - // 4. Get the transaction resources - const quantities = [coinQuantityfy([1000, ASSET_A]), coinQuantityfy([500, ASSET_B])]; - - // 5. Calculate the transaction fee - const txCost = await wallet.getTransactionCost(request, { quantities }); - - request.gasLimit = txCost.gasUsed; - request.maxFee = txCost.maxFee; - - await wallet.fund(request, txCost); - - // 6. Send the transaction - const tx = await wallet.sendTransaction(request); - await tx.waitForResult(); - - // #endregion custom-transactions-2 - const contractFinalBalanceAssetA = await contract.getBalance(ASSET_A); - const contractFinalBalanceAssetB = await contract.getBalance(ASSET_B); - - expect(contractFinalBalanceAssetA).toStrictEqual(new BN(1000)); - expect(contractFinalBalanceAssetB).toStrictEqual(new BN(500)); - }); -}); diff --git a/apps/docs-snippets/src/guide/scripts/script-with-configurable.test.ts b/apps/docs-snippets/src/guide/scripts/script-with-configurable.test.ts deleted file mode 100644 index ec3dbc689ca..00000000000 --- a/apps/docs-snippets/src/guide/scripts/script-with-configurable.test.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { Script, BN } from 'fuels'; -import { launchTestNode } from 'fuels/test-utils'; - -import { SumScript } from '../../../test/typegen'; - -/** - * @group node - * @group browser - */ -describe('Script With Configurable', () => { - it('should successfully sum set configurable constants with inputted value', async () => { - using launched = await launchTestNode(); - const { - wallets: [wallet], - } = launched; - - // #region script-with-configurable-contants-2 - const script = new Script(SumScript.bytecode, SumScript.abi, wallet); - - const configurableConstants = { - AMOUNT: 81, - }; - - script.setConfigurableConstants(configurableConstants); - - const inputtedValue = 10; - - const { waitForResult } = await script.functions.main(inputtedValue).call(); - const { value } = await waitForResult(); - - const expectedTotal = inputtedValue + configurableConstants.AMOUNT; - - expect(new BN(value as number).toNumber()).toEqual(expectedTotal); - // #endregion script-with-configurable-contants-2 - }); - - it('prepares a script and retrieves the id before submission', async () => { - using launched = await launchTestNode(); - const { - wallets: [wallet], - } = launched; - - const argument = 10; - const expected = 20; - - // #region preparing-scripts - const script = new Script(SumScript.bytecode, SumScript.abi, wallet); - - const tx = script.functions.main(argument); - - // Set the call parameters - tx.callParams({ gasLimit: 1700 }); - - // Get the entire transaction request prior to - const txRequest = await tx.getTransactionRequest(); - - // Get the transaction ID - const txId = await tx.getTransactionId(); - - // Retrieve the value of the call and the actual gas used - const { waitForResult } = await tx.call(); - const { value, gasUsed } = await waitForResult(); - // #endregion preparing-scripts - expect(txRequest).toBeDefined(); - expect(txId).toBeDefined(); - expect(new BN(value as number).toNumber()).toEqual(expected); - expect(new BN(gasUsed).toNumber()).toBeGreaterThan(0); - }); -}); diff --git a/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts b/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts deleted file mode 100644 index 3557da4f374..00000000000 --- a/apps/docs-snippets/src/guide/testing/launching-a-test-node.test.ts +++ /dev/null @@ -1,247 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { WalletUnlocked } from 'fuels'; -import { TestAssetId, TestMessage, launchTestNode } from 'fuels/test-utils'; -import { join } from 'path'; - -import { Counter, CounterFactory } from '../../../test/typegen/contracts'; - -/** - * @group node - */ -describe('launching a test node', () => { - test(`instantiating test nodes - automatic cleanup`, async () => { - // #region automatic-cleanup - // #import { launchTestNode }; - - using launched = await launchTestNode(); - - /* - The method `launched.cleanup()` will be automatically - called when the variable `launched` goes out of block scope. - */ - - // #endregion automatic-cleanup - }); - - test('instantiating test nodes - manual cleanup', async () => { - // #region manual-cleanup - // #import { launchTestNode }; - - const launched = await launchTestNode(); - - /* - Do your things, run your tests, and then call - `launched.cleanup()` to dispose of everything. - */ - - launched.cleanup(); - // #endregion manual-cleanup - }); - - test('options', async () => { - // #region options - // #import { launchTestNode }; - - using launched = await launchTestNode(/* options */); - // #endregion options - }); - - test('simple contract deployment', async () => { - // #region basic-example - // #import { launchTestNode }; - - // #context import { CounterFactory } from 'path/to/typegen/output'; - - using launched = await launchTestNode({ - contractsConfigs: [{ factory: CounterFactory }], - }); - - const { - contracts: [contract], - provider, - wallets, - } = launched; - - const { waitForResult } = await contract.functions.get_count().call(); - const response = await waitForResult(); - // #endregion basic-example - expect(response.value.toNumber()).toBe(0); - expect(provider).toBeDefined(); - expect(wallets).toBeDefined(); - }); - - test('multiple contracts and wallets', async () => { - // #region advanced-example - // #import { launchTestNode, TestAssetId, TestMessage }; - - // #context import { CounterFactory } from 'path/to/typegen/output'; - - const assets = TestAssetId.random(2); - const message = new TestMessage({ amount: 1000 }); - - using launched = await launchTestNode({ - walletsConfig: { - count: 4, - assets, - coinsPerAsset: 2, - amountPerCoin: 1_000_000, - messages: [message], - }, - contractsConfigs: [ - { - factory: CounterFactory, - walletIndex: 3, - options: { storageSlots: [] }, - }, - ], - }); - - const { - contracts: [contract], - wallets: [wallet1, wallet2, wallet3, wallet4], - } = launched; - // #endregion advanced-example - - expect(contract).toBeDefined(); - expect(wallet1).toBeDefined(); - expect(wallet2).toBeDefined(); - expect(wallet3).toBeDefined(); - expect(wallet4).toBeDefined(); - }); - - test('configuring custom fuel-core args', async () => { - // #region custom-fuel-core-args - // #import { launchTestNode }; - - process.env.DEFAULT_FUEL_CORE_ARGS = `--tx-max-depth 20`; - - // `nodeOptions.args` will override the above values if provided. - - using launched = await launchTestNode(); - // #endregion custom-fuel-core-args - - const { provider } = launched; - - expect(provider.getNode().maxDepth.toNumber()).toEqual(20); - process.env.DEFAULT_FUEL_CORE_ARGS = ''; - }); - - test('configuring a base chain config', async () => { - const snapshotDirPath = join(__dirname, '../../../../../', '.fuel-core', 'configs'); - - // #region custom-chain-config - // #import { launchTestNode }; - - process.env.DEFAULT_CHAIN_SNAPSHOT_DIR = snapshotDirPath; - - using launched = await launchTestNode(); - // #endregion custom-chain-config - - const { provider } = launched; - - const { name } = await provider.fetchChain(); - - expect(name).toEqual('local_testnet'); - }); - - test('customizing node options', async () => { - // #region custom-node-options - // #import { launchTestNode, TestAssetId }; - - const [baseAssetId] = TestAssetId.random(); - - using launched = await launchTestNode({ - nodeOptions: { - snapshotConfig: { - chainConfig: { - consensus_parameters: { - V1: { - base_asset_id: baseAssetId.value, - }, - }, - }, - }, - }, - }); - // #endregion custom-node-options - }); - - test('using TestAssetId', async () => { - // #region asset-ids - // #import { launchTestNode, TestAssetId }; - - const assets = TestAssetId.random(); - - using launched = await launchTestNode({ - walletsConfig: { - assets, - }, - }); - - const { - wallets: [wallet], - } = launched; - - const { coins } = await wallet.getCoins(assets[0].value); - // #endregion asset-ids - expect(coins[0].assetId).toEqual(assets[0].value); - }); - - test('generating test messages', async () => { - // #region test-messages - // #import { launchTestNode, TestMessage }; - - const testMessage = new TestMessage({ amount: 1000 }); - - using launched = await launchTestNode({ - walletsConfig: { - messages: [testMessage], - }, - }); - - const { - wallets: [wallet], - } = launched; - - const { - messages: [message], - } = await wallet.getMessages(); - // message.nonce === testMessage.nonce - // #endregion test-messages - - expect(message.nonce).toEqual(testMessage.nonce); - }); - - test('generating test messages directly on chain', async () => { - // #region test-messages-chain - // #import { launchTestNode, TestMessage, WalletUnlocked }; - - const recipient = WalletUnlocked.generate(); - const testMessage = new TestMessage({ - amount: 1000, - recipient: recipient.address, - }); - - using launched = await launchTestNode({ - nodeOptions: { - snapshotConfig: { - stateConfig: { - messages: [testMessage.toChainMessage()], - }, - }, - }, - }); - - const { provider } = launched; - - recipient.provider = provider; - - const { - messages: [message], - } = await recipient.getMessages(); - // message.nonce === testMessage.nonce - // #endregion test-messages-chain - - expect(message.nonce).toEqual(testMessage.nonce); - }); -}); diff --git a/apps/docs-snippets/src/guide/testing/tweaking-the-blockchain.test.ts b/apps/docs-snippets/src/guide/testing/tweaking-the-blockchain.test.ts deleted file mode 100644 index d8d348155b5..00000000000 --- a/apps/docs-snippets/src/guide/testing/tweaking-the-blockchain.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { DateTime } from 'fuels'; -import { launchTestNode } from 'fuels/test-utils'; - -/** - * @group node - * @group browser - */ -describe('tweaking the blockchain', () => { - test('produceBlocks', async () => { - // #region produce-blocks - using launched = await launchTestNode(); - const { provider } = launched; - const block = await provider.getBlock('latest'); - if (!block) { - throw new Error('No latest block'); - } - const { time: timeLastBlockProduced } = block; - - const producedBlockHeight = await provider.produceBlocks(3); - - const producedBlock = await provider.getBlock(producedBlockHeight.toNumber()); - - const oldest = DateTime.fromTai64(timeLastBlockProduced); - const newest = DateTime.fromTai64(producedBlock!.time); - // newest >= oldest - // #endregion produce-blocks - expect(producedBlock).toBeDefined(); - expect(newest >= oldest).toBeTruthy(); - }); - - test('produceBlocks with custom timestamp docs snippet', async () => { - // #region produceBlocks-custom-timestamp - using launched = await launchTestNode(); - const { provider } = launched; - - const latestBlock = await provider.getBlock('latest'); - if (!latestBlock) { - throw new Error('No latest block'); - } - const latestBlockTimestamp = DateTime.fromTai64(latestBlock.time).toUnixMilliseconds(); - const newBlockHeight = await provider.produceBlocks(3, latestBlockTimestamp + 1000); - // #endregion produceBlocks-custom-timestamp - expect(newBlockHeight.toHex()).toBe(latestBlock.height.add(3).toHex()); - }); -}); diff --git a/apps/docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts b/apps/docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts deleted file mode 100644 index e19ffce9e8b..00000000000 --- a/apps/docs-snippets/src/guide/wallet-manager/getting-started-with-wallet-manager.test.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { WalletManager } from '@fuel-ts/account'; -import { Wallet } from 'fuels'; -import { launchTestNode } from 'fuels/test-utils'; - -/** - * @group node - * @group browser - */ -describe('Getting started with wallet manager', () => { - it('instantiates the WalletManager', async () => { - using launched = await launchTestNode(); - const { provider } = launched; - - // #region getting-started-with-wallet-manager-1 - const walletManager = new WalletManager(); - // #endregion getting-started-with-wallet-manager-1 - - // #region getting-started-with-wallet-manager-2 - const password = 'my-password'; - - await walletManager.unlock(password); - // #endregion getting-started-with-wallet-manager-2 - - // #region getting-started-with-wallet-manager-3 - const myWallet = Wallet.generate({ - provider, - }); - - const privateKey = myWallet.privateKey; - - await walletManager.addVault({ - type: 'privateKey', - secret: privateKey, - title: 'My first private key vault', - }); - // #endregion getting-started-with-wallet-manager-3 - - // #region getting-started-with-wallet-manager-4 - await walletManager.addVault({ - type: 'privateKey', - secret: privateKey, - title: 'My second private key vault', - }); - // #endregion getting-started-with-wallet-manager-4 - - // #region getting-started-with-wallet-manager-5 - const vaults = walletManager.getVaults(); - - // #context console.log(vaults); - // #endregion getting-started-with-wallet-manager-5 - - // #region getting-started-with-wallet-manager-6 - // #context [ - // #context { - // #context title: 'My first private key vault', - // #context type: 'privateKey', - // #context vaultId: 0 - // #context }, - // #context { - // #context title: 'My second private key vault', - // #context type: 'privateKey', - // #context vaultId: 1 - // #context } - // #context ] - // #endregion getting-started-with-wallet-manager-6 - - expect(vaults).toStrictEqual([ - { - title: 'My first private key vault', - type: 'privateKey', - vaultId: 0, - }, - { - title: 'My second private key vault', - type: 'privateKey', - vaultId: 1, - }, - ]); - - // #region getting-started-with-wallet-manager-7 - const retrievedWallet = walletManager.getWallet(myWallet.address); - // #endregion getting-started-with-wallet-manager-7 - - expect(retrievedWallet.address.equals(myWallet.address)).toBeTruthy(); - expect(vaults.length).toBeGreaterThan(0); - }); -}); diff --git a/apps/docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts b/apps/docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts deleted file mode 100644 index 5e3395b3f00..00000000000 --- a/apps/docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { WalletManager } from '@fuel-ts/account'; - -/** - * @group node - */ -describe(__filename, () => { - it('should', async () => { - const password = '0b540281-f87b-49ca-be37-2264c7f260f7'; - // #region locking-and-unlocking-wallet-manager-1 - const walletManager = new WalletManager(); - - // #context const password = 'my-password'; - - await walletManager.unlock(password); - // #endregion locking-and-unlocking-wallet-manager-1 - - const privateKey = '0xc7079e195cca2495e47b056115f850a8be1f2c4ffe2a806922accb36d2ff0dde'; - - await walletManager.addVault({ - type: 'privateKey', - secret: privateKey, - }); - - // #region locking-and-unlocking-wallet-manager-2 - await walletManager.lock(); - // #endregion locking-and-unlocking-wallet-manager-2 - - // #region locking-and-unlocking-wallet-manager-3 - await walletManager.unlock(password); - // #endregion locking-and-unlocking-wallet-manager-3 - - // #region locking-and-unlocking-wallet-manager-4 - const isLocked = walletManager.isLocked; - - // #context console.log(isLocked); // Outputs true if locked, false if unlocked - // #endregion locking-and-unlocking-wallet-manager-4 - - expect(isLocked).toBeFalsy(); - - // #region locking-and-unlocking-wallet-manager-5 - const newPassword = 'my-new-password'; - - await walletManager.updatePassphrase(password, newPassword); - // #endregion locking-and-unlocking-wallet-manager-5 - - // #region locking-and-unlocking-wallet-manager-6 - await walletManager.unlock(newPassword); - - // perform your tasks... - - walletManager.lock(); // Always lock your WalletManager when you're done - // #endregion locking-and-unlocking-wallet-manager-6 - - expect(walletManager).toBeTruthy(); - expect(isLocked).toBeFalsy(); - }); -}); diff --git a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts index 30fe8c176da..f567bca06ac 100644 --- a/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts +++ b/apps/docs-snippets2/src/wallet-manager/getting-started-with-wallet-manager.ts @@ -42,12 +42,21 @@ await walletManager.addVault({ // #region getting-started-with-wallet-manager-5 const vaults = walletManager.getVaults(); - -console.log(vaults); // #endregion getting-started-with-wallet-manager-5 // #region getting-started-with-wallet-manager-6 - +// [ +// { +// title: 'My first private key vault', +// type: 'privateKey', +// vaultId: 0 +// }, +// { +// title: 'My second private key vault', +// type: 'privateKey', +// vaultId: 1 +// } +// ] // #endregion getting-started-with-wallet-manager-6 // #region getting-started-with-wallet-manager-7 diff --git a/apps/docs-snippets2/sway/Forc.toml b/apps/docs-snippets2/sway/Forc.toml index 9cdacdc7e52..14d655d41ca 100644 --- a/apps/docs-snippets2/sway/Forc.toml +++ b/apps/docs-snippets2/sway/Forc.toml @@ -2,7 +2,6 @@ members = [ "bytecode-input", "counter", - "script-sum", "echo-values", "script-transfer-to-contract", "echo-asset-id", @@ -12,7 +11,6 @@ members = [ "echo-evm-address", "echo-raw-slice", "echo-std-string", - "echo-values", "employee-data", "input-output-types", "script-sum", From 5ba73a2487d5be58273a13996f3504f8aea7d1b9 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 15:10:36 +0400 Subject: [PATCH 122/129] docs: update paths --- apps/docs-snippets2/scripts/wrap-snippets.ts | 10 +++- .../src/scripts/deploying-scripts.ts | 57 +++++++++++++++++++ ...-node.node.ts => launching-a-test-node.ts} | 4 ++ .../src/guide/scripts/custom-script-call.md | 2 +- .../src/guide/scripts/deploying-scripts.md | 2 +- .../src/guide/testing/advanced-example.md | 2 +- apps/docs/src/guide/testing/basic-example.md | 2 +- .../src/guide/testing/fuel-core-options.md | 4 +- .../guide/testing/launching-a-test-node.md | 4 +- .../src/guide/testing/test-node-options.md | 10 ++-- apps/docs/src/guide/wallets/wallet-manager.md | 4 +- 11 files changed, 83 insertions(+), 18 deletions(-) create mode 100644 apps/docs-snippets2/src/scripts/deploying-scripts.ts rename apps/docs-snippets2/src/testing/{launching-a-test-node.node.ts => launching-a-test-node.ts} (99%) diff --git a/apps/docs-snippets2/scripts/wrap-snippets.ts b/apps/docs-snippets2/scripts/wrap-snippets.ts index 8f9cb0587f7..a3fe5a1cc5b 100644 --- a/apps/docs-snippets2/scripts/wrap-snippets.ts +++ b/apps/docs-snippets2/scripts/wrap-snippets.ts @@ -17,10 +17,14 @@ export const wrapSnippet = (filepath: string) => { */ let testEnvironments = ''; - // Check if the filepath includes '.node' or '.browser' - if (filepath.includes('.node')) { + // Check if the file contains 'node' or 'browser' groups at the top of the file + const fileContents = readFileSync(filepath, 'utf8'); + const hasNodeComment = fileContents.includes('@group node'); + const hasBrowserComment = fileContents.includes('@group browser'); + + if (hasNodeComment && !hasBrowserComment) { testEnvironments = '/**\n * @group node\n */'; - } else if (filepath.includes('.browser')) { + } else if (hasBrowserComment && !hasNodeComment) { testEnvironments = '/**\n * @group browser\n */'; } else { testEnvironments = '/**\n * @group node\n * @group browser\n */'; diff --git a/apps/docs-snippets2/src/scripts/deploying-scripts.ts b/apps/docs-snippets2/src/scripts/deploying-scripts.ts new file mode 100644 index 00000000000..4e123965baa --- /dev/null +++ b/apps/docs-snippets2/src/scripts/deploying-scripts.ts @@ -0,0 +1,57 @@ +import { ContractFactory, Provider, Wallet, hexlify } from 'fuels'; +import { launchTestNode } from 'fuels/test-utils'; + +import { + ScriptSum as TypegenScript, + ScriptSumLoader as TypegenScriptLoader, +} from '../typegend/scripts'; + +using launched = await launchTestNode(); + +const { + provider: testProvider, + wallets: [testWallet], +} = launched; + +const providerUrl = testProvider.url; +const WALLET_PVT_KEY = hexlify(testWallet.privateKey); + +const factory = new ContractFactory( + TypegenScript.bytecode, + TypegenScript.abi, + testWallet +); +const { waitForResult: waitForDeploy } = + await factory.deployAsBlobTxForScript(); +await waitForDeploy(); + +// #region deploying-scripts +const provider = await Provider.create(providerUrl); +const wallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); + +// First, we will need to instantiate the script via it's loader bytecode. This can be imported from the typegen outputs +// that were created on `fuels deploy` +const script = new TypegenScriptLoader(wallet); + +// Now we are free to interact with the script as we would normally, such as overriding the configurables +const configurable = { + AMOUNT: 20, +}; +script.setConfigurableConstants(configurable); + +const { waitForResult } = await script.functions.main(10).call(); +const { value, gasUsed } = await waitForResult(); +console.log('value', value); +// #endregion deploying-scripts + +const scriptWithoutLoader = new TypegenScript(wallet); +scriptWithoutLoader.setConfigurableConstants(configurable); +const { waitForResult: waitForAnotherResult } = await script.functions + .main(10) + .call(); +const { value: anotherValue, gasUsed: anotherGasUsed } = + await waitForAnotherResult(); + +console.log('anotherValue', anotherValue); +console.log('gasUsed', gasUsed.toNumber()); +console.log('anotherGasUsed', anotherGasUsed.toNumber()); diff --git a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts b/apps/docs-snippets2/src/testing/launching-a-test-node.ts similarity index 99% rename from apps/docs-snippets2/src/testing/launching-a-test-node.node.ts rename to apps/docs-snippets2/src/testing/launching-a-test-node.ts index 4a50ea4e4ae..ac89dcb517b 100644 --- a/apps/docs-snippets2/src/testing/launching-a-test-node.node.ts +++ b/apps/docs-snippets2/src/testing/launching-a-test-node.ts @@ -4,6 +4,10 @@ import { WalletUnlocked, Provider } from 'fuels'; import { launchTestNode, TestAssetId, TestMessage } from 'fuels/test-utils'; import { join } from 'path'; +/** + * @group node + */ + // #region automatic-cleanup using launched = await launchTestNode(); diff --git a/apps/docs/src/guide/scripts/custom-script-call.md b/apps/docs/src/guide/scripts/custom-script-call.md index b2960269b95..8c56e95bf7b 100644 --- a/apps/docs/src/guide/scripts/custom-script-call.md +++ b/apps/docs/src/guide/scripts/custom-script-call.md @@ -2,4 +2,4 @@ Akin to Contracts, we can configure the [call parameters](../contracts/call-parameters.md) and [transaction parameters](../transactions/transaction-parameters.md) for Scripts, as well as retrieve the entire transaction request or transaction ID prior to submission. -<<< @/../../docs-snippets/src/guide/scripts/script-with-configurable.test.ts#preparing-scripts{ts:line-numbers} +<<< @/../../docs-snippets2/src/scripts/script-with-configurable.ts#preparing-scripts{ts:line-numbers} diff --git a/apps/docs/src/guide/scripts/deploying-scripts.md b/apps/docs/src/guide/scripts/deploying-scripts.md index c11be125e3e..82f9023e2f1 100644 --- a/apps/docs/src/guide/scripts/deploying-scripts.md +++ b/apps/docs/src/guide/scripts/deploying-scripts.md @@ -17,4 +17,4 @@ This will perform the following actions: We can then utilize the above generated types like so: -<<< @/../../docs-snippets/src/guide/scripts/deploying-scripts.test.ts#deploying-scripts{ts:line-numbers} +<<< @/../../docs-snippets2/src/scripts/deploying-scripts.ts#deploying-scripts{ts:line-numbers} diff --git a/apps/docs/src/guide/testing/advanced-example.md b/apps/docs/src/guide/testing/advanced-example.md index 733aa513def..d8432d63a53 100644 --- a/apps/docs/src/guide/testing/advanced-example.md +++ b/apps/docs/src/guide/testing/advanced-example.md @@ -8,7 +8,7 @@ A more complex example showcasing genesis block state configuration with [`walletsConfig`](./test-node-options.md#walletsconfig) and deployment of multiple contracts is shown below. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#advanced-example{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#advanced-example{ts:line-numbers} ## Summary diff --git a/apps/docs/src/guide/testing/basic-example.md b/apps/docs/src/guide/testing/basic-example.md index c3be04517df..4eab7cae852 100644 --- a/apps/docs/src/guide/testing/basic-example.md +++ b/apps/docs/src/guide/testing/basic-example.md @@ -10,7 +10,7 @@ Let's use `launchTestNode` with the counter contract from the [Fuel dApp tutoria _Note: you will have to change the import paths of the contract factory and bytecode to match your folder structure._ -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#basic-example{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#basic-example{ts:line-numbers} ## Summary diff --git a/apps/docs/src/guide/testing/fuel-core-options.md b/apps/docs/src/guide/testing/fuel-core-options.md index aa6bd11405b..53e449f97ea 100644 --- a/apps/docs/src/guide/testing/fuel-core-options.md +++ b/apps/docs/src/guide/testing/fuel-core-options.md @@ -20,7 +20,7 @@ If you need a different snapshot, you can specify a `DEFAULT_CHAIN_SNAPSHOT_DIR` How and where you specify the environment variable depends on your testing tool. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#custom-chain-config{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#custom-chain-config{ts:line-numbers} ## Fuel-Core Node Options @@ -32,4 +32,4 @@ fuel-core run --help If you want _all_ your tests to run with the same arguments, consider specifying the `DEFAULT_FUEL_CORE_ARGS` environment variable. -<<< @/../../docs-snippets/src/guide/testing/launching-a-test-node.test.ts#custom-fuel-core-args{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#custom-fuel-core-args{ts:line-numbers} diff --git a/apps/docs/src/guide/testing/launching-a-test-node.md b/apps/docs/src/guide/testing/launching-a-test-node.md index e9b546477c8..a08f5f92636 100644 --- a/apps/docs/src/guide/testing/launching-a-test-node.md +++ b/apps/docs/src/guide/testing/launching-a-test-node.md @@ -10,7 +10,7 @@ For usage information for `launchTestNode` including it's inputs, outputs and op We support [explicit resource management](https://www.typescriptlang.org/docs/handbook/variable-declarations.html#using-declarations), introduced in TypeScript 5.2, which automatically calls a `cleanup` function after a variable instantiated with the `using` keyword goes out of block scope: -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#automatic-cleanup{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#automatic-cleanup{ts:line-numbers} ### Configuring Typescript @@ -35,4 +35,4 @@ If you don't want, or can't use [explicit resource management](https://www.types In this case, remember you must call `.cleanup()` to dispose of the node. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#manual-cleanup{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#manual-cleanup{ts:line-numbers} diff --git a/apps/docs/src/guide/testing/test-node-options.md b/apps/docs/src/guide/testing/test-node-options.md index 2bbf8624dd4..edae0e429d4 100644 --- a/apps/docs/src/guide/testing/test-node-options.md +++ b/apps/docs/src/guide/testing/test-node-options.md @@ -7,7 +7,7 @@ This reference describes all the options of the [`launchTestNode`](./launching-a - [`nodeOptions`](./test-node-options.md#nodeoptions) - [`providerOptions`](./test-node-options.md#provideroptions) -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#options{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#options{ts:line-numbers} Check out the [API reference](../../api/Contract/LaunchTestNodeOptions.md) for usage information on the Test Node Options. @@ -26,17 +26,17 @@ Used to set the node's genesis block state (coins and messages). The `TestAssetId` utility integrates with [`walletsConfig`](./test-node-options.md#walletsconfig) and gives you an easy way to generate multiple random asset ids via the `TestAssetId.random` static method. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#asset-ids{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#asset-ids{ts:line-numbers} ### `walletsConfig.messages` The `TestMessage` helper class is used to create messages for testing purposes. When passed via `walletsConfig.messages`, the `recipient` field of the message is overriden to be the wallet's address. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#test-messages{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#test-messages{ts:line-numbers} It can also be used standalone and passed into the initial state of the chain via the `TestMessage.toChainMessage` instance method. -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#test-messages-chain{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#test-messages-chain{ts:line-numbers} ## `contractsConfigs` @@ -54,7 +54,7 @@ Options to modify the behavior of the node. For example, you can specify your own base asset id of the chain like below: -<<< @/../../docs-snippets2/src/testing/launching-a-test-node.node.ts#custom-node-options{ts:line-numbers} +<<< @/../../docs-snippets2/src/testing/launching-a-test-node.ts#custom-node-options{ts:line-numbers} _Note: The API for these options is still not fully complete and better documentation will come in the future._ diff --git a/apps/docs/src/guide/wallets/wallet-manager.md b/apps/docs/src/guide/wallets/wallet-manager.md index a70ed0c1ee9..9f586558c3f 100644 --- a/apps/docs/src/guide/wallets/wallet-manager.md +++ b/apps/docs/src/guide/wallets/wallet-manager.md @@ -84,13 +84,13 @@ This guide will walk you through the process of managing the lock state of your As mentioned earlier, a `WalletManager` instance begins in a locked state. Before usage, you need to unlock it by providing a password via the unlock method. -<<< @/../../docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts#locking-and-unlocking-wallet-manager-1{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts#locking-and-unlocking-wallet-manager-1{ts:line-numbers} ### Locking the `WalletManager` When you lock the `WalletManager` using the `lock` method, all its vaults and associated accounts (wallets) are cleared. This clearance is possible due to the encryption and saving of all data by the storage system. `WalletManager` frequently uses the storage system to preserve its state. Consequently, sensitive operations including exporting vaults, private keys, accessing wallets, and saving/loading the `WalletManager` state are not possible when it is locked. -<<< @/../../docs-snippets/src/guide/wallet-manager/locking-and-unlocking-wallet-manager.test.ts#locking-and-unlocking-wallet-manager-2{ts:line-numbers} +<<< @/../../docs-snippets2/src/wallet-manager/locking-and-unlocking-wallet-manager.ts#locking-and-unlocking-wallet-manager-2{ts:line-numbers} Remember, it's crucial to lock your `WalletManager` when it's not in use to ensure the safety of your funds. From 8c6187caf8b23a47c5a7bb7db4a99bafda9fb94c Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 15:43:44 +0400 Subject: [PATCH 123/129] build: updated scripts --- apps/docs-snippets2/.gitignore | 1 + apps/docs-snippets2/package.json | 2 +- apps/docs-snippets2/scripts/pretest.sh | 17 +++++++++++++++++ .../types/enums/using-an-invalid-enum-value.ts | 4 ++-- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 apps/docs-snippets2/scripts/pretest.sh diff --git a/apps/docs-snippets2/.gitignore b/apps/docs-snippets2/.gitignore index e2327c8eaed..303199f6582 100644 --- a/apps/docs-snippets2/.gitignore +++ b/apps/docs-snippets2/.gitignore @@ -1,2 +1,3 @@ src/typegend src/**/*.test.ts +.fuels/ \ No newline at end of file diff --git a/apps/docs-snippets2/package.json b/apps/docs-snippets2/package.json index e5c056a8fd0..f3541d4d330 100644 --- a/apps/docs-snippets2/package.json +++ b/apps/docs-snippets2/package.json @@ -7,7 +7,7 @@ "build": "run-s wrap:snippets build:forc", "build:forc": "pnpm fuels build", "wrap:snippets": "tsx scripts/wrap-snippets.ts", - "pretest": "pnpm build", + "pretest": "./scripts/pretest.sh", "test": "cd ../.. && pnpm run test:filter apps/docs-snippets2" }, "dependencies": { diff --git a/apps/docs-snippets2/scripts/pretest.sh b/apps/docs-snippets2/scripts/pretest.sh new file mode 100755 index 00000000000..e4e41106e97 --- /dev/null +++ b/apps/docs-snippets2/scripts/pretest.sh @@ -0,0 +1,17 @@ +# Kill anything running on port 4000 +lsof -t -i:4000 | xargs -r kill + +# Runs a node at port 4000 +pnpm fuels node > /dev/null 2>&1 & + +# Builds projects +pnpm fuels build + +# Deploys projects (needed for loader bytecode) +pnpm fuels deploy + +# Kills the node +lsof -t -i:4000 | xargs -r kill + +# Checks for type errors +pnpm tsc --noEmit \ No newline at end of file diff --git a/apps/docs-snippets2/src/types/enums/using-an-invalid-enum-value.ts b/apps/docs-snippets2/src/types/enums/using-an-invalid-enum-value.ts index b183811e44a..ae1b8adb46a 100644 --- a/apps/docs-snippets2/src/types/enums/using-an-invalid-enum-value.ts +++ b/apps/docs-snippets2/src/types/enums/using-an-invalid-enum-value.ts @@ -1,10 +1,10 @@ // #region snippet-1 // Valid values: 'Void', 'Pending', 'Completed' -const emumParam = 'NotStateEnumValue'; +const invalidEnumValue = 'NotStateEnumValue'; try { // @ts-expect-error NotStateEnumValue is not a valid value - await contract.functions.echo_state_error_enum(emumParam).get(); + await contract.functions.echo_state_error_enum(invalidEnumValue).get(); } catch (error) { console.log('error', error); } From 68e95e452e36f07908202048bd83c844cac07487 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 15:58:02 +0400 Subject: [PATCH 124/129] ci: adjust script for ci --- apps/docs-snippets2/scripts/pretest.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/docs-snippets2/scripts/pretest.sh b/apps/docs-snippets2/scripts/pretest.sh index e4e41106e97..cf8ecccbf8f 100755 --- a/apps/docs-snippets2/scripts/pretest.sh +++ b/apps/docs-snippets2/scripts/pretest.sh @@ -1,8 +1,7 @@ -# Kill anything running on port 4000 -lsof -t -i:4000 | xargs -r kill - -# Runs a node at port 4000 -pnpm fuels node > /dev/null 2>&1 & +# Check if node is already running at port 4000, if not start it +if ! lsof -t -i:4000 > /dev/null; then + pnpm fuels node > /dev/null 2>&1 & +fi # Builds projects pnpm fuels build From 9dc373a47dab88eb0d215af5d0850906e7bc34ca Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 16:08:26 +0400 Subject: [PATCH 125/129] ci: update pretest script for temp builds --- apps/docs-snippets/.gitignore | 1 + apps/docs-snippets/scripts/pretest.sh | 13 +++++-------- apps/docs-snippets2/scripts/pretest.sh | 4 +--- 3 files changed, 7 insertions(+), 11 deletions(-) create mode 100644 apps/docs-snippets/.gitignore diff --git a/apps/docs-snippets/.gitignore b/apps/docs-snippets/.gitignore new file mode 100644 index 00000000000..e4943ddb2d1 --- /dev/null +++ b/apps/docs-snippets/.gitignore @@ -0,0 +1 @@ +.fuels/ \ No newline at end of file diff --git a/apps/docs-snippets/scripts/pretest.sh b/apps/docs-snippets/scripts/pretest.sh index e4e41106e97..25f1121e8e3 100755 --- a/apps/docs-snippets/scripts/pretest.sh +++ b/apps/docs-snippets/scripts/pretest.sh @@ -1,8 +1,8 @@ -# Kill anything running on port 4000 -lsof -t -i:4000 | xargs -r kill - -# Runs a node at port 4000 -pnpm fuels node > /dev/null 2>&1 & +# Check if node is already running at port 4000, if not start it +# TODO: This is a temporary solution to avoid conflicts with the test node in docs-snippets2 +if ! lsof -t -i:4000 > /dev/null; then + pnpm fuels node > /dev/null 2>&1 & +fi # Builds projects pnpm fuels build @@ -10,8 +10,5 @@ pnpm fuels build # Deploys projects (needed for loader bytecode) pnpm fuels deploy -# Kills the node -lsof -t -i:4000 | xargs -r kill - # Checks for type errors pnpm tsc --noEmit \ No newline at end of file diff --git a/apps/docs-snippets2/scripts/pretest.sh b/apps/docs-snippets2/scripts/pretest.sh index cf8ecccbf8f..3843d22753c 100755 --- a/apps/docs-snippets2/scripts/pretest.sh +++ b/apps/docs-snippets2/scripts/pretest.sh @@ -1,4 +1,5 @@ # Check if node is already running at port 4000, if not start it +# TODO: This is a temporary solution to avoid conflicts with the test node in docs-snippets if ! lsof -t -i:4000 > /dev/null; then pnpm fuels node > /dev/null 2>&1 & fi @@ -9,8 +10,5 @@ pnpm fuels build # Deploys projects (needed for loader bytecode) pnpm fuels deploy -# Kills the node -lsof -t -i:4000 | xargs -r kill - # Checks for type errors pnpm tsc --noEmit \ No newline at end of file From 4d22c3902ec319eedad7da3711eba6acf4b94c76 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 16:24:49 +0400 Subject: [PATCH 126/129] ci: temp kill all nodes for deploy test --- packages/fuels/test/features/deploy.test.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/fuels/test/features/deploy.test.ts b/packages/fuels/test/features/deploy.test.ts index 55a2e7f9f00..e76c878130f 100644 --- a/packages/fuels/test/features/deploy.test.ts +++ b/packages/fuels/test/features/deploy.test.ts @@ -1,6 +1,7 @@ import type { JsonAbi } from '@fuel-ts/abi-coder'; import type { Account } from '@fuel-ts/account'; import { Contract } from '@fuel-ts/program'; +import { exec } from 'child_process'; import { existsSync, readFileSync, writeFileSync } from 'fs'; import { join } from 'path'; @@ -14,6 +15,22 @@ import { runInit, } from '../utils/runCommands'; +beforeAll(async () => { + // Kill any existing process at port 4000 + const killCommand = 'lsof -ti:4000 | xargs kill -9'; + + try { + await new Promise((resolve, reject) => { + exec(killCommand, (error: Error | null) => { + // Ignore errors since port may not be in use + resolve(null); + }); + }); + } catch (e) { + // Ignore errors since port may not be in use + } +}); + /** * @group node */ From 4f9b2889e4c7ad345ed21592dd26e11e86d88341 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 16:36:24 +0400 Subject: [PATCH 127/129] docs: add changeset --- .changeset/lazy-years-share.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/lazy-years-share.md diff --git a/.changeset/lazy-years-share.md b/.changeset/lazy-years-share.md new file mode 100644 index 00000000000..4f7bbb87e72 --- /dev/null +++ b/.changeset/lazy-years-share.md @@ -0,0 +1,5 @@ +--- +"fuels": patch +--- + +docs: add further snippets with new infrastructure From a8d5a9d03f327a8825416bb10418fb94c25aa0a2 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 16:37:54 +0400 Subject: [PATCH 128/129] linting --- packages/fuels/test/features/deploy.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/fuels/test/features/deploy.test.ts b/packages/fuels/test/features/deploy.test.ts index e76c878130f..a9e57186a06 100644 --- a/packages/fuels/test/features/deploy.test.ts +++ b/packages/fuels/test/features/deploy.test.ts @@ -20,8 +20,8 @@ beforeAll(async () => { const killCommand = 'lsof -ti:4000 | xargs kill -9'; try { - await new Promise((resolve, reject) => { - exec(killCommand, (error: Error | null) => { + await new Promise((resolve) => { + exec(killCommand, () => { // Ignore errors since port may not be in use resolve(null); }); From be701a87356636fcfbc09cb8f4725bec39c90c11 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 28 Oct 2024 17:03:05 +0400 Subject: [PATCH 129/129] lint: ignore generated directories --- .prettierignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.prettierignore b/.prettierignore index 5576b6cd7fc..4285e9462f6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,6 +14,8 @@ apps/demo-typegen/src/script-types apps/demo-typegen/src/predicate-types apps/docs/.vitepress/cache/ apps/create-fuels-counter-guide +apps/docs-snippets/.fuels +apps/docs-snippets2/.fuels packages/fuels/src/cli/commands/deploy/proxy packages/fuels/test/fixtures/project