From 1ea71a669d236d6dd90be2ad4821ae9c43a3a805 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Wed, 13 Sep 2023 05:49:14 +0000 Subject: [PATCH 01/13] deps: add @metamask/safe-event-emitter@^3.0.0 --- package.json | 1 + yarn.lock | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/package.json b/package.json index 68561186f..0923119ee 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "@metamask/eslint-config-jest": "^12.0.0", "@metamask/eslint-config-nodejs": "^12.0.0", "@metamask/eslint-config-typescript": "^12.0.0", + "@metamask/safe-event-emitter": "^3.0.0", "@swc/cli": "^0.1.62", "@swc/core": "^1.3.66", "@types/jest": "^28.1.7", diff --git a/yarn.lock b/yarn.lock index 6dbbe2e8a..86b94c245 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1088,6 +1088,13 @@ __metadata: languageName: node linkType: hard +"@metamask/safe-event-emitter@npm:^3.0.0": + version: 3.0.0 + resolution: "@metamask/safe-event-emitter@npm:3.0.0" + checksum: 8dc58a76f9f75bf2405931465fc311c68043d851e6b8ebe9f82ae339073a08a83430dba9338f8e3adc4bfc8067607125074bcafa32baee3a5157f42343dc89e5 + languageName: node + linkType: hard + "@metamask/utils@workspace:.": version: 0.0.0-use.local resolution: "@metamask/utils@workspace:." @@ -1100,6 +1107,7 @@ __metadata: "@metamask/eslint-config-jest": ^12.0.0 "@metamask/eslint-config-nodejs": ^12.0.0 "@metamask/eslint-config-typescript": ^12.0.0 + "@metamask/safe-event-emitter": ^3.0.0 "@noble/hashes": ^1.3.1 "@swc/cli": ^0.1.62 "@swc/core": ^1.3.66 From 35ec38a17011c3175198fa5180013edead455f46 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Wed, 13 Sep 2023 05:51:32 +0000 Subject: [PATCH 02/13] feat/types: export EIP1193Provider and EthJsonRpcProvider interfaces --- src/eth-provider-types.ts | 57 +++++++++++++++++++++++++++++++++++++++ src/index.ts | 1 + 2 files changed, 58 insertions(+) create mode 100644 src/eth-provider-types.ts diff --git a/src/eth-provider-types.ts b/src/eth-provider-types.ts new file mode 100644 index 000000000..71eb7bb2a --- /dev/null +++ b/src/eth-provider-types.ts @@ -0,0 +1,57 @@ +import type SafeEventEmitter from '@metamask/safe-event-emitter'; + +import type { Hex } from './hex'; +import type { JsonRpcParams, Json } from './json'; +import type { PartialOrAbsent } from './misc'; + +/** + * An interface for the EIP-1193 specification for an Ethereum JavaScript Provider. + * + * For details, see: + * - [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) + * - [BaseProvider]{@link https://github.com/MetaMask/providers/blob/main/src/BaseProvider.ts} in package [@metamask/providers](https://www.npmjs.com/package/@metamask/providers) + */ +export type EIP1193Provider = SafeEventEmitter & { + /** + * Submits an RPC request for the given method, with the given params. + * Resolves with the result of the method call, or rejects on error. + * + * @param args - The RPC request arguments. + * @param args.method - The RPC method name. + * @param args.params - The parameters for the RPC method. + * @returns A Promise that resolves with the result of the RPC method, + * or rejects if an error is encountered. + */ + request( + args: Params, + ): Promise>; +}; + +/** + * An extension of the EIP-1193 specification for an Ethereum JavaScript Provider. + * + * For details, see: + * - [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) + * - [BaseProvider]{@link https://github.com/MetaMask/providers/blob/main/src/BaseProvider.ts} in package [@metamask/providers](https://www.npmjs.com/package/@metamask/providers) + * - https://docs.metamask.io/wallet/reference/provider-api/ + */ +export type EthJsonRpcProvider = EIP1193Provider & { + /** + * The chain ID of the currently connected Ethereum chain, represented as 0x-prefixed hexstring. + * See [chainId.network]{@link https://chainid.network} for more information. + */ + chainId: Hex | null; + + /** + * The user's currently selected Ethereum address as a 0x-prefixed hexstring. + * If read-access is denied, null is returned. + */ + selectedAddress: Hex | null; + + /** + * Returns true if the provider has a connection to the network and is able to process requests for the active chain. + * + * @returns Whether the provider can process RPC requests. + */ + isConnected(): boolean; +}; diff --git a/src/index.ts b/src/index.ts index 7e44f26a5..3ada73b32 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,7 @@ export * from './checksum'; export * from './coercers'; export * from './collections'; export * from './encryption-types'; +export * from './eth-provider-types'; export * from './hex'; export * from './json'; export * from './keyring'; From de8d6ef3498d85478338f34da82dadeb88a5f63e Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Wed, 4 Oct 2023 02:56:35 +0000 Subject: [PATCH 03/13] chore: rename eth-provider-types.ts to json-rpc-provider-types.ts --- src/index.ts | 2 +- src/{eth-provider-types.ts => json-rpc-provider-types.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/{eth-provider-types.ts => json-rpc-provider-types.ts} (100%) diff --git a/src/index.ts b/src/index.ts index 3ada73b32..8a8d8520d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,7 +6,7 @@ export * from './checksum'; export * from './coercers'; export * from './collections'; export * from './encryption-types'; -export * from './eth-provider-types'; +export * from './json-rpc-provider-types'; export * from './hex'; export * from './json'; export * from './keyring'; diff --git a/src/eth-provider-types.ts b/src/json-rpc-provider-types.ts similarity index 100% rename from src/eth-provider-types.ts rename to src/json-rpc-provider-types.ts From 28a81295e3f0da442458a67fe2401667a188ae35 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Wed, 4 Oct 2023 04:33:03 +0000 Subject: [PATCH 04/13] replace EthJsonRpcProvider with LegacyEthereumProvider - Remove EthJsonRpcProvider - Add LegacyEthereumProvider defining sendAsync providers --- src/json-rpc-provider-types.ts | 52 +++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index 71eb7bb2a..6bfe9a886 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -1,7 +1,6 @@ import type SafeEventEmitter from '@metamask/safe-event-emitter'; -import type { Hex } from './hex'; -import type { JsonRpcParams, Json } from './json'; +import type { JsonRpcParams, JsonRpcRequest, Json } from './json'; import type { PartialOrAbsent } from './misc'; /** @@ -28,30 +27,37 @@ export type EIP1193Provider = SafeEventEmitter & { }; /** - * An extension of the EIP-1193 specification for an Ethereum JavaScript Provider. + * The interface for a legacy Ethereum provider. * - * For details, see: - * - [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) - * - [BaseProvider]{@link https://github.com/MetaMask/providers/blob/main/src/BaseProvider.ts} in package [@metamask/providers](https://www.npmjs.com/package/@metamask/providers) - * - https://docs.metamask.io/wallet/reference/provider-api/ + * This provider follows conventions that pre-date + * [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). It is not compliant with + * any Ethereum provider standard. */ -export type EthJsonRpcProvider = EIP1193Provider & { - /** - * The chain ID of the currently connected Ethereum chain, represented as 0x-prefixed hexstring. - * See [chainId.network]{@link https://chainid.network} for more information. - */ - chainId: Hex | null; - +export type LegacyEthereumProvider = { /** - * The user's currently selected Ethereum address as a 0x-prefixed hexstring. - * If read-access is denied, null is returned. - */ - selectedAddress: Hex | null; - - /** - * Returns true if the provider has a connection to the network and is able to process requests for the active chain. + * Send a provider request asynchronously. * - * @returns Whether the provider can process RPC requests. + * @param req - The request to send. + * @param callback - A function that is called upon the success or failure of the request. */ - isConnected(): boolean; + sendAsync( + req: Partial, + callback: SendAsyncCallback, + ): void; }; + +type SendAsyncCallback = ( + ...args: + | [error: EverythingButNull, result: undefined] + | [error: null, result: Result] +) => void; + +// What it says on the tin. We omit `null`, as that value is used for a +// successful response to indicate a lack of an error. +type EverythingButNull = + | string + | number + | boolean + | object + | symbol + | undefined; From a53994f8a6063f3102906082857a5f538b6f7123 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Wed, 4 Oct 2023 05:48:02 +0000 Subject: [PATCH 05/13] update LegacyEthereumProvider; add type-integration tests --- package.json | 2 + src/json-rpc-provider-types.test-d.ts | 12 + src/json-rpc-provider-types.ts | 33 ++- yarn.lock | 383 +++++++++++++++++++++++++- 4 files changed, 427 insertions(+), 3 deletions(-) create mode 100644 src/json-rpc-provider-types.test-d.ts diff --git a/package.json b/package.json index 0923119ee..15e33c674 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "superstruct": "^1.0.3" }, "devDependencies": { + "@ethersproject/providers": "^5.7.2", "@lavamoat/allow-scripts": "^2.3.1", "@lavamoat/preinstall-always-fail": "^1.0.0", "@metamask/auto-changelog": "^3.1.0", @@ -68,6 +69,7 @@ "@metamask/eslint-config-jest": "^12.0.0", "@metamask/eslint-config-nodejs": "^12.0.0", "@metamask/eslint-config-typescript": "^12.0.0", + "@metamask/eth-query": "^3.0.1", "@metamask/safe-event-emitter": "^3.0.0", "@swc/cli": "^0.1.62", "@swc/core": "^1.3.66", diff --git a/src/json-rpc-provider-types.test-d.ts b/src/json-rpc-provider-types.test-d.ts new file mode 100644 index 000000000..3891c8142 --- /dev/null +++ b/src/json-rpc-provider-types.test-d.ts @@ -0,0 +1,12 @@ +import { expectAssignable, expectNotAssignable } from 'tsd'; +import EthQuery from '@metamask/eth-query'; +import { Web3Provider } from '@ethersproject/providers'; + +import type { + LegacyEthereumProvider +} from '.'; + +// Known legacy providers + +expectAssignable(new EthQuery({} as any)); +expectAssignable(new Web3Provider({} as any)); diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index 6bfe9a886..b1ae29f78 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -33,17 +33,46 @@ export type EIP1193Provider = SafeEventEmitter & { * [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). It is not compliant with * any Ethereum provider standard. */ -export type LegacyEthereumProvider = { +export type LegacyEthereumProvider = LegacyEthersProvider | LegacyEthJsQueryProvider | LegacyWeb3Provider; + +type LegacyWeb3Provider = { /** * Send a provider request asynchronously. * * @param req - The request to send. * @param callback - A function that is called upon the success or failure of the request. */ - sendAsync( + send?( req: Partial, callback: SendAsyncCallback, ): void; +} + +type LegacyEthJsQueryProvider = { + /** + * Send a provider request asynchronously. (ethjs-query) + * + * @param req - The request to send. + * @param callback - A function that is called upon the success or failure of the request. + */ + sendAsync?( + req: Partial, + callback: SendAsyncCallback, + ): void; +}; + +type LegacyEthersProvider = { + /** + * Send a provider request asynchronously. (ethers v5 Web3Provider) + * + * @param method - The RPC method to call. + * @param params - Array with method parameters. + * @returns - A promise resolving with the result of the RPC call, or rejecting on failure. + */ + send?( + method: string, + params: any[], + ): Promise; }; type SendAsyncCallback = ( diff --git a/yarn.lock b/yarn.lock index 86b94c245..155cd4a09 100644 --- a/yarn.lock +++ b/yarn.lock @@ -563,6 +563,261 @@ __metadata: languageName: node linkType: hard +"@ethersproject/abstract-provider@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-provider@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/networks": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + "@ethersproject/transactions": ^5.7.0 + "@ethersproject/web": ^5.7.0 + checksum: 74cf4696245cf03bb7cc5b6cbf7b4b89dd9a79a1c4688126d214153a938126d4972d42c93182198653ce1de35f2a2cad68be40337d4774b3698a39b28f0228a8 + languageName: node + linkType: hard + +"@ethersproject/abstract-signer@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-signer@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": ^5.7.0 + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + checksum: a823dac9cfb761e009851050ebebd5b229d1b1cc4a75b125c2da130ff37e8218208f7f9d1386f77407705b889b23d4a230ad67185f8872f083143e0073cbfbe3 + languageName: node + linkType: hard + +"@ethersproject/address@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/address@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/keccak256": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/rlp": ^5.7.0 + checksum: 64ea5ebea9cc0e845c413e6cb1e54e157dd9fc0dffb98e239d3a3efc8177f2ff798cd4e3206cf3660ee8faeb7bef1a47dc0ebef0d7b132c32e61e550c7d4c843 + languageName: node + linkType: hard + +"@ethersproject/base64@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/base64@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + checksum: 7dd5d734d623582f08f665434f53685041a3d3b334a0e96c0c8afa8bbcaab934d50e5b6b980e826a8fde8d353e0b18f11e61faf17468177274b8e7c69cd9742b + languageName: node + linkType: hard + +"@ethersproject/basex@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/basex@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + checksum: 326087b7e1f3787b5fe6cd1cf2b4b5abfafbc355a45e88e22e5e9d6c845b613ffc5301d629b28d5c4d5e2bfe9ec424e6782c804956dff79be05f0098cb5817de + languageName: node + linkType: hard + +"@ethersproject/bignumber@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bignumber@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + bn.js: ^5.2.1 + checksum: 8c9a134b76f3feb4ec26a5a27379efb4e156b8fb2de0678a67788a91c7f4e30abe9d948638458e4b20f2e42380da0adacc7c9389d05fce070692edc6ae9b4904 + languageName: node + linkType: hard + +"@ethersproject/bytes@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bytes@npm:5.7.0" + dependencies: + "@ethersproject/logger": ^5.7.0 + checksum: 66ad365ceaab5da1b23b72225c71dce472cf37737af5118181fa8ab7447d696bea15ca22e3a0e8836fdd8cfac161afe321a7c67d0dde96f9f645ddd759676621 + languageName: node + linkType: hard + +"@ethersproject/constants@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/constants@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": ^5.7.0 + checksum: 6d4b1355747cce837b3e76ec3bde70e4732736f23b04f196f706ebfa5d4d9c2be50904a390d4d40ce77803b98d03d16a9b6898418e04ba63491933ce08c4ba8a + languageName: node + linkType: hard + +"@ethersproject/hash@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hash@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": ^5.7.0 + "@ethersproject/address": ^5.7.0 + "@ethersproject/base64": ^5.7.0 + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/keccak256": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + "@ethersproject/strings": ^5.7.0 + checksum: 6e9fa8d14eb08171cd32f17f98cc108ec2aeca74a427655f0d689c550fee0b22a83b3b400fad7fb3f41cf14d4111f87f170aa7905bcbcd1173a55f21b06262ef + languageName: node + linkType: hard + +"@ethersproject/keccak256@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/keccak256@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + js-sha3: 0.8.0 + checksum: ff70950d82203aab29ccda2553422cbac2e7a0c15c986bd20a69b13606ed8bb6e4fdd7b67b8d3b27d4f841e8222cbaccd33ed34be29f866fec7308f96ed244c6 + languageName: node + linkType: hard + +"@ethersproject/logger@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/logger@npm:5.7.0" + checksum: 075ab2f605f1fd0813f2e39c3308f77b44a67732b36e712d9bc085f22a84aac4da4f71b39bee50fe78da3e1c812673fadc41180c9970fe5e486e91ea17befe0d + languageName: node + linkType: hard + +"@ethersproject/networks@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/networks@npm:5.7.1" + dependencies: + "@ethersproject/logger": ^5.7.0 + checksum: 0339f312304c17d9a0adce550edb825d4d2c8c9468c1634c44172c67a9ed256f594da62c4cda5c3837a0f28b7fabc03aca9b492f68ff1fdad337ee861b27bd5d + languageName: node + linkType: hard + +"@ethersproject/properties@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/properties@npm:5.7.0" + dependencies: + "@ethersproject/logger": ^5.7.0 + checksum: 6ab0ccf0c3aadc9221e0cdc5306ce6cd0df7f89f77d77bccdd1277182c9ead0202cd7521329ba3acde130820bf8af299e17cf567d0d497c736ee918207bbf59f + languageName: node + linkType: hard + +"@ethersproject/providers@npm:^5.7.2": + version: 5.7.2 + resolution: "@ethersproject/providers@npm:5.7.2" + dependencies: + "@ethersproject/abstract-provider": ^5.7.0 + "@ethersproject/abstract-signer": ^5.7.0 + "@ethersproject/address": ^5.7.0 + "@ethersproject/base64": ^5.7.0 + "@ethersproject/basex": ^5.7.0 + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/constants": ^5.7.0 + "@ethersproject/hash": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/networks": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + "@ethersproject/random": ^5.7.0 + "@ethersproject/rlp": ^5.7.0 + "@ethersproject/sha2": ^5.7.0 + "@ethersproject/strings": ^5.7.0 + "@ethersproject/transactions": ^5.7.0 + "@ethersproject/web": ^5.7.0 + bech32: 1.1.4 + ws: 7.4.6 + checksum: 1754c731a5ca6782ae9677f4a9cd8b6246c4ef21a966c9a01b133750f3c578431ec43ec254e699969c4a0f87e84463ded50f96b415600aabd37d2056aee58c19 + languageName: node + linkType: hard + +"@ethersproject/random@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/random@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + checksum: 017829c91cff6c76470852855108115b0b52c611b6be817ed1948d56ba42d6677803ec2012aa5ae298a7660024156a64c11fcf544e235e239ab3f89f0fff7345 + languageName: node + linkType: hard + +"@ethersproject/rlp@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/rlp@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + checksum: bce165b0f7e68e4d091c9d3cf47b247cac33252df77a095ca4281d32d5eeaaa3695d9bc06b2b057c5015353a68df89f13a4a54a72e888e4beeabbe56b15dda6e + languageName: node + linkType: hard + +"@ethersproject/sha2@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/sha2@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + hash.js: 1.1.7 + checksum: 09321057c022effbff4cc2d9b9558228690b5dd916329d75c4b1ffe32ba3d24b480a367a7cc92d0f0c0b1c896814d03351ae4630e2f1f7160be2bcfbde435dbc + languageName: node + linkType: hard + +"@ethersproject/signing-key@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/signing-key@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + bn.js: ^5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + checksum: 8f8de09b0aac709683bbb49339bc0a4cd2f95598f3546436c65d6f3c3a847ffa98e06d35e9ed2b17d8030bd2f02db9b7bd2e11c5cf8a71aad4537487ab4cf03a + languageName: node + linkType: hard + +"@ethersproject/strings@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/strings@npm:5.7.0" + dependencies: + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/constants": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + checksum: 5ff78693ae3fdf3cf23e1f6dc047a61e44c8197d2408c42719fef8cb7b7b3613a4eec88ac0ed1f9f5558c74fe0de7ae3195a29ca91a239c74b9f444d8e8b50df + languageName: node + linkType: hard + +"@ethersproject/transactions@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/transactions@npm:5.7.0" + dependencies: + "@ethersproject/address": ^5.7.0 + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/constants": ^5.7.0 + "@ethersproject/keccak256": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + "@ethersproject/rlp": ^5.7.0 + "@ethersproject/signing-key": ^5.7.0 + checksum: a31b71996d2b283f68486241bff0d3ea3f1ba0e8f1322a8fffc239ccc4f4a7eb2ea9994b8fd2f093283fd75f87bae68171e01b6265261f821369aca319884a79 + languageName: node + linkType: hard + +"@ethersproject/web@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/web@npm:5.7.1" + dependencies: + "@ethersproject/base64": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + "@ethersproject/strings": ^5.7.0 + checksum: 7028c47103f82fd2e2c197ce0eecfacaa9180ffeec7de7845b1f4f9b19d84081b7a48227aaddde05a4aaa526af574a9a0ce01cc0fc75e3e371f84b38b5b16b2b + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -1088,6 +1343,16 @@ __metadata: languageName: node linkType: hard +"@metamask/eth-query@npm:^3.0.1": + version: 3.0.1 + resolution: "@metamask/eth-query@npm:3.0.1" + dependencies: + json-rpc-random-id: ^1.0.0 + xtend: ^4.0.1 + checksum: b9a323dff67328eace7d54fc8b0bc4dd763bf15760870656cbd5aad5380d1ee4489fb5c59506290d5f77cf55e74e530ee97b52702a329f1090ec03a6158434b7 + languageName: node + linkType: hard + "@metamask/safe-event-emitter@npm:^3.0.0": version: 3.0.0 resolution: "@metamask/safe-event-emitter@npm:3.0.0" @@ -1100,6 +1365,7 @@ __metadata: resolution: "@metamask/utils@workspace:." dependencies: "@ethereumjs/tx": ^4.1.2 + "@ethersproject/providers": ^5.7.2 "@lavamoat/allow-scripts": ^2.3.1 "@lavamoat/preinstall-always-fail": ^1.0.0 "@metamask/auto-changelog": ^3.1.0 @@ -1107,6 +1373,7 @@ __metadata: "@metamask/eslint-config-jest": ^12.0.0 "@metamask/eslint-config-nodejs": ^12.0.0 "@metamask/eslint-config-typescript": ^12.0.0 + "@metamask/eth-query": ^3.0.1 "@metamask/safe-event-emitter": ^3.0.0 "@noble/hashes": ^1.3.1 "@swc/cli": ^0.1.62 @@ -2354,6 +2621,13 @@ __metadata: languageName: node linkType: hard +"bech32@npm:1.1.4": + version: 1.1.4 + resolution: "bech32@npm:1.1.4" + checksum: 0e98db619191548390d6f09ff68b0253ba7ae6a55db93dfdbb070ba234c1fd3308c0606fbcc95fad50437227b10011e2698b89f0181f6e7f845c499bd14d0f4b + languageName: node + linkType: hard + "bin-check@npm:^4.1.0": version: 4.1.0 resolution: "bin-check@npm:4.1.0" @@ -2404,6 +2678,20 @@ __metadata: languageName: node linkType: hard +"bn.js@npm:^4.11.9": + version: 4.12.0 + resolution: "bn.js@npm:4.12.0" + checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 + languageName: node + linkType: hard + +"bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -2432,6 +2720,13 @@ __metadata: languageName: node linkType: hard +"brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be + languageName: node + linkType: hard + "browserslist@npm:^4.21.3": version: 4.21.4 resolution: "browserslist@npm:4.21.4" @@ -3119,6 +3414,21 @@ __metadata: languageName: node linkType: hard +"elliptic@npm:6.5.4": + version: 6.5.4 + resolution: "elliptic@npm:6.5.4" + dependencies: + bn.js: ^4.11.9 + brorand: ^1.1.0 + hash.js: ^1.0.0 + hmac-drbg: ^1.0.1 + inherits: ^2.0.4 + minimalistic-assert: ^1.0.1 + minimalistic-crypto-utils: ^1.0.1 + checksum: d56d21fd04e97869f7ffcc92e18903b9f67f2d4637a23c860492fbbff5a3155fd9ca0184ce0c865dd6eb2487d234ce9551335c021c376cd2d3b7cb749c7d10f4 + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -4333,6 +4643,27 @@ __metadata: languageName: node linkType: hard +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: ^2.0.3 + minimalistic-assert: ^1.0.1 + checksum: e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f + languageName: node + linkType: hard + +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" + dependencies: + hash.js: ^1.0.3 + minimalistic-assert: ^1.0.0 + minimalistic-crypto-utils: ^1.0.1 + checksum: bd30b6a68d7f22d63f10e1888aee497d7c2c5c0bb469e66bbdac99f143904d1dfe95f8131f95b3e86c86dd239963c9d972fcbe147e7cffa00e55d18585c43fe0 + languageName: node + linkType: hard + "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -4493,7 +4824,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.3": +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -5376,6 +5707,13 @@ __metadata: languageName: node linkType: hard +"js-sha3@npm:0.8.0": + version: 0.8.0 + resolution: "js-sha3@npm:0.8.0" + checksum: 75df77c1fc266973f06cce8309ce010e9e9f07ec35ab12022ed29b7f0d9c8757f5a73e1b35aa24840dced0dea7059085aa143d817aea9e188e2a80d569d9adce + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -5443,6 +5781,13 @@ __metadata: languageName: node linkType: hard +"json-rpc-random-id@npm:^1.0.0": + version: 1.0.1 + resolution: "json-rpc-random-id@npm:1.0.1" + checksum: fcd2e884193a129ace4002bd65a86e9cdb206733b4693baea77bd8b372cf8de3043fbea27716a2c9a716581a908ca8d978d9dfec4847eb2cf77edb4cf4b2252c + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -5828,6 +6173,20 @@ __metadata: languageName: node linkType: hard +"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + languageName: node + linkType: hard + +"minimalistic-crypto-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-crypto-utils@npm:1.0.1" + checksum: 6e8a0422b30039406efd4c440829ea8f988845db02a3299f372fceba56ffa94994a9c0f2fd70c17f9969eedfbd72f34b5070ead9656a34d3f71c0bd72583a0ed + languageName: node + linkType: hard + "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -8090,6 +8449,28 @@ __metadata: languageName: node linkType: hard +"ws@npm:7.4.6": + version: 7.4.6 + resolution: "ws@npm:7.4.6" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 3a990b32ed08c72070d5e8913e14dfcd831919205be52a3ff0b4cdd998c8d554f167c9df3841605cde8b11d607768cacab3e823c58c96a5c08c987e093eb767a + languageName: node + linkType: hard + +"xtend@npm:^4.0.1": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + languageName: node + linkType: hard + "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" From e3c3771332b8309c279ff92dc1251d9029df0936 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Wed, 4 Oct 2023 06:27:05 +0000 Subject: [PATCH 06/13] update provider types, add type-tests --- src/json-rpc-provider-types.test-d.ts | 34 +++++++++++++++++---- src/json-rpc-provider-types.ts | 43 ++++++++++++++------------- 2 files changed, 51 insertions(+), 26 deletions(-) diff --git a/src/json-rpc-provider-types.test-d.ts b/src/json-rpc-provider-types.test-d.ts index 3891c8142..f616d72bb 100644 --- a/src/json-rpc-provider-types.test-d.ts +++ b/src/json-rpc-provider-types.test-d.ts @@ -1,12 +1,34 @@ -import { expectAssignable, expectNotAssignable } from 'tsd'; -import EthQuery from '@metamask/eth-query'; import { Web3Provider } from '@ethersproject/providers'; +import EthQuery from '@metamask/eth-query'; +import { expectAssignable, expectNotAssignable } from 'tsd'; -import type { - LegacyEthereumProvider -} from '.'; +import type { JsonRpcRequest, LegacyEthereumProvider } from '.'; // Known legacy providers - expectAssignable(new EthQuery({} as any)); expectAssignable(new Web3Provider({} as any)); +expectAssignable({ + send: async (method: string, params: string[]) => + Promise.resolve([method, params]), +}); +expectAssignable({ + // eslint-disable-next-line @typescript-eslint/no-empty-function + send: (_req: JsonRpcRequest, _cb: () => void) => {}, +}); +expectAssignable({ + send: async (req: JsonRpcRequest, _cb: (_x: null, _result: null) => void) => + Promise.resolve(req), +}); + +expectNotAssignable({ foo: '123' }); +expectNotAssignable({ send: '123' }); + +expectNotAssignable({ + send: (method: string, params: string[]) => [method, params], +}); +expectNotAssignable({ + send: async ( + req: JsonRpcRequest, + _cb: (_x: null, _result: undefined) => void, + ) => Promise.resolve(req), +}); diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index b1ae29f78..132a400e7 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -33,20 +33,27 @@ export type EIP1193Provider = SafeEventEmitter & { * [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). It is not compliant with * any Ethereum provider standard. */ -export type LegacyEthereumProvider = LegacyEthersProvider | LegacyEthJsQueryProvider | LegacyWeb3Provider; +export type LegacyEthereumProvider = + | LegacyEthersProvider + | LegacyEthJsQueryProvider + | LegacyWeb3Provider; -type LegacyWeb3Provider = { +type LegacyEthersProvider = { /** - * Send a provider request asynchronously. + * Send a provider request asynchronously. (ethers v5 Web3Provider) * - * @param req - The request to send. - * @param callback - A function that is called upon the success or failure of the request. + * @param method - The RPC method to call. + * @param params - Array with method parameters. + * @returns A promise resolving with the result of the RPC call, or rejecting on failure. */ - send?( - req: Partial, - callback: SendAsyncCallback, - ): void; -} + send(method: string, params: any[]): Promise; + /* + send( + method: string, + params: any[], + ): Promise; + */ +}; type LegacyEthJsQueryProvider = { /** @@ -55,24 +62,20 @@ type LegacyEthJsQueryProvider = { * @param req - The request to send. * @param callback - A function that is called upon the success or failure of the request. */ - sendAsync?( + sendAsync( req: Partial, callback: SendAsyncCallback, ): void; }; -type LegacyEthersProvider = { +type LegacyWeb3Provider = { /** - * Send a provider request asynchronously. (ethers v5 Web3Provider) + * Send a provider request asynchronously. * - * @param method - The RPC method to call. - * @param params - Array with method parameters. - * @returns - A promise resolving with the result of the RPC call, or rejecting on failure. + * @param req - The request to send. + * @param callback - A function that is called upon the success or failure of the request. */ - send?( - method: string, - params: any[], - ): Promise; + send(req: Partial, callback: SendAsyncCallback): void; }; type SendAsyncCallback = ( From 47f70231583511050d41cd394a574da51e08057b Mon Sep 17 00:00:00 2001 From: legobeat <109787230+legobeat@users.noreply.github.com> Date: Thu, 5 Oct 2023 10:50:12 +0900 Subject: [PATCH 07/13] Update LegacyEthereumProvider typedoc Co-authored-by: Elliot Winkler --- src/json-rpc-provider-types.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index 132a400e7..ab8d04004 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -29,9 +29,7 @@ export type EIP1193Provider = SafeEventEmitter & { /** * The interface for a legacy Ethereum provider. * - * This provider follows conventions that pre-date - * [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). It is not compliant with - * any Ethereum provider standard. + * A provider of this type should be acceptable by either `eth-query`, `ethjs-query`, or Ethers' v5 `Web3Provider`. */ export type LegacyEthereumProvider = | LegacyEthersProvider From a8ddce81f387dfc1f7b31db817e8ded3f3e2fa6c Mon Sep 17 00:00:00 2001 From: legobeat <109787230+legobeat@users.noreply.github.com> Date: Thu, 5 Oct 2023 11:56:01 +0900 Subject: [PATCH 08/13] Update refs in comment Co-authored-by: Jongsun Suh <34228073+MajorLift@users.noreply.github.com> --- src/json-rpc-provider-types.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index ab8d04004..d9182e571 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -6,9 +6,8 @@ import type { PartialOrAbsent } from './misc'; /** * An interface for the EIP-1193 specification for an Ethereum JavaScript Provider. * - * For details, see: - * - [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) - * - [BaseProvider]{@link https://github.com/MetaMask/providers/blob/main/src/BaseProvider.ts} in package [@metamask/providers](https://www.npmjs.com/package/@metamask/providers) + * @see [EIP-1193]{@link https://eips.ethereum.org/EIPS/eip-1193}. + * @see [BaseProvider]{@link https://github.com/MetaMask/providers/blob/main/src/BaseProvider.ts} in package [@metamask/providers]{@link https://www.npmjs.com/package/@metamask/providers}. */ export type EIP1193Provider = SafeEventEmitter & { /** From 7b176aa64826d7a5fe9bbdea9db32786668e55cf Mon Sep 17 00:00:00 2001 From: Jongsun Suh <34228073+MajorLift@users.noreply.github.com> Date: Wed, 11 Oct 2023 10:49:26 -0700 Subject: [PATCH 09/13] Update `EverythingButNull` to use less brittle type definition - For proof of correctness see https://tsplay.dev/mpQX7W. - TODO: move `EverythingButNull` into `misc.ts` and export. --- src/json-rpc-provider-types.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index d9182e571..060df5416 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -83,10 +83,4 @@ type SendAsyncCallback = ( // What it says on the tin. We omit `null`, as that value is used for a // successful response to indicate a lack of an error. -type EverythingButNull = - | string - | number - | boolean - | object - | symbol - | undefined; +type EverythingButNull = NonNullable | undefined; From 6a4ab9baca160dd8ef3642f315479260b4c0621c Mon Sep 17 00:00:00 2001 From: Jongsun Suh <34228073+MajorLift@users.noreply.github.com> Date: Wed, 11 Oct 2023 14:11:39 -0700 Subject: [PATCH 10/13] Add `@ts-expect-error` for typing inconsistency with upstream repo `@metamask/eth-query` --- src/json-rpc-provider-types.test-d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/json-rpc-provider-types.test-d.ts b/src/json-rpc-provider-types.test-d.ts index f616d72bb..ce6d3a265 100644 --- a/src/json-rpc-provider-types.test-d.ts +++ b/src/json-rpc-provider-types.test-d.ts @@ -5,6 +5,7 @@ import { expectAssignable, expectNotAssignable } from 'tsd'; import type { JsonRpcRequest, LegacyEthereumProvider } from '.'; // Known legacy providers +// @ts-expect-error TODO: align `EverythingButNull` type in `@metamask/eth-query` expectAssignable(new EthQuery({} as any)); expectAssignable(new Web3Provider({} as any)); expectAssignable({ From 90c23d6ac7a04c2c19b98611e62e9a88b71c7b04 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Thu, 12 Oct 2023 07:01:11 +0900 Subject: [PATCH 11/13] Revert "Add `@ts-expect-error` for typing inconsistency with upstream repo `@metamask/eth-query`" This reverts commit 6a4ab9baca160dd8ef3642f315479260b4c0621c. --- src/json-rpc-provider-types.test-d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/json-rpc-provider-types.test-d.ts b/src/json-rpc-provider-types.test-d.ts index ce6d3a265..f616d72bb 100644 --- a/src/json-rpc-provider-types.test-d.ts +++ b/src/json-rpc-provider-types.test-d.ts @@ -5,7 +5,6 @@ import { expectAssignable, expectNotAssignable } from 'tsd'; import type { JsonRpcRequest, LegacyEthereumProvider } from '.'; // Known legacy providers -// @ts-expect-error TODO: align `EverythingButNull` type in `@metamask/eth-query` expectAssignable(new EthQuery({} as any)); expectAssignable(new Web3Provider({} as any)); expectAssignable({ From 199f1ded9dc9b0eceab96fc519fc3964f8de2d0c Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Thu, 12 Oct 2023 07:01:16 +0900 Subject: [PATCH 12/13] Revert "Update `EverythingButNull` to use less brittle type definition " This reverts commit 7b176aa64826d7a5fe9bbdea9db32786668e55cf. --- src/json-rpc-provider-types.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/json-rpc-provider-types.ts b/src/json-rpc-provider-types.ts index 060df5416..d9182e571 100644 --- a/src/json-rpc-provider-types.ts +++ b/src/json-rpc-provider-types.ts @@ -83,4 +83,10 @@ type SendAsyncCallback = ( // What it says on the tin. We omit `null`, as that value is used for a // successful response to indicate a lack of an error. -type EverythingButNull = NonNullable | undefined; +type EverythingButNull = + | string + | number + | boolean + | object + | symbol + | undefined; From 82ea00beedd9781651e07eb3a8e1641387403ff8 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Tue, 24 Oct 2023 23:08:48 +0000 Subject: [PATCH 13/13] yarn dedupe --- yarn.lock | 356 ++++-------------------------------------------------- 1 file changed, 26 insertions(+), 330 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9f4e4f3e6..8c6d41c2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,16 +22,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.21.4": - version: 7.21.4 - resolution: "@babel/code-frame@npm:7.21.4" - dependencies: - "@babel/highlight": ^7.18.6 - checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.22.13": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: @@ -71,19 +62,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.19.3, @babel/generator@npm:^7.21.4, @babel/generator@npm:^7.7.2": - version: 7.21.4 - resolution: "@babel/generator@npm:7.21.4" - dependencies: - "@babel/types": ^7.21.4 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 9ffbb526a53bb8469b5402f7b5feac93809b09b2a9f82fcbfcdc5916268a65dae746a1f2479e03ba4fb0776facd7c892191f63baa61ab69b2cfdb24f7b92424d - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.0": +"@babel/generator@npm:^7.19.3, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.7.2": version: 7.23.0 resolution: "@babel/generator@npm:7.23.0" dependencies: @@ -109,30 +88,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.22.20": +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helper-function-name@npm:7.21.0" - dependencies: - "@babel/template": ^7.20.7 - "@babel/types": ^7.21.0 - checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e - languageName: node - linkType: hard - "@babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" @@ -143,15 +105,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f - languageName: node - linkType: hard - "@babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" @@ -202,16 +155,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.6": +"@babel/helper-split-export-declaration@npm:^7.18.6, @babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" dependencies: @@ -220,13 +164,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-string-parser@npm:7.22.5" @@ -234,14 +171,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": - version: 7.19.1 - resolution: "@babel/helper-validator-identifier@npm:7.19.1" - checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": +"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc @@ -266,17 +196,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 - languageName: node - linkType: hard - "@babel/highlight@npm:^7.22.13": version: 7.22.20 resolution: "@babel/highlight@npm:7.22.20" @@ -288,16 +207,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.19.3, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4": - version: 7.21.4 - resolution: "@babel/parser@npm:7.21.4" - bin: - parser: ./bin/babel-parser.js - checksum: de610ecd1bff331766d0c058023ca11a4f242bfafefc42caf926becccfb6756637d167c001987ca830dd4b34b93c629a4cef63f8c8c864a8564cdfde1989ac77 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.19.3, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": version: 7.23.0 resolution: "@babel/parser@npm:7.23.0" bin: @@ -460,18 +370,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.3.3": - version: 7.20.7 - resolution: "@babel/template@npm:7.20.7" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.15": +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.22.15, @babel/template@npm:^7.3.3": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" dependencies: @@ -482,25 +381,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.3, @babel/traverse@npm:^7.7.2": - version: 7.21.4 - resolution: "@babel/traverse@npm:7.21.4" - dependencies: - "@babel/code-frame": ^7.21.4 - "@babel/generator": ^7.21.4 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.21.0 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.21.4 - "@babel/types": ^7.21.4 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: f22f067c2d9b6497abf3d4e53ea71f3aa82a21f2ed434dd69b8c5767f11f2a4c24c8d2f517d2312c9e5248e5c69395fdca1c95a2b3286122c75f5783ddb6f53c - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.23.2": +"@babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.3, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.7.2": version: 7.23.2 resolution: "@babel/traverse@npm:7.23.2" dependencies: @@ -518,18 +399,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.19.0, @babel/types@npm:^7.19.3, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.4, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3": - version: 7.21.4 - resolution: "@babel/types@npm:7.21.4" - dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: 587bc55a91ce003b0f8aa10d70070f8006560d7dc0360dc0406d306a2cb2a10154e2f9080b9c37abec76907a90b330a536406cb75e6bdc905484f37b75c73219 - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.19.0, @babel/types@npm:^7.19.3, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3": version: 7.23.0 resolution: "@babel/types@npm:7.23.0" dependencies: @@ -1240,16 +1110,7 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:^29.2.2": - version: 29.2.2 - resolution: "@jest/expect-utils@npm:29.2.2" - dependencies: - jest-get-type: ^29.2.0 - checksum: 42afdd576ae55c31cbcee50f1efecd338073b88cad146b91b653ef9d67970ebcd457b0fc2236b18a7d82945be7ae0674b9e75a34f0f6067585fd5c89a89bb232 - languageName: node - linkType: hard - -"@jest/expect-utils@npm:^29.7.0": +"@jest/expect-utils@npm:^29.2.2, @jest/expect-utils@npm:^29.7.0": version: 29.7.0 resolution: "@jest/expect-utils@npm:29.7.0" dependencies: @@ -1340,15 +1201,6 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^29.0.0": - version: 29.0.0 - resolution: "@jest/schemas@npm:29.0.0" - dependencies: - "@sinclair/typebox": ^0.24.1 - checksum: 41355c78f09eb1097e57a3c5d0ca11c9099e235e01ea5fa4e3953562a79a6a9296c1d300f1ba50ca75236048829e056b00685cd2f1ff8285e56fd2ce01249acb - languageName: node - linkType: hard - "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -1430,21 +1282,7 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.2.1": - version: 29.2.1 - resolution: "@jest/types@npm:29.2.1" - dependencies: - "@jest/schemas": ^29.0.0 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: a83f20727425179aa05974aa7553c307d207fbb6b7ae5ab1e37fbb6ba9b6655f26655301fc804f2545d33f4c4a6b59d41eed1737c005d2b83fce9e14841b4150 - languageName: node - linkType: hard - -"@jest/types@npm:^29.6.3": +"@jest/types@npm:^29.2.1, @jest/types@npm:^29.6.3": version: 29.6.3 resolution: "@jest/types@npm:29.6.3" dependencies: @@ -1493,14 +1331,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": +"@jridgewell/sourcemap-codec@npm:1.4.14": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -2960,7 +2798,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.4.2": +"chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -3382,13 +3220,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.2.0": - version: 29.2.0 - resolution: "diff-sequences@npm:29.2.0" - checksum: e7b874cc7a4ce76fd199794c4d5fabb099ab4bce069592407ac2933e3a10e05f035111498e2f2c86572f5cfa9668a191b09e79f1d967dc39d9ca0a12aacde41a - languageName: node - linkType: hard - "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -4106,7 +3937,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0": +"expect@npm:^29.0.0, expect@npm:^29.2.2": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -4119,19 +3950,6 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.2.2": - version: 29.2.2 - resolution: "expect@npm:29.2.2" - dependencies: - "@jest/expect-utils": ^29.2.2 - jest-get-type: ^29.2.0 - jest-matcher-utils: ^29.2.2 - jest-message-util: ^29.2.1 - jest-util: ^29.2.1 - checksum: e763df36fe406d2746cdf993b85714c16355b249b063b3f1ab0ff4077435b46ccae937c09930218516c1225203353652a8c6ac07b354474bc81d0ec45133dbf1 - languageName: node - linkType: hard - "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -4328,14 +4146,7 @@ __metadata: languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": +"function-bind@npm:^1.1.1, function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 @@ -4971,16 +4782,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0": - version: 2.12.1 - resolution: "is-core-module@npm:2.12.1" - dependencies: - has: ^1.0.3 - checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -5366,7 +5168,7 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^29.0.3, jest-diff@npm:^29.7.0": +"jest-diff@npm:^29.0.3, jest-diff@npm:^29.2.1, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" dependencies: @@ -5378,18 +5180,6 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^29.2.1": - version: 29.2.1 - resolution: "jest-diff@npm:29.2.1" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.2.0 - jest-get-type: ^29.2.0 - pretty-format: ^29.2.1 - checksum: e3553e5bf556b786b864e3da0ef0a2cde8b260a7bb281eaf47d34aee0bf303bf557bc75416c20f9454e2e1b6ac0ae53684d5be7af5cfc010dc08805bdcb3f457 - languageName: node - linkType: hard - "jest-docblock@npm:^29.2.0": version: 29.2.0 resolution: "jest-docblock@npm:29.2.0" @@ -5433,14 +5223,7 @@ __metadata: languageName: node linkType: hard -"jest-get-type@npm:^29.2.0": - version: 29.2.0 - resolution: "jest-get-type@npm:29.2.0" - checksum: e396fd880a30d08940ed8a8e43cd4595db1b8ff09649018eb358ca701811137556bae82626af73459e3c0f8c5e972ed1e57fd3b1537b13a260893dac60a90942 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.6.3": +"jest-get-type@npm:^29.2.0, jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 @@ -5505,19 +5288,7 @@ __metadata: languageName: node linkType: hard -"jest-matcher-utils@npm:^29.2.2": - version: 29.2.2 - resolution: "jest-matcher-utils@npm:29.2.2" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.2.1 - jest-get-type: ^29.2.0 - pretty-format: ^29.2.1 - checksum: 97ef2638ab826c25f84bfedea231cef091820ae0876ba316922da81145e950d2b9d2057d3645813b5ee880bb975ed4f22e228dda5d0d26a20715e575b675357d - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^29.7.0": +"jest-matcher-utils@npm:^29.2.2, jest-matcher-utils@npm:^29.7.0": version: 29.7.0 resolution: "jest-matcher-utils@npm:29.7.0" dependencies: @@ -5546,24 +5317,7 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^29.2.1": - version: 29.2.1 - resolution: "jest-message-util@npm:29.2.1" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.2.1 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.2.1 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 1ec1341dea7f0f04dfa9912647e5c4a092954c122becd9560e43e317407fd401745d99766048be7ee5f0b0b5ff09c84d3c853aa777af57139050efed0ad78376 - languageName: node - linkType: hard - -"jest-message-util@npm:^29.7.0": +"jest-message-util@npm:^29.2.1, jest-message-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-message-util@npm:29.7.0" dependencies: @@ -5742,21 +5496,7 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.0.0, jest-util@npm:^29.2.1": - version: 29.2.1 - resolution: "jest-util@npm:29.2.1" - dependencies: - "@jest/types": ^29.2.1 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 781bd14a65599d24b7449877020f4da32e8cb8fbc31c4e849c589ffde58f0eec27de9f690dba182e3ca369fe651c0bb9c307de29a0927d12777677ded56bafb8 - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": +"jest-util@npm:^29.0.0, jest-util@npm:^29.2.1, jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" dependencies: @@ -6882,20 +6622,13 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.1": +"pirates@npm:^4.0.1, pirates@npm:^4.0.4": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 languageName: node linkType: hard -"pirates@npm:^4.0.4": - version: 4.0.5 - resolution: "pirates@npm:4.0.5" - checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 - languageName: node - linkType: hard - "pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -7011,7 +6744,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.2.1, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" dependencies: @@ -7022,17 +6755,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.2.1": - version: 29.2.1 - resolution: "pretty-format@npm:29.2.1" - dependencies: - "@jest/schemas": ^29.0.0 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: d192cbd3dee72e9b60764629d1f098d60fddc3fc9435f44774a01dd1c5794f36a81fa6a7377a527f994317950d8fc6c5bf9c9915387c5d32f107525996e32a1c - languageName: node - linkType: hard - "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -7230,20 +6952,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": - version: 1.22.3 - resolution: "resolve@npm:1.22.3" - dependencies: - is-core-module: ^2.12.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 - languageName: node - linkType: hard - -"resolve@npm:^1.22.3": +"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -7256,20 +6965,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": - version: 1.22.3 - resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=07638b" - dependencies: - is-core-module: ^2.12.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.22.3#~builtin": +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" dependencies: