From 56ee70c4eb15d768ca49e98b76e3678cfccf71bd Mon Sep 17 00:00:00 2001 From: Cayman Date: Fri, 18 Aug 2023 15:29:24 -0400 Subject: [PATCH] chore: update discv5 and varint (#5895) * chore: update discv5 and deps * chore: remove varint dependency * fix: fix stray import * chore: consistent naming --- packages/beacon-node/package.json | 5 +- .../e2e/network/peers/peerManager.test.ts | 2 +- packages/cli/package.json | 2 +- packages/reqresp/package.json | 4 +- .../encodingStrategies/sszSnappy/decode.ts | 15 +- .../encodingStrategies/sszSnappy/encode.ts | 4 +- .../test/fixtures/encodingStrategies.ts | 6 +- .../sszSnappy/decode.test.ts | 4 +- .../sszSnappy/encode.test.ts | 4 +- yarn.lock | 148 ++++++------------ 10 files changed, 69 insertions(+), 125 deletions(-) diff --git a/packages/beacon-node/package.json b/packages/beacon-node/package.json index eddd66fce7a0..ae874214278d 100644 --- a/packages/beacon-node/package.json +++ b/packages/beacon-node/package.json @@ -99,7 +99,7 @@ "@chainsafe/as-sha256": "^0.3.1", "@chainsafe/bls": "7.1.1", "@chainsafe/blst": "^0.2.9", - "@chainsafe/discv5": "^5.0.0", + "@chainsafe/discv5": "^5.1.0", "@chainsafe/libp2p-gossipsub": "^10.0.0", "@chainsafe/libp2p-noise": "^13.0.0", "@chainsafe/persistent-merkle-tree": "^0.5.0", @@ -148,9 +148,9 @@ "snappyjs": "^0.7.0", "strict-event-emitter-types": "^2.0.0", "systeminformation": "^5.17.12", + "uint8-varint": "^2.0.1", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.3", - "varint": "^6.0.0", "xxhash-wasm": "1.0.2" }, "devDependencies": { @@ -159,7 +159,6 @@ "@types/qs": "^6.9.7", "@types/supertest": "^2.0.12", "@types/tmp": "^0.2.3", - "@types/varint": "^6.0.1", "eventsource": "^2.0.2", "leveldown": "^6.1.1", "rewiremock": "^3.14.5", diff --git a/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts b/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts index 9f60ea50f065..000e48dfcf3a 100644 --- a/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts +++ b/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts @@ -1,5 +1,5 @@ import {Connection} from "@libp2p/interface/connection"; -import {CustomEvent} from "@libp2p/interfaces/events"; +import {CustomEvent} from "@libp2p/interface/events"; import sinon from "sinon"; import {expect} from "chai"; import {BitArray} from "@chainsafe/ssz"; diff --git a/packages/cli/package.json b/packages/cli/package.json index 77176fe0ff99..d5f525a37dc2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -57,7 +57,7 @@ "@chainsafe/bls-keygen": "^0.3.0", "@chainsafe/bls-keystore": "^2.0.0", "@chainsafe/blst": "^0.2.9", - "@chainsafe/discv5": "^5.0.0", + "@chainsafe/discv5": "^5.1.0", "@chainsafe/ssz": "^0.10.2", "@chainsafe/threads": "^1.11.1", "@libp2p/crypto": "^2.0.2", diff --git a/packages/reqresp/package.json b/packages/reqresp/package.json index 8307b98df520..4f6c9f17c2da 100644 --- a/packages/reqresp/package.json +++ b/packages/reqresp/package.json @@ -63,8 +63,8 @@ "it-pipe": "^3.0.1", "snappy": "^7.2.2", "snappyjs": "^0.7.0", - "uint8arraylist": "^2.4.3", - "varint": "^6.0.0" + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.4.3" }, "devDependencies": { "@lodestar/logger": "^1.10.0", diff --git a/packages/reqresp/src/encodingStrategies/sszSnappy/decode.ts b/packages/reqresp/src/encodingStrategies/sszSnappy/decode.ts index ca6768766da7..1bf9fc815e28 100644 --- a/packages/reqresp/src/encodingStrategies/sszSnappy/decode.ts +++ b/packages/reqresp/src/encodingStrategies/sszSnappy/decode.ts @@ -1,4 +1,4 @@ -import varint from "varint"; +import {decode as varintDecode, encodingLength as varintEncodingLength} from "uint8-varint"; import {Uint8ArrayList} from "uint8arraylist"; import {BufferedSource} from "../../utils/index.js"; import {TypeSizes} from "../../types.js"; @@ -32,23 +32,16 @@ export async function readSszSnappyHeader(bufferedSource: BufferedSource, type: continue; } - // Use Number.MAX_SAFE_INTEGER to guard against this check https://github.com/chrisdickinson/varint/pull/20 - // On varint v6 if the number is > Number.MAX_SAFE_INTEGER `varint.decode` throws. - // Since MAX_VARINT_BYTES = 10, this will always be the case for the condition below. - // The check for MAX_VARINT_BYTES is kept for completeness let sszDataLength: number; try { - sszDataLength = varint.decode(buffer.slice()); + sszDataLength = varintDecode(buffer.subarray()); } catch (e) { throw new SszSnappyError({code: SszSnappyErrorCode.INVALID_VARINT_BYTES_COUNT, bytes: Infinity}); } // MUST validate: the unsigned protobuf varint used for the length-prefix MUST not be longer than 10 bytes - // Check for varintBytes > 0 to guard against NaN, or 0 values - const varintBytes = varint.decode.bytes; - if (varintBytes === undefined || varintBytes > MAX_VARINT_BYTES || !(varintBytes > 0)) { - throw new SszSnappyError({code: SszSnappyErrorCode.INVALID_VARINT_BYTES_COUNT, bytes: varintBytes ?? 0}); - } + // encodingLength function only returns 1-8 inclusive + const varintBytes = varintEncodingLength(sszDataLength); buffer.consume(varintBytes); // MUST validate: the length-prefix is within the expected size bounds derived from the payload SSZ type. diff --git a/packages/reqresp/src/encodingStrategies/sszSnappy/encode.ts b/packages/reqresp/src/encodingStrategies/sszSnappy/encode.ts index f3864cc25077..930aa242766d 100644 --- a/packages/reqresp/src/encodingStrategies/sszSnappy/encode.ts +++ b/packages/reqresp/src/encodingStrategies/sszSnappy/encode.ts @@ -1,4 +1,4 @@ -import varint from "varint"; +import {encode as varintEncode} from "uint8-varint"; import {encodeSnappy} from "./snappyFrames/compress.js"; /** @@ -15,7 +15,7 @@ export const writeSszSnappyPayload = encodeSszSnappy as (bytes: Uint8Array) => A */ export async function* encodeSszSnappy(bytes: Buffer): AsyncGenerator { // MUST encode the length of the raw SSZ bytes, encoded as an unsigned protobuf varint - yield Buffer.from(varint.encode(bytes.length)); + yield Buffer.from(varintEncode(bytes.length)); // By first computing and writing the SSZ byte length, the SSZ encoder can then directly // write the chunk contents to the stream. Snappy writer compresses frame by frame diff --git a/packages/reqresp/test/fixtures/encodingStrategies.ts b/packages/reqresp/test/fixtures/encodingStrategies.ts index b9692a6c086c..c7705bb9493b 100644 --- a/packages/reqresp/test/fixtures/encodingStrategies.ts +++ b/packages/reqresp/test/fixtures/encodingStrategies.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import path from "node:path"; import {fileURLToPath} from "node:url"; -import varint from "varint"; +import {encode as varintEncode} from "uint8-varint"; import {ssz} from "@lodestar/types"; import {ForkName} from "@lodestar/params"; import {SszSnappyErrorCode} from "../../src/encodingStrategies/sszSnappy/errors.js"; @@ -72,12 +72,12 @@ export const encodingStrategiesDecodingErrorCases: { id: "if it read more than maxEncodedLen", type: ssz.phase0.Ping, error: SszSnappyErrorCode.TOO_MUCH_BYTES_READ, - chunks: [Buffer.from(varint.encode(ssz.phase0.Ping.minSize)), Buffer.alloc(100)], + chunks: [Buffer.from(varintEncode(ssz.phase0.Ping.minSize)), Buffer.alloc(100)], }, { id: "if failed ssz snappy input malformed", type: ssz.phase0.Status, error: SszSnappyErrorCode.DECOMPRESSOR_ERROR, - chunks: [Buffer.from(varint.encode(ssz.phase0.Status.minSize)), Buffer.from("wrong snappy data")], + chunks: [Buffer.from(varintEncode(ssz.phase0.Status.minSize)), Buffer.from("wrong snappy data")], }, ]; diff --git a/packages/reqresp/test/unit/encodingStrategies/sszSnappy/decode.test.ts b/packages/reqresp/test/unit/encodingStrategies/sszSnappy/decode.test.ts index 93a37f5c3934..6ad5954dafa2 100644 --- a/packages/reqresp/test/unit/encodingStrategies/sszSnappy/decode.test.ts +++ b/packages/reqresp/test/unit/encodingStrategies/sszSnappy/decode.test.ts @@ -1,7 +1,7 @@ import chai, {expect} from "chai"; import chaiAsPromised from "chai-as-promised"; import {Uint8ArrayList} from "uint8arraylist"; -import varint from "varint"; +import {encode as varintEncode} from "uint8-varint"; import {readSszSnappyPayload} from "../../../../src/encodingStrategies/sszSnappy/index.js"; import {BufferedSource} from "../../../../src/utils/index.js"; import { @@ -25,7 +25,7 @@ describe("encodingStrategies / sszSnappy / decode", () => { describe("mainnet cases", () => { for (const {id, payload, type: serializer, streamedBody} of encodingStrategiesMainnetTestCases) { const bodySize = payload.data.length; - const streamedBytes = new Uint8ArrayList(Buffer.concat([Buffer.from(varint.encode(bodySize)), streamedBody])); + const streamedBytes = new Uint8ArrayList(Buffer.concat([Buffer.from(varintEncode(bodySize)), streamedBody])); it(id, async () => { const bufferedSource = new BufferedSource(arrToSource([streamedBytes])); diff --git a/packages/reqresp/test/unit/encodingStrategies/sszSnappy/encode.test.ts b/packages/reqresp/test/unit/encodingStrategies/sszSnappy/encode.test.ts index d6af699ee9e4..6e94596930e6 100644 --- a/packages/reqresp/test/unit/encodingStrategies/sszSnappy/encode.test.ts +++ b/packages/reqresp/test/unit/encodingStrategies/sszSnappy/encode.test.ts @@ -1,7 +1,7 @@ import {expect} from "chai"; import all from "it-all"; import {pipe} from "it-pipe"; -import varint from "varint"; +import {encode as varintEncode} from "uint8-varint"; import {writeSszSnappyPayload} from "../../../../src/encodingStrategies/sszSnappy/encode.js"; import {encodingStrategiesMainnetTestCases, encodingStrategiesTestCases} from "../../../fixtures/index.js"; import {expectEqualByteChunks} from "../../../utils/index.js"; @@ -24,7 +24,7 @@ describe("encodingStrategies / sszSnappy / encode", () => { const encodedChunks = await pipe(writeSszSnappyPayload(payload.data), all); const encodedStream = Buffer.concat(encodedChunks as Uint8Array[]); - const expectedStreamed = Buffer.concat([Buffer.from(varint.encode(bodySize)), streamedBody]); + const expectedStreamed = Buffer.concat([Buffer.from(varintEncode(bodySize)), streamedBody]); expect(encodedStream).to.be.deep.equal(expectedStreamed); }); } diff --git a/yarn.lock b/yarn.lock index 090b220a6ad8..fc42a52e9016 100644 --- a/yarn.lock +++ b/yarn.lock @@ -515,17 +515,14 @@ node-fetch "^2.6.1" node-gyp "^8.4.0" -"@chainsafe/discv5@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@chainsafe/discv5/-/discv5-5.0.0.tgz#d8d4eadc0ce7f649d5c1b141bb0d51efbfca4c6d" - integrity sha512-e+TbRrs1wukZgVmFuQL4tm0FRqSFRWlV7+MEbApbIenzFI7Pds1B4U5CDUFF8UE9QlkY5GEI/vXkT480Rhn6Rg== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-peer-discovery" "^2.0.0" - "@libp2p/interface-peer-id" "^2.0.1" - "@libp2p/interface-peer-info" "^1.0.1" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/peer-id" "^2.0.1" +"@chainsafe/discv5@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@chainsafe/discv5/-/discv5-5.1.1.tgz#537826c24dc1190aaf795810e2afccf188e173ff" + integrity sha512-Zcv7fyKirKta305/gTX+wvFA2Ockx+FxUTW+/Yj37+idFjt/UrGho4tcPGyPJC/46cXp+NRGI1wNqsh54+Hnow== + dependencies: + "@libp2p/crypto" "^2.0.0" + "@libp2p/interface" "^0.1.2" + "@libp2p/peer-id" "^3.0.1" "@multiformats/multiaddr" "^12.1.3" base64url "^3.0.1" bcrypto "^5.4.0" @@ -533,9 +530,10 @@ debug "^4.3.1" dgram "^1.0.1" err-code "^3.0.1" + lru-cache "^6.0.0" rlp "^2.2.6" strict-event-emitter-types "^2.0.0" - varint "^6.0.0" + uint8-varint "^2.0.1" "@chainsafe/eslint-plugin-node@^11.2.3": version "11.2.3" @@ -1469,21 +1467,6 @@ "@multiformats/mafmt" "^12.1.2" "@multiformats/multiaddr" "^12.1.3" -"@libp2p/crypto@^1.0.0": - version "1.0.17" - resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.17.tgz#e64043328c0c866bf7f4cc8560b4f483e9c745dc" - integrity sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag== - dependencies: - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interfaces" "^3.2.0" - "@noble/ed25519" "^1.6.0" - "@noble/secp256k1" "^1.5.4" - multiformats "^11.0.0" - node-forge "^1.1.0" - protons-runtime "^5.0.0" - uint8arraylist "^2.4.3" - uint8arrays "^4.0.2" - "@libp2p/crypto@^2.0.0", "@libp2p/crypto@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-2.0.2.tgz#c1c950e452c7a417631bf5b2b6bda96292bf35ee" @@ -1508,34 +1491,13 @@ "@multiformats/multiaddr" "^12.1.3" uint8arraylist "^2.4.3" -"@libp2p/interface-keys@^1.0.2": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.8.tgz#2c6b55136113ae7cf78133d3c459cdf0455b29ae" - integrity sha512-CJ1SlrwuoHMquhEEWS77E+4vv7hwB7XORkqzGQrPQmA9MRdIEZRS64bA4JqCLUDa4ltH0l+U1vp0oZHLT67NEA== - -"@libp2p/interface-peer-discovery@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-2.0.0.tgz#90f176cfd202f5a362912386199e64f8b1e0fc53" - integrity sha512-Mien5t3Tc+ntP5p50acKUYJN90ouMnq1lOTQDKQNvGcXoajG8A1AEYLocnzVia/MXiexuj6S/Q28WBBacoOlBg== - dependencies: - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - -"@libp2p/interface-peer-id@^2.0.0", "@libp2p/interface-peer-id@^2.0.1", "@libp2p/interface-peer-id@^2.0.2": +"@libp2p/interface-peer-id@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz#6302e70b6fc17c451bc3daa11447d059357bcc32" integrity sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg== dependencies: multiformats "^11.0.0" -"@libp2p/interface-peer-info@^1.0.0", "@libp2p/interface-peer-info@^1.0.1": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.10.tgz#566026de95a0817b9e853c982b313541b7960c0b" - integrity sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@multiformats/multiaddr" "^12.0.0" - "@libp2p/interface@^0.1.0", "@libp2p/interface@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-0.1.1.tgz#c1853bfe86bcd5a4b209891e501d6d208a065b77" @@ -1549,10 +1511,18 @@ p-defer "^4.0.0" uint8arraylist "^2.4.3" -"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.2.0", "@libp2p/interfaces@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.1.tgz#519c77c030b10d776250bbebf65990af53ccb2ee" - integrity sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg== +"@libp2p/interface@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-0.1.2.tgz#4ea5a4fa8bbd46c3fe4c945ff6b8c6d5d41f10b0" + integrity sha512-Q5t27434Mvn+R6AUJlRH+q/jSXarDpP+KXVkyGY7S1fKPI2berqoFPqT61bRRBYsCH2OPZiKBB53VUzxL9uEvg== + dependencies: + "@multiformats/multiaddr" "^12.1.5" + abortable-iterator "^5.0.1" + it-pushable "^3.2.0" + it-stream-types "^2.0.1" + multiformats "^12.0.1" + p-defer "^4.0.0" + uint8arraylist "^2.4.3" "@libp2p/keychain@^3.0.2": version "3.0.2" @@ -1660,16 +1630,6 @@ uint8arraylist "^2.4.3" uint8arrays "^4.0.4" -"@libp2p/peer-id@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-2.0.3.tgz#7299d74eae7b2526123d941bdb2d08462704c79a" - integrity sha512-eZX+5ByUAzh8DrfjCan0spZGpvF7SxEBz4tOPoBMBCuKJJLr+8EokBO/5E3ceIw04f5+lAcD3CO3bccuKomp3Q== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.2.0" - multiformats "^11.0.0" - uint8arrays "^4.0.2" - "@libp2p/peer-id@^3.0.0", "@libp2p/peer-id@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-3.0.1.tgz#4f27c04f34cc189f14c82aabc74cbd4a91f8eef2" @@ -1779,18 +1739,18 @@ dependencies: "@multiformats/multiaddr" "^12.0.0" -"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.3": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.5.tgz#52c0045951446cf82bffeb9bd1068d22bb3e73d1" - integrity sha512-2c0Mouk6LPzd86eKyw9+ENtoLfe5tJXZVMkbG0BmdYdMb3Wp6B/0wEjde3G3WcqaFhHobGAQPmOgNmVPxi6Vyg== +"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.3", "@multiformats/multiaddr@^12.1.5": + version "12.1.7" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz#eb71733be20dd9f0ac0ff4c3ffe4bae422726beb" + integrity sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA== dependencies: "@chainsafe/is-ip" "^2.0.1" "@chainsafe/netmask" "^2.0.0" - "@libp2p/interfaces" "^3.3.1" + "@libp2p/interface" "^0.1.1" dns-over-http-resolver "^2.1.0" multiformats "^12.0.1" + uint8-varint "^2.0.1" uint8arrays "^4.0.2" - varint "^6.0.0" "@napi-rs/snappy-android-arm-eabi@7.2.2": version "7.2.2" @@ -3258,13 +3218,6 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== -"@types/varint@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/varint/-/varint-6.0.1.tgz#018d424627c7951d370d73816e97e143dc99523b" - integrity sha512-fQdOiZpDMBvaEdl12P1x7xlTPRAtd7qUUtVaWgkCy8DC//wCv19nqFFtrnR3y/ac6VFY0UUvYuQqfKzZTSE26w== - dependencies: - "@types/node" "*" - "@types/ws@^8.5.3": version "8.5.5" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" @@ -8577,24 +8530,25 @@ it-handshake@^4.1.3: uint8arraylist "^2.0.0" it-length-prefixed-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/it-length-prefixed-stream/-/it-length-prefixed-stream-1.0.0.tgz#78b0f398f93a6c52e797e03e982d2ef0bd393ed9" - integrity sha512-d+WJC2AkQRENrWr0XoZ0Tm+NBFpMiC/hQ1ZhhBhpq/L8/zFh4XNBv/28ticXVdgA2u33N69k43zJ+ZbAophNyg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/it-length-prefixed-stream/-/it-length-prefixed-stream-1.0.2.tgz#dbcb291118fc9cf031c89ab4be3f99cdb452f548" + integrity sha512-gWevodoctgwWUaRJN9t+xEs1H1GQNYAjLCR7FO50fon9Ph4OJGgrxPKTc26QXKrC/cIQZLkHYClphUw0wl1k2A== dependencies: it-byte-stream "^1.0.0" it-length-prefixed "^9.0.1" it-stream-types "^2.0.1" - uint8-varint "^1.0.6" + uint8-varint "^2.0.1" uint8arraylist "^2.4.1" it-length-prefixed@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz#12b7f8a283251bf74102c1c92d61b33985089e7c" - integrity sha512-ZBD8ZFLERj8d1q9CeBtk0eJ4EpeI3qwnkmWtemBSm3ZI2dM8PUweNVk5haZ2vw3EIq2uYQiabV9YwNm6EASM4A== + version "9.0.3" + resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-9.0.3.tgz#73af16f786cab60a0a9bfc2997e88eb26d3a72ca" + integrity sha512-YAu424ceYpXctxtjcLOqn7vJq082CaoP8J646ZusYISfQc3bpzQErgTUqMFj81V262KG2W9/YMBHsy6A/4yvmg== dependencies: err-code "^3.0.1" + it-reader "^6.0.1" it-stream-types "^2.0.1" - uint8-varint "^1.0.1" + uint8-varint "^2.0.1" uint8arraylist "^2.0.0" uint8arrays "^4.0.2" @@ -8642,14 +8596,13 @@ it-pipe@^3.0.0, it-pipe@^3.0.1: it-stream-types "^2.0.1" it-protobuf-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/it-protobuf-stream/-/it-protobuf-stream-1.0.0.tgz#229bc90881779bb8701ffa56fe6a53438e376103" - integrity sha512-y3FfOQ+u2xY3DLs5FH8xXz1YH/50WJx40a9zWEk73DhNSpaLaLHjZqEiTyHa5mKjP0NaYgum+Ne6wo8yFPeoNw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/it-protobuf-stream/-/it-protobuf-stream-1.0.2.tgz#e8bdcc1f67b43f11090cc81f5a4931474fc37f87" + integrity sha512-2lESJIeZS2ZlYJc/1SKs6LL4Y83rCCvZv750xV1e4uuP9114yNkw2MhIGCtSReg+qNWCvzGqOwjQbKV0LFE6wQ== dependencies: it-length-prefixed-stream "^1.0.0" it-stream-types "^2.0.1" protons-runtime "^5.0.0" - uint8-varint "^1.0.6" uint8arraylist "^2.4.1" it-pushable@^3.0.0, it-pushable@^3.1.0, it-pushable@^3.1.2: @@ -13489,22 +13442,21 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.2.tgz#f55f668b9a64b213977ae688703b6bbb7ca861c6" integrity sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg== -uint8-varint@^1.0.1, uint8-varint@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.2.tgz#89fd4142284b672c63416f43a0f647d8fbce17e1" - integrity sha512-IubsiyUyX2snBV+XmTa+Q9hjGejhDznwIzXMyl3ZjVWog3h/mDijB8s/s/9ujQpJ2Yskj51hWAvbeS7B7Em61g== +uint8-varint@^1.0.2: + version "1.0.8" + resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.8.tgz#3f6c268e4c1a1ece232f660ec37729faca7cc7d0" + integrity sha512-QS03THS87Wlc0fBCC3xP5sqScDwfvVZLUrTCeMAQbQxQUWJosPC7C8uTNhpVUEgpTbV1Ut2Fer9Se3kI1KbnlQ== dependencies: byte-access "^1.0.0" longbits "^1.1.0" uint8arraylist "^2.0.0" + uint8arrays "^4.0.2" -uint8-varint@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.6.tgz#bacf9526b0ddcd38fd6645e17895a4ee42d2bec4" - integrity sha512-Z0ujO4rxPwxTdLsSI5ke+bdl9hjJ1xiOakBPZeWUI/u6YBGCEGTW6b90SMlhxSGButKVPkL9fMFUDnqThQYTGg== +uint8-varint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.1.tgz#e8f73c24974b384f6f0e1cd73c884c5a19e32f53" + integrity sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ== dependencies: - byte-access "^1.0.0" - longbits "^1.1.0" uint8arraylist "^2.0.0" uint8arrays "^4.0.2"