From 7d978ab0b67f763f46f3b9964e70052c6c069ea9 Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Thu, 18 Jul 2024 09:02:10 -0400 Subject: [PATCH] chore(deps): replace `superstruct` imports with `@metamask/superstruct` (#311) * Replace 'superstruct' imports with '@metamask/superstruct' * Remove 'superstruct' and add '@metamask/superstruct' v3.0.0 as dependency * Bump dependency `@metamask/utils` from `^8.4.0` to `^8.5.0` * Linter fixes * Set tsconfig options `module`, `moduleResolution` to `NodeNext` * Bump dependencies * Bump `@metamask/utils` from `^8.5.0` to `^9.0.0` * Bump `@metamask` namespaced dependencies --- package.json | 14 +-- src/SnapKeyring.ts | 2 +- src/types.ts | 11 ++- src/util.ts | 4 +- tsconfig.json | 4 +- yarn.lock | 209 +++++++++++++++++++-------------------------- 6 files changed, 110 insertions(+), 134 deletions(-) diff --git a/package.json b/package.json index 58a749f3..1eba6b02 100644 --- a/package.json +++ b/package.json @@ -26,14 +26,14 @@ }, "dependencies": { "@ethereumjs/tx": "^4.2.0", - "@metamask/eth-sig-util": "^7.0.1", - "@metamask/keyring-api": "^8.0.0", - "@metamask/snaps-controllers": "^8.1.1", - "@metamask/snaps-sdk": "^4.2.0", - "@metamask/snaps-utils": "^7.4.0", - "@metamask/utils": "^8.4.0", + "@metamask/eth-sig-util": "^7.0.3", + "@metamask/keyring-api": "^8.0.1", + "@metamask/snaps-controllers": "^9.2.0", + "@metamask/snaps-sdk": "^6.0.0", + "@metamask/snaps-utils": "^7.7.0", + "@metamask/superstruct": "^3.1.0", + "@metamask/utils": "^9.1.0", "@types/uuid": "^9.0.1", - "superstruct": "^1.0.3", "uuid": "^9.0.0" }, "devDependencies": { diff --git a/src/SnapKeyring.ts b/src/SnapKeyring.ts index cd2505e3..cb1260b9 100644 --- a/src/SnapKeyring.ts +++ b/src/SnapKeyring.ts @@ -28,6 +28,7 @@ import { import type { SnapController } from '@metamask/snaps-controllers'; import type { SnapId } from '@metamask/snaps-sdk'; import type { Snap } from '@metamask/snaps-utils'; +import { assert, mask, object, string } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; import { bigIntToHex, @@ -35,7 +36,6 @@ import { toCaipChainId, } from '@metamask/utils'; import { EventEmitter } from 'events'; -import { assert, mask, object, string } from 'superstruct'; import { v4 as uuid } from 'uuid'; import { DeferredPromise } from './DeferredPromise'; diff --git a/src/types.ts b/src/types.ts index f5eaefeb..21313912 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,6 +1,13 @@ +import type { Infer } from '@metamask/superstruct'; +import { + array, + object, + optional, + record, + string, + union, +} from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; -import type { Infer } from 'superstruct'; -import { array, object, optional, record, string, union } from 'superstruct'; export const SnapMessageStruct = object({ method: string(), diff --git a/src/util.ts b/src/util.ts index 15465a7e..40f3e77e 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1,6 +1,6 @@ +import type { Struct } from '@metamask/superstruct'; +import { assert } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { Struct } from 'superstruct'; -import { assert } from 'superstruct'; /** * Assert that a value is valid according to a struct. diff --git a/tsconfig.json b/tsconfig.json index fdaed79a..d974dafa 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,8 +4,8 @@ "exactOptionalPropertyTypes": true, "forceConsistentCasingInFileNames": true, "lib": ["ES2020"], - "module": "CommonJS", - "moduleResolution": "node", + "module": "Node16", + "moduleResolution": "Node16", "noEmit": true, "noErrorTruncation": true, "noUncheckedIndexedAccess": true, diff --git a/yarn.lock b/yarn.lock index fb98718b..e61ae36d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -922,15 +922,15 @@ __metadata: languageName: node linkType: hard -"@metamask/approval-controller@npm:^6.0.2": - version: 6.0.2 - resolution: "@metamask/approval-controller@npm:6.0.2" +"@metamask/approval-controller@npm:^7.0.0": + version: 7.0.1 + resolution: "@metamask/approval-controller@npm:7.0.1" dependencies: - "@metamask/base-controller": ^5.0.2 - "@metamask/rpc-errors": ^6.2.1 - "@metamask/utils": ^8.3.0 + "@metamask/base-controller": ^6.0.1 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/utils": ^9.0.0 nanoid: ^3.1.31 - checksum: 662365ec460edc1e3839c2f9f427d44a707350ecca7fa3524d75da3652306b61fc69f7336154142b4a38657c272624232ea40bf218427ba15b11fd89c5a5ae42 + checksum: 604bf4aeef819de68313b4d21ad5a03e09f9195cdce745fbae3ca70406912b599c8e496424459914f96cb55fb92736d491bd233c01734c399578a606fcc99c0e languageName: node linkType: hard @@ -949,29 +949,29 @@ __metadata: languageName: node linkType: hard -"@metamask/base-controller@npm:^5.0.2": - version: 5.0.2 - resolution: "@metamask/base-controller@npm:5.0.2" +"@metamask/base-controller@npm:^6.0.0": + version: 6.0.0 + resolution: "@metamask/base-controller@npm:6.0.0" dependencies: "@metamask/utils": ^8.3.0 immer: ^9.0.6 - checksum: 22c43c3147c7da1c1b87de4d41948e275f8e0adcdb1210a55a62aa497db4fa82399750901729d9dc6285d89e68f18e5bd15095ee4d4c6cfc169035173e69a1d2 + checksum: ff5c4acedc698e2477f1d719f64363d8763b21836dcea4675214c078457cd47dde068aa336b249663f3c7fb3c0f536ce420870811e00ca3a410646740a9f5934 languageName: node linkType: hard -"@metamask/base-controller@npm:^6.0.0": - version: 6.0.0 - resolution: "@metamask/base-controller@npm:6.0.0" +"@metamask/base-controller@npm:^6.0.1": + version: 6.0.1 + resolution: "@metamask/base-controller@npm:6.0.1" dependencies: - "@metamask/utils": ^8.3.0 + "@metamask/utils": ^9.0.0 immer: ^9.0.6 - checksum: ff5c4acedc698e2477f1d719f64363d8763b21836dcea4675214c078457cd47dde068aa336b249663f3c7fb3c0f536ce420870811e00ca3a410646740a9f5934 + checksum: c5dc9ce53dbb65190462e269dff78f5f2a789a787246bf4f7b2f4867da5ac11c54a67db530db5ba520f64f5a124f58983f36f9c6a4ab032e86cd3058a1b3e864 languageName: node linkType: hard -"@metamask/controller-utils@npm:^10.0.0": - version: 10.0.0 - resolution: "@metamask/controller-utils@npm:10.0.0" +"@metamask/controller-utils@npm:^11.0.0": + version: 11.0.0 + resolution: "@metamask/controller-utils@npm:11.0.0" dependencies: "@ethereumjs/util": ^8.1.0 "@metamask/eth-query": ^4.0.0 @@ -982,24 +982,24 @@ __metadata: bn.js: ^5.2.1 eth-ens-namehash: ^2.0.8 fast-deep-equal: ^3.1.3 - checksum: da92b0c3650f2abae48742caa9162e8cb74e4f0bf9d1288072f2804d2b4f7497ae47c764a3e67321b1cb8c3a6023e26802599cd1f6c28cb3cbc73415f2da8832 + checksum: ce77d9006c34109d78787d91036b605c2e401f51bae58a60cfd955905ebd63ebe5a007b93861a1fcc51bb7e57b69ec2a6dd6142656c1ee2d87d74e397752dffa languageName: node linkType: hard -"@metamask/controller-utils@npm:^11.0.0": - version: 11.0.0 - resolution: "@metamask/controller-utils@npm:11.0.0" +"@metamask/controller-utils@npm:^11.0.1": + version: 11.0.1 + resolution: "@metamask/controller-utils@npm:11.0.1" dependencies: "@ethereumjs/util": ^8.1.0 "@metamask/eth-query": ^4.0.0 "@metamask/ethjs-unit": ^0.3.0 - "@metamask/utils": ^8.3.0 + "@metamask/utils": ^9.0.0 "@spruceid/siwe-parser": 2.1.0 "@types/bn.js": ^5.1.5 bn.js: ^5.2.1 eth-ens-namehash: ^2.0.8 fast-deep-equal: ^3.1.3 - checksum: ce77d9006c34109d78787d91036b605c2e401f51bae58a60cfd955905ebd63ebe5a007b93861a1fcc51bb7e57b69ec2a6dd6142656c1ee2d87d74e397752dffa + checksum: 1e3adfa9544723e9d9cb76ed5f881d853c25544bb37aa521347fdbaaa9ab9b1e37d87167a4bdd1083f00fae32b6b4a9597ad756f348b4de0d627bf8742fa2b73 languageName: node linkType: hard @@ -1063,7 +1063,7 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-sig-util@npm:^7.0.1": +"@metamask/eth-sig-util@npm:^7.0.3": version: 7.0.3 resolution: "@metamask/eth-sig-util@npm:7.0.3" dependencies: @@ -1088,12 +1088,13 @@ __metadata: "@metamask/eslint-config-jest": ^12.1.0 "@metamask/eslint-config-nodejs": ^12.1.0 "@metamask/eslint-config-typescript": ^12.1.0 - "@metamask/eth-sig-util": ^7.0.1 - "@metamask/keyring-api": ^8.0.0 - "@metamask/snaps-controllers": ^8.1.1 - "@metamask/snaps-sdk": ^4.2.0 - "@metamask/snaps-utils": ^7.4.0 - "@metamask/utils": ^8.4.0 + "@metamask/eth-sig-util": ^7.0.3 + "@metamask/keyring-api": ^8.0.1 + "@metamask/snaps-controllers": ^9.2.0 + "@metamask/snaps-sdk": ^6.0.0 + "@metamask/snaps-utils": ^7.7.0 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.1.0 "@types/jest": ^28.1.6 "@types/node": ^17.0.23 "@types/uuid": ^9.0.1 @@ -1113,7 +1114,6 @@ __metadata: prettier: ^2.7.1 prettier-plugin-packagejson: ^2.3.0 rimraf: ^3.0.2 - superstruct: ^1.0.3 ts-jest: ^28.0.7 ts-node: ^10.7.0 typedoc: ^0.23.15 @@ -1134,17 +1134,6 @@ __metadata: languageName: node linkType: hard -"@metamask/json-rpc-engine@npm:^8.0.1, @metamask/json-rpc-engine@npm:^8.0.2": - version: 8.0.2 - resolution: "@metamask/json-rpc-engine@npm:8.0.2" - dependencies: - "@metamask/rpc-errors": ^6.2.1 - "@metamask/safe-event-emitter": ^3.0.0 - "@metamask/utils": ^8.3.0 - checksum: c240d298ad503d93922a94a62cf59f0344b6d6644a523bc8ea3c0f321bea7172b89f2747a5618e2861b2e8152ae5086b76f391a10e4566529faa50b8850c051d - languageName: node - linkType: hard - "@metamask/json-rpc-engine@npm:^9.0.0": version: 9.0.0 resolution: "@metamask/json-rpc-engine@npm:9.0.0" @@ -1167,19 +1156,7 @@ __metadata: languageName: node linkType: hard -"@metamask/json-rpc-middleware-stream@npm:^7.0.1": - version: 7.0.2 - resolution: "@metamask/json-rpc-middleware-stream@npm:7.0.2" - dependencies: - "@metamask/json-rpc-engine": ^8.0.2 - "@metamask/safe-event-emitter": ^3.0.0 - "@metamask/utils": ^8.3.0 - readable-stream: ^3.6.2 - checksum: ff11ad3ff0ec27530efc53c4e6543661648f437dacdd58797449307e20dbc428b479cd8d1e9767797268b98d0445bd6f1986820a8c855faeef01d5c03b55323b - languageName: node - linkType: hard - -"@metamask/json-rpc-middleware-stream@npm:^8.0.1": +"@metamask/json-rpc-middleware-stream@npm:^8.0.0, @metamask/json-rpc-middleware-stream@npm:^8.0.1": version: 8.0.1 resolution: "@metamask/json-rpc-middleware-stream@npm:8.0.1" dependencies: @@ -1204,19 +1181,19 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-api@npm:^8.0.0": - version: 8.0.0 - resolution: "@metamask/keyring-api@npm:8.0.0" +"@metamask/keyring-api@npm:^8.0.1": + version: 8.0.1 + resolution: "@metamask/keyring-api@npm:8.0.1" dependencies: - "@metamask/snaps-sdk": ^4.2.0 - "@metamask/utils": ^8.4.0 + "@metamask/snaps-sdk": ^6.0.0 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.1.0 "@types/uuid": ^9.0.8 bech32: ^2.0.0 - superstruct: ^1.0.3 uuid: ^9.0.1 peerDependencies: "@metamask/providers": ">=15 <18" - checksum: 945d4bdb69d2eea60bd990d6372a7b8e5740a1c7aa66361ad1fa309273f05ec0543edea84524ed266e8e06a38fd4727869da646306682e5fa0d52c8ccc393c4a + checksum: 450fce23cdf4bbcc6666da7ed926d6082bb0096855a8ec409ec02093e9a0857facd0c16b32dc58c2734e394bf8730126a3f112453c00e8683075f16d8c47d58f languageName: node linkType: hard @@ -1259,35 +1236,17 @@ __metadata: languageName: node linkType: hard -"@metamask/permission-controller@npm:^9.0.2": - version: 9.1.1 - resolution: "@metamask/permission-controller@npm:9.1.1" - dependencies: - "@metamask/base-controller": ^5.0.2 - "@metamask/controller-utils": ^10.0.0 - "@metamask/json-rpc-engine": ^8.0.2 - "@metamask/rpc-errors": ^6.2.1 - "@metamask/utils": ^8.3.0 - "@types/deep-freeze-strict": ^1.1.0 - deep-freeze-strict: ^1.1.1 - immer: ^9.0.6 - nanoid: ^3.1.31 - peerDependencies: - "@metamask/approval-controller": ^6.0.0 - checksum: 98a0406570bcb7604806b91c037033a1f0a65e519a5da2157b80b3a38ec4990be94c84ac4eb495760f9acf9ebac41212ec201f04f9aba92477209d45ec2da0b2 - languageName: node - linkType: hard - -"@metamask/phishing-controller@npm:^9.0.1": - version: 9.0.4 - resolution: "@metamask/phishing-controller@npm:9.0.4" +"@metamask/phishing-controller@npm:^10.0.0": + version: 10.1.0 + resolution: "@metamask/phishing-controller@npm:10.1.0" dependencies: - "@metamask/base-controller": ^5.0.2 - "@metamask/controller-utils": ^10.0.0 + "@metamask/base-controller": ^6.0.1 + "@metamask/controller-utils": ^11.0.1 "@types/punycode": ^2.1.0 eth-phishing-detect: ^1.2.0 + fastest-levenshtein: ^1.0.16 punycode: ^2.1.1 - checksum: 096361bcf2e95ab05578ee603a0be4b9982d65f72d156d7d43e36b4a11acb24d8e39ac266789b6584f6ab401149cdc0140468e4d9355fad4331fe6119af07287 + checksum: e039c67e845356b6780db93e9e1436b224bb082f98de4a4e002660824a8d1baf155d2fb51ca7a5de363cce76c2dfd62c53819e705ae891c0ded7a813ca4fc660 languageName: node linkType: hard @@ -1356,23 +1315,23 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-controllers@npm:^8.1.1": - version: 8.4.0 - resolution: "@metamask/snaps-controllers@npm:8.4.0" +"@metamask/snaps-controllers@npm:^9.2.0": + version: 9.2.0 + resolution: "@metamask/snaps-controllers@npm:9.2.0" dependencies: - "@metamask/approval-controller": ^6.0.2 - "@metamask/base-controller": ^5.0.2 - "@metamask/json-rpc-engine": ^8.0.1 - "@metamask/json-rpc-middleware-stream": ^7.0.1 + "@metamask/approval-controller": ^7.0.0 + "@metamask/base-controller": ^6.0.0 + "@metamask/json-rpc-engine": ^9.0.0 + "@metamask/json-rpc-middleware-stream": ^8.0.0 "@metamask/object-multiplex": ^2.0.0 - "@metamask/permission-controller": ^9.0.2 - "@metamask/phishing-controller": ^9.0.1 + "@metamask/permission-controller": ^10.0.0 + "@metamask/phishing-controller": ^10.0.0 "@metamask/post-message-stream": ^8.1.0 "@metamask/rpc-errors": ^6.2.1 "@metamask/snaps-registry": ^3.1.0 - "@metamask/snaps-rpc-methods": ^9.1.2 - "@metamask/snaps-sdk": ^4.4.2 - "@metamask/snaps-utils": ^7.5.0 + "@metamask/snaps-rpc-methods": ^9.1.4 + "@metamask/snaps-sdk": ^6.0.0 + "@metamask/snaps-utils": ^7.7.0 "@metamask/utils": ^8.3.0 "@xstate/fsm": ^2.0.0 browserify-zlib: ^0.2.0 @@ -1385,11 +1344,11 @@ __metadata: readable-web-to-node-stream: ^3.0.2 tar-stream: ^3.1.7 peerDependencies: - "@metamask/snaps-execution-environments": ^6.3.0 + "@metamask/snaps-execution-environments": ^6.5.0 peerDependenciesMeta: "@metamask/snaps-execution-environments": optional: true - checksum: a5aadae406cb3267492931a418740a1a2d6b5cc3966b5f9c788bf11ec96d97712bef1f168fbe0a8aa575481ba5ae0869c06aeffc9f1b72403189aeaf89b3ca1b + checksum: 8b5c3fbd9dbb6054e07a666cf639bfc7bcd325ddae95ca2dd13f1dc46ed2d22931758c60116980ebc26d907e89fe235dd7003b1a7e8a743b01fcac9ea6cbbc3d languageName: node linkType: hard @@ -1405,7 +1364,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-rpc-methods@npm:^9.1.2": +"@metamask/snaps-rpc-methods@npm:^9.1.4": version: 9.1.4 resolution: "@metamask/snaps-rpc-methods@npm:9.1.4" dependencies: @@ -1421,20 +1380,6 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^4.2.0, @metamask/snaps-sdk@npm:^4.4.2": - version: 4.4.2 - resolution: "@metamask/snaps-sdk@npm:4.4.2" - dependencies: - "@metamask/key-tree": ^9.1.1 - "@metamask/providers": ^17.0.0 - "@metamask/rpc-errors": ^6.2.1 - "@metamask/utils": ^8.3.0 - fast-xml-parser: ^4.3.4 - superstruct: ^1.0.3 - checksum: 2ff3949cee3b6c5a580304a02191f3ec7fb049460c2ff89b1731f24b215baf5f9c08834a0b2b703ff43e3b74ede387386e22a96810b50be106bb029b180c44ce - languageName: node - linkType: hard - "@metamask/snaps-sdk@npm:^6.0.0": version: 6.0.0 resolution: "@metamask/snaps-sdk@npm:6.0.0" @@ -1448,7 +1393,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-utils@npm:^7.4.0, @metamask/snaps-utils@npm:^7.5.0, @metamask/snaps-utils@npm:^7.7.0": +"@metamask/snaps-utils@npm:^7.7.0": version: 7.7.0 resolution: "@metamask/snaps-utils@npm:7.7.0" dependencies: @@ -1486,7 +1431,7 @@ __metadata: languageName: node linkType: hard -"@metamask/utils@npm:^8.1.0, @metamask/utils@npm:^8.3.0, @metamask/utils@npm:^8.4.0": +"@metamask/utils@npm:^8.1.0, @metamask/utils@npm:^8.3.0": version: 8.4.0 resolution: "@metamask/utils@npm:8.4.0" dependencies: @@ -1520,6 +1465,23 @@ __metadata: languageName: node linkType: hard +"@metamask/utils@npm:^9.1.0": + version: 9.1.0 + resolution: "@metamask/utils@npm:9.1.0" + dependencies: + "@ethereumjs/tx": ^4.2.0 + "@metamask/superstruct": ^3.1.0 + "@noble/hashes": ^1.3.1 + "@scure/base": ^1.1.3 + "@types/debug": ^4.1.7 + debug: ^4.3.4 + pony-cause: ^2.1.10 + semver: ^7.5.4 + uuid: ^9.0.1 + checksum: 01f2c71a8f06158d5335bfe96bfd2f3aa39ec6b2323c5d0ff1d3136071a3e8ff7c1804d640ba1d4e07f96f3e68a95ff7729ddfcd34b373e5fefd86d6ef12d034 + languageName: node + linkType: hard + "@noble/curves@npm:1.1.0, @noble/curves@npm:~1.1.0": version: 1.1.0 resolution: "@noble/curves@npm:1.1.0" @@ -3888,6 +3850,13 @@ __metadata: languageName: node linkType: hard +"fastest-levenshtein@npm:^1.0.16": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.11.0 resolution: "fastq@npm:1.11.0"