@lodestar/reqresp 1.41.0-dev.983b1a457b → 1.41.0-dev.9939b12b53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +1 -1
  2. package/lib/ReqResp.d.ts +3 -3
  3. package/lib/ReqResp.d.ts.map +1 -1
  4. package/lib/ReqResp.js +4 -4
  5. package/lib/ReqResp.js.map +1 -1
  6. package/lib/encoders/requestDecode.d.ts +2 -3
  7. package/lib/encoders/requestDecode.d.ts.map +1 -1
  8. package/lib/encoders/requestDecode.js +28 -11
  9. package/lib/encoders/requestDecode.js.map +1 -1
  10. package/lib/encoders/requestEncode.d.ts +1 -1
  11. package/lib/encoders/requestEncode.d.ts.map +1 -1
  12. package/lib/encoders/requestEncode.js +1 -1
  13. package/lib/encoders/requestEncode.js.map +1 -1
  14. package/lib/encoders/responseDecode.d.ts +10 -10
  15. package/lib/encoders/responseDecode.d.ts.map +1 -1
  16. package/lib/encoders/responseDecode.js +63 -60
  17. package/lib/encoders/responseDecode.js.map +1 -1
  18. package/lib/encoders/responseEncode.d.ts +2 -4
  19. package/lib/encoders/responseEncode.d.ts.map +1 -1
  20. package/lib/encoders/responseEncode.js +13 -22
  21. package/lib/encoders/responseEncode.js.map +1 -1
  22. package/lib/encodingStrategies/index.d.ts +4 -3
  23. package/lib/encodingStrategies/index.d.ts.map +1 -1
  24. package/lib/encodingStrategies/index.js +4 -4
  25. package/lib/encodingStrategies/index.js.map +1 -1
  26. package/lib/encodingStrategies/sszSnappy/decode.d.ts +5 -4
  27. package/lib/encodingStrategies/sszSnappy/decode.d.ts.map +1 -1
  28. package/lib/encodingStrategies/sszSnappy/decode.js +83 -52
  29. package/lib/encodingStrategies/sszSnappy/decode.js.map +1 -1
  30. package/lib/encodingStrategies/sszSnappy/encode.d.ts +2 -2
  31. package/lib/encodingStrategies/sszSnappy/encode.d.ts.map +1 -1
  32. package/lib/encodingStrategies/sszSnappy/encode.js +1 -1
  33. package/lib/encodingStrategies/sszSnappy/encode.js.map +1 -1
  34. package/lib/encodingStrategies/sszSnappy/errors.d.ts +0 -8
  35. package/lib/encodingStrategies/sszSnappy/errors.d.ts.map +1 -1
  36. package/lib/encodingStrategies/sszSnappy/errors.js +2 -3
  37. package/lib/encodingStrategies/sszSnappy/errors.js.map +1 -1
  38. package/lib/encodingStrategies/sszSnappy/index.d.ts +0 -1
  39. package/lib/encodingStrategies/sszSnappy/index.d.ts.map +1 -1
  40. package/lib/encodingStrategies/sszSnappy/index.js +0 -1
  41. package/lib/encodingStrategies/sszSnappy/index.js.map +1 -1
  42. package/lib/encodingStrategies/sszSnappy/utils.js.map +1 -1
  43. package/lib/interface.js +2 -1
  44. package/lib/interface.js.map +1 -1
  45. package/lib/metrics.d.ts +1 -7
  46. package/lib/metrics.d.ts.map +1 -1
  47. package/lib/metrics.js +1 -17
  48. package/lib/metrics.js.map +1 -1
  49. package/lib/rate_limiter/ReqRespRateLimiter.d.ts.map +1 -1
  50. package/lib/rate_limiter/ReqRespRateLimiter.js.map +1 -1
  51. package/lib/rate_limiter/rateLimiterGRCA.d.ts.map +1 -1
  52. package/lib/rate_limiter/rateLimiterGRCA.js.map +1 -1
  53. package/lib/rate_limiter/selfRateLimiter.d.ts.map +1 -1
  54. package/lib/rate_limiter/selfRateLimiter.js.map +1 -1
  55. package/lib/request/errors.d.ts +1 -7
  56. package/lib/request/errors.d.ts.map +1 -1
  57. package/lib/request/errors.js +3 -6
  58. package/lib/request/errors.js.map +1 -1
  59. package/lib/request/index.d.ts +0 -3
  60. package/lib/request/index.d.ts.map +1 -1
  61. package/lib/request/index.js +96 -70
  62. package/lib/request/index.js.map +1 -1
  63. package/lib/response/errors.d.ts.map +1 -1
  64. package/lib/response/errors.js +2 -1
  65. package/lib/response/errors.js.map +1 -1
  66. package/lib/response/index.d.ts +2 -2
  67. package/lib/response/index.d.ts.map +1 -1
  68. package/lib/response/index.js +46 -50
  69. package/lib/response/index.js.map +1 -1
  70. package/lib/types.d.ts +1 -2
  71. package/lib/types.d.ts.map +1 -1
  72. package/lib/types.js +7 -5
  73. package/lib/types.js.map +1 -1
  74. package/lib/utils/collectExactOne.js.map +1 -1
  75. package/lib/utils/collectMaxResponse.d.ts.map +1 -1
  76. package/lib/utils/collectMaxResponse.js +1 -2
  77. package/lib/utils/collectMaxResponse.js.map +1 -1
  78. package/lib/utils/errorMessage.d.ts +3 -3
  79. package/lib/utils/errorMessage.d.ts.map +1 -1
  80. package/lib/utils/errorMessage.js +14 -13
  81. package/lib/utils/errorMessage.js.map +1 -1
  82. package/lib/utils/index.d.ts +1 -3
  83. package/lib/utils/index.d.ts.map +1 -1
  84. package/lib/utils/index.js +1 -3
  85. package/lib/utils/index.js.map +1 -1
  86. package/lib/utils/peerId.js.map +1 -1
  87. package/lib/utils/protocolId.d.ts +2 -2
  88. package/lib/utils/protocolId.js +2 -2
  89. package/lib/utils/protocolId.js.map +1 -1
  90. package/lib/utils/snappyCommon.js +2 -1
  91. package/lib/utils/snappyCommon.js.map +1 -1
  92. package/lib/utils/snappyCompress.d.ts +1 -1
  93. package/lib/utils/snappyCompress.d.ts.map +1 -1
  94. package/lib/utils/snappyCompress.js +1 -1
  95. package/lib/utils/snappyCompress.js.map +1 -1
  96. package/lib/utils/snappyIndex.d.ts +1 -1
  97. package/lib/utils/snappyIndex.d.ts.map +1 -1
  98. package/lib/utils/snappyIndex.js +1 -1
  99. package/lib/utils/snappyIndex.js.map +1 -1
  100. package/lib/utils/snappyUncompress.d.ts +7 -11
  101. package/lib/utils/snappyUncompress.d.ts.map +1 -1
  102. package/lib/utils/snappyUncompress.js +68 -68
  103. package/lib/utils/snappyUncompress.js.map +1 -1
  104. package/lib/utils/stream.d.ts +6 -0
  105. package/lib/utils/stream.d.ts.map +1 -0
  106. package/lib/utils/stream.js +21 -0
  107. package/lib/utils/stream.js.map +1 -0
  108. package/package.json +16 -18
  109. package/src/ReqResp.ts +4 -4
  110. package/src/encoders/requestDecode.ts +32 -16
  111. package/src/encoders/requestEncode.ts +1 -1
  112. package/src/encoders/responseDecode.ts +68 -72
  113. package/src/encoders/responseEncode.ts +17 -29
  114. package/src/encodingStrategies/index.ts +8 -6
  115. package/src/encodingStrategies/sszSnappy/decode.ts +111 -53
  116. package/src/encodingStrategies/sszSnappy/encode.ts +2 -2
  117. package/src/encodingStrategies/sszSnappy/errors.ts +0 -4
  118. package/src/encodingStrategies/sszSnappy/index.ts +0 -1
  119. package/src/metrics.ts +1 -17
  120. package/src/request/errors.ts +1 -6
  121. package/src/request/index.ts +119 -85
  122. package/src/response/index.ts +55 -61
  123. package/src/types.ts +1 -3
  124. package/src/utils/collectMaxResponse.ts +1 -2
  125. package/src/utils/errorMessage.ts +14 -13
  126. package/src/utils/index.ts +1 -3
  127. package/src/utils/protocolId.ts +2 -2
  128. package/src/utils/snappyCompress.ts +1 -1
  129. package/src/utils/snappyIndex.ts +1 -1
  130. package/src/utils/snappyUncompress.ts +73 -75
  131. package/src/utils/stream.ts +34 -0
  132. package/lib/utils/abortableSource.d.ts +0 -12
  133. package/lib/utils/abortableSource.d.ts.map +0 -1
  134. package/lib/utils/abortableSource.js +0 -69
  135. package/lib/utils/abortableSource.js.map +0 -1
  136. package/lib/utils/bufferedSource.d.ts +0 -16
  137. package/lib/utils/bufferedSource.d.ts.map +0 -1
  138. package/lib/utils/bufferedSource.js +0 -40
  139. package/lib/utils/bufferedSource.js.map +0 -1
  140. package/lib/utils/onChunk.d.ts +0 -6
  141. package/lib/utils/onChunk.d.ts.map +0 -1
  142. package/lib/utils/onChunk.js +0 -13
  143. package/lib/utils/onChunk.js.map +0 -1
  144. package/lib/utils/snappy.d.ts +0 -3
  145. package/lib/utils/snappy.d.ts.map +0 -1
  146. package/lib/utils/snappy.js +0 -3
  147. package/lib/utils/snappy.js.map +0 -1
  148. package/src/utils/abortableSource.ts +0 -80
  149. package/src/utils/bufferedSource.ts +0 -46
  150. package/src/utils/onChunk.ts +0 -12
  151. package/src/utils/snappy.ts +0 -2
package/lib/types.js CHANGED
@@ -1,22 +1,24 @@
1
1
  import { LodestarError } from "@lodestar/utils";
2
- export const protocolPrefix = "/eth2/beacon_chain/req";
2
+ export { Encoding };
3
3
  /**
4
4
  * Available request/response encoding strategies:
5
- * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#encoding-strategies
5
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#encoding-strategies
6
6
  */
7
- export var Encoding;
7
+ var Encoding;
8
8
  (function (Encoding) {
9
9
  Encoding["SSZ_SNAPPY"] = "ssz_snappy";
10
10
  })(Encoding || (Encoding = {}));
11
11
  export const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
12
- export var ContextBytesType;
12
+ export { ContextBytesType };
13
+ var ContextBytesType;
13
14
  (function (ContextBytesType) {
14
15
  /** 0 bytes chunk, can be ignored */
15
16
  ContextBytesType[ContextBytesType["Empty"] = 0] = "Empty";
16
17
  /** A fixed-width 4 byte <context-bytes>, set to the ForkDigest matching the chunk: compute_fork_digest(fork_version, genesis_validators_root) */
17
18
  ContextBytesType[ContextBytesType["ForkDigest"] = 1] = "ForkDigest";
18
19
  })(ContextBytesType || (ContextBytesType = {}));
19
- export var LightClientServerErrorCode;
20
+ export { LightClientServerErrorCode };
21
+ var LightClientServerErrorCode;
20
22
  (function (LightClientServerErrorCode) {
21
23
  LightClientServerErrorCode["RESOURCE_UNAVAILABLE"] = "RESOURCE_UNAVAILABLE";
22
24
  })(LightClientServerErrorCode || (LightClientServerErrorCode = {}));
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;AAC3B,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AA+HlD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,oCAAoC;IACpC,yDAAK,CAAA;IACL,iJAAiJ;IACjJ,mEAAU,CAAA;AACZ,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAED,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,2EAA6C,CAAA;AAC/C,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAID,MAAM,OAAO,sBAAuB,SAAQ,aAAyC;CAAG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;SAOlC,QAAQ;AAJpB;;;GAGG;AACH,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;AAAC,CAC5B,EAFY,QAAQ,KAAR,QAAQ,QAEnB;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;SA+HtC,gBAAgB;AAA5B,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,oCAAoC;IACpC,yDAAK,CAAA;IACL,iJAAiJ;IACjJ,mEAAU,CAAA;AAAC,CACb,EALY,gBAAgB,KAAhB,gBAAgB,QAK3B;SAEW,0BAA0B;AAAtC,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,2EAA6C,CAAA;AAAC,CAChD,EAFY,0BAA0B,KAA1B,0BAA0B,QAErC;AAID,MAAM,OAAO,sBAAuB,SAAQ,aAAyC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectExactOne.js","sourceRoot":"","sources":["../../src/utils/collectExactOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,MAAwB;IAC/D,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,EAAC,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"collectExactOne.js","sourceRoot":"","sources":["../../src/utils/collectExactOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,MAAwB,EAAc;IAC7E,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,EAAC,CAAC,CAAC;AAAA,CACjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectMaxResponse.d.ts","sourceRoot":"","sources":["../../src/utils/collectMaxResponse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAWxG"}
1
+ {"version":3,"file":"collectMaxResponse.d.ts","sourceRoot":"","sources":["../../src/utils/collectMaxResponse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAUxG"}
@@ -6,11 +6,10 @@
6
6
  * Collects a bounded list of responses up to `maxResponses`
7
7
  */
8
8
  export async function collectMaxResponse(source, maxResponses) {
9
- // else: zero or more responses
10
9
  const responses = [];
11
10
  for await (const response of source) {
12
11
  responses.push(response);
13
- if (maxResponses !== undefined && responses.length >= maxResponses) {
12
+ if (responses.length >= maxResponses) {
14
13
  break;
15
14
  }
16
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collectMaxResponse.js","sourceRoot":"","sources":["../../src/utils/collectMaxResponse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,MAAwB,EAAE,YAAoB;IACxF,+BAA+B;IAC/B,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,IAAI,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YACnE,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"collectMaxResponse.js","sourceRoot":"","sources":["../../src/utils/collectMaxResponse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,MAAwB,EAAE,YAAoB,EAAgB;IACxG,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,IAAI,SAAS,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YACrC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAAA,CAClB"}
@@ -2,14 +2,14 @@ import { Encoding } from "../types.js";
2
2
  /**
3
3
  * Encodes a UTF-8 string to 256 bytes max
4
4
  */
5
- export declare function encodeErrorMessage(errorMessage: string, encoding: Encoding): AsyncGenerator<Buffer>;
5
+ export declare function encodeErrorMessage(errorMessage: string, encoding: Encoding): Generator<Buffer>;
6
6
  /**
7
7
  * Encodes a UTF-8 error message string into a single buffer (max 256 bytes before encoding).
8
8
  * Unlike `encodeErrorMessage`, this collects all encoded chunks into one buffer.
9
9
  */
10
- export declare function encodeErrorMessageToBuffer(errorMessage: string, encoding: Encoding): Promise<Buffer>;
10
+ export declare function encodeErrorMessageToBuffer(errorMessage: string, encoding: Encoding): Buffer;
11
11
  /**
12
12
  * Decodes error message from network bytes and removes non printable, non ascii characters.
13
13
  */
14
- export declare function decodeErrorMessage(encodedErrorMessage: Uint8Array): Promise<string>;
14
+ export declare function decodeErrorMessage(encodedErrorMessage: Uint8Array): string;
15
15
  //# sourceMappingURL=errorMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorMessage.d.ts","sourceRoot":"","sources":["../../src/utils/errorMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAcrC;;GAEG;AACH,wBAAuB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAQ1G;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1G;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,mBAAmB,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBzF"}
1
+ {"version":3,"file":"errorMessage.d.ts","sourceRoot":"","sources":["../../src/utils/errorMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAcrC;;GAEG;AACH,wBAAiB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAW/F;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAM3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAgB1E"}
@@ -1,8 +1,7 @@
1
1
  import { decode as varintDecode, encodingLength as varintEncodingLength } from "uint8-varint";
2
- import { Uint8ArrayList } from "uint8arraylist";
3
2
  import { writeSszSnappyPayload } from "../encodingStrategies/sszSnappy/encode.js";
4
3
  import { Encoding } from "../types.js";
5
- import { SnappyFramesUncompress } from "./snappyIndex.js";
4
+ import { decodeSnappyFrames } from "./snappyIndex.js";
6
5
  // ErrorMessage schema:
7
6
  //
8
7
  // (
@@ -12,25 +11,28 @@ import { SnappyFramesUncompress } from "./snappyIndex.js";
12
11
  // By convention, the error_message is a sequence of bytes that MAY be interpreted as a
13
12
  // UTF-8 string (for debugging purposes). Clients MUST treat as valid any byte sequences
14
13
  //
15
- // Spec v1.1.10 https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#responding-side
14
+ // https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#responding-side
16
15
  /**
17
16
  * Encodes a UTF-8 string to 256 bytes max
18
17
  */
19
- export async function* encodeErrorMessage(errorMessage, encoding) {
18
+ export function* encodeErrorMessage(errorMessage, encoding) {
20
19
  const encoder = new TextEncoder();
21
20
  const bytes = encoder.encode(errorMessage).slice(0, 256);
22
21
  switch (encoding) {
23
22
  case Encoding.SSZ_SNAPPY:
24
23
  yield* writeSszSnappyPayload(bytes);
24
+ break;
25
+ default:
26
+ throw Error("Unsupported encoding");
25
27
  }
26
28
  }
27
29
  /**
28
30
  * Encodes a UTF-8 error message string into a single buffer (max 256 bytes before encoding).
29
31
  * Unlike `encodeErrorMessage`, this collects all encoded chunks into one buffer.
30
32
  */
31
- export async function encodeErrorMessageToBuffer(errorMessage, encoding) {
33
+ export function encodeErrorMessageToBuffer(errorMessage, encoding) {
32
34
  const chunks = [];
33
- for await (const chunk of encodeErrorMessage(errorMessage, encoding)) {
35
+ for (const chunk of encodeErrorMessage(errorMessage, encoding)) {
34
36
  chunks.push(chunk);
35
37
  }
36
38
  return Buffer.concat(chunks);
@@ -38,23 +40,22 @@ export async function encodeErrorMessageToBuffer(errorMessage, encoding) {
38
40
  /**
39
41
  * Decodes error message from network bytes and removes non printable, non ascii characters.
40
42
  */
41
- export async function decodeErrorMessage(encodedErrorMessage) {
42
- const encoder = new TextDecoder();
43
+ export function decodeErrorMessage(encodedErrorMessage) {
44
+ const decoder = new TextDecoder();
43
45
  let sszDataLength;
44
46
  try {
45
47
  sszDataLength = varintDecode(encodedErrorMessage);
46
- const decompressor = new SnappyFramesUncompress();
47
48
  const varintBytes = varintEncodingLength(sszDataLength);
48
- const errorMessage = decompressor.uncompress(new Uint8ArrayList(encodedErrorMessage.subarray(varintBytes)));
49
- if (errorMessage == null || errorMessage.length !== sszDataLength) {
49
+ const errorMessage = decodeSnappyFrames(encodedErrorMessage.subarray(varintBytes));
50
+ if (errorMessage.length !== sszDataLength) {
50
51
  throw new Error("Malformed input: data length mismatch");
51
52
  }
52
53
  // remove non ascii characters from string
53
- return encoder.decode(errorMessage.subarray(0)).replace(/[^\x20-\x7F]/g, "");
54
+ return decoder.decode(errorMessage.subarray(0)).replace(/[^\x20-\x7F]/g, "");
54
55
  }
55
56
  catch (_e) {
56
57
  // remove non ascii characters from string
57
- return encoder.decode(encodedErrorMessage.slice(0, 256)).replace(/[^\x20-\x7F]/g, "");
58
+ return decoder.decode(encodedErrorMessage.slice(0, 256)).replace(/[^\x20-\x7F]/g, "");
58
59
  }
59
60
  }
60
61
  //# sourceMappingURL=errorMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorMessage.js","sourceRoot":"","sources":["../../src/utils/errorMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAExD,uBAAuB;AACvB,EAAE;AACF,IAAI;AACJ,mCAAmC;AACnC,IAAI;AACJ,EAAE;AACF,uFAAuF;AACvF,wFAAwF;AACxF,EAAE;AACF,sHAAsH;AAEtH;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,kBAAkB,CAAC,YAAoB,EAAE,QAAkB;IAChF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,UAAU;YACtB,KAAK,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,YAAoB,EAAE,QAAkB;IACvF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,mBAA+B;IACtE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5G,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,0CAA0C;QAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,0CAA0C;QAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"errorMessage.js","sourceRoot":"","sources":["../../src/utils/errorMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAC,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,uBAAuB;AACvB,EAAE;AACF,IAAI;AACJ,mCAAmC;AACnC,IAAI;AACJ,EAAE;AACF,uFAAuF;AACvF,wFAAwF;AACxF,EAAE;AACF,wGAAwG;AAExG;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,kBAAkB,CAAC,YAAoB,EAAE,QAAkB,EAAqB;IAC/F,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,UAAU;YACtB,KAAK,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM;QACR;YACE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;AAAA,CACF;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,YAAoB,EAAE,QAAkB,EAAU;IAC3F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAAA,CAC9B;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,mBAA+B,EAAU;IAC1E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACnF,IAAI,YAAY,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,0CAA0C;QAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,0CAA0C;QAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;AAAA,CACF"}
@@ -1,10 +1,8 @@
1
- export * from "./abortableSource.js";
2
- export * from "./bufferedSource.js";
3
1
  export * from "./collectExactOne.js";
4
2
  export * from "./collectMaxResponse.js";
5
3
  export * from "./errorMessage.js";
6
- export * from "./onChunk.js";
7
4
  export * from "./peerId.js";
8
5
  export * from "./protocolId.js";
9
6
  export * from "./snappyIndex.js";
7
+ export * from "./stream.js";
10
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -1,10 +1,8 @@
1
- export * from "./abortableSource.js";
2
- export * from "./bufferedSource.js";
3
1
  export * from "./collectExactOne.js";
4
2
  export * from "./collectMaxResponse.js";
5
3
  export * from "./errorMessage.js";
6
- export * from "./onChunk.js";
7
4
  export * from "./peerId.js";
8
5
  export * from "./protocolId.js";
9
6
  export * from "./snappyIndex.js";
7
+ export * from "./stream.js";
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"peerId.js","sourceRoot":"","sources":["../../src/utils/peerId.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"peerId.js","sourceRoot":"","sources":["../../src/utils/peerId.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAU;IACxD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AAAA,CACtE"}
@@ -1,10 +1,10 @@
1
1
  import { Encoding, ProtocolAttributes } from "../types.js";
2
2
  /**
3
- * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
3
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#protocol-identification
4
4
  */
5
5
  export declare function formatProtocolID(protocolPrefix: string, method: string, version: number, encoding: Encoding): string;
6
6
  /**
7
- * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
7
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#protocol-identification
8
8
  */
9
9
  export declare function parseProtocolID(protocolId: string): ProtocolAttributes;
10
10
  //# sourceMappingURL=protocolId.d.ts.map
@@ -1,12 +1,12 @@
1
1
  import { Encoding } from "../types.js";
2
2
  /**
3
- * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
3
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#protocol-identification
4
4
  */
5
5
  export function formatProtocolID(protocolPrefix, method, version, encoding) {
6
6
  return `${protocolPrefix}/${method}/${version}/${encoding}`;
7
7
  }
8
8
  /**
9
- * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
9
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#protocol-identification
10
10
  */
11
11
  export function parseProtocolID(protocolId) {
12
12
  const result = protocolId.split("/");
@@ -1 +1 @@
1
- {"version":3,"file":"protocolId.js","sourceRoot":"","sources":["../../src/utils/protocolId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAqB,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,MAAc,EAAE,OAAe,EAAE,QAAkB;IAC1G,OAAO,GAAG,cAAc,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAa,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;IAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErC,mGAAmG;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;IAEvC,wFAAwF;IACxF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpE,OAAO;QACL,cAAc;QACd,MAAM;QACN,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"protocolId.js","sourceRoot":"","sources":["../../src/utils/protocolId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAqB,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,MAAc,EAAE,OAAe,EAAE,QAAkB,EAAU;IACpH,OAAO,GAAG,cAAc,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAAA,CAC7D;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAsB;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAa,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;IAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErC,mGAAmG;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;IAEvC,wFAAwF;IACxF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpE,OAAO;QACL,cAAc;QACd,MAAM;QACN,OAAO;QACP,QAAQ;KACT,CAAC;AAAA,CACH"}
@@ -1,5 +1,6 @@
1
1
  import crc32c from "@chainsafe/fast-crc32c";
2
- export var ChunkType;
2
+ export { ChunkType };
3
+ var ChunkType;
3
4
  (function (ChunkType) {
4
5
  ChunkType[ChunkType["IDENTIFIER"] = 255] = "IDENTIFIER";
5
6
  ChunkType[ChunkType["COMPRESSED"] = 0] = "COMPRESSED";
@@ -1 +1 @@
1
- {"version":3,"file":"snappyCommon.js","sourceRoot":"","sources":["../../src/utils/snappyCommon.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAE5C,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,uDAAiB,CAAA;IACjB,qDAAiB,CAAA;IACjB,yDAAmB,CAAA;IACnB,iDAAc,CAAA;IACd,qDAAgB,CAAA;AAClB,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1G;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,MAAM,UAAU,GAAG,CAAC,KAAiB;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1D,6FAA6F;IAC7F,2CAA2C;IAC3C,mGAAmG;IACnG,qHAAqH;IACrH,uFAAuF;IACvF,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"snappyCommon.js","sourceRoot":"","sources":["../../src/utils/snappyCommon.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,wBAAwB,CAAC;SAEhC,SAAS;AAArB,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,uDAAiB,CAAA;IACjB,qDAAiB,CAAA;IACjB,yDAAmB,CAAA;IACnB,iDAAc,CAAA;IACd,qDAAgB,CAAA;AAAC,CACnB,EANY,SAAS,KAAT,SAAS,QAMpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1G;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU;IAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1D,6FAA6F;IAC7F,2CAA2C;IAC3C,mGAAmG;IACnG,qHAAqH;IACrH,uFAAuF;IACvF,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO,MAAM,CAAC;AAAA,CACf"}
@@ -1,2 +1,2 @@
1
- export declare function encodeSnappy(bytes: Buffer): AsyncGenerator<Buffer>;
1
+ export declare function encodeSnappy(bytes: Buffer): Generator<Buffer>;
2
2
  //# sourceMappingURL=snappyCompress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snappyCompress.d.ts","sourceRoot":"","sources":["../../src/utils/snappyCompress.ts"],"names":[],"mappings":"AAKA,wBAAuB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAmBzE"}
1
+ {"version":3,"file":"snappyCompress.d.ts","sourceRoot":"","sources":["../../src/utils/snappyCompress.ts"],"names":[],"mappings":"AAKA,wBAAiB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAmB9D"}
@@ -2,7 +2,7 @@
2
2
  import { compressSync } from "snappy";
3
3
  import { ChunkType, IDENTIFIER_FRAME, UNCOMPRESSED_CHUNK_SIZE, crc } from "./snappyCommon.js";
4
4
  // The logic in this file is largely copied (in simplified form) from https://github.com/ChainSafe/node-snappy-stream/
5
- export async function* encodeSnappy(bytes) {
5
+ export function* encodeSnappy(bytes) {
6
6
  yield IDENTIFIER_FRAME;
7
7
  for (let i = 0; i < bytes.length; i += UNCOMPRESSED_CHUNK_SIZE) {
8
8
  const chunk = bytes.subarray(i, i + UNCOMPRESSED_CHUNK_SIZE);
@@ -1 +1 @@
1
- {"version":3,"file":"snappyCompress.js","sourceRoot":"","sources":["../../src/utils/snappyCompress.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,EAAC,MAAM,mBAAmB,CAAC;AAE5F,sHAAsH;AACtH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,KAAa;IAC/C,MAAM,gBAAgB,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAClH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,MAAM,MAAM,CAAC,MAAM,CAAC;gBAClB,EAAE;gBACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClE,GAAG,CAAC,KAAK,CAAC;gBACV,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"snappyCompress.js","sourceRoot":"","sources":["../../src/utils/snappyCompress.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,EAAC,MAAM,mBAAmB,CAAC;AAE5F,sHAAsH;AACtH,MAAM,SAAS,CAAC,CAAC,YAAY,CAAC,KAAa,EAAqB;IAC9D,MAAM,gBAAgB,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAClH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,MAAM,MAAM,CAAC,MAAM,CAAC;gBAClB,EAAE;gBACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClE,GAAG,CAAC,KAAK,CAAC;gBACV,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AAAA,CACF"}
@@ -1,4 +1,4 @@
1
1
  export * from "./snappyCommon.js";
2
2
  export { encodeSnappy } from "./snappyCompress.js";
3
- export { SnappyFramesUncompress } from "./snappyUncompress.js";
3
+ export * from "./snappyUncompress.js";
4
4
  //# sourceMappingURL=snappyIndex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snappyIndex.d.ts","sourceRoot":"","sources":["../../src/utils/snappyIndex.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"snappyIndex.d.ts","sourceRoot":"","sources":["../../src/utils/snappyIndex.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,cAAc,uBAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export * from "./snappyCommon.js";
2
2
  export { encodeSnappy } from "./snappyCompress.js";
3
- export { SnappyFramesUncompress } from "./snappyUncompress.js";
3
+ export * from "./snappyUncompress.js";
4
4
  //# sourceMappingURL=snappyIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snappyIndex.js","sourceRoot":"","sources":["../../src/utils/snappyIndex.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"snappyIndex.js","sourceRoot":"","sources":["../../src/utils/snappyIndex.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,cAAc,uBAAuB,CAAC"}
@@ -1,13 +1,9 @@
1
1
  import { Uint8ArrayList } from "uint8arraylist";
2
- export declare class SnappyFramesUncompress {
3
- private buffer;
4
- private state;
5
- /**
6
- * Accepts chunk of data containing some part of snappy frames stream
7
- * @param chunk
8
- * @return Buffer if there is one or more whole frames, null if it's partial
9
- */
10
- uncompress(chunk: Uint8ArrayList): Uint8ArrayList | null;
11
- reset(): void;
12
- }
2
+ import { ChunkType } from "./snappyCommon.js";
3
+ export declare function parseSnappyFrameHeader(header: Uint8Array): {
4
+ type: ChunkType;
5
+ frameSize: number;
6
+ };
7
+ export declare function decodeSnappyFrameData(type: ChunkType, frame: Uint8Array): Uint8Array | null;
8
+ export declare function decodeSnappyFrames(data: Uint8Array): Uint8ArrayList;
13
9
  //# sourceMappingURL=snappyUncompress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snappyUncompress.d.ts","sourceRoot":"","sources":["../../src/utils/snappyUncompress.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAG9C,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAwB;IAEtC,OAAO,CAAC,KAAK,CAEX;IAEF;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI;IAgExD,KAAK,IAAI,IAAI;CAMd"}
1
+ {"version":3,"file":"snappyUncompress.d.ts","sourceRoot":"","sources":["../../src/utils/snappyUncompress.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAA2C,MAAM,mBAAmB,CAAC;AAEtF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAQ/F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAwC3F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAoCnE"}
@@ -1,81 +1,81 @@
1
1
  import { uncompress } from "snappyjs";
2
2
  import { Uint8ArrayList } from "uint8arraylist";
3
3
  import { ChunkType, IDENTIFIER, UNCOMPRESSED_CHUNK_SIZE, crc } from "./snappyCommon.js";
4
- export class SnappyFramesUncompress {
5
- buffer = new Uint8ArrayList();
6
- state = {
7
- foundIdentifier: false,
8
- };
9
- /**
10
- * Accepts chunk of data containing some part of snappy frames stream
11
- * @param chunk
12
- * @return Buffer if there is one or more whole frames, null if it's partial
13
- */
14
- uncompress(chunk) {
15
- this.buffer.append(chunk);
16
- const result = new Uint8ArrayList();
17
- while (this.buffer.length > 0) {
18
- if (this.buffer.length < 4)
19
- break;
20
- const type = getChunkType(this.buffer.get(0));
21
- if (!this.state.foundIdentifier && type !== ChunkType.IDENTIFIER) {
22
- throw "malformed input: must begin with an identifier";
4
+ export function parseSnappyFrameHeader(header) {
5
+ if (header.length !== 4) {
6
+ throw new Error("malformed input: incomplete frame header");
7
+ }
8
+ const type = getChunkType(header[0]);
9
+ const frameSize = header[1] + (header[2] << 8) + (header[3] << 16);
10
+ return { type, frameSize };
11
+ }
12
+ export function decodeSnappyFrameData(type, frame) {
13
+ switch (type) {
14
+ case ChunkType.IDENTIFIER: {
15
+ if (!Buffer.prototype.equals.call(frame, IDENTIFIER)) {
16
+ throw new Error("malformed input: bad identifier");
23
17
  }
24
- const frameSize = getFrameSize(this.buffer, 1);
25
- if (this.buffer.length - 4 < frameSize) {
26
- break;
18
+ return null;
19
+ }
20
+ case ChunkType.PADDING:
21
+ case ChunkType.SKIPPABLE:
22
+ return null;
23
+ case ChunkType.COMPRESSED: {
24
+ if (frame.length < 4) {
25
+ throw new Error("malformed input: too short");
27
26
  }
28
- const frame = this.buffer.subarray(4, 4 + frameSize);
29
- this.buffer.consume(4 + frameSize);
30
- switch (type) {
31
- case ChunkType.IDENTIFIER: {
32
- if (!Buffer.prototype.equals.call(frame, IDENTIFIER)) {
33
- throw "malformed input: bad identifier";
34
- }
35
- this.state.foundIdentifier = true;
36
- continue;
37
- }
38
- case ChunkType.PADDING:
39
- case ChunkType.SKIPPABLE:
40
- continue;
41
- case ChunkType.COMPRESSED: {
42
- const checksum = frame.subarray(0, 4);
43
- const data = frame.subarray(4);
44
- const uncompressed = uncompress(data, UNCOMPRESSED_CHUNK_SIZE);
45
- if (crc(uncompressed).compare(checksum) !== 0) {
46
- throw "malformed input: bad checksum";
47
- }
48
- result.append(uncompressed);
49
- break;
50
- }
51
- case ChunkType.UNCOMPRESSED: {
52
- const checksum = frame.subarray(0, 4);
53
- const uncompressed = frame.subarray(4);
54
- if (uncompressed.length > UNCOMPRESSED_CHUNK_SIZE) {
55
- throw "malformed input: too large";
56
- }
57
- if (crc(uncompressed).compare(checksum) !== 0) {
58
- throw "malformed input: bad checksum";
59
- }
60
- result.append(uncompressed);
61
- break;
62
- }
27
+ const checksum = frame.subarray(0, 4);
28
+ const data = frame.subarray(4);
29
+ const uncompressed = uncompress(data, UNCOMPRESSED_CHUNK_SIZE);
30
+ if (crc(uncompressed).compare(checksum) !== 0) {
31
+ throw new Error("malformed input: bad checksum");
63
32
  }
33
+ return uncompressed;
64
34
  }
65
- if (result.length === 0) {
66
- return null;
35
+ case ChunkType.UNCOMPRESSED: {
36
+ if (frame.length < 4) {
37
+ throw new Error("malformed input: too short");
38
+ }
39
+ const checksum = frame.subarray(0, 4);
40
+ const uncompressed = frame.subarray(4);
41
+ if (uncompressed.length > UNCOMPRESSED_CHUNK_SIZE) {
42
+ throw new Error("malformed input: too large");
43
+ }
44
+ if (crc(uncompressed).compare(checksum) !== 0) {
45
+ throw new Error("malformed input: bad checksum");
46
+ }
47
+ return uncompressed;
67
48
  }
68
- return result;
69
- }
70
- reset() {
71
- this.buffer = new Uint8ArrayList();
72
- this.state = {
73
- foundIdentifier: false,
74
- };
75
49
  }
76
50
  }
77
- function getFrameSize(buffer, offset) {
78
- return buffer.get(offset) + (buffer.get(offset + 1) << 8) + (buffer.get(offset + 2) << 16);
51
+ export function decodeSnappyFrames(data) {
52
+ const out = new Uint8ArrayList();
53
+ let foundIdentifier = false;
54
+ let offset = 0;
55
+ while (offset < data.length) {
56
+ const remaining = data.length - offset;
57
+ if (remaining < 4) {
58
+ throw new Error("malformed input: incomplete frame header");
59
+ }
60
+ const { type, frameSize } = parseSnappyFrameHeader(data.subarray(offset, offset + 4));
61
+ if (!foundIdentifier && type !== ChunkType.IDENTIFIER) {
62
+ throw new Error("malformed input: must begin with an identifier");
63
+ }
64
+ offset += 4;
65
+ if (data.length - offset < frameSize) {
66
+ throw new Error("malformed input: incomplete frame");
67
+ }
68
+ const frame = data.subarray(offset, offset + frameSize);
69
+ offset += frameSize;
70
+ if (type === ChunkType.IDENTIFIER) {
71
+ foundIdentifier = true;
72
+ }
73
+ const uncompressed = decodeSnappyFrameData(type, frame);
74
+ if (uncompressed !== null) {
75
+ out.append(uncompressed);
76
+ }
77
+ }
78
+ return out;
79
79
  }
80
80
  function getChunkType(value) {
81
81
  switch (value) {
@@ -1 +1 @@
1
- {"version":3,"file":"snappyUncompress.js","sourceRoot":"","sources":["../../src/utils/snappyUncompress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snappyUncompress.js","sourceRoot":"","sources":["../../src/utils/snappyUncompress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Stream } from "@libp2p/interface";
2
+ import { ByteStream } from "@libp2p/utils";
3
+ import { Uint8ArrayList } from "uint8arraylist";
4
+ export declare function sendChunks(stream: Stream, source: Iterable<Uint8Array | Uint8ArrayList> | AsyncIterable<Uint8Array | Uint8ArrayList>, signal?: AbortSignal): Promise<void>;
5
+ export declare function drainByteStream(bytes: ByteStream<Stream>): Uint8Array | undefined;
6
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAG9C,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,UAAU,GAAG,cAAc,CAAC,EAC1F,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,SAAS,CAYjF"}
@@ -0,0 +1,21 @@
1
+ import { ErrorAborted } from "@lodestar/utils";
2
+ export async function sendChunks(stream, source, signal) {
3
+ for await (const chunk of source) {
4
+ if (signal?.aborted) {
5
+ throw new ErrorAborted("sendChunks");
6
+ }
7
+ if (!stream.send(chunk)) {
8
+ await stream.onDrain({ signal });
9
+ }
10
+ }
11
+ }
12
+ export function drainByteStream(bytes) {
13
+ const readBuffer = bytes.readBuffer;
14
+ if (readBuffer && readBuffer.byteLength > 0) {
15
+ const drained = readBuffer.subarray();
16
+ readBuffer.consume(readBuffer.byteLength);
17
+ return drained;
18
+ }
19
+ return undefined;
20
+ }
21
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,MAA0F,EAC1F,MAAoB,EACL;IACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AAAA,CACF;AAED,MAAM,UAAU,eAAe,CAAC,KAAyB,EAA0B;IACjF,MAAM,UAAU,GACd,KAGD,CAAC,UAAU,CAAC;IACb,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AAAA,CAClB"}