@lodestar/reqresp 1.41.0-dev.95cf2edc4c → 1.41.0-dev.96f78af84b

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 (133) hide show
  1. package/README.md +1 -1
  2. package/lib/ReqResp.d.ts +3 -3
  3. package/lib/ReqResp.js +4 -4
  4. package/lib/ReqResp.js.map +1 -1
  5. package/lib/encoders/requestDecode.d.ts +2 -3
  6. package/lib/encoders/requestDecode.d.ts.map +1 -1
  7. package/lib/encoders/requestDecode.js +28 -11
  8. package/lib/encoders/requestDecode.js.map +1 -1
  9. package/lib/encoders/requestEncode.d.ts +1 -1
  10. package/lib/encoders/requestEncode.d.ts.map +1 -1
  11. package/lib/encoders/requestEncode.js +1 -1
  12. package/lib/encoders/requestEncode.js.map +1 -1
  13. package/lib/encoders/responseDecode.d.ts +10 -10
  14. package/lib/encoders/responseDecode.d.ts.map +1 -1
  15. package/lib/encoders/responseDecode.js +63 -60
  16. package/lib/encoders/responseDecode.js.map +1 -1
  17. package/lib/encoders/responseEncode.d.ts +2 -4
  18. package/lib/encoders/responseEncode.d.ts.map +1 -1
  19. package/lib/encoders/responseEncode.js +13 -22
  20. package/lib/encoders/responseEncode.js.map +1 -1
  21. package/lib/encodingStrategies/index.d.ts +4 -3
  22. package/lib/encodingStrategies/index.d.ts.map +1 -1
  23. package/lib/encodingStrategies/index.js +4 -4
  24. package/lib/encodingStrategies/index.js.map +1 -1
  25. package/lib/encodingStrategies/sszSnappy/decode.d.ts +5 -4
  26. package/lib/encodingStrategies/sszSnappy/decode.d.ts.map +1 -1
  27. package/lib/encodingStrategies/sszSnappy/decode.js +83 -52
  28. package/lib/encodingStrategies/sszSnappy/decode.js.map +1 -1
  29. package/lib/encodingStrategies/sszSnappy/encode.d.ts +2 -2
  30. package/lib/encodingStrategies/sszSnappy/encode.d.ts.map +1 -1
  31. package/lib/encodingStrategies/sszSnappy/encode.js +1 -1
  32. package/lib/encodingStrategies/sszSnappy/encode.js.map +1 -1
  33. package/lib/encodingStrategies/sszSnappy/errors.d.ts +0 -8
  34. package/lib/encodingStrategies/sszSnappy/errors.d.ts.map +1 -1
  35. package/lib/encodingStrategies/sszSnappy/errors.js +0 -2
  36. package/lib/encodingStrategies/sszSnappy/errors.js.map +1 -1
  37. package/lib/encodingStrategies/sszSnappy/index.d.ts +0 -1
  38. package/lib/encodingStrategies/sszSnappy/index.d.ts.map +1 -1
  39. package/lib/encodingStrategies/sszSnappy/index.js +0 -1
  40. package/lib/encodingStrategies/sszSnappy/index.js.map +1 -1
  41. package/lib/metrics.d.ts +1 -7
  42. package/lib/metrics.d.ts.map +1 -1
  43. package/lib/metrics.js +1 -17
  44. package/lib/metrics.js.map +1 -1
  45. package/lib/request/errors.d.ts +1 -7
  46. package/lib/request/errors.d.ts.map +1 -1
  47. package/lib/request/errors.js +1 -5
  48. package/lib/request/errors.js.map +1 -1
  49. package/lib/request/index.d.ts +0 -3
  50. package/lib/request/index.d.ts.map +1 -1
  51. package/lib/request/index.js +58 -70
  52. package/lib/request/index.js.map +1 -1
  53. package/lib/response/index.d.ts +1 -1
  54. package/lib/response/index.d.ts.map +1 -1
  55. package/lib/response/index.js +46 -50
  56. package/lib/response/index.js.map +1 -1
  57. package/lib/types.d.ts +1 -2
  58. package/lib/types.d.ts.map +1 -1
  59. package/lib/types.js +1 -2
  60. package/lib/types.js.map +1 -1
  61. package/lib/utils/collectMaxResponse.d.ts.map +1 -1
  62. package/lib/utils/collectMaxResponse.js +1 -2
  63. package/lib/utils/collectMaxResponse.js.map +1 -1
  64. package/lib/utils/errorMessage.d.ts +3 -3
  65. package/lib/utils/errorMessage.d.ts.map +1 -1
  66. package/lib/utils/errorMessage.js +14 -13
  67. package/lib/utils/errorMessage.js.map +1 -1
  68. package/lib/utils/index.d.ts +1 -3
  69. package/lib/utils/index.d.ts.map +1 -1
  70. package/lib/utils/index.js +1 -3
  71. package/lib/utils/index.js.map +1 -1
  72. package/lib/utils/protocolId.d.ts +2 -2
  73. package/lib/utils/protocolId.js +2 -2
  74. package/lib/utils/snappyCompress.d.ts +1 -1
  75. package/lib/utils/snappyCompress.d.ts.map +1 -1
  76. package/lib/utils/snappyCompress.js +1 -1
  77. package/lib/utils/snappyCompress.js.map +1 -1
  78. package/lib/utils/snappyIndex.d.ts +1 -1
  79. package/lib/utils/snappyIndex.d.ts.map +1 -1
  80. package/lib/utils/snappyIndex.js +1 -1
  81. package/lib/utils/snappyIndex.js.map +1 -1
  82. package/lib/utils/snappyUncompress.d.ts +7 -11
  83. package/lib/utils/snappyUncompress.d.ts.map +1 -1
  84. package/lib/utils/snappyUncompress.js +68 -68
  85. package/lib/utils/snappyUncompress.js.map +1 -1
  86. package/lib/utils/stream.d.ts +6 -0
  87. package/lib/utils/stream.d.ts.map +1 -0
  88. package/lib/utils/stream.js +21 -0
  89. package/lib/utils/stream.js.map +1 -0
  90. package/package.json +14 -16
  91. package/src/ReqResp.ts +4 -4
  92. package/src/encoders/requestDecode.ts +32 -16
  93. package/src/encoders/requestEncode.ts +1 -1
  94. package/src/encoders/responseDecode.ts +68 -72
  95. package/src/encoders/responseEncode.ts +17 -29
  96. package/src/encodingStrategies/index.ts +8 -6
  97. package/src/encodingStrategies/sszSnappy/decode.ts +111 -53
  98. package/src/encodingStrategies/sszSnappy/encode.ts +2 -2
  99. package/src/encodingStrategies/sszSnappy/errors.ts +0 -4
  100. package/src/encodingStrategies/sszSnappy/index.ts +0 -1
  101. package/src/metrics.ts +1 -17
  102. package/src/request/errors.ts +1 -6
  103. package/src/request/index.ts +74 -86
  104. package/src/response/index.ts +55 -61
  105. package/src/types.ts +1 -3
  106. package/src/utils/collectMaxResponse.ts +1 -2
  107. package/src/utils/errorMessage.ts +14 -13
  108. package/src/utils/index.ts +1 -3
  109. package/src/utils/protocolId.ts +2 -2
  110. package/src/utils/snappyCompress.ts +1 -1
  111. package/src/utils/snappyIndex.ts +1 -1
  112. package/src/utils/snappyUncompress.ts +73 -75
  113. package/src/utils/stream.ts +34 -0
  114. package/lib/utils/abortableSource.d.ts +0 -12
  115. package/lib/utils/abortableSource.d.ts.map +0 -1
  116. package/lib/utils/abortableSource.js +0 -69
  117. package/lib/utils/abortableSource.js.map +0 -1
  118. package/lib/utils/bufferedSource.d.ts +0 -16
  119. package/lib/utils/bufferedSource.d.ts.map +0 -1
  120. package/lib/utils/bufferedSource.js +0 -40
  121. package/lib/utils/bufferedSource.js.map +0 -1
  122. package/lib/utils/onChunk.d.ts +0 -6
  123. package/lib/utils/onChunk.d.ts.map +0 -1
  124. package/lib/utils/onChunk.js +0 -13
  125. package/lib/utils/onChunk.js.map +0 -1
  126. package/lib/utils/snappy.d.ts +0 -3
  127. package/lib/utils/snappy.d.ts.map +0 -1
  128. package/lib/utils/snappy.js +0 -3
  129. package/lib/utils/snappy.js.map +0 -1
  130. package/src/utils/abortableSource.ts +0 -80
  131. package/src/utils/bufferedSource.ts +0 -46
  132. package/src/utils/onChunk.ts +0 -12
  133. package/src/utils/snappy.ts +0 -2
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project
9
9
 
10
- Typescript implementation of the [Ethereum Consensus Req/Resp protocol](https://github.com/ethereum/consensus-specs/blob/v1.4.0/specs/phase0/p2p-interface.md#reqresp)
10
+ Typescript implementation of the [Ethereum Consensus Req/Resp protocol](https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#reqresp)
11
11
 
12
12
  ## Usage
13
13
 
package/lib/ReqResp.d.ts CHANGED
@@ -19,8 +19,8 @@ export interface ReqRespOpts extends SendRequestOpts, ReqRespRateLimiterOpts {
19
19
  /**
20
20
  * Implementation of Ethereum Consensus p2p Req/Resp domain.
21
21
  * For the spec that this code is based on, see:
22
- * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#the-reqresp-domain
23
- * https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/p2p-interface.md#the-reqresp-domain
22
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#the-reqresp-domain
23
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/altair/light-client/p2p-interface.md#the-reqresp-domain
24
24
  */
25
25
  export declare class ReqResp {
26
26
  private readonly opts;
@@ -74,7 +74,7 @@ export declare class ReqResp {
74
74
  * ```
75
75
  * /ProtocolPrefix/MessageName/SchemaVersion/Encoding
76
76
  * ```
77
- * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
77
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#protocol-identification
78
78
  */
79
79
  protected formatProtocolID(protocol: Pick<MixedProtocol, "method" | "version" | "encoding">): string;
80
80
  }
package/lib/ReqResp.js CHANGED
@@ -9,8 +9,8 @@ export const DEFAULT_PROTOCOL_PREFIX = "/eth2/beacon_chain/req";
9
9
  /**
10
10
  * Implementation of Ethereum Consensus p2p Req/Resp domain.
11
11
  * For the spec that this code is based on, see:
12
- * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#the-reqresp-domain
13
- * https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/p2p-interface.md#the-reqresp-domain
12
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#the-reqresp-domain
13
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/altair/light-client/p2p-interface.md#the-reqresp-domain
14
14
  */
15
15
  export class ReqResp {
16
16
  opts;
@@ -151,7 +151,7 @@ export class ReqResp {
151
151
  }
152
152
  }
153
153
  getRequestHandler(protocol, protocolID) {
154
- return async ({ connection, stream }) => {
154
+ return async (stream, connection) => {
155
155
  if (this.dialOnlyProtocols.get(protocolID)) {
156
156
  throw new Error(`Received request on dial only protocol '${protocolID}'`);
157
157
  }
@@ -203,7 +203,7 @@ export class ReqResp {
203
203
  * ```
204
204
  * /ProtocolPrefix/MessageName/SchemaVersion/Encoding
205
205
  * ```
206
- * https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
206
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/specs/phase0/p2p-interface.md#protocol-identification
207
207
  */
208
208
  formatProtocolID(protocol) {
209
209
  return formatProtocolID(this.protocolPrefix, protocol.method, protocol.version, protocol.encoding);
@@ -1 +1 @@
1
- {"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAI5C,OAAO,EAAU,UAAU,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,eAAe,EAAC,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAmB,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAUlD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAIvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAchE;;;;;GAKG;AACH,MAAM,OAAO,OAAO;IAsBC;IArBnB,4CAA4C;IACzB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,OAAO,CAAiB;IAE3C,4EAA4E;IAC3D,WAAW,CAAqB;IACjD,6CAA6C;IAC5B,eAAe,CAAkB;IAE1C,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,2DAA2D;IACnD,QAAQ,GAAG,CAAC,CAAC;IACJ,cAAc,CAAS;IAExC,2DAA2D;IAC1C,mBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC3D,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpE,YACE,OAA+B,EACd,OAAoB,EAAE;QAAtB,SAAI,GAAJ,IAAI,CAAkB;QAEvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,uBAAuB,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,UAAU,CAAC,GAAG,EAAE;YACrD,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,QAA0B;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAC,GAAG,QAAQ,CAAC;QAEjE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE9C,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IACrG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAsB;QAC7C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB;QAC1B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,8FAA8F;QAC9F,oDAAoD;QACpD,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,CAAC,WAAW,CAChB,MAAc,EACd,MAAc,EACd,QAAkB,EAClB,QAAkB,EAClB,IAAgB;QAEhB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC,UAAU,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QAE9E,MAAM,SAAS,GAAyC,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAEpC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC,+BAA+B,UAAU,+BAA+B,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;gBACnE,gIAAgI;gBAChI,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,gBAAgB,CAAC,yBAAyB,EAAC,CAAC,CAAC;gBAC7F,MAAM,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,yBAAyB,EAAC,CAAC,CAAC;gBAC3E,4DAA4D;YAC9D,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,WAAW,CAChB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAC,EAC7E,MAAM,EACN,SAAS,EACT,WAAW,EACX,IAAI,EACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EACtB,IAAI,CAAC,IAAI,EACT,SAAS,CACV,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAE3C,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC;gBAC9B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,YAAY,EAAE,CAAC;oBACjG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;gBACjC,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;gBAE9D,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,EAAE,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,QAAuB,EAAE,UAAkB;QACnE,OAAO,KAAK,EAAE,MAAc,EAAE,UAAsB,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,UAAU,GAAG,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,CAAC;YAE1B,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC,UAAU,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAE5E,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC;oBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM;oBACN,MAAM;oBACN,QAAQ,EAAE,QAAoB;oBAC9B,UAAU;oBACV,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;oBAC9B,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;oBAC1B,UAAU;oBACV,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;iBAC7C,CAAC,CAAC;gBACH,qCAAqC;YACvC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;gBAE3C,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;oBAChC,IAAI,CAAC,sBAAsB,CAAC,QAA8B,EAAE,GAAG,CAAC,CAAC;gBACnE,CAAC;gBAED,mCAAmC;gBACnC,gDAAgD;YAClD,CAAC;oBAAS,CAAC;gBACT,KAAK,EAAE,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAES,iBAAiB,CAAC,OAAe,EAAE,SAA6B;QACxE,WAAW;IACb,CAAC;IAES,sBAAsB,CAAC,SAA6B,EAAE,MAAoB;QAClF,WAAW;IACb,CAAC;IAES,sBAAsB,CAAC,OAAe,EAAE,OAAe,EAAE,MAAoB;QACrF,WAAW;IACb,CAAC;IAED;;;;;OAKG;IACO,gBAAgB,CAAC,QAAgE;QACzF,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrG,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
- import type { Sink } from "it-stream-types";
2
- import { Uint8ArrayList } from "uint8arraylist";
1
+ import type { Stream } from "@libp2p/interface";
3
2
  import { MixedProtocol } from "../types.js";
4
3
  /**
5
4
  * Consumes a stream source to read a `<request>`
@@ -7,5 +6,5 @@ import { MixedProtocol } from "../types.js";
7
6
  * request ::= <encoding-dependent-header> | <encoded-payload>
8
7
  * ```
9
8
  */
10
- export declare function requestDecode(protocol: MixedProtocol): Sink<AsyncIterable<Uint8Array | Uint8ArrayList>, Promise<Uint8Array>>;
9
+ export declare function requestDecode(protocol: MixedProtocol, stream: Stream, signal?: AbortSignal): Promise<Uint8Array>;
11
10
  //# sourceMappingURL=requestDecode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestDecode.d.ts","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAK1C;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,aAAa,GACtB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAYvE"}
1
+ {"version":3,"file":"requestDecode.d.ts","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAK1C;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA0BrB"}
@@ -1,5 +1,6 @@
1
+ import { byteStream } from "@libp2p/utils";
1
2
  import { readEncodedPayload } from "../encodingStrategies/index.js";
2
- import { BufferedSource } from "../utils/index.js";
3
+ import { drainByteStream } from "../utils/stream.js";
3
4
  const EMPTY_DATA = new Uint8Array();
4
5
  /**
5
6
  * Consumes a stream source to read a `<request>`
@@ -7,16 +8,32 @@ const EMPTY_DATA = new Uint8Array();
7
8
  * request ::= <encoding-dependent-header> | <encoded-payload>
8
9
  * ```
9
10
  */
10
- export function requestDecode(protocol) {
11
- return async function requestDecodeSink(source) {
12
- const type = protocol.requestSizes;
13
- if (type === null) {
14
- // method has no body
15
- return EMPTY_DATA;
11
+ export async function requestDecode(protocol, stream, signal) {
12
+ const type = protocol.requestSizes;
13
+ if (type === null) {
14
+ // method has no body
15
+ return EMPTY_DATA;
16
+ }
17
+ // Request has a single payload, so return immediately
18
+ const bytes = byteStream(stream);
19
+ let requestReadDone = false;
20
+ try {
21
+ const requestBody = await readEncodedPayload(bytes, protocol.encoding, type, signal);
22
+ requestReadDone = true;
23
+ return requestBody;
24
+ }
25
+ finally {
26
+ try {
27
+ if (!requestReadDone) {
28
+ // Do not push partial bytes back into the stream on decode failure/abort.
29
+ // This stream is consumed by req/resp only once.
30
+ drainByteStream(bytes);
31
+ }
32
+ bytes.unwrap();
16
33
  }
17
- // Request has a single payload, so return immediately
18
- const bufferedSource = new BufferedSource(source);
19
- return readEncodedPayload(bufferedSource, protocol.encoding, type);
20
- };
34
+ catch {
35
+ // Ignore unwrap errors - stream may already be closed
36
+ }
37
+ }
21
38
  }
22
39
  //# sourceMappingURL=requestDecode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAuB;IAEvB,OAAO,KAAK,UAAU,iBAAiB,CAAC,MAAM;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,qBAAqB;YACrB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAwC,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAuB,EACvB,MAAc,EACd,MAAoB;IAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IACnC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,qBAAqB;QACrB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,sDAAsD;IACtD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrF,eAAe,GAAG,IAAI,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,0EAA0E;gBAC1E,iDAAiD;gBACjD,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -7,5 +7,5 @@ import { MixedProtocol } from "../types.js";
7
7
  * Requests may contain no payload (e.g. /eth2/beacon_chain/req/metadata/1/)
8
8
  * if so, it would yield no byte chunks
9
9
  */
10
- export declare function requestEncode(protocol: MixedProtocol, requestBody: Uint8Array): AsyncGenerator<Buffer>;
10
+ export declare function requestEncode(protocol: MixedProtocol, requestBody: Uint8Array): Generator<Buffer>;
11
11
  //# sourceMappingURL=requestEncode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestEncode.d.ts","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C;;;;;;;GAOG;AACH,wBAAuB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAM7G"}
1
+ {"version":3,"file":"requestEncode.d.ts","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C;;;;;;;GAOG;AACH,wBAAiB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAMlG"}
@@ -7,7 +7,7 @@ import { writeEncodedPayload } from "../encodingStrategies/index.js";
7
7
  * Requests may contain no payload (e.g. /eth2/beacon_chain/req/metadata/1/)
8
8
  * if so, it would yield no byte chunks
9
9
  */
10
- export async function* requestEncode(protocol, requestBody) {
10
+ export function* requestEncode(protocol, requestBody) {
11
11
  const type = protocol.requestSizes;
12
12
  if (type && requestBody !== null) {
13
13
  yield* writeEncodedPayload(requestBody, protocol.encoding);
@@ -1 +1 @@
1
- {"version":3,"file":"requestEncode.js","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAGnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,QAAuB,EAAE,WAAuB;IACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IAEnC,IAAI,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACjC,KAAK,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"requestEncode.js","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAGnE;;;;;;;GAOG;AACH,MAAM,SAAS,CAAC,CAAC,aAAa,CAAC,QAAuB,EAAE,WAAuB;IAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IAEnC,IAAI,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACjC,KAAK,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -1,8 +1,8 @@
1
- import { Uint8ArrayList } from "uint8arraylist";
1
+ import type { Stream } from "@libp2p/interface";
2
+ import type { ByteStream } from "@libp2p/utils";
2
3
  import { ForkName } from "@lodestar/params";
3
4
  import { RespStatus } from "../interface.js";
4
5
  import { ContextBytesFactory, MixedProtocol, ResponseIncoming } from "../types.js";
5
- import { BufferedSource } from "../utils/index.js";
6
6
  /**
7
7
  * Internal helper type to signal stream ended early
8
8
  */
@@ -17,10 +17,10 @@ declare enum StreamStatus {
17
17
  * result ::= "0" | "1" | "2" | ["128" ... "255"]
18
18
  * ```
19
19
  */
20
- export declare function responseDecode(protocol: MixedProtocol, cbs: {
21
- onFirstHeader: () => void;
22
- onFirstResponseChunk: () => void;
23
- }): (source: AsyncIterable<Uint8Array | Uint8ArrayList>) => AsyncIterable<ResponseIncoming>;
20
+ export declare function responseDecode(protocol: MixedProtocol, stream: Stream, opts?: {
21
+ signal?: AbortSignal;
22
+ getError?: () => Error;
23
+ }): AsyncIterable<ResponseIncoming>;
24
24
  /**
25
25
  * Consumes a stream source to read a `<result>`
26
26
  * ```bnf
@@ -28,7 +28,7 @@ export declare function responseDecode(protocol: MixedProtocol, cbs: {
28
28
  * ```
29
29
  * `<response_chunk>` starts with a single-byte response code which determines the contents of the response_chunk
30
30
  */
31
- export declare function readResultHeader(bufferedSource: BufferedSource): Promise<RespStatus | StreamStatus>;
31
+ export declare function readResultHeader(bytes: ByteStream<Stream>, signal?: AbortSignal): Promise<RespStatus | StreamStatus>;
32
32
  /**
33
33
  * Consumes a stream source to read an optional `<error_response>?`
34
34
  * ```bnf
@@ -36,16 +36,16 @@ export declare function readResultHeader(bufferedSource: BufferedSource): Promis
36
36
  * result ::= "1" | "2" | ["128" ... "255"]
37
37
  * ```
38
38
  */
39
- export declare function readErrorMessage(bufferedSource: BufferedSource): Promise<string>;
39
+ export declare function readErrorMessage(bytes: ByteStream<Stream>, signal?: AbortSignal): Promise<string>;
40
40
  /**
41
41
  * Consumes a stream source to read a variable length `<context-bytes>` depending on the method.
42
42
  * While `<context-bytes>` has a single type of `ForkDigest`, this function only parses the `ForkName`
43
43
  * of the `ForkDigest` or defaults to `phase0`
44
44
  */
45
- export declare function readContextBytes(contextBytes: ContextBytesFactory, bufferedSource: BufferedSource): Promise<ForkName>;
45
+ export declare function readContextBytes(contextBytes: ContextBytesFactory, bytes: ByteStream<Stream>, signal?: AbortSignal): Promise<ForkName>;
46
46
  /**
47
47
  * Consumes a stream source to read `<context-bytes>`, where it's a fixed-width 4 byte
48
48
  */
49
- export declare function readContextBytesForkDigest(bufferedSource: BufferedSource): Promise<Uint8Array>;
49
+ export declare function readContextBytesForkDigest(bytes: ByteStream<Stream>, signal?: AbortSignal): Promise<Uint8Array>;
50
50
  export {};
51
51
  //# sourceMappingURL=responseDecode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"responseDecode.d.ts","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAEL,mBAAmB,EAEnB,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAErE;;GAEG;AACH,aAAK,YAAY;IACf,KAAK,iBAAiB;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC,GACA,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,GAAG,cAAc,CAAC,KAAK,aAAa,CAAC,gBAAgB,CAAC,CA6CzF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,CAYzG;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBtF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,mBAAmB,EACjC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAWpG"}
1
+ {"version":3,"file":"responseDecode.d.ts","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAEL,mBAAmB,EAEnB,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,aAAK,YAAY;IACf,KAAK,iBAAiB;CACvB;AAED;;;;;;;GAOG;AACH,wBAAuB,cAAc,CACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,CAAA;CAAM,GACxD,aAAa,CAAC,gBAAgB,CAAC,CAiDjC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,CAQpC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBvG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,mBAAmB,EACjC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAErH"}
@@ -1,9 +1,10 @@
1
+ import { byteStream } from "@libp2p/utils";
1
2
  import { ForkName } from "@lodestar/params";
2
3
  import { readEncodedPayload } from "../encodingStrategies/index.js";
3
4
  import { RespStatus } from "../interface.js";
4
5
  import { ResponseError } from "../response/index.js";
5
6
  import { CONTEXT_BYTES_FORK_DIGEST_LENGTH, ContextBytesType, } from "../types.js";
6
- import { BufferedSource, decodeErrorMessage } from "../utils/index.js";
7
+ import { decodeErrorMessage, drainByteStream } from "../utils/index.js";
7
8
  /**
8
9
  * Internal helper type to signal stream ended early
9
10
  */
@@ -19,43 +20,53 @@ var StreamStatus;
19
20
  * result ::= "0" | "1" | "2" | ["128" ... "255"]
20
21
  * ```
21
22
  */
22
- export function responseDecode(protocol, cbs) {
23
- return async function* responseDecodeSink(source) {
24
- const bufferedSource = new BufferedSource(source);
25
- let readFirstHeader = false;
26
- let readFirstResponseChunk = false;
27
- // Consumers of `responseDecode()` may limit the number of <response_chunk> and break out of the while loop
28
- while (!bufferedSource.isDone) {
29
- const status = await readResultHeader(bufferedSource);
23
+ export async function* responseDecode(protocol, stream, opts = {}) {
24
+ const bytes = byteStream(stream);
25
+ let responseReadDone = false;
26
+ try {
27
+ while (true) {
28
+ const status = await readResultHeader(bytes, opts.signal);
30
29
  // Stream is only allowed to end at the start of a <response_chunk> block
31
30
  // The happens when source ends before readResultHeader() can fetch 1 byte
32
31
  if (status === StreamStatus.Ended) {
33
32
  break;
34
33
  }
35
- if (!readFirstHeader) {
36
- cbs.onFirstHeader();
37
- readFirstHeader = true;
38
- }
39
34
  // For multiple chunks, only the last chunk is allowed to have a non-zero error
40
35
  // code (i.e. The chunk stream is terminated once an error occurs
41
36
  if (status !== RespStatus.SUCCESS) {
42
- const errorMessage = await readErrorMessage(bufferedSource);
37
+ const errorMessage = await readErrorMessage(bytes, opts.signal);
43
38
  throw new ResponseError(status, errorMessage);
44
39
  }
45
- const forkName = await readContextBytes(protocol.contextBytes, bufferedSource);
40
+ const forkName = await readContextBytes(protocol.contextBytes, bytes, opts.signal);
46
41
  const typeSizes = protocol.responseSizes(forkName);
47
- const chunkData = await readEncodedPayload(bufferedSource, protocol.encoding, typeSizes);
42
+ const chunkData = await readEncodedPayload(bytes, protocol.encoding, typeSizes, opts.signal);
48
43
  yield {
49
44
  data: chunkData,
50
45
  fork: forkName,
51
46
  protocolVersion: protocol.version,
52
47
  };
53
- if (!readFirstResponseChunk) {
54
- cbs.onFirstResponseChunk();
55
- readFirstResponseChunk = true;
48
+ }
49
+ responseReadDone = true;
50
+ }
51
+ catch (e) {
52
+ if (opts.signal?.aborted && opts.getError) {
53
+ throw opts.getError();
54
+ }
55
+ throw e;
56
+ }
57
+ finally {
58
+ try {
59
+ if (!responseReadDone) {
60
+ // Do not push partial bytes back into the stream on decode failure/abort.
61
+ // This stream is consumed by req/resp only once.
62
+ drainByteStream(bytes);
56
63
  }
64
+ bytes.unwrap();
57
65
  }
58
- };
66
+ catch {
67
+ // Ignore unwrap errors - stream may already be closed
68
+ }
69
+ }
59
70
  }
60
71
  /**
61
72
  * Consumes a stream source to read a `<result>`
@@ -64,16 +75,15 @@ export function responseDecode(protocol, cbs) {
64
75
  * ```
65
76
  * `<response_chunk>` starts with a single-byte response code which determines the contents of the response_chunk
66
77
  */
67
- export async function readResultHeader(bufferedSource) {
68
- for await (const buffer of bufferedSource) {
69
- const status = buffer.get(0);
70
- buffer.consume(1);
71
- // If first chunk had zero bytes status === null, get next
72
- if (status !== null) {
73
- return status;
74
- }
75
- }
76
- return StreamStatus.Ended;
78
+ export async function readResultHeader(bytes, signal) {
79
+ const chunk = await bytes.read({ bytes: 1, signal }).catch((e) => {
80
+ if (e.name === "UnexpectedEOFError")
81
+ return null;
82
+ throw e;
83
+ });
84
+ if (chunk === null)
85
+ return StreamStatus.Ended;
86
+ return chunk.get(0);
77
87
  }
78
88
  /**
79
89
  * Consumes a stream source to read an optional `<error_response>?`
@@ -82,39 +92,40 @@ export async function readResultHeader(bufferedSource) {
82
92
  * result ::= "1" | "2" | ["128" ... "255"]
83
93
  * ```
84
94
  */
85
- export async function readErrorMessage(bufferedSource) {
86
- // Read at least 256 or wait for the stream to end
87
- let length;
88
- for await (const buffer of bufferedSource) {
89
- // Wait for next chunk with bytes or for the stream to end
90
- // Note: The entire <error_message> is expected to be in the same chunk
91
- if (buffer.length >= 256) {
92
- length = 256;
95
+ export async function readErrorMessage(bytes, signal) {
96
+ const chunks = [];
97
+ let total = 0;
98
+ while (total < 256) {
99
+ const chunk = await bytes.read({ signal }).catch((e) => {
100
+ if (e.name === "UnexpectedEOFError")
101
+ return null;
102
+ throw e;
103
+ });
104
+ if (chunk === null) {
105
+ // If EOF is reached while satisfying a larger read, libp2p v3 may still have
106
+ // buffered bytes available. Drain them so error_message matches pre-v3 behavior.
107
+ const remaining = drainByteStream(bytes);
108
+ if (remaining) {
109
+ chunks.push(remaining);
110
+ }
93
111
  break;
94
112
  }
95
- length = buffer.length;
96
- }
97
- // biome-ignore lint/complexity/useLiteralKeys: It is a private attribute
98
- const bytes = bufferedSource["buffer"].slice(0, length);
99
- try {
100
- return decodeErrorMessage(bytes);
101
- }
102
- catch (_e) {
103
- // Error message is optional and may not be included in the response stream
104
- return Buffer.prototype.toString.call(bytes, "hex");
113
+ chunks.push(chunk.subarray());
114
+ total += chunk.byteLength;
105
115
  }
116
+ return decodeErrorMessage(Buffer.concat(chunks).subarray(0, 256));
106
117
  }
107
118
  /**
108
119
  * Consumes a stream source to read a variable length `<context-bytes>` depending on the method.
109
120
  * While `<context-bytes>` has a single type of `ForkDigest`, this function only parses the `ForkName`
110
121
  * of the `ForkDigest` or defaults to `phase0`
111
122
  */
112
- export async function readContextBytes(contextBytes, bufferedSource) {
123
+ export async function readContextBytes(contextBytes, bytes, signal) {
113
124
  switch (contextBytes.type) {
114
125
  case ContextBytesType.Empty:
115
126
  return ForkName.phase0;
116
127
  case ContextBytesType.ForkDigest: {
117
- const forkDigest = await readContextBytesForkDigest(bufferedSource);
128
+ const forkDigest = await readContextBytesForkDigest(bytes, signal);
118
129
  return contextBytes.config.forkDigest2ForkBoundary(forkDigest).fork;
119
130
  }
120
131
  }
@@ -122,15 +133,7 @@ export async function readContextBytes(contextBytes, bufferedSource) {
122
133
  /**
123
134
  * Consumes a stream source to read `<context-bytes>`, where it's a fixed-width 4 byte
124
135
  */
125
- export async function readContextBytesForkDigest(bufferedSource) {
126
- for await (const buffer of bufferedSource) {
127
- if (buffer.length >= CONTEXT_BYTES_FORK_DIGEST_LENGTH) {
128
- const bytes = buffer.slice(0, CONTEXT_BYTES_FORK_DIGEST_LENGTH);
129
- buffer.consume(CONTEXT_BYTES_FORK_DIGEST_LENGTH);
130
- return bytes;
131
- }
132
- }
133
- // TODO: Use typed error
134
- throw Error("Source ended while reading context bytes");
136
+ export async function readContextBytesForkDigest(bytes, signal) {
137
+ return (await bytes.read({ bytes: CONTEXT_BYTES_FORK_DIGEST_LENGTH, signal })).subarray();
135
138
  }
136
139
  //# sourceMappingURL=responseDecode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"responseDecode.js","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responseDecode.js","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,7 @@ import { MixedProtocol, Protocol, ResponseOutgoing } from "../types.js";
9
9
  * ```
10
10
  * Note: `response` has zero or more chunks (denoted by `<>*`)
11
11
  */
12
- export declare function responseEncodeSuccess(protocol: Protocol, cbs: {
13
- onChunk: (chunkIndex: number) => void;
14
- }): (source: AsyncIterable<ResponseOutgoing>) => AsyncIterable<Buffer>;
12
+ export declare function responseEncodeSuccess(protocol: Protocol, source: AsyncIterable<ResponseOutgoing>): AsyncIterable<Uint8Array>;
15
13
  /**
16
14
  * Yields byte chunks for a `<response_chunk>` with a non-zero response code `<result>`
17
15
  * denoted as `<error_response>`
@@ -22,5 +20,5 @@ export declare function responseEncodeSuccess(protocol: Protocol, cbs: {
22
20
  * Only the last `<response_chunk>` is allowed to have a non-zero error code, so this
23
21
  * fn yields exactly one `<error_response>` and afterwards the stream must be terminated
24
22
  */
25
- export declare function responseEncodeError(protocol: Pick<MixedProtocol, "encoding">, status: RpcResponseStatusError, errorMessage: string): AsyncGenerator<Buffer>;
23
+ export declare function responseEncodeError(protocol: Pick<MixedProtocol, "encoding">, status: RpcResponseStatusError, errorMessage: string): Generator<Buffer>;
26
24
  //# sourceMappingURL=responseEncode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"responseEncode.d.ts","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAwC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAK7G;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE;IAAC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CAAC,GAC3C,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,CAqBpE;AAED;;;;;;;;;GASG;AACH,wBAAuB,mBAAmB,CACxC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACzC,MAAM,EAAE,sBAAsB,EAC9B,YAAY,EAAE,MAAM,GACnB,cAAc,CAAC,MAAM,CAAC,CAWxB"}
1
+ {"version":3,"file":"responseEncode.d.ts","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAwC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAK7G;;;;;;;;GAQG;AACH,wBAAuB,qBAAqB,CAC1C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACtC,aAAa,CAAC,UAAU,CAAC,CAc3B;AAED;;;;;;;;;GASG;AACH,wBAAiB,mBAAmB,CAClC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACzC,MAAM,EAAE,sBAAsB,EAC9B,YAAY,EAAE,MAAM,GACnB,SAAS,CAAC,MAAM,CAAC,CAMnB"}
@@ -12,23 +12,18 @@ const SUCCESS_BUFFER = Buffer.from([RespStatus.SUCCESS]);
12
12
  * ```
13
13
  * Note: `response` has zero or more chunks (denoted by `<>*`)
14
14
  */
15
- export function responseEncodeSuccess(protocol, cbs) {
16
- return async function* responseEncodeSuccessTransform(source) {
17
- let chunkIndex = 0;
18
- for await (const chunk of source) {
19
- // Postfix increment, return 0 as first chunk
20
- cbs.onChunk(chunkIndex++);
21
- // <result>
22
- yield SUCCESS_BUFFER;
23
- // <context-bytes> - from altair
24
- const contextBytes = getContextBytes(protocol.contextBytes, chunk);
25
- if (contextBytes) {
26
- yield contextBytes;
27
- }
28
- // <encoding-dependent-header> | <encoded-payload>
29
- yield* writeEncodedPayload(chunk.data, protocol.encoding);
15
+ export async function* responseEncodeSuccess(protocol, source) {
16
+ for await (const chunk of source) {
17
+ // <result>
18
+ yield SUCCESS_BUFFER;
19
+ // <context-bytes> - from altair
20
+ const contextBytes = getContextBytes(protocol.contextBytes, chunk);
21
+ if (contextBytes) {
22
+ yield contextBytes;
30
23
  }
31
- };
24
+ // <encoding-dependent-header> | <encoded-payload>
25
+ yield* writeEncodedPayload(chunk.data, protocol.encoding);
26
+ }
32
27
  }
33
28
  /**
34
29
  * Yields byte chunks for a `<response_chunk>` with a non-zero response code `<result>`
@@ -40,15 +35,11 @@ export function responseEncodeSuccess(protocol, cbs) {
40
35
  * Only the last `<response_chunk>` is allowed to have a non-zero error code, so this
41
36
  * fn yields exactly one `<error_response>` and afterwards the stream must be terminated
42
37
  */
43
- export async function* responseEncodeError(protocol, status, errorMessage) {
44
- if (!errorMessage) {
45
- yield Buffer.from([status]);
46
- return;
47
- }
38
+ export function* responseEncodeError(protocol, status, errorMessage) {
48
39
  // Combine <result> and <error_message> into a single chunk for atomic delivery.
49
40
  // Yielding them separately causes a race condition where the stream closes after the
50
41
  // status byte but before the error message arrives on the reader side.
51
- const errorMessageBuffer = await encodeErrorMessageToBuffer(errorMessage, protocol.encoding);
42
+ const errorMessageBuffer = encodeErrorMessageToBuffer(errorMessage, protocol.encoding);
52
43
  yield Buffer.concat([Buffer.from([status]), errorMessageBuffer]);
53
44
  }
54
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"responseEncode.js","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAsB,gBAAgB,EAA4C,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAC,0BAA0B,EAAC,MAAM,mBAAmB,CAAC;AAE7D,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAkB,EAClB,GAA4C;IAE5C,OAAO,KAAK,SAAS,CAAC,CAAC,8BAA8B,CAAC,MAAM;QAC1D,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,6CAA6C;YAC7C,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAE1B,WAAW;YACX,MAAM,cAAc,CAAC;YAErB,gCAAgC;YAChC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAsB,CAAC;YAC/B,CAAC;YAED,kDAAkD;YAClD,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,mBAAmB,CACxC,QAAyC,EACzC,MAA8B,EAC9B,YAAoB;IAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,gFAAgF;IAChF,qFAAqF;IACrF,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7F,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,YAAiC,EAAE,KAAuB;IACjF,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1B,gBAAgB;QAChB,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,IAAI,CAAC;QAEd,4DAA4D;QAC5D,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"responseEncode.js","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAsB,gBAAgB,EAA4C,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAC,0BAA0B,EAAC,MAAM,mBAAmB,CAAC;AAE7D,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,QAAkB,EAClB,MAAuC;IAEvC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,WAAW;QACX,MAAM,cAAc,CAAC;QAErB,gCAAgC;QAChC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,YAAY,CAAC;QACrB,CAAC;QAED,kDAAkD;QAClD,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,SAAS,CAAC,CAAC,mBAAmB,CAClC,QAAyC,EACzC,MAA8B,EAC9B,YAAoB;IAEpB,gFAAgF;IAChF,qFAAqF;IACrF,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvF,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,YAAiC,EAAE,KAAuB;IACjF,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1B,gBAAgB;QAChB,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,IAAI,CAAC;QAEd,4DAA4D;QAC5D,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
@@ -1,17 +1,18 @@
1
+ import type { Stream } from "@libp2p/interface";
2
+ import type { ByteStream } from "@libp2p/utils";
1
3
  import { Encoding, TypeSizes } from "../types.js";
2
- import { BufferedSource } from "../utils/index.js";
3
4
  /**
4
5
  * Consumes a stream source to read encoded header and payload as defined in the spec:
5
6
  * ```
6
7
  * <encoding-dependent-header> | <encoded-payload>
7
8
  * ```
8
9
  */
9
- export declare function readEncodedPayload(bufferedSource: BufferedSource, encoding: Encoding, type: TypeSizes): Promise<Uint8Array>;
10
+ export declare function readEncodedPayload(stream: ByteStream<Stream>, encoding: Encoding, type: TypeSizes, signal?: AbortSignal): Promise<Uint8Array>;
10
11
  /**
11
12
  * Yields byte chunks for encoded header and payload as defined in the spec:
12
13
  * ```
13
14
  * <encoding-dependent-header> | <encoded-payload>
14
15
  * ```
15
16
  */
16
- export declare function writeEncodedPayload(chunkData: Uint8Array, encoding: Encoding): AsyncGenerator<Buffer>;
17
+ export declare function writeEncodedPayload(chunkData: Uint8Array, encoding: Encoding): Generator<Buffer>;
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/encodingStrategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AASjD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;;;GAKG;AACH,wBAAuB,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAS5G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/encodingStrategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAShD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;;;GAKG;AACH,wBAAiB,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CASjG"}