@yume-chan/stream-extra 2.6.1 → 3.0.0-beta.1

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 (162) hide show
  1. package/LICENSE +1 -1
  2. package/esm/buffered-transform.d.ts +2 -2
  3. package/esm/buffered-transform.d.ts.map +1 -1
  4. package/esm/buffered-transform.js +16 -16
  5. package/esm/buffered-transform.js.map +1 -1
  6. package/esm/buffered.d.ts +1 -1
  7. package/esm/buffered.d.ts.map +1 -1
  8. package/esm/buffered.js.map +1 -1
  9. package/esm/concat.d.ts +25 -16
  10. package/esm/concat.d.ts.map +1 -1
  11. package/esm/concat.js +124 -93
  12. package/esm/concat.js.map +1 -1
  13. package/esm/consumable/readable.d.ts +2 -2
  14. package/esm/consumable/readable.d.ts.map +1 -1
  15. package/esm/consumable/readable.js +1 -1
  16. package/esm/consumable/readable.js.map +1 -1
  17. package/esm/consumable/wrap-byte-readable.d.ts +5 -2
  18. package/esm/consumable/wrap-byte-readable.d.ts.map +1 -1
  19. package/esm/consumable/wrap-byte-readable.js +12 -6
  20. package/esm/consumable/wrap-byte-readable.js.map +1 -1
  21. package/esm/consumable/wrap-writable.d.ts +1 -1
  22. package/esm/consumable/wrap-writable.d.ts.map +1 -1
  23. package/esm/consumable/wrap-writable.js +1 -1
  24. package/esm/consumable/wrap-writable.js.map +1 -1
  25. package/esm/consumable/writable.d.ts +2 -2
  26. package/esm/consumable/writable.d.ts.map +1 -1
  27. package/esm/consumable/writable.js +1 -1
  28. package/esm/consumable/writable.js.map +1 -1
  29. package/esm/consumable.d.ts +4 -0
  30. package/esm/consumable.d.ts.map +1 -1
  31. package/esm/consumable.js +5 -0
  32. package/esm/consumable.js.map +1 -1
  33. package/esm/distribution.d.ts +1 -1
  34. package/esm/distribution.d.ts.map +1 -1
  35. package/esm/distribution.js +1 -1
  36. package/esm/distribution.js.map +1 -1
  37. package/esm/duplex.d.ts +2 -2
  38. package/esm/duplex.d.ts.map +1 -1
  39. package/esm/duplex.js +1 -1
  40. package/esm/duplex.js.map +1 -1
  41. package/esm/global/abort-signal.d.ts +87 -0
  42. package/esm/global/abort-signal.d.ts.map +1 -0
  43. package/esm/global/abort-signal.js +4 -0
  44. package/esm/global/abort-signal.js.map +1 -0
  45. package/esm/global/compression.d.ts +15 -0
  46. package/esm/global/compression.d.ts.map +1 -0
  47. package/esm/global/compression.js +4 -0
  48. package/esm/global/compression.js.map +1 -0
  49. package/esm/global/encoding.d.ts +25 -0
  50. package/esm/global/encoding.d.ts.map +1 -0
  51. package/esm/global/encoding.js +4 -0
  52. package/esm/global/encoding.js.map +1 -0
  53. package/esm/global/event.d.ts +191 -0
  54. package/esm/global/event.d.ts.map +1 -0
  55. package/esm/global/event.js +4 -0
  56. package/esm/global/event.js.map +1 -0
  57. package/esm/global/index.d.ts +7 -0
  58. package/esm/global/index.d.ts.map +1 -0
  59. package/esm/global/index.js +7 -0
  60. package/esm/global/index.js.map +1 -0
  61. package/esm/{types.d.ts → global/streams.d.ts} +136 -222
  62. package/esm/global/streams.d.ts.map +1 -0
  63. package/esm/{stream.js → global/streams.js} +16 -8
  64. package/esm/global/streams.js.map +1 -0
  65. package/esm/global/timer.d.ts +13 -0
  66. package/esm/global/timer.d.ts.map +1 -0
  67. package/esm/global/timer.js +4 -0
  68. package/esm/global/timer.js.map +1 -0
  69. package/esm/global/utils.d.ts +9 -0
  70. package/esm/global/utils.d.ts.map +1 -0
  71. package/esm/global/utils.js +5 -0
  72. package/esm/global/utils.js.map +1 -0
  73. package/esm/index.d.ts +2 -2
  74. package/esm/index.d.ts.map +1 -1
  75. package/esm/index.js +2 -2
  76. package/esm/index.js.map +1 -1
  77. package/esm/inspect.d.ts +6 -2
  78. package/esm/inspect.d.ts.map +1 -1
  79. package/esm/inspect.js +10 -4
  80. package/esm/inspect.js.map +1 -1
  81. package/esm/maybe-consumable/wrap-writable.d.ts +1 -1
  82. package/esm/maybe-consumable/wrap-writable.d.ts.map +1 -1
  83. package/esm/maybe-consumable/wrap-writable.js +1 -1
  84. package/esm/maybe-consumable/wrap-writable.js.map +1 -1
  85. package/esm/maybe-consumable/writable.d.ts +2 -2
  86. package/esm/maybe-consumable/writable.d.ts.map +1 -1
  87. package/esm/maybe-consumable/writable.js +1 -1
  88. package/esm/maybe-consumable/writable.js.map +1 -1
  89. package/esm/pipe-from.d.ts +3 -3
  90. package/esm/pipe-from.d.ts.map +1 -1
  91. package/esm/pipe-from.js +1 -1
  92. package/esm/pipe-from.js.map +1 -1
  93. package/esm/push-readable.d.ts +2 -2
  94. package/esm/push-readable.d.ts.map +1 -1
  95. package/esm/push-readable.js +1 -1
  96. package/esm/push-readable.js.map +1 -1
  97. package/esm/split-string.d.ts +6 -2
  98. package/esm/split-string.d.ts.map +1 -1
  99. package/esm/split-string.js +28 -7
  100. package/esm/split-string.js.map +1 -1
  101. package/esm/struct-deserialize.js.map +1 -1
  102. package/esm/struct-serialize.d.ts +1 -1
  103. package/esm/struct-serialize.d.ts.map +1 -1
  104. package/esm/struct-serialize.js +1 -1
  105. package/esm/struct-serialize.js.map +1 -1
  106. package/esm/try-close.d.ts +3 -5
  107. package/esm/try-close.d.ts.map +1 -1
  108. package/esm/try-close.js.map +1 -1
  109. package/esm/wrap-readable.d.ts +2 -2
  110. package/esm/wrap-readable.d.ts.map +1 -1
  111. package/esm/wrap-readable.js +1 -1
  112. package/esm/wrap-readable.js.map +1 -1
  113. package/esm/wrap-writable.d.ts +2 -2
  114. package/esm/wrap-writable.d.ts.map +1 -1
  115. package/esm/wrap-writable.js +1 -1
  116. package/esm/wrap-writable.js.map +1 -1
  117. package/package.json +10 -10
  118. package/src/buffered-transform.ts +24 -25
  119. package/src/buffered.ts +4 -1
  120. package/src/concat.ts +161 -118
  121. package/src/consumable/readable.ts +2 -2
  122. package/src/consumable/wrap-byte-readable.ts +20 -7
  123. package/src/consumable/wrap-writable.ts +1 -1
  124. package/src/consumable/writable.ts +2 -2
  125. package/src/consumable.ts +8 -0
  126. package/src/distribution.ts +1 -1
  127. package/src/duplex.ts +2 -2
  128. package/src/global/abort-signal.ts +129 -0
  129. package/src/global/compression.ts +28 -0
  130. package/src/global/encoding.ts +36 -0
  131. package/src/global/event.ts +220 -0
  132. package/src/global/index.ts +6 -0
  133. package/src/{types.ts → global/streams.ts} +266 -244
  134. package/src/global/timer.ts +18 -0
  135. package/src/global/utils.ts +14 -0
  136. package/src/index.ts +2 -2
  137. package/src/inspect.ts +18 -4
  138. package/src/maybe-consumable/wrap-writable.ts +1 -1
  139. package/src/maybe-consumable/writable.ts +3 -3
  140. package/src/pipe-from.ts +2 -2
  141. package/src/push-readable.ts +2 -2
  142. package/src/split-string.ts +41 -7
  143. package/src/struct-deserialize.ts +1 -1
  144. package/src/struct-serialize.ts +1 -1
  145. package/src/try-close.ts +0 -12
  146. package/src/wrap-readable.ts +2 -2
  147. package/src/wrap-writable.ts +5 -2
  148. package/tsconfig.build.json +1 -6
  149. package/CHANGELOG.md +0 -102
  150. package/esm/encoding.d.ts +0 -21
  151. package/esm/encoding.d.ts.map +0 -1
  152. package/esm/encoding.js +0 -4
  153. package/esm/encoding.js.map +0 -1
  154. package/esm/stream.d.ts +0 -25
  155. package/esm/stream.d.ts.map +0 -1
  156. package/esm/stream.js.map +0 -1
  157. package/esm/types.d.ts.map +0 -1
  158. package/esm/types.js +0 -3
  159. package/esm/types.js.map +0 -1
  160. package/src/encoding.ts +0 -39
  161. package/src/stream.ts +0 -106
  162. package/tsconfig.build.tsbuildinfo +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2025 Simon Chan
3
+ Copyright (c) 2020-2026 Simon Chan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import { BufferedReadableStream } from "./buffered.js";
3
- import type { ReadableWritablePair } from "./stream.js";
4
- import { ReadableStream, WritableStream } from "./stream.js";
3
+ import type { ReadableWritablePair } from "./global/index.js";
4
+ import { ReadableStream, WritableStream } from "./global/index.js";
5
5
  export declare class BufferedTransformStream<T> implements ReadableWritablePair<T, Uint8Array> {
6
6
  #private;
7
7
  get readable(): ReadableStream<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"buffered-transform.d.ts","sourceRoot":"","sources":["../src/buffered-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,KAAK,EACR,oBAAoB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7D,qBAAa,uBAAuB,CAAC,CAAC,CAClC,YAAW,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC;;IAG9C,IAAI,QAAQ,sBAEX;IAGD,IAAI,QAAQ,gDAEX;gBAGG,SAAS,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,gBAAgB,CAAC,CAAC,CAAC;CAqDzE"}
1
+ {"version":3,"file":"buffered-transform.d.ts","sourceRoot":"","sources":["../src/buffered-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EACR,oBAAoB,EAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnE,qBAAa,uBAAuB,CAAC,CAAC,CAAE,YAAW,oBAAoB,CACnE,CAAC,EACD,UAAU,CACb;;IAEG,IAAI,QAAQ,sBAEX;IAGD,IAAI,QAAQ,gDAEX;gBAGG,SAAS,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,gBAAgB,CAAC,CAAC,CAAC;CAmDzE"}
@@ -1,7 +1,7 @@
1
1
  import { StructEmptyError } from "@yume-chan/struct";
2
2
  import { BufferedReadableStream } from "./buffered.js";
3
+ import { ReadableStream, WritableStream } from "./global/index.js";
3
4
  import { PushReadableStream } from "./push-readable.js";
4
- import { ReadableStream, WritableStream } from "./stream.js";
5
5
  // TODO: BufferedTransformStream: find better implementation
6
6
  export class BufferedTransformStream {
7
7
  #readable;
@@ -15,10 +15,24 @@ export class BufferedTransformStream {
15
15
  constructor(transform) {
16
16
  // Convert incoming chunks to a `BufferedReadableStream`
17
17
  let bufferedStreamController;
18
- let writableStreamController;
19
18
  const buffered = new BufferedReadableStream(new PushReadableStream((controller) => {
20
19
  bufferedStreamController = controller;
21
20
  }));
21
+ let writableStreamController;
22
+ this.#writable = new WritableStream({
23
+ start(controller) {
24
+ writableStreamController = controller;
25
+ },
26
+ async write(chunk) {
27
+ await bufferedStreamController.enqueue(chunk);
28
+ },
29
+ abort() {
30
+ bufferedStreamController.close();
31
+ },
32
+ close() {
33
+ bufferedStreamController.close();
34
+ },
35
+ });
22
36
  this.#readable = new ReadableStream({
23
37
  async pull(controller) {
24
38
  try {
@@ -44,20 +58,6 @@ export class BufferedTransformStream {
44
58
  return writableStreamController.error(reason);
45
59
  },
46
60
  });
47
- this.#writable = new WritableStream({
48
- start(controller) {
49
- writableStreamController = controller;
50
- },
51
- async write(chunk) {
52
- await bufferedStreamController.enqueue(chunk);
53
- },
54
- abort() {
55
- bufferedStreamController.close();
56
- },
57
- close() {
58
- bufferedStreamController.close();
59
- },
60
- });
61
61
  }
62
62
  }
63
63
  //# sourceMappingURL=buffered-transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffered-transform.js","sourceRoot":"","sources":["../src/buffered-transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7D,4DAA4D;AAC5D,MAAM,OAAO,uBAAuB;IAGhC,SAAS,CAAoB;IAC7B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,SAAS,CAA6B;IACtC,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YACI,SAAkE;QAElE,wDAAwD;QACxD,IAAI,wBAAmE,CAAC;QAExE,IAAI,wBAA0D,CAAC;QAE/D,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACvC,IAAI,kBAAkB,CAAa,CAAC,UAAU,EAAE,EAAE;YAC9C,wBAAwB,GAAG,UAAU,CAAC;QAC1C,CAAC,CAAC,CACL,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAI;YACnC,KAAK,CAAC,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC;oBACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACxC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,4CAA4C;oBAC5C,wEAAwE;oBACxE,kDAAkD;oBAClD,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;wBAChC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO;oBACX,CAAC;oBACD,MAAM,CAAC,CAAC;gBACZ,CAAC;YACL,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,oDAAoD;gBACpD,qDAAqD;gBACrD,+DAA+D;gBAC/D,qCAAqC;gBACrC,OAAO,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU;gBACZ,wBAAwB,GAAG,UAAU,CAAC;YAC1C,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,KAAK;gBACb,MAAM,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,KAAK;gBACD,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;YACD,KAAK;gBACD,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"buffered-transform.js","sourceRoot":"","sources":["../src/buffered-transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAKvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,4DAA4D;AAC5D,MAAM,OAAO,uBAAuB;IAIhC,SAAS,CAAoB;IAC7B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,SAAS,CAA6B;IACtC,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YACI,SAAkE;QAElE,wDAAwD;QACxD,IAAI,wBAAmE,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACvC,IAAI,kBAAkB,CAAa,CAAC,UAAU,EAAE,EAAE;YAC9C,wBAAwB,GAAG,UAAU,CAAC;QAC1C,CAAC,CAAC,CACL,CAAC;QAEF,IAAI,wBAA0D,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU;gBACZ,wBAAwB,GAAG,UAAU,CAAC;YAC1C,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,KAAK;gBACb,MAAM,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,KAAK;gBACD,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;YACD,KAAK;gBACD,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAI;YACnC,KAAK,CAAC,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC;oBACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACxC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,4CAA4C;oBAC5C,wEAAwE;oBACxE,kDAAkD;oBAClD,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;wBAChC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO;oBACX,CAAC;oBACD,MAAM,CAAC,CAAC;gBACZ,CAAC;YACL,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,oDAAoD;gBACpD,qDAAqD;gBACrD,+DAA+D;gBAC/D,qCAAqC;gBACrC,OAAO,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
package/esm/buffered.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { AsyncExactReadable } from "@yume-chan/struct";
3
- import type { ReadableStream, ReadableStreamDefaultReader } from "./stream.js";
3
+ import type { ReadableStream, ReadableStreamDefaultReader } from "./global/index.js";
4
4
  export declare class BufferedReadableStream implements AsyncExactReadable {
5
5
  #private;
6
6
  get position(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"buffered.d.ts","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAG/E,qBAAa,sBAAuB,YAAW,kBAAkB;;IAQ7D,IAAI,QAAQ,WAEX;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAEvD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAgD9C,cAAc,CACV,MAAM,EAAE,MAAM,GACf,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IA0CrD,WAAW,kGA8BR;IAEH;;;;OAIG;IACH,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC;IA4B/B,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;CAGhC"}
1
+ {"version":3,"file":"buffered.d.ts","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,KAAK,EACR,cAAc,EACd,2BAA2B,EAC9B,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,sBAAuB,YAAW,kBAAkB;;IAQ7D,IAAI,QAAQ,WAEX;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAEvD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAgD9C,cAAc,CACV,MAAM,EAAE,MAAM,GACf,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IA0CrD,WAAW,kGA8BR;IAEH;;;;OAIG;IACH,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC;IA4B/B,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;CAGhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"buffered.js","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffered.js","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"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"}
package/esm/concat.d.ts CHANGED
@@ -1,36 +1,45 @@
1
- import { ReadableStream, WritableStream } from "./stream.js";
2
- export interface ConcatStringReadableStream extends ReadableStream<string>, Promise<string> {
1
+ import type { ReadableWritablePair } from "./global/index.js";
2
+ import { ReadableStream, WritableStream } from "./global/index.js";
3
+ export declare class AccumulateStream<Input, Output, Accumulated = Output> implements ReadableWritablePair<Output, Input> {
4
+ #private;
5
+ get writable(): WritableStream<Input>;
6
+ get readable(): ReadableStream<Output> & Omit<Promise<Output>, typeof Symbol.toStringTag>;
7
+ constructor(initial: Accumulated, write: (chunk: Input, current: Accumulated) => Accumulated, finalize: (current: Accumulated) => Output);
3
8
  }
4
9
  /**
5
10
  * A `TransformStream` that concatenates strings.
6
11
  *
7
- * Its `readable` is also a `Promise<string>`, so it's possible to `await` it to get the result.
12
+ * Its `readable` is also a Promise-like, that can be `await`ed to get the result.
8
13
  *
9
14
  * ```ts
10
15
  * const result: string = await readable.pipeThrough(new ConcatStringStream());
11
16
  * ```
12
17
  */
13
- export declare class ConcatStringStream {
14
- #private;
15
- get writable(): WritableStream<string>;
16
- get readable(): ConcatStringReadableStream;
18
+ export declare class ConcatStringStream extends AccumulateStream<string, string> {
17
19
  constructor();
18
20
  }
19
- export interface ConcatBufferReadableStream extends ReadableStream<Uint8Array>, Promise<Uint8Array> {
20
- }
21
+ /**
22
+ * Concatenate all chunks into a single `Uint8Array`.
23
+ *
24
+ * If there is only one chunk, it will be returned directly.
25
+ * @param chunks An array of `Uint8Array`s to concatenate
26
+ * @returns An `Uint8Array` containing all chunks. If there is only one chunk, it will be returned directly.
27
+ */
28
+ export declare function concatUint8Arrays(chunks: readonly Uint8Array[]): Uint8Array;
29
+ export declare function toUint8Array(buffer: ArrayBufferLike | ArrayBufferView<ArrayBufferLike>): Uint8Array;
30
+ export declare function concatBuffers(buffers: readonly (ArrayBufferLike | ArrayBufferView<ArrayBufferLike>)[]): Uint8Array;
21
31
  /**
22
32
  * A `TransformStream` that concatenates `Uint8Array`s.
23
33
  *
24
- * If you want to decode the result as string,
34
+ * Its `readable` is also a Promise-like, that can be `await`ed to get the result.
35
+ *
36
+ * To convert a `ReadableStream<Uint8Array>` to a string,
25
37
  * prefer `.pipeThrough(new TextDecoderStream()).pipeThrough(new ConcatStringStream())`,
26
- * than `.pipeThough(new ConcatBufferStream()).pipeThrough(new TextDecoderStream())`,
27
- * because of JavaScript engine optimizations,
38
+ * to `.pipeThrough(new ConcatBufferStream()).pipeThrough(new TextDecoderStream())`.
39
+ * Because of JavaScript engine optimizations,
28
40
  * concatenating strings is faster than concatenating `Uint8Array`s.
29
41
  */
30
- export declare class ConcatBufferStream {
31
- #private;
32
- get writable(): WritableStream<Uint8Array>;
33
- get readable(): ConcatBufferReadableStream;
42
+ export declare class ConcatBufferStream extends AccumulateStream<Uint8Array, Uint8Array, Uint8Array[]> {
34
43
  constructor();
35
44
  }
36
45
  //# sourceMappingURL=concat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../src/concat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,0BACb,SAAQ,cAAc,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,MAAM,CAAC;CAAG;AAO1B;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;;IAoB3B,IAAI,QAAQ,IAAI,cAAc,CAAC,MAAM,CAAC,CAErC;IAQD,IAAI,QAAQ,IAAI,0BAA0B,CAEzC;;CAkBJ;AAED,MAAM,WAAW,0BACb,SAAQ,cAAc,CAAC,UAAU,CAAC,EAC9B,OAAO,CAAC,UAAU,CAAC;CAAG;AAE9B;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;;IA0C3B,IAAI,QAAQ,IAAI,cAAc,CAAC,UAAU,CAAC,CAEzC;IAQD,IAAI,QAAQ,IAAI,0BAA0B,CAEzC;;CAkBJ"}
1
+ {"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../src/concat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnE,qBAAa,gBAAgB,CACzB,KAAK,EACL,MAAM,EACN,WAAW,GAAG,MAAM,CACtB,YAAW,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC;;IA8B5C,IAAI,QAAQ,0BAEX;IAkBD,IAAI,QAAQ,8EAEX;gBAGG,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,KAAK,WAAW,EAC1D,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM;CAmBjD;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;;CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAgB3E;AAED,wBAAgB,YAAY,CACxB,MAAM,EAAE,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,GAC3D,UAAU,CAYZ;AAED,wBAAgB,aAAa,CACzB,OAAO,EAAE,SAAS,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,GACzE,UAAU,CAgBZ;AAED;;;;;;;;;;GAUG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB,CACpD,UAAU,EACV,UAAU,EACV,UAAU,EAAE,CACf;;CAgBA"}
package/esm/concat.js CHANGED
@@ -1,129 +1,160 @@
1
1
  import { PromiseResolver } from "@yume-chan/async";
2
2
  import { EmptyUint8Array } from "@yume-chan/struct";
3
- import { ReadableStream, WritableStream } from "./stream.js";
3
+ import { ReadableStream, WritableStream } from "./global/index.js";
4
4
  // `TransformStream` only calls its `source.flush` method when its `readable` is being read.
5
- // If the user want to use the `Promise` interface, the `flush` method will never be called,
5
+ // If the user wants to use the `Promise` interface, the `flush` method will never be called,
6
6
  // so the `PromiseResolver` will never be resolved.
7
7
  // Thus we need to implement our own `TransformStream` using a `WritableStream` and a `ReadableStream`.
8
- /**
9
- * A `TransformStream` that concatenates strings.
10
- *
11
- * Its `readable` is also a `Promise<string>`, so it's possible to `await` it to get the result.
12
- *
13
- * ```ts
14
- * const result: string = await readable.pipeThrough(new ConcatStringStream());
15
- * ```
16
- */
17
- export class ConcatStringStream {
18
- // PERF: rope (concat strings) is faster than `[].join('')`
19
- #result = "";
8
+ export class AccumulateStream {
9
+ #current;
10
+ #write;
11
+ #finalize;
20
12
  #resolver = new PromiseResolver();
21
13
  #writable = new WritableStream({
22
14
  write: (chunk) => {
23
- this.#result += chunk;
15
+ try {
16
+ this.#current = this.#write(chunk, this.#current);
17
+ }
18
+ catch (e) {
19
+ this.#resolver.reject(e);
20
+ throw e;
21
+ }
24
22
  },
25
23
  close: () => {
26
- this.#resolver.resolve(this.#result);
27
- this.#readableController.enqueue(this.#result);
28
- this.#readableController.close();
24
+ try {
25
+ const output = this.#finalize(this.#current);
26
+ this.#resolver.resolve(output);
27
+ }
28
+ catch (e) {
29
+ this.#resolver.reject(e);
30
+ throw e;
31
+ }
29
32
  },
30
33
  abort: (reason) => {
31
34
  this.#resolver.reject(reason);
32
- this.#readableController.error(reason);
33
35
  },
34
36
  });
35
37
  get writable() {
36
38
  return this.#writable;
37
39
  }
38
- #readableController;
39
40
  #readable = new ReadableStream({
40
- start: (controller) => {
41
- this.#readableController = controller;
41
+ pull: async (controller) => {
42
+ const output = await this.#resolver.promise;
43
+ controller.enqueue(output);
44
+ controller.close();
42
45
  },
43
- });
46
+ // Ignore `abort` event since the user might use the `Promise` interface.
47
+ },
48
+ // `highWaterMark: 0` makes the `pull` method
49
+ // only be called when the `ReadableStream` is being read.
50
+ // If the user only uses the `Promise` interface,
51
+ // it's unnecessary to run the `pull` method.
52
+ { highWaterMark: 0 });
44
53
  get readable() {
45
54
  return this.#readable;
46
55
  }
56
+ constructor(initial, write, finalize) {
57
+ this.#current = initial;
58
+ this.#write = write;
59
+ this.#finalize = finalize;
60
+ // biome-ignore lint/suspicious/noThenProperty: This object is intentionally thenable
61
+ this.#readable.then = (onfulfilled, onrejected) => {
62
+ return this.#resolver.promise.then(onfulfilled, onrejected);
63
+ };
64
+ // biome-ignore lint/suspicious/noThenProperty: This object is intentionally thenable
65
+ this.#readable.catch = (onrejected) => {
66
+ return this.#resolver.promise.catch(onrejected);
67
+ };
68
+ // biome-ignore lint/suspicious/noThenProperty: This object is intentionally thenable
69
+ this.#readable.finally = (onfinally) => {
70
+ return this.#resolver.promise.finally(onfinally);
71
+ };
72
+ }
73
+ }
74
+ /**
75
+ * A `TransformStream` that concatenates strings.
76
+ *
77
+ * Its `readable` is also a Promise-like, that can be `await`ed to get the result.
78
+ *
79
+ * ```ts
80
+ * const result: string = await readable.pipeThrough(new ConcatStringStream());
81
+ * ```
82
+ */
83
+ export class ConcatStringStream extends AccumulateStream {
47
84
  constructor() {
48
- void Object.defineProperties(this.#readable, {
49
- then: {
50
- get: () => this.#resolver.promise.then.bind(this.#resolver.promise),
51
- },
52
- catch: {
53
- get: () => this.#resolver.promise.catch.bind(this.#resolver.promise),
54
- },
55
- finally: {
56
- get: () => this.#resolver.promise.finally.bind(this.#resolver.promise),
57
- },
58
- });
85
+ // PERF: rope (concat strings) is faster than `[].join('')`
86
+ super("", (chunk, current) => current + chunk, (output) => output);
59
87
  }
60
88
  }
89
+ /**
90
+ * Concatenate all chunks into a single `Uint8Array`.
91
+ *
92
+ * If there is only one chunk, it will be returned directly.
93
+ * @param chunks An array of `Uint8Array`s to concatenate
94
+ * @returns An `Uint8Array` containing all chunks. If there is only one chunk, it will be returned directly.
95
+ */
96
+ export function concatUint8Arrays(chunks) {
97
+ switch (chunks.length) {
98
+ case 0:
99
+ return EmptyUint8Array;
100
+ case 1:
101
+ return chunks[0];
102
+ }
103
+ const length = chunks.reduce((a, b) => a + b.length, 0);
104
+ const output = new Uint8Array(length);
105
+ let offset = 0;
106
+ for (const chunk of chunks) {
107
+ output.set(chunk, offset);
108
+ offset += chunk.length;
109
+ }
110
+ return output;
111
+ }
112
+ export function toUint8Array(buffer) {
113
+ if (buffer instanceof Uint8Array) {
114
+ return buffer;
115
+ }
116
+ if (ArrayBuffer.isView(buffer)) {
117
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
118
+ }
119
+ return new Uint8Array(buffer);
120
+ }
121
+ export function concatBuffers(buffers) {
122
+ switch (buffers.length) {
123
+ case 0:
124
+ return EmptyUint8Array;
125
+ case 1:
126
+ return toUint8Array(buffers[0]);
127
+ }
128
+ const length = buffers.reduce((a, b) => a + b.byteLength, 0);
129
+ const output = new Uint8Array(length);
130
+ let offset = 0;
131
+ for (const buffer of buffers) {
132
+ output.set(toUint8Array(buffer), offset);
133
+ offset += buffer.byteLength;
134
+ }
135
+ return output;
136
+ }
61
137
  /**
62
138
  * A `TransformStream` that concatenates `Uint8Array`s.
63
139
  *
64
- * If you want to decode the result as string,
140
+ * Its `readable` is also a Promise-like, that can be `await`ed to get the result.
141
+ *
142
+ * To convert a `ReadableStream<Uint8Array>` to a string,
65
143
  * prefer `.pipeThrough(new TextDecoderStream()).pipeThrough(new ConcatStringStream())`,
66
- * than `.pipeThough(new ConcatBufferStream()).pipeThrough(new TextDecoderStream())`,
67
- * because of JavaScript engine optimizations,
144
+ * to `.pipeThrough(new ConcatBufferStream()).pipeThrough(new TextDecoderStream())`.
145
+ * Because of JavaScript engine optimizations,
68
146
  * concatenating strings is faster than concatenating `Uint8Array`s.
69
147
  */
70
- export class ConcatBufferStream {
71
- #segments = [];
72
- #resolver = new PromiseResolver();
73
- #writable = new WritableStream({
74
- write: (chunk) => {
75
- this.#segments.push(chunk);
76
- },
77
- close: () => {
78
- let result;
79
- let offset = 0;
80
- switch (this.#segments.length) {
81
- case 0:
82
- result = EmptyUint8Array;
83
- break;
84
- case 1:
85
- result = this.#segments[0];
86
- break;
87
- default:
88
- result = new Uint8Array(this.#segments.reduce((prev, item) => prev + item.length, 0));
89
- for (const segment of this.#segments) {
90
- result.set(segment, offset);
91
- offset += segment.length;
92
- }
93
- break;
94
- }
95
- this.#resolver.resolve(result);
96
- this.#readableController.enqueue(result);
97
- this.#readableController.close();
98
- },
99
- abort: (reason) => {
100
- this.#resolver.reject(reason);
101
- this.#readableController.error(reason);
102
- },
103
- });
104
- get writable() {
105
- return this.#writable;
106
- }
107
- #readableController;
108
- #readable = new ReadableStream({
109
- start: (controller) => {
110
- this.#readableController = controller;
111
- },
112
- });
113
- get readable() {
114
- return this.#readable;
115
- }
148
+ export class ConcatBufferStream extends AccumulateStream {
116
149
  constructor() {
117
- void Object.defineProperties(this.#readable, {
118
- then: {
119
- get: () => this.#resolver.promise.then.bind(this.#resolver.promise),
120
- },
121
- catch: {
122
- get: () => this.#resolver.promise.catch.bind(this.#resolver.promise),
123
- },
124
- finally: {
125
- get: () => this.#resolver.promise.finally.bind(this.#resolver.promise),
126
- },
150
+ super([], (chunk, current) => {
151
+ current.push(chunk);
152
+ return current;
153
+ }, (current) => {
154
+ const result = concatUint8Arrays(current);
155
+ // `current` is no longer needed. Clear it to free memory.
156
+ current.length = 0;
157
+ return result;
127
158
  });
128
159
  }
129
160
  }
package/esm/concat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"concat.js","sourceRoot":"","sources":["../src/concat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concat.js","sourceRoot":"","sources":["../src/concat.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Consumable } from "../consumable.js";
2
- import type { QueuingStrategy } from "../stream.js";
3
- import { ReadableStream } from "../stream.js";
2
+ import type { QueuingStrategy } from "../global/index.js";
3
+ import { ReadableStream } from "../global/index.js";
4
4
  export interface ConsumableReadableStreamController<T> {
5
5
  enqueue(chunk: T): Promise<void>;
6
6
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../src/consumable/readable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,kCAAkC,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B,CAAC,CAAC;IAC7C,KAAK,CAAC,CACF,UAAU,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAClD,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,CACD,UAAU,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAClD,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;WAC7D,OAAO,CAAC,CAAC,EAClB,UAAU,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,EACvD,KAAK,EAAE,CAAC;gBAQR,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACzC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;CA+CpC"}
1
+ {"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../src/consumable/readable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,kCAAkC,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B,CAAC,CAAC;IAC7C,KAAK,CAAC,CACF,UAAU,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAClD,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,CACD,UAAU,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAClD,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;WAC7D,OAAO,CAAC,CAAC,EAClB,UAAU,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,EACvD,KAAK,EAAE,CAAC;gBAQR,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACzC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;CA+CpC"}
@@ -1,5 +1,5 @@
1
1
  import { Consumable } from "../consumable.js";
2
- import { ReadableStream } from "../stream.js";
2
+ import { ReadableStream } from "../global/index.js";
3
3
  export class ConsumableReadableStream extends ReadableStream {
4
4
  static async enqueue(controller, chunk) {
5
5
  const output = new Consumable(chunk);
@@ -1 +1 @@
1
- {"version":3,"file":"readable.js","sourceRoot":"","sources":["../../src/consumable/readable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkB9C,MAAM,OAAO,wBAA4B,SAAQ,cAA6B;IAC1E,MAAM,CAAC,KAAK,CAAC,OAAO,CAChB,UAAuD,EACvD,KAAQ;QAER,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,YACI,MAAyC,EACzC,QAA6B;QAE7B,IAAI,iBAAyD,CAAC;QAE9D,IAAI,eAA2D,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACX,eAAe,GAAG,EAAE,CAAC;YACrB,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;gBAC9B,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACrB,eAAe,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC7B,OAAO,QAAQ,CAAC,IAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC,CAAC;YACN,CAAC;QACL,CAAC;QAED,KAAK,CACD;YACI,KAAK,CAAC,UAAU;gBACZ,iBAAiB,GAAG;oBAChB,OAAO,CAAC,KAAK;wBACT,OAAO,wBAAwB,CAAC,OAAO,CACnC,UAAU,EACV,KAAK,CACR,CAAC;oBACN,CAAC;oBACD,KAAK;wBACD,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvB,CAAC;oBACD,KAAK,CAAC,MAAM;wBACR,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC7B,CAAC;iBACJ,CAAC;gBAEF,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI;gBACA,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,CAAC,MAAM;gBACT,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;SACJ,EACD,eAAe,CAClB,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"readable.js","sourceRoot":"","sources":["../../src/consumable/readable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAkBpD,MAAM,OAAO,wBAA4B,SAAQ,cAA6B;IAC1E,MAAM,CAAC,KAAK,CAAC,OAAO,CAChB,UAAuD,EACvD,KAAQ;QAER,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,YACI,MAAyC,EACzC,QAA6B;QAE7B,IAAI,iBAAyD,CAAC;QAE9D,IAAI,eAA2D,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACX,eAAe,GAAG,EAAE,CAAC;YACrB,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;gBAC9B,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACrB,eAAe,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC7B,OAAO,QAAQ,CAAC,IAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC,CAAC;YACN,CAAC;QACL,CAAC;QAED,KAAK,CACD;YACI,KAAK,CAAC,UAAU;gBACZ,iBAAiB,GAAG;oBAChB,OAAO,CAAC,KAAK;wBACT,OAAO,wBAAwB,CAAC,OAAO,CACnC,UAAU,EACV,KAAK,CACR,CAAC;oBACN,CAAC;oBACD,KAAK;wBACD,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvB,CAAC;oBACD,KAAK,CAAC,MAAM;wBACR,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC7B,CAAC;iBACJ,CAAC;gBAEF,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI;gBACA,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,CAAC,MAAM;gBACT,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;SACJ,EACD,eAAe,CAClB,CAAC;IACN,CAAC;CACJ"}
@@ -1,6 +1,9 @@
1
1
  import type { Consumable } from "../consumable.js";
2
- import { ReadableStream } from "../stream.js";
2
+ import { ReadableStream } from "../global/index.js";
3
3
  export declare class ConsumableWrapByteReadableStream extends ReadableStream<Consumable<Uint8Array>> {
4
- constructor(stream: ReadableStream<Uint8Array>, chunkSize: number, min?: number);
4
+ constructor(stream: ReadableStream<Uint8Array>, chunkSize: number, options?: {
5
+ min?: number | undefined;
6
+ onRead?: ((size: number) => void) | undefined;
7
+ });
5
8
  }
6
9
  //# sourceMappingURL=wrap-byte-readable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-byte-readable.d.ts","sourceRoot":"","sources":["../../src/consumable/wrap-byte-readable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,qBAAa,gCAAiC,SAAQ,cAAc,CAChE,UAAU,CAAC,UAAU,CAAC,CACzB;gBAEO,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM;CAqBnB"}
1
+ {"version":3,"file":"wrap-byte-readable.d.ts","sourceRoot":"","sources":["../../src/consumable/wrap-byte-readable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,qBAAa,gCAAiC,SAAQ,cAAc,CAChE,UAAU,CAAC,UAAU,CAAC,CACzB;gBAEO,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;KACjD;CA+BR"}
@@ -1,18 +1,24 @@
1
- import { ReadableStream } from "../stream.js";
1
+ import { ReadableStream } from "../global/index.js";
2
2
  import { ConsumableReadableStream } from "./readable.js";
3
3
  export class ConsumableWrapByteReadableStream extends ReadableStream {
4
- constructor(stream, chunkSize, min) {
4
+ constructor(stream, chunkSize, options) {
5
5
  const reader = stream.getReader({ mode: "byob" });
6
- let array = new Uint8Array(chunkSize);
6
+ let buffer = new ArrayBuffer(chunkSize);
7
7
  super({
8
8
  async pull(controller) {
9
- const { done, value } = await reader.read(array, { min });
9
+ const { done, value } = await reader.read(new Uint8Array(buffer), {
10
+ min: options?.min,
11
+ });
12
+ // `value` might be defined even when `done` is true
13
+ if (value) {
14
+ await ConsumableReadableStream.enqueue(controller, value);
15
+ options?.onRead?.(value.byteLength);
16
+ }
10
17
  if (done) {
11
18
  controller.close();
12
19
  return;
13
20
  }
14
- await ConsumableReadableStream.enqueue(controller, value);
15
- array = new Uint8Array(value.buffer);
21
+ buffer = value.buffer;
16
22
  },
17
23
  cancel(reason) {
18
24
  return reader.cancel(reason);
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-byte-readable.js","sourceRoot":"","sources":["../../src/consumable/wrap-byte-readable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,OAAO,gCAAiC,SAAQ,cAErD;IACG,YACI,MAAkC,EAClC,SAAiB,EACjB,GAAY;QAEZ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,KAAK,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,UAAU;gBACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,IAAI,EAAE,CAAC;oBACP,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO;gBACX,CAAC;gBAED,MAAM,wBAAwB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAE1D,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,CAAC,MAAM;gBACT,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"wrap-byte-readable.js","sourceRoot":"","sources":["../../src/consumable/wrap-byte-readable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,OAAO,gCAAiC,SAAQ,cAErD;IACG,YACI,MAAkC,EAClC,SAAiB,EACjB,OAGC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;QACxC,KAAK,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,UAAU;gBACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CACrC,IAAI,UAAU,CAAC,MAAM,CAAC,EACtB;oBACI,GAAG,EAAE,OAAO,EAAE,GAAG;iBACpB,CACJ,CAAC;gBAEF,oDAAoD;gBACpD,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,wBAAwB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC1D,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC;gBAED,IAAI,IAAI,EAAE,CAAC;oBACP,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO;gBACX,CAAC;gBAED,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,MAAM;gBACT,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import type { Consumable } from "../consumable.js";
2
- import { WritableStream } from "../stream.js";
2
+ import { WritableStream } from "../global/index.js";
3
3
  export declare class ConsumableWrapWritableStream<in T> extends WritableStream<Consumable<T>> {
4
4
  constructor(stream: WritableStream<T>);
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-writable.d.ts","sourceRoot":"","sources":["../../src/consumable/wrap-writable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAE,SAAQ,cAAc,CAClE,UAAU,CAAC,CAAC,CAAC,CAChB;gBACe,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;CAcxC"}
1
+ {"version":3,"file":"wrap-writable.d.ts","sourceRoot":"","sources":["../../src/consumable/wrap-writable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,qBAAa,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAE,SAAQ,cAAc,CAClE,UAAU,CAAC,CAAC,CAAC,CAChB;gBACe,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;CAcxC"}
@@ -1,4 +1,4 @@
1
- import { WritableStream } from "../stream.js";
1
+ import { WritableStream } from "../global/index.js";
2
2
  export class ConsumableWrapWritableStream extends WritableStream {
3
3
  constructor(stream) {
4
4
  const writer = stream.getWriter();
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-writable.js","sourceRoot":"","sources":["../../src/consumable/wrap-writable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,OAAO,4BAAmC,SAAQ,cAEvD;IACG,YAAY,MAAyB;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC;YACF,KAAK,CAAC,KAAK;gBACP,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,KAAK,CAAC,MAAM;gBACR,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,KAAK;gBACD,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"wrap-writable.js","sourceRoot":"","sources":["../../src/consumable/wrap-writable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,4BAAmC,SAAQ,cAEvD;IACG,YAAY,MAAyB;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC;YACF,KAAK,CAAC,KAAK;gBACP,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,KAAK,CAAC,MAAM;gBACR,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,KAAK;gBACD,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
1
  import { Consumable } from "../consumable.js";
2
- import type { QueuingStrategy, WritableStreamDefaultController, WritableStreamDefaultWriter } from "../stream.js";
3
- import { WritableStream } from "../stream.js";
2
+ import type { QueuingStrategy, WritableStreamDefaultController, WritableStreamDefaultWriter } from "../global/index.js";
3
+ import { WritableStream } from "../global/index.js";
4
4
  export interface ConsumableWritableStreamSink<in T> {
5
5
  start?(controller: WritableStreamDefaultController): void | PromiseLike<void>;
6
6
  write?(chunk: T, controller: WritableStreamDefaultController): void | PromiseLike<void>;