@yume-chan/stream-extra 0.0.24 → 2.0.0

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 (88) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/LICENSE +1 -1
  3. package/esm/buffered-transform.d.ts +3 -3
  4. package/esm/buffered-transform.d.ts.map +1 -1
  5. package/esm/buffered-transform.js +14 -8
  6. package/esm/buffered-transform.js.map +1 -1
  7. package/esm/buffered.d.ts +3 -6
  8. package/esm/buffered.d.ts.map +1 -1
  9. package/esm/buffered.js +87 -75
  10. package/esm/buffered.js.map +1 -1
  11. package/esm/concat.js +2 -2
  12. package/esm/concat.js.map +1 -1
  13. package/esm/consumable.d.ts +15 -10
  14. package/esm/consumable.d.ts.map +1 -1
  15. package/esm/consumable.js +82 -86
  16. package/esm/consumable.js.map +1 -1
  17. package/esm/duplex.d.ts +2 -2
  18. package/esm/duplex.d.ts.map +1 -1
  19. package/esm/duplex.js +2 -6
  20. package/esm/duplex.js.map +1 -1
  21. package/esm/index.d.ts +1 -0
  22. package/esm/index.d.ts.map +1 -1
  23. package/esm/index.js +1 -0
  24. package/esm/index.js.map +1 -1
  25. package/esm/maybe-consumable-ns.d.ts +16 -0
  26. package/esm/maybe-consumable-ns.d.ts.map +1 -0
  27. package/esm/maybe-consumable-ns.js +44 -0
  28. package/esm/maybe-consumable-ns.js.map +1 -0
  29. package/esm/maybe-consumable.d.ts +2 -19
  30. package/esm/maybe-consumable.d.ts.map +1 -1
  31. package/esm/maybe-consumable.js +1 -61
  32. package/esm/maybe-consumable.js.map +1 -1
  33. package/esm/push-readable.d.ts +16 -2
  34. package/esm/push-readable.d.ts.map +1 -1
  35. package/esm/push-readable.js +176 -17
  36. package/esm/push-readable.js.map +1 -1
  37. package/esm/split-string.d.ts.map +1 -1
  38. package/esm/split-string.js +19 -14
  39. package/esm/split-string.js.map +1 -1
  40. package/esm/stream.d.ts +5 -5
  41. package/esm/stream.d.ts.map +1 -1
  42. package/esm/stream.js +54 -5
  43. package/esm/stream.js.map +1 -1
  44. package/esm/struct-deserialize.d.ts +3 -4
  45. package/esm/struct-deserialize.d.ts.map +1 -1
  46. package/esm/struct-deserialize.js.map +1 -1
  47. package/esm/struct-serialize.d.ts +2 -2
  48. package/esm/struct-serialize.d.ts.map +1 -1
  49. package/esm/struct-serialize.js.map +1 -1
  50. package/esm/task.d.ts.map +1 -1
  51. package/esm/task.js +2 -2
  52. package/esm/task.js.map +1 -1
  53. package/esm/try-close.d.ts +10 -0
  54. package/esm/try-close.d.ts.map +1 -0
  55. package/esm/try-close.js +19 -0
  56. package/esm/try-close.js.map +1 -0
  57. package/esm/types.d.ts +3 -3
  58. package/esm/types.d.ts.map +1 -1
  59. package/esm/types.js.map +1 -1
  60. package/esm/wrap-readable.d.ts +5 -4
  61. package/esm/wrap-readable.d.ts.map +1 -1
  62. package/esm/wrap-readable.js +14 -9
  63. package/esm/wrap-readable.js.map +1 -1
  64. package/esm/wrap-writable.d.ts +2 -2
  65. package/esm/wrap-writable.d.ts.map +1 -1
  66. package/esm/wrap-writable.js +4 -6
  67. package/esm/wrap-writable.js.map +1 -1
  68. package/package.json +11 -13
  69. package/src/buffered-transform.ts +21 -11
  70. package/src/buffered.ts +107 -83
  71. package/src/concat.ts +2 -2
  72. package/src/consumable.ts +117 -112
  73. package/src/duplex.ts +4 -7
  74. package/src/index.ts +1 -0
  75. package/src/maybe-consumable-ns.ts +75 -0
  76. package/src/maybe-consumable.ts +2 -98
  77. package/src/push-readable.ts +213 -19
  78. package/src/split-string.ts +22 -21
  79. package/src/stream.ts +68 -8
  80. package/src/struct-deserialize.ts +3 -6
  81. package/src/struct-serialize.ts +3 -3
  82. package/src/task.ts +2 -2
  83. package/src/try-close.ts +44 -0
  84. package/src/types.ts +3 -2
  85. package/src/wrap-readable.ts +20 -14
  86. package/src/wrap-writable.ts +6 -9
  87. package/tsconfig.build.tsbuildinfo +1 -1
  88. package/CHANGELOG.json +0 -104
package/CHANGELOG.md CHANGED
@@ -1,8 +1,30 @@
1
1
  # Change Log - @yume-chan/stream-extra
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [b79df96]
8
+ - @yume-chan/struct@2.0.0
9
+
10
+ ## 1.0.1
11
+
12
+ ### Patch Changes
13
+
14
+ - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
15
+
16
+ Because Changesets doesn't support alpha versions (`0.x.x`), this version is `1.0.0`. Future versions will follow SemVer rules, for example, breaking API changes will introduce a new major version.
17
+
18
+ - ea5002b: Polyfill `ReadableStream.from` and `ReadableStream.prototype.values`
19
+ - Updated dependencies [53688d3]
20
+ - Updated dependencies [db8466f]
21
+ - Updated dependencies [db8466f]
22
+ - @yume-chan/struct@1.0.1
23
+
3
24
  This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
4
25
 
5
26
  ## 0.0.24
27
+
6
28
  Tue, 18 Jun 2024 02:49:43 GMT
7
29
 
8
30
  ### Updates
@@ -12,6 +34,7 @@ Tue, 18 Jun 2024 02:49:43 GMT
12
34
  - Move `Consumable` related types to the `Consumable` namespace. In future, more types will be moved to namespaces.
13
35
 
14
36
  ## 0.0.23
37
+
15
38
  Thu, 21 Mar 2024 03:15:10 GMT
16
39
 
17
40
  ### Updates
@@ -21,11 +44,13 @@ Thu, 21 Mar 2024 03:15:10 GMT
21
44
  - Remove web-streams-polyfill dependency. The runtime must have global stream implementations (or you can add a polyfill yourself).
22
45
 
23
46
  ## 0.0.22
47
+
24
48
  Wed, 13 Dec 2023 05:57:27 GMT
25
49
 
26
50
  _Version update only_
27
51
 
28
52
  ## 0.0.21
53
+
29
54
  Fri, 25 Aug 2023 14:05:18 GMT
30
55
 
31
56
  ### Updates
@@ -33,6 +58,7 @@ Fri, 25 Aug 2023 14:05:18 GMT
33
58
  - Replace `GatherStringStream` with `ConcatStringStream` which can be treated as a Promise
34
59
 
35
60
  ## 0.0.20
61
+
36
62
  Mon, 05 Jun 2023 02:51:41 GMT
37
63
 
38
64
  ### Updates
@@ -41,6 +67,7 @@ Mon, 05 Jun 2023 02:51:41 GMT
41
67
  - Use ECMAScript private class fields syntax (supported by Chrome 74, Firefox 90, Safari 14.1 and Node.js 12.0.0).
42
68
 
43
69
  ## 0.0.19
70
+
44
71
  Sun, 09 Apr 2023 05:55:33 GMT
45
72
 
46
73
  ### Updates
@@ -48,6 +75,7 @@ Sun, 09 Apr 2023 05:55:33 GMT
48
75
  - Add an option to combine small chunks into target size in `ChunkStream`, and rename it to `DistributionStream`
49
76
 
50
77
  ## 0.0.18
78
+
51
79
  Wed, 25 Jan 2023 21:33:49 GMT
52
80
 
53
81
  ### Updates
@@ -55,7 +83,7 @@ Wed, 25 Jan 2023 21:33:49 GMT
55
83
  - Change to load native Web Streams API implementation from `globalThis` if available
56
84
 
57
85
  ## 0.0.17
86
+
58
87
  Tue, 18 Oct 2022 09:32:30 GMT
59
88
 
60
89
  _Initial release_
61
-
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2024 Simon Chan
3
+ Copyright (c) 2020-2025 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,11 +1,11 @@
1
- import type { ValueOrPromise } from "@yume-chan/struct";
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import { BufferedReadableStream } from "./buffered.js";
3
3
  import type { ReadableWritablePair } from "./stream.js";
4
4
  import { ReadableStream, WritableStream } from "./stream.js";
5
5
  export declare class BufferedTransformStream<T> implements ReadableWritablePair<T, Uint8Array> {
6
6
  #private;
7
7
  get readable(): ReadableStream<T>;
8
- get writable(): WritableStream<Uint8Array>;
9
- constructor(transform: (stream: BufferedReadableStream) => ValueOrPromise<T>);
8
+ get writable(): WritableStream<Uint8Array<ArrayBufferLike>>;
9
+ constructor(transform: (stream: BufferedReadableStream) => MaybePromiseLike<T>);
10
10
  }
11
11
  //# sourceMappingURL=buffered-transform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffered-transform.d.ts","sourceRoot":"","sources":["../src/buffered-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,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,+BAEX;gBAGG,SAAS,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,cAAc,CAAC,CAAC,CAAC;CA8CvE"}
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"}
@@ -14,9 +14,10 @@ export class BufferedTransformStream {
14
14
  }
15
15
  constructor(transform) {
16
16
  // Convert incoming chunks to a `BufferedReadableStream`
17
- let sourceStreamController;
17
+ let bufferedStreamController;
18
+ let writableStreamController;
18
19
  const buffered = new BufferedReadableStream(new PushReadableStream((controller) => {
19
- sourceStreamController = controller;
20
+ bufferedStreamController = controller;
20
21
  }));
21
22
  this.#readable = new ReadableStream({
22
23
  async pull(controller) {
@@ -36,20 +37,25 @@ export class BufferedTransformStream {
36
37
  }
37
38
  },
38
39
  cancel: (reason) => {
39
- // Propagate cancel to the source stream
40
- // So future writes will be rejected
41
- return buffered.cancel(reason);
40
+ // If a `ReadableStream` is piping into `#writable`,
41
+ // This will cancel the `ReadableStream` immediately.
42
+ // If upstream is writing using `#writable`'s writer, this will
43
+ // throw errors for any future writes
44
+ return writableStreamController.error(reason);
42
45
  },
43
46
  });
44
47
  this.#writable = new WritableStream({
48
+ start(controller) {
49
+ writableStreamController = controller;
50
+ },
45
51
  async write(chunk) {
46
- await sourceStreamController.enqueue(chunk);
52
+ await bufferedStreamController.enqueue(chunk);
47
53
  },
48
54
  abort() {
49
- sourceStreamController.close();
55
+ bufferedStreamController.close();
50
56
  },
51
57
  close() {
52
- sourceStreamController.close();
58
+ bufferedStreamController.close();
53
59
  },
54
60
  });
55
61
  }
@@ -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;AAExD,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,SAAgE;QAEhE,wDAAwD;QACxD,IAAI,sBAAiE,CAAC;QAEtE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACvC,IAAI,kBAAkB,CAAa,CAAC,UAAU,EAAE,EAAE;YAC9C,sBAAsB,GAAG,UAAU,CAAC;QACxC,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,wCAAwC;gBACxC,oCAAoC;gBACpC,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,KAAK,CAAC,KAAK;gBACb,MAAM,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;YACD,KAAK;gBACD,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;YACD,KAAK;gBACD,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACnC,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;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"}
package/esm/buffered.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
1
2
  import type { AsyncExactReadable } from "@yume-chan/struct";
2
3
  import type { ReadableStream, ReadableStreamDefaultReader } from "./stream.js";
3
4
  export declare class BufferedReadableStream implements AsyncExactReadable {
@@ -6,12 +7,8 @@ export declare class BufferedReadableStream implements AsyncExactReadable {
6
7
  protected readonly stream: ReadableStream<Uint8Array>;
7
8
  protected readonly reader: ReadableStreamDefaultReader<Uint8Array>;
8
9
  constructor(stream: ReadableStream<Uint8Array>);
9
- /**
10
- *
11
- * @param length
12
- * @returns
13
- */
14
- readExactly(length: number): Uint8Array | Promise<Uint8Array>;
10
+ iterateExactly(length: number): Iterator<MaybePromiseLike<Uint8Array>, void, void>;
11
+ readExactly: (this: BufferedReadableStream, length: number) => MaybePromiseLike<Uint8Array<ArrayBufferLike>>;
15
12
  /**
16
13
  * Return a readable stream with unconsumed data (if any) and
17
14
  * all data from the wrapped stream.
@@ -1 +1 @@
1
- {"version":3,"file":"buffered.d.ts","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAM/E,qBAAa,sBAAuB,YAAW,kBAAkB;;IAM7D,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;IAsE9C;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB7D;;;;OAIG;IACH,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC;IA6B/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;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"}
package/esm/buffered.js CHANGED
@@ -1,10 +1,10 @@
1
- import { ExactReadableEndedError } from "@yume-chan/struct";
1
+ import { bipedal, ExactReadableEndedError } from "@yume-chan/struct";
2
2
  import { PushReadableStream } from "./push-readable.js";
3
- const NOOP = () => {
4
- // no-op
5
- };
3
+ import { tryCancel } from "./try-close.js";
6
4
  export class BufferedReadableStream {
7
5
  #buffered;
6
+ // PERF: `subarray` is slow
7
+ // don't use it until absolutely necessary
8
8
  #bufferedOffset = 0;
9
9
  #bufferedLength = 0;
10
10
  #position = 0;
@@ -17,89 +17,104 @@ export class BufferedReadableStream {
17
17
  this.stream = stream;
18
18
  this.reader = stream.getReader();
19
19
  }
20
- async #readSource() {
20
+ #readBuffered(length) {
21
+ if (!this.#buffered) {
22
+ return undefined;
23
+ }
24
+ const value = this.#buffered.subarray(this.#bufferedOffset, this.#bufferedOffset + length);
25
+ // PERF: Synchronous path for reading from internal buffer
26
+ if (this.#bufferedLength > length) {
27
+ this.#position += length;
28
+ this.#bufferedOffset += length;
29
+ this.#bufferedLength -= length;
30
+ return value;
31
+ }
32
+ this.#position += this.#bufferedLength;
33
+ this.#buffered = undefined;
34
+ this.#bufferedOffset = 0;
35
+ this.#bufferedLength = 0;
36
+ return value;
37
+ }
38
+ async #readSource(length) {
21
39
  const { done, value } = await this.reader.read();
22
40
  if (done) {
23
41
  throw new ExactReadableEndedError();
24
42
  }
43
+ if (value.length > length) {
44
+ this.#buffered = value;
45
+ this.#bufferedOffset = length;
46
+ this.#bufferedLength = value.length - length;
47
+ this.#position += length;
48
+ return value.subarray(0, length);
49
+ }
50
+ this.#position += value.length;
25
51
  return value;
26
52
  }
27
- async #readAsync(length, initial) {
53
+ iterateExactly(length) {
54
+ let state = this.#buffered ? 0 : 1;
55
+ return {
56
+ next: () => {
57
+ switch (state) {
58
+ case 0: {
59
+ const value = this.#readBuffered(length);
60
+ if (value.length === length) {
61
+ state = 2;
62
+ }
63
+ else {
64
+ length -= value.length;
65
+ state = 1;
66
+ }
67
+ return { done: false, value };
68
+ }
69
+ case 1:
70
+ state = 3;
71
+ return {
72
+ done: false,
73
+ value: this.#readSource(length).then((value) => {
74
+ if (value.length === length) {
75
+ state = 2;
76
+ }
77
+ else {
78
+ length -= value.length;
79
+ state = 1;
80
+ }
81
+ return value;
82
+ }),
83
+ };
84
+ case 2:
85
+ return { done: true, value: undefined };
86
+ case 3:
87
+ throw new Error("Can't call `next` before previous Promise resolves");
88
+ default:
89
+ throw new Error("unreachable");
90
+ }
91
+ },
92
+ };
93
+ }
94
+ readExactly = bipedal(function* (then, length) {
28
95
  let result;
29
- let index;
96
+ let index = 0;
97
+ const initial = this.#readBuffered(length);
30
98
  if (initial) {
99
+ if (initial.length === length) {
100
+ return initial;
101
+ }
31
102
  result = new Uint8Array(length);
32
- result.set(initial);
33
- index = initial.length;
103
+ result.set(initial, index);
104
+ index += initial.length;
34
105
  length -= initial.length;
35
106
  }
36
107
  else {
37
- const array = await this.#readSource();
38
- if (array.length === length) {
39
- this.#position += length;
40
- return array;
41
- }
42
- if (array.length > length) {
43
- this.#buffered = array;
44
- this.#bufferedOffset = length;
45
- this.#bufferedLength = array.length - length;
46
- this.#position += length;
47
- return array.subarray(0, length);
48
- }
49
108
  result = new Uint8Array(length);
50
- result.set(array);
51
- index = array.length;
52
- length -= array.length;
53
- this.#position += array.length;
54
109
  }
55
110
  while (length > 0) {
56
- const array = await this.#readSource();
57
- if (array.length === length) {
58
- result.set(array, index);
59
- this.#position += length;
60
- return result;
61
- }
62
- if (array.length > length) {
63
- this.#buffered = array;
64
- this.#bufferedOffset = length;
65
- this.#bufferedLength = array.length - length;
66
- result.set(array.subarray(0, length), index);
67
- this.#position += length;
68
- return result;
69
- }
70
- result.set(array, index);
71
- index += array.length;
72
- length -= array.length;
73
- this.#position += array.length;
111
+ const value = yield* then(this.#readSource(length));
112
+ result.set(value, index);
113
+ index += value.length;
114
+ length -= value.length;
74
115
  }
75
116
  return result;
76
- }
77
- /**
78
- *
79
- * @param length
80
- * @returns
81
- */
82
- readExactly(length) {
83
- // PERF: Add a synchronous path for reading from internal buffer
84
- if (this.#buffered) {
85
- const array = this.#buffered;
86
- const offset = this.#bufferedOffset;
87
- if (this.#bufferedLength > length) {
88
- // PERF: `subarray` is slow
89
- // don't use it until absolutely necessary
90
- this.#bufferedOffset += length;
91
- this.#bufferedLength -= length;
92
- this.#position += length;
93
- return array.subarray(offset, offset + length);
94
- }
95
- this.#buffered = undefined;
96
- this.#bufferedLength = 0;
97
- this.#bufferedOffset = 0;
98
- this.#position += array.length - offset;
99
- return this.#readAsync(length, array.subarray(offset));
100
- }
101
- return this.#readAsync(length);
102
- }
117
+ });
103
118
  /**
104
119
  * Return a readable stream with unconsumed data (if any) and
105
120
  * all data from the wrapped stream.
@@ -112,8 +127,7 @@ export class BufferedReadableStream {
112
127
  const buffered = this.#buffered.subarray(this.#bufferedOffset);
113
128
  await controller.enqueue(buffered);
114
129
  controller.abortSignal.addEventListener("abort", () => {
115
- // NOOP: the reader might already be released
116
- this.reader.cancel().catch(NOOP);
130
+ void tryCancel(this.reader);
117
131
  });
118
132
  // Manually pipe the stream
119
133
  while (true) {
@@ -121,9 +135,7 @@ export class BufferedReadableStream {
121
135
  if (done) {
122
136
  return;
123
137
  }
124
- else {
125
- await controller.enqueue(value);
126
- }
138
+ await controller.enqueue(value);
127
139
  }
128
140
  });
129
141
  }
@@ -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.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { PromiseResolver } from "@yume-chan/async";
2
- import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct";
2
+ import { EmptyUint8Array } from "@yume-chan/struct";
3
3
  import { ReadableStream, WritableStream } from "./stream.js";
4
4
  // `TransformStream` only calls its `source.flush` method when its `readable` is being read.
5
5
  // If the user want to use the `Promise` interface, the `flush` method will never be called,
@@ -79,7 +79,7 @@ export class ConcatBufferStream {
79
79
  let offset = 0;
80
80
  switch (this.#segments.length) {
81
81
  case 0:
82
- result = EMPTY_UINT8_ARRAY;
82
+ result = EmptyUint8Array;
83
83
  break;
84
84
  case 1:
85
85
  result = this.#segments[0];
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,7 +1,19 @@
1
1
  import type { QueuingStrategy, WritableStreamDefaultController, WritableStreamDefaultWriter } from "./stream.js";
2
2
  import { ReadableStream as NativeReadableStream, WritableStream as NativeWritableStream } from "./stream.js";
3
+ declare class WritableStream<in T> extends NativeWritableStream<Consumable<T>> {
4
+ static write<T>(writer: WritableStreamDefaultWriter<Consumable<T>>, value: T): Promise<void>;
5
+ constructor(sink: Consumable.WritableStreamSink<T>, strategy?: QueuingStrategy<T>);
6
+ }
7
+ declare class ReadableStream<T> extends NativeReadableStream<Consumable<T>> {
8
+ static enqueue<T>(controller: {
9
+ enqueue: (chunk: Consumable<T>) => void;
10
+ }, chunk: T): Promise<void>;
11
+ constructor(source: Consumable.ReadableStreamSource<T>, strategy?: QueuingStrategy<T>);
12
+ }
3
13
  export declare class Consumable<T> {
4
14
  #private;
15
+ static readonly WritableStream: typeof WritableStream;
16
+ static readonly ReadableStream: typeof ReadableStream;
5
17
  readonly value: T;
6
18
  readonly consumed: Promise<void>;
7
19
  constructor(value: T);
@@ -16,10 +28,7 @@ export declare namespace Consumable {
16
28
  abort?(reason: unknown): void | PromiseLike<void>;
17
29
  close?(): void | PromiseLike<void>;
18
30
  }
19
- class WritableStream<in T> extends NativeWritableStream<Consumable<T>> {
20
- static write<T>(writer: WritableStreamDefaultWriter<Consumable<T>>, value: T): Promise<void>;
21
- constructor(sink: WritableStreamSink<T>, strategy?: QueuingStrategy<T>);
22
- }
31
+ type WritableStream<in T> = typeof Consumable.WritableStream<T>;
23
32
  interface ReadableStreamController<T> {
24
33
  enqueue(chunk: T): Promise<void>;
25
34
  close(): void;
@@ -30,11 +39,7 @@ export declare namespace Consumable {
30
39
  pull?(controller: ReadableStreamController<T>): void | PromiseLike<void>;
31
40
  cancel?(reason: unknown): void | PromiseLike<void>;
32
41
  }
33
- class ReadableStream<T> extends NativeReadableStream<Consumable<T>> {
34
- static enqueue<T>(controller: {
35
- enqueue: (chunk: Consumable<T>) => void;
36
- }, chunk: T): Promise<void>;
37
- constructor(source: ReadableStreamSource<T>, strategy?: QueuingStrategy<T>);
38
- }
42
+ type ReadableStream<T> = typeof Consumable.ReadableStream<T>;
39
43
  }
44
+ export {};
40
45
  //# sourceMappingURL=consumable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consumable.d.ts","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,eAAe,EACf,+BAA+B,EAC/B,2BAA2B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,cAAc,IAAI,oBAAoB,EACtC,cAAc,IAAI,oBAAoB,EACzC,MAAM,aAAa,CAAC;AAQrB,qBAAa,UAAU,CAAC,CAAC;;IAIrB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAErB,KAAK,EAAE,CAAC;IAOpB,OAAO;IAIP,KAAK,CAAC,KAAK,EAAE,OAAO;IAIpB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;CAuB1C;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,CACF,UAAU,EAAE,+BAA+B,GAC5C,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,CAAC,CACF,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,+BAA+B,GAC5C,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;KACtC;IAED,MAAa,cAAc,CAAC,EAAE,CAAC,CAAC,CAAE,SAAQ,oBAAoB,CAC1D,UAAU,CAAC,CAAC,CAAC,CAChB;eACgB,KAAK,CAAC,CAAC,EAChB,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAClD,KAAK,EAAE,CAAC;oBAQR,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;KAqCpC;IAED,UAAiB,wBAAwB,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,IAAI,CAAC;QACd,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;KAChC;IAED,UAAiB,oBAAoB,CAAC,CAAC;QACnC,KAAK,CAAC,CACF,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACxC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,CACD,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACxC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;KACtD;IAED,MAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;eACzD,OAAO,CAAC,CAAC,EAClB,UAAU,EAAE;YAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;SAAE,EACvD,KAAK,EAAE,CAAC;oBAQR,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC/B,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;KA4CpC;CACJ"}
1
+ {"version":3,"file":"consumable.d.ts","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"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"}