diff --git a/packages/account-postgres-sink-service/package.json b/packages/account-postgres-sink-service/package.json index 543b1d550..fa250a44e 100644 --- a/packages/account-postgres-sink-service/package.json +++ b/packages/account-postgres-sink-service/package.json @@ -51,8 +51,8 @@ "bn.js": "^5.2.0", "bs58": "^4.0.1", "cron": "^3.1.6", - "deep-equal": "^2.2.2", "dotenv": "^16.3.1", + "fast-deep-equal": "^3.1.3", "fastify": "^4.13.0", "fastify-cron": "^1.3.1", "fastify-metrics": "^10.3.0", @@ -72,7 +72,6 @@ "@types/async-retry": "^1.4.8", "@types/bn.js": "^5.1.1", "@types/cron": "^2.4.0", - "@types/deep-equal": "^1.0.1", "@types/lodash": "^4.14.195", "@types/node": "^18.11.11", "@types/pg": "^8.6.6", diff --git a/packages/account-postgres-sink-service/src/utils/handleAccountWebhook.ts b/packages/account-postgres-sink-service/src/utils/handleAccountWebhook.ts index 7529473ba..edb39e331 100644 --- a/packages/account-postgres-sink-service/src/utils/handleAccountWebhook.ts +++ b/packages/account-postgres-sink-service/src/utils/handleAccountWebhook.ts @@ -1,6 +1,6 @@ import * as anchor from "@coral-xyz/anchor"; import { PublicKey } from "@solana/web3.js"; -import deepEqual from "deep-equal"; +import deepEqual from "fast-deep-equal"; import { FastifyInstance } from "fastify"; import _omit from "lodash/omit"; import { Sequelize, Transaction } from "sequelize"; diff --git a/packages/account-postgres-sink-service/src/utils/integrityCheckProgramAccounts.ts b/packages/account-postgres-sink-service/src/utils/integrityCheckProgramAccounts.ts index 72d39fe71..f08aafac4 100644 --- a/packages/account-postgres-sink-service/src/utils/integrityCheckProgramAccounts.ts +++ b/packages/account-postgres-sink-service/src/utils/integrityCheckProgramAccounts.ts @@ -1,7 +1,7 @@ import * as anchor from "@coral-xyz/anchor"; import { PublicKey } from "@solana/web3.js"; import retry, { Options as RetryOptions } from "async-retry"; -import deepEqual from "deep-equal"; +import deepEqual from "fast-deep-equal"; import { FastifyInstance } from "fastify"; import _omit from "lodash/omit"; import pLimit from "p-limit"; diff --git a/packages/account-postgres-sink-service/yarn.deploy.lock b/packages/account-postgres-sink-service/yarn.deploy.lock index 370fb6595..06a8deade 100644 --- a/packages/account-postgres-sink-service/yarn.deploy.lock +++ b/packages/account-postgres-sink-service/yarn.deploy.lock @@ -208,7 +208,6 @@ __metadata: "@types/async-retry": ^1.4.8 "@types/bn.js": ^5.1.1 "@types/cron": ^2.4.0 - "@types/deep-equal": ^1.0.1 "@types/lodash": ^4.14.195 "@types/node": ^18.11.11 "@types/pg": ^8.6.6 @@ -221,8 +220,8 @@ __metadata: bn.js: ^5.2.0 bs58: ^4.0.1 cron: ^3.1.6 - deep-equal: ^2.2.2 dotenv: ^16.3.1 + fast-deep-equal: ^3.1.3 fastify: ^4.13.0 fastify-cron: ^1.3.1 fastify-metrics: ^10.3.0 @@ -714,13 +713,6 @@ __metadata: languageName: node linkType: hard -"@types/deep-equal@npm:^1.0.1": - version: 1.0.1 - resolution: "@types/deep-equal@npm:1.0.1" - checksum: 689b5737dd0a37d173d9e1231c07f70a1a9a989087b757422e1d167ec3640fd7eb8a538bd6008b3df400c4c11ed07a6c2a92d9aafc1f98ffaa04731a9442c781 - languageName: node - linkType: hard - "@types/lodash@npm:^4.14.195": version: 4.14.197 resolution: "@types/lodash@npm:4.14.197" @@ -1026,16 +1018,6 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "array-buffer-byte-length@npm:1.0.0" - dependencies: - call-bind: "npm:^1.0.2" - is-array-buffer: "npm:^3.0.1" - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 - languageName: node - linkType: hard - "async-retry@npm:^1.3.3": version: 1.3.3 resolution: "async-retry@npm:1.3.3" @@ -1346,7 +1328,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": +"call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" dependencies: @@ -1552,42 +1534,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.2.2": - version: 2.2.2 - resolution: "deep-equal@npm:2.2.2" - dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.2" - es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.1" - is-arguments: "npm:^1.1.1" - is-array-buffer: "npm:^3.0.2" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.2" - isarray: "npm:^2.0.5" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.4" - regexp.prototype.flags: "npm:^1.5.0" - side-channel: "npm:^1.0.4" - which-boxed-primitive: "npm:^1.0.2" - which-collection: "npm:^1.0.1" - which-typed-array: "npm:^1.1.9" - checksum: eb61c35157b6ecb96a5359b507b083fbff8ddb4c86a78a781ee38485f77a667465e45d63ee2ebd8a00e86d94c80e499906900cd82c2debb400237e1662cd5397 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" - dependencies: - has-property-descriptors: "npm:^1.0.0" - object-keys: "npm:^1.1.1" - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 - languageName: node - linkType: hard - "delay@npm:^5.0.0": version: 5.0.0 resolution: "delay@npm:5.0.0" @@ -1703,23 +1649,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.3" - has-symbols: "npm:^1.0.3" - is-arguments: "npm:^1.1.1" - is-map: "npm:^2.0.2" - is-set: "npm:^2.0.2" - is-string: "npm:^1.0.7" - isarray: "npm:^2.0.5" - stop-iteration-iterator: "npm:^1.0.0" - checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d - languageName: node - linkType: hard - "es6-promise@npm:^4.0.3": version: 4.2.8 resolution: "es6-promise@npm:4.2.8" @@ -2054,13 +1983,6 @@ __metadata: languageName: node linkType: hard -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 - languageName: node - linkType: hard - "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -2084,7 +2006,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.3": version: 1.2.1 resolution: "get-intrinsic@npm:1.2.1" dependencies: @@ -2166,13 +2088,6 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.1": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -2180,15 +2095,6 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" - dependencies: - get-intrinsic: "npm:^1.1.1" - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb - languageName: node - linkType: hard - "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" @@ -2340,17 +2246,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" - dependencies: - get-intrinsic: "npm:^1.2.0" - has: "npm:^1.0.3" - side-channel: "npm:^1.0.4" - checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a - languageName: node - linkType: hard - "ip@npm:^2.0.0": version: 2.0.0 resolution: "ip@npm:2.0.0" @@ -2365,7 +2260,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -2375,26 +2270,6 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": - version: 3.0.2 - resolution: "is-array-buffer@npm:3.0.2" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.0" - is-typed-array: "npm:^1.1.10" - checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: "npm:^1.0.1" - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 - languageName: node - linkType: hard - "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" @@ -2404,16 +2279,6 @@ __metadata: languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 - languageName: node - linkType: hard - "is-buffer@npm:^2.0.5": version: 2.0.5 resolution: "is-buffer@npm:2.0.5" @@ -2437,15 +2302,6 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -2485,22 +2341,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1, is-map@npm:^2.0.2": - version: 2.0.2 - resolution: "is-map@npm:2.0.2" - checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 - languageName: node - linkType: hard - "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -2508,16 +2348,6 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 - languageName: node - linkType: hard - "is-retry-allowed@npm:^2.2.0": version: 2.2.0 resolution: "is-retry-allowed@npm:2.2.0" @@ -2525,41 +2355,7 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.1, is-set@npm:^2.0.2": - version: 2.0.2 - resolution: "is-set@npm:2.0.2" - checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: "npm:^1.0.2" - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3": +"is-typed-array@npm:^1.1.3": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -2568,23 +2364,6 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.1": - version: 2.0.1 - resolution: "is-weakmap@npm:2.0.1" - checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 - languageName: node - linkType: hard - -"is-weakset@npm:^2.0.1": - version: 2.0.2 - resolution: "is-weakset@npm:2.0.2" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.1" - checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 - languageName: node - linkType: hard - "isarray@npm:^1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -2592,13 +2371,6 @@ __metadata: languageName: node linkType: hard -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a - languageName: node - linkType: hard - "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -3126,42 +2898,6 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.9.0": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db - languageName: node - linkType: hard - -"object-is@npm:^1.1.5": - version: 1.1.5 - resolution: "object-is@npm:1.1.5" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.3" - checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a - languageName: node - linkType: hard - -"object.assign@npm:^4.1.4": - version: 4.1.4 - resolution: "object.assign@npm:4.1.4" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.4" - has-symbols: "npm:^1.0.3" - object-keys: "npm:^1.1.1" - checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 - languageName: node - linkType: hard - "obliterator@npm:^2.0.1": version: 2.0.4 resolution: "obliterator@npm:2.0.4" @@ -3624,17 +3360,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - functions-have-names: "npm:^1.2.3" - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 - languageName: node - linkType: hard - "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -3929,17 +3654,6 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" - dependencies: - call-bind: "npm:^1.0.0" - get-intrinsic: "npm:^1.0.2" - object-inspect: "npm:^1.9.0" - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 - languageName: node - linkType: hard - "signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -4034,15 +3748,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 - languageName: node - linkType: hard - "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -4493,32 +4198,7 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e - languageName: node - linkType: hard - -"which-collection@npm:^1.0.1": - version: 1.0.1 - resolution: "which-collection@npm:1.0.1" - dependencies: - is-map: "npm:^2.0.1" - is-set: "npm:^2.0.1" - is-weakmap: "npm:^2.0.1" - is-weakset: "npm:^2.0.1" - checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2": version: 1.1.11 resolution: "which-typed-array@npm:1.1.11" dependencies: diff --git a/packages/helium-admin-cli/package.json b/packages/helium-admin-cli/package.json index f382dd8ba..ecb189852 100644 --- a/packages/helium-admin-cli/package.json +++ b/packages/helium-admin-cli/package.json @@ -63,6 +63,8 @@ "axios": "^1.3.6", "bn.js": "^5.2.0", "bs58": "^4.0.1", + "fast-deep-equal": "^3.1.3", + "h3-js": "^4.1.0", "yargs": "^17.7.1" }, "devDependencies": { diff --git a/packages/helium-admin-cli/src/backfill-mobile-deployment-infos.ts b/packages/helium-admin-cli/src/backfill-mobile-deployment-infos.ts new file mode 100644 index 000000000..e65a52ffe --- /dev/null +++ b/packages/helium-admin-cli/src/backfill-mobile-deployment-infos.ts @@ -0,0 +1,267 @@ +import * as anchor from "@coral-xyz/anchor"; +import { + MobileDeploymentInfoV0, + init as initHEM, + mobileInfoKey, + rewardableEntityConfigKey, +} from "@helium/helium-entity-manager-sdk"; +import { subDaoKey } from "@helium/helium-sub-daos-sdk"; +import { HeliumEntityManager } from "@helium/idls/lib/types/helium_entity_manager"; +import { + MOBILE_MINT, + batchInstructionsToTxsWithPriorityFee, + batchParallelInstructionsWithPriorityFee, + bulkSendTransactions, + chunks, + truthy, +} from "@helium/spl-utils"; +import deepEqual from "fast-deep-equal"; +import { latLngToCell } from "h3-js"; +import os from "os"; +import { Client } from "pg"; +import yargs from "yargs/yargs"; +import { loadKeypair } from "./utils"; + +type WifiInfoRow = { + hs_pubkey: string; + antenna: number; + elevation: number; + azimuth: number; + mechanical_down_tilt: number; + electrical_down_tilt: number; + lat: string; + lng: string; +}; + +type WifiInfo = { + hs_pubkey: string; + location?: anchor.BN; + deploymentInfo: { + antenna: number; + elevation: number; + azimuth: number; + mechanicalDownTilt: number; + electricalDownTilt: number; + }; +}; + +type MobileHotspotInfo = + anchor.IdlAccounts["mobileHotspotInfoV0"]; + +const hasDeploymentInfo = (wi: WifiInfo) => { + return !!( + wi.deploymentInfo.antenna || + wi.deploymentInfo.elevation || + wi.deploymentInfo.azimuth || + wi.deploymentInfo.mechanicalDownTilt || + wi.deploymentInfo.electricalDownTilt + ); +}; + +export const getH3Location = (lat: number, lng: number) => { + try { + const h3Index = latLngToCell(lat, lng, 12); + return new anchor.BN(h3Index, 16); + } catch (e) { + return undefined; + } +}; + +export async function run(args: any = process.argv) { + const yarg = yargs(args).options({ + wallet: { + alias: "k", + describe: "Anchor wallet keypair", + default: `${os.homedir()}/.config/solana/id.json`, + }, + url: { + alias: "u", + default: "http://127.0.0.1:8899", + describe: "The solana url", + }, + pgUser: { + default: "postgres", + }, + pgPassword: { + type: "string", + }, + pgDatabase: { + type: "string", + }, + pgHost: { + default: "localhost", + }, + pgPort: { + default: "5432", + }, + commit: { + type: "boolean", + default: false, + }, + }); + + const argv = await yarg.argv; + const commit = argv.commit; + process.env.ANCHOR_WALLET = argv.wallet; + process.env.ANCHOR_PROVIDER_URL = argv.url; + anchor.setProvider(anchor.AnchorProvider.local(argv.url)); + const provider = anchor.getProvider() as anchor.AnchorProvider; + const conn = provider.connection; + const wallet = new anchor.Wallet(loadKeypair(argv.wallet)); + const hem = await initHEM(provider); + const isRds = argv.pgHost.includes("rds.amazon.com"); + const client = new Client({ + user: argv.pgUser, + password: argv.pgPassword, + host: argv.pgHost, + database: argv.pgDatabase, + port: Number(argv.pgPort), + ssl: argv.noSsl + ? { + rejectUnauthorized: false, + } + : false, + }); + + await client.connect(); + const [subDao] = subDaoKey(MOBILE_MINT); + const [rewardableEntityconfig] = rewardableEntityConfigKey(subDao, "MOBILE"); + const wifiInfos = ( + await client.query(` + SELECT c.hs_pubkey, + c.antenna, + c.height AS elevation, + c.azimuth AS azimuth, + c.mt AS mechanical_down_tilt, + c.et AS electrical_down_tilt + FROM radios AS r + JOIN calculations c ON r.last_success_calculation = c.id + WHERE r.is_active IS TRUE + AND radio_type = 'Wifi'; + `) + ).rows.map( + (wifiInfo: WifiInfoRow): WifiInfo => ({ + ...wifiInfo, + location: getH3Location(Number(wifiInfo.lat), Number(wifiInfo.lng)), + deploymentInfo: { + antenna: Number(wifiInfo.antenna), + elevation: Number(wifiInfo.elevation), + azimuth: Number(wifiInfo.azimuth), + mechanicalDownTilt: Number(wifiInfo.mechanical_down_tilt), + electricalDownTilt: Number(wifiInfo.electrical_down_tilt), + }, + }) + ); + + const mobileInfos = wifiInfos.map( + (wifiInfo) => mobileInfoKey(rewardableEntityconfig, wifiInfo.hs_pubkey)[0] + ); + + const accountInfosWithPk = ( + await Promise.all( + chunks(mobileInfos, 100).map((chunk) => + conn.getMultipleAccountsInfo(chunk) + ) + ) + ) + .flat() + .map((accountInfo, idx) => ({ + pubkey: mobileInfos[idx], + wifiInfo: wifiInfos[idx], + ...accountInfo, + })); + + const ixs = ( + await Promise.all( + accountInfosWithPk.map(async (acc) => { + if (acc.data) { + let correction: { + location?: anchor.BN; + deploymentInfo?: MobileDeploymentInfoV0; + } = {}; + + const decodedAcc: MobileHotspotInfo = hem.coder.accounts.decode( + "MobileHotspotInfoV0", + acc.data as Buffer + ); + + const deploymentInfoMissing = + !decodedAcc.deploymentInfo && hasDeploymentInfo(acc.wifiInfo); + + const deploymentInfoChanged = !deepEqual( + decodedAcc.deploymentInfo?.wifiInfoV0, + acc.wifiInfo.deploymentInfo + ); + + const locationMissing = !decodedAcc.location && acc.wifiInfo.location; + + if (deploymentInfoMissing || deploymentInfoChanged) { + correction = { + ...correction, + deploymentInfo: { + wifiInfoV0: { + antenna: + // db record is source of truth for antenna + acc.wifiInfo.deploymentInfo.antenna || + decodedAcc.deploymentInfo?.wifiInfoV0?.antenna || + 0, + elevation: + decodedAcc.deploymentInfo?.wifiInfoV0?.elevation || + acc.wifiInfo.deploymentInfo.elevation || + 0, + azimuth: + decodedAcc.deploymentInfo?.wifiInfoV0?.azimuth || + acc.wifiInfo.deploymentInfo.azimuth || + 0, + mechanicalDownTilt: + decodedAcc.deploymentInfo?.wifiInfoV0?.mechanicalDownTilt || + acc.wifiInfo.deploymentInfo.mechanicalDownTilt || + 0, + electricalDownTilt: + decodedAcc.deploymentInfo?.wifiInfoV0?.electricalDownTilt || + acc.wifiInfo.deploymentInfo.electricalDownTilt || + 0, + }, + }, + }; + } + + if (locationMissing) { + correction = { + ...correction, + location: acc.wifiInfo.location, + }; + } + + if (Object.keys(correction).length > 0) { + return await hem.methods + .tempBackfillMobileInfo({ + location: correction.location || null, + deploymentInfo: correction.deploymentInfo || null, + }) + .accounts({ + payer: wallet.publicKey, + mobileInfo: acc.pubkey, + }) + .instruction(); + } + } + }) + ) + ).filter(truthy); + + console.log(`Total corrections needed: ${ixs.length}`); + if (commit) { + try { + const transactions = await batchInstructionsToTxsWithPriorityFee( + provider, + ixs, + { useFirstEstimateForAll: true } + ); + await bulkSendTransactions(provider, transactions, console.log); + } catch (e) { + console.error("Failed to process mobile deployment info updates:", e); + process.exit(1); + } + } +} diff --git a/packages/helium-admin-cli/yarn.deploy.lock b/packages/helium-admin-cli/yarn.deploy.lock index d4cb6c560..dfd9d8171 100644 --- a/packages/helium-admin-cli/yarn.deploy.lock +++ b/packages/helium-admin-cli/yarn.deploy.lock @@ -343,7 +343,9 @@ __metadata: axios: ^1.3.6 bn.js: ^5.2.0 bs58: ^4.0.1 + fast-deep-equal: ^3.1.3 git-format-staged: ^2.1.3 + h3-js: ^4.1.0 ts-loader: ^9.2.3 ts-node: ^10.9.1 typescript: ^5.2.2 @@ -2426,6 +2428,13 @@ __metadata: languageName: node linkType: hard +"h3-js@npm:^4.1.0": + version: 4.1.0 + resolution: "h3-js@npm:4.1.0" + checksum: d36f28254c9a921c7fa49e24384f31c8ab9dd9af0a0ab5c3b8e048d78f5420fa3cf4766990e8d7aca4c86469ddd947b376a7dfdda37481d873107d3189e8426f + languageName: node + linkType: hard + "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" diff --git a/packages/helium-entity-manager-sdk/src/index.ts b/packages/helium-entity-manager-sdk/src/index.ts index 2027d79af..50b125219 100644 --- a/packages/helium-entity-manager-sdk/src/index.ts +++ b/packages/helium-entity-manager-sdk/src/index.ts @@ -16,4 +16,5 @@ export * from "./pdas"; export * from "./resolvers"; export { keyToAssetForAsset } from "./helpers"; -export type MobileDeploymentInfoV0 = IdlTypes["MobileDeploymentInfoV0"]; +export type MobileDeploymentInfoV0 = + IdlTypes["MobileDeploymentInfoV0"]; diff --git a/packages/spl-utils/src/idl/helium_entity_manager.json b/packages/spl-utils/src/idl/helium_entity_manager.json index 2ff162485..c76d132d1 100644 --- a/packages/spl-utils/src/idl/helium_entity_manager.json +++ b/packages/spl-utils/src/idl/helium_entity_manager.json @@ -3302,6 +3302,34 @@ } } ] + }, + { + "name": "tempBackfillMobileInfo", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "mobileInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "args", + "type": { + "defined": "TempBackfillMobileInfoArgs" + } + } + ] } ], "accounts": [ @@ -4019,6 +4047,22 @@ ] } }, + { + "name": "TempBackfillMobileInfoArgs", + "type": { + "kind": "struct", + "fields": [ + { + "name": "deploymentInfo", + "type": { + "option": { + "defined": "MobileDeploymentInfoV0" + } + } + } + ] + } + }, { "name": "MetadataArgs", "type": { @@ -4379,19 +4423,19 @@ "name": "IotConfig", "fields": [ { - "name": "min_gain", + "name": "minGain", "type": "i32" }, { - "name": "max_gain", + "name": "maxGain", "type": "i32" }, { - "name": "full_location_staking_fee", + "name": "fullLocationStakingFee", "type": "u64" }, { - "name": "dataonly_location_staking_fee", + "name": "dataonlyLocationStakingFee", "type": "u64" } ] @@ -4400,11 +4444,11 @@ "name": "MobileConfig", "fields": [ { - "name": "full_location_staking_fee", + "name": "fullLocationStakingFee", "type": "u64" }, { - "name": "dataonly_location_staking_fee", + "name": "dataonlyLocationStakingFee", "type": "u64" } ] @@ -4413,7 +4457,7 @@ "name": "MobileConfigV1", "fields": [ { - "name": "fees_by_device", + "name": "feesByDevice", "type": { "vec": { "defined": "DeviceFeesV0" @@ -4426,7 +4470,7 @@ "name": "MobileConfigV2", "fields": [ { - "name": "fees_by_device", + "name": "feesByDevice", "type": { "vec": { "defined": "DeviceFeesV1" @@ -4473,11 +4517,11 @@ "type": "u16" }, { - "name": "mechanical_down_tilt", + "name": "mechanicalDownTilt", "type": "u16" }, { - "name": "electrical_down_tilt", + "name": "electricalDownTilt", "type": "u16" } ] @@ -4486,7 +4530,7 @@ "name": "CbrsInfoV0", "fields": [ { - "name": "radio_infos", + "name": "radioInfos", "type": { "vec": { "defined": "RadioInfoV0" @@ -4595,8 +4639,5 @@ "name": "ArithmeticError", "msg": "Arithmetic error" } - ], - "metadata": { - "address": "hemjuPXBpNvggtaUnN1MwT3wrdhttKEfosTcc2P9Pg8" - } + ] } \ No newline at end of file diff --git a/programs/helium-entity-manager/src/instructions/mod.rs b/programs/helium-entity-manager/src/instructions/mod.rs index 417285d6f..7ddb28fa4 100644 --- a/programs/helium-entity-manager/src/instructions/mod.rs +++ b/programs/helium-entity-manager/src/instructions/mod.rs @@ -16,6 +16,7 @@ pub mod revoke_maker_v0; pub mod revoke_program_v0; pub mod set_entity_active_v0; pub mod set_maker_tree_v0; +pub mod temp_backfill_mobile_info; pub mod temp_pay_mobile_onboarding_fee_v0; pub mod temp_standardize_entity; pub mod update_data_only_tree_v0; @@ -43,6 +44,7 @@ pub use revoke_maker_v0::*; pub use revoke_program_v0::*; pub use set_entity_active_v0::*; pub use set_maker_tree_v0::*; +pub use temp_backfill_mobile_info::*; pub use temp_pay_mobile_onboarding_fee_v0::*; pub use temp_standardize_entity::*; pub use update_data_only_tree_v0::*; diff --git a/programs/helium-entity-manager/src/instructions/temp_backfill_mobile_info.rs b/programs/helium-entity-manager/src/instructions/temp_backfill_mobile_info.rs new file mode 100644 index 000000000..bdd32bf1c --- /dev/null +++ b/programs/helium-entity-manager/src/instructions/temp_backfill_mobile_info.rs @@ -0,0 +1,44 @@ +use crate::state::*; +use anchor_lang::prelude::*; +use shared_utils::*; +use std::str::FromStr; + +#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default)] +pub struct TempBackfillMobileInfoArgs { + pub location: Option, + pub deployment_info: Option, +} + +#[derive(Accounts)] +#[instruction(args: TempBackfillMobileInfoArgs)] +pub struct TempBackfillMobileInfo<'info> { + #[account( + mut, + address = Pubkey::from_str("hprdnjkbziK8NqhThmAn5Gu4XqrBbctX8du4PfJdgvW").unwrap() + )] + pub payer: Signer<'info>, + #[account(mut)] + pub mobile_info: Box>, + pub system_program: Program<'info, System>, +} + +pub fn handler<'info>( + ctx: Context<'_, '_, '_, 'info, TempBackfillMobileInfo<'info>>, + args: TempBackfillMobileInfoArgs, +) -> Result<()> { + if let Some(new_location) = args.location { + ctx.accounts.mobile_info.location = Some(new_location); + } + + if let Some(deployment_info) = args.deployment_info { + ctx.accounts.mobile_info.deployment_info = Some(deployment_info); + } + + resize_to_fit( + &ctx.accounts.payer, + &ctx.accounts.system_program.to_account_info(), + &ctx.accounts.mobile_info, + )?; + + Ok(()) +} diff --git a/programs/helium-entity-manager/src/lib.rs b/programs/helium-entity-manager/src/lib.rs index 34e7c5ac9..386f10447 100644 --- a/programs/helium-entity-manager/src/lib.rs +++ b/programs/helium-entity-manager/src/lib.rs @@ -187,4 +187,11 @@ pub mod helium_entity_manager { ) -> Result<()> { onboard_data_only_mobile_hotspot_v0::handler(ctx, args) } + + pub fn temp_backfill_mobile_info<'info>( + ctx: Context<'_, '_, '_, 'info, TempBackfillMobileInfo<'info>>, + args: TempBackfillMobileInfoArgs, + ) -> Result<()> { + temp_backfill_mobile_info::handler(ctx, args) + } } diff --git a/yarn.lock b/yarn.lock index ceb8b83d8..6786482f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -556,7 +556,6 @@ __metadata: "@types/async-retry": ^1.4.8 "@types/bn.js": ^5.1.1 "@types/cron": ^2.4.0 - "@types/deep-equal": ^1.0.1 "@types/lodash": ^4.14.195 "@types/node": ^18.11.11 "@types/pg": ^8.6.6 @@ -569,8 +568,8 @@ __metadata: bn.js: ^5.2.0 bs58: ^4.0.1 cron: ^3.1.6 - deep-equal: ^2.2.2 dotenv: ^16.3.1 + fast-deep-equal: ^3.1.3 fastify: ^4.13.0 fastify-cron: ^1.3.1 fastify-metrics: ^10.3.0 @@ -939,7 +938,9 @@ __metadata: axios: ^1.3.6 bn.js: ^5.2.0 bs58: ^4.0.1 + fast-deep-equal: ^3.1.3 git-format-staged: ^2.1.3 + h3-js: ^4.1.0 ts-loader: ^9.2.3 ts-node: ^10.9.1 typescript: ^5.2.2 @@ -4875,16 +4876,6 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "array-buffer-byte-length@npm:1.0.0" - dependencies: - call-bind: "npm:^1.0.2" - is-array-buffer: "npm:^3.0.1" - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 - languageName: node - linkType: hard - "array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" @@ -6601,32 +6592,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.2.2": - version: 2.2.2 - resolution: "deep-equal@npm:2.2.2" - dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.2" - es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.1" - is-arguments: "npm:^1.1.1" - is-array-buffer: "npm:^3.0.2" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.2" - isarray: "npm:^2.0.5" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.4" - regexp.prototype.flags: "npm:^1.5.0" - side-channel: "npm:^1.0.4" - which-boxed-primitive: "npm:^1.0.2" - which-collection: "npm:^1.0.1" - which-typed-array: "npm:^1.1.9" - checksum: eb61c35157b6ecb96a5359b507b083fbff8ddb4c86a78a781ee38485f77a667465e45d63ee2ebd8a00e86d94c80e499906900cd82c2debb400237e1662cd5397 - languageName: node - linkType: hard - "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -7081,23 +7046,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.3" - has-symbols: "npm:^1.0.3" - is-arguments: "npm:^1.1.1" - is-map: "npm:^2.0.2" - is-set: "npm:^2.0.2" - is-string: "npm:^1.0.7" - isarray: "npm:^2.0.5" - stop-iteration-iterator: "npm:^1.0.0" - checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d - languageName: node - linkType: hard - "es-iterator-helpers@npm:^1.0.15, es-iterator-helpers@npm:^1.0.17": version: 1.0.18 resolution: "es-iterator-helpers@npm:1.0.18" @@ -8142,7 +8090,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1": version: 1.2.1 resolution: "get-intrinsic@npm:1.2.1" dependencies: @@ -8973,17 +8921,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" - dependencies: - get-intrinsic: "npm:^1.2.0" - has: "npm:^1.0.3" - side-channel: "npm:^1.0.4" - checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a - languageName: node - linkType: hard - "internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" @@ -9023,7 +8960,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -9033,17 +8970,6 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": - version: 3.0.2 - resolution: "is-array-buffer@npm:3.0.2" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.0" - is-typed-array: "npm:^1.1.10" - checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 - languageName: node - linkType: hard - "is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" @@ -9246,7 +9172,7 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1, is-map@npm:^2.0.2": +"is-map@npm:^2.0.1": version: 2.0.2 resolution: "is-map@npm:2.0.2" checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 @@ -9337,7 +9263,7 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.1, is-set@npm:^2.0.2": +"is-set@npm:^2.0.1": version: 2.0.2 resolution: "is-set@npm:2.0.2" checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 @@ -9405,15 +9331,6 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3": - version: 1.1.12 - resolution: "is-typed-array@npm:1.1.12" - dependencies: - which-typed-array: "npm:^1.1.11" - checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 - languageName: node - linkType: hard - "is-typed-array@npm:^1.1.13": version: 1.1.13 resolution: "is-typed-array@npm:1.1.13" @@ -9423,6 +9340,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.3": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" + dependencies: + which-typed-array: "npm:^1.1.11" + checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -11333,16 +11259,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.5 - resolution: "object-is@npm:1.1.5" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.3" - checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe - languageName: node - linkType: hard - "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -12964,17 +12880,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - functions-have-names: "npm:^1.2.3" - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 - languageName: node - linkType: hard - "regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" @@ -14041,15 +13946,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 - languageName: node - linkType: hard - "streamsearch@npm:^1.1.0": version: 1.1.0 resolution: "streamsearch@npm:1.1.0"