@yume-chan/stream-extra 0.0.19 → 0.0.20
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.
- package/CHANGELOG.json +48 -33
- package/CHANGELOG.md +10 -1
- package/esm/buffered-transform.d.ts +1 -2
- package/esm/buffered-transform.d.ts.map +1 -1
- package/esm/buffered-transform.js +10 -9
- package/esm/buffered-transform.js.map +1 -1
- package/esm/buffered.d.ts +4 -9
- package/esm/buffered.d.ts.map +1 -1
- package/esm/buffered.js +34 -30
- package/esm/buffered.js.map +1 -1
- package/esm/consumable.d.ts +1 -2
- package/esm/consumable.d.ts.map +1 -1
- package/esm/consumable.js +9 -9
- package/esm/consumable.js.map +1 -1
- package/esm/distribution.d.ts +1 -4
- package/esm/distribution.d.ts.map +1 -1
- package/esm/distribution.js +29 -29
- package/esm/distribution.js.map +1 -1
- package/esm/duplex.d.ts +1 -5
- package/esm/duplex.d.ts.map +1 -1
- package/esm/duplex.js +21 -19
- package/esm/duplex.js.map +1 -1
- package/esm/gather-string.d.ts +1 -1
- package/esm/gather-string.d.ts.map +1 -1
- package/esm/gather-string.js +3 -3
- package/esm/gather-string.js.map +1 -1
- package/esm/push-readable.d.ts.map +1 -1
- package/esm/push-readable.js +11 -6
- package/esm/push-readable.js.map +1 -1
- package/esm/wrap-readable.d.ts +1 -1
- package/esm/wrap-readable.d.ts.map +1 -1
- package/esm/wrap-readable.js +4 -4
- package/esm/wrap-readable.js.map +1 -1
- package/esm/wrap-writable.d.ts +1 -1
- package/esm/wrap-writable.d.ts.map +1 -1
- package/esm/wrap-writable.js +5 -5
- package/esm/wrap-writable.js.map +1 -1
- package/package.json +6 -6
- package/src/buffered-transform.ts +10 -12
- package/src/buffered.ts +38 -32
- package/src/consumable.ts +11 -11
- package/src/distribution.ts +31 -31
- package/src/duplex.ts +21 -19
- package/src/gather-string.ts +3 -3
- package/src/push-readable.ts +10 -6
- package/src/wrap-readable.ts +4 -4
- package/src/wrap-writable.ts +5 -5
- package/tsconfig.build.json +6 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/chunk.d.ts +0 -8
- package/esm/chunk.d.ts.map +0 -1
- package/esm/chunk.js +0 -56
- package/esm/chunk.js.map +0 -1
- package/esm/trace.d.ts +0 -16
- package/esm/trace.d.ts.map +0 -1
- package/esm/trace.js +0 -131
- package/esm/trace.js.map +0 -1
package/CHANGELOG.json
CHANGED
|
@@ -1,35 +1,50 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
2
|
+
"name": "@yume-chan/stream-extra",
|
|
3
|
+
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.0.20",
|
|
6
|
+
"tag": "@yume-chan/stream-extra_v0.0.20",
|
|
7
|
+
"date": "Mon, 05 Jun 2023 02:51:41 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"none": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Fix a bug where `BufferedReadableStream#release` might output duplicate data."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"comment": "Use ECMAScript private class fields syntax (supported by Chrome 74, Firefox 90, Safari 14.1 and Node.js 12.0.0)."
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"version": "0.0.19",
|
|
21
|
+
"tag": "@yume-chan/stream-extra_v0.0.19",
|
|
22
|
+
"date": "Sun, 09 Apr 2023 05:55:33 GMT",
|
|
23
|
+
"comments": {
|
|
24
|
+
"none": [
|
|
25
|
+
{
|
|
26
|
+
"comment": "Add an option to combine small chunks into target size in `ChunkStream`, and rename it to `DistributionStream`"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"version": "0.0.18",
|
|
33
|
+
"tag": "@yume-chan/stream-extra_v0.0.18",
|
|
34
|
+
"date": "Wed, 25 Jan 2023 21:33:49 GMT",
|
|
35
|
+
"comments": {
|
|
36
|
+
"none": [
|
|
37
|
+
{
|
|
38
|
+
"comment": "Change to load native Web Streams API implementation from `globalThis` if available"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"version": "0.0.17",
|
|
45
|
+
"tag": "@yume-chan/stream-extra_v0.0.17",
|
|
46
|
+
"date": "Tue, 18 Oct 2022 09:32:30 GMT",
|
|
47
|
+
"comments": {}
|
|
48
|
+
}
|
|
49
|
+
]
|
|
35
50
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# Change Log - @yume-chan/stream-extra
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Mon, 05 Jun 2023 02:51:41 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.0.20
|
|
6
|
+
Mon, 05 Jun 2023 02:51:41 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- Fix a bug where `BufferedReadableStream#release` might output duplicate data.
|
|
11
|
+
- Use ECMAScript private class fields syntax (supported by Chrome 74, Firefox 90, Safari 14.1 and Node.js 12.0.0).
|
|
4
12
|
|
|
5
13
|
## 0.0.19
|
|
6
14
|
Sun, 09 Apr 2023 05:55:33 GMT
|
|
@@ -20,3 +28,4 @@ Wed, 25 Jan 2023 21:33:49 GMT
|
|
|
20
28
|
Tue, 18 Oct 2022 09:32:30 GMT
|
|
21
29
|
|
|
22
30
|
_Initial release_
|
|
31
|
+
|
|
@@ -3,9 +3,8 @@ 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
|
-
private
|
|
6
|
+
#private;
|
|
7
7
|
get readable(): ReadableStream<T>;
|
|
8
|
-
private _writable;
|
|
9
8
|
get writable(): WritableStream<Uint8Array>;
|
|
10
9
|
constructor(transform: (stream: BufferedReadableStream) => ValueOrPromise<T>);
|
|
11
10
|
}
|
|
@@ -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;
|
|
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,IAAW,QAAQ,sBAElB;IAGD,IAAW,QAAQ,+BAElB;gBAGG,SAAS,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,cAAc,CAAC,CAAC,CAAC;CA8CvE"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StructEmptyError } from "@yume-chan/struct";
|
|
2
|
+
import { BufferedReadableStream } from "./buffered.js";
|
|
2
3
|
import { PushReadableStream } from "./push-readable.js";
|
|
3
4
|
import { ReadableStream, WritableStream } from "./stream.js";
|
|
4
5
|
// TODO: BufferedTransformStream: find better implementation
|
|
5
6
|
export class BufferedTransformStream {
|
|
6
|
-
|
|
7
|
+
#readable;
|
|
7
8
|
get readable() {
|
|
8
|
-
return this
|
|
9
|
+
return this.#readable;
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
+
#writable;
|
|
11
12
|
get writable() {
|
|
12
|
-
return this
|
|
13
|
+
return this.#writable;
|
|
13
14
|
}
|
|
14
15
|
constructor(transform) {
|
|
15
16
|
// Convert incoming chunks to a `BufferedReadableStream`
|
|
@@ -17,17 +18,17 @@ export class BufferedTransformStream {
|
|
|
17
18
|
const buffered = new BufferedReadableStream(new PushReadableStream((controller) => {
|
|
18
19
|
sourceStreamController = controller;
|
|
19
20
|
}));
|
|
20
|
-
this
|
|
21
|
+
this.#readable = new ReadableStream({
|
|
21
22
|
async pull(controller) {
|
|
22
23
|
try {
|
|
23
24
|
const value = await transform(buffered);
|
|
24
25
|
controller.enqueue(value);
|
|
25
26
|
}
|
|
26
27
|
catch (e) {
|
|
27
|
-
// Treat `
|
|
28
|
+
// Treat `StructEmptyError` as a normal end.
|
|
28
29
|
// If the `transform` method doesn't have enough data to return a value,
|
|
29
30
|
// it should throw another error to indicate that.
|
|
30
|
-
if (e instanceof
|
|
31
|
+
if (e instanceof StructEmptyError) {
|
|
31
32
|
controller.close();
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
@@ -40,7 +41,7 @@ export class BufferedTransformStream {
|
|
|
40
41
|
return buffered.cancel(reason);
|
|
41
42
|
},
|
|
42
43
|
});
|
|
43
|
-
this
|
|
44
|
+
this.#writable = new WritableStream({
|
|
44
45
|
async write(chunk) {
|
|
45
46
|
await sourceStreamController.enqueue(chunk);
|
|
46
47
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffered-transform.js","sourceRoot":"","sources":["../src/buffered-transform.ts"],"names":[],"mappings":"
|
|
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,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,SAAS,CAA6B;IACtC,IAAW,QAAQ;QACf,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;oBACA,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACxC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC7B;gBAAC,OAAO,CAAC,EAAE;oBACR,4CAA4C;oBAC5C,wEAAwE;oBACxE,kDAAkD;oBAClD,IAAI,CAAC,YAAY,gBAAgB,EAAE;wBAC/B,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO;qBACV;oBACD,MAAM,CAAC,CAAC;iBACX;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"}
|
package/esm/buffered.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
+
import type { AsyncExactReadable } from "@yume-chan/struct";
|
|
1
2
|
import type { ReadableStream, ReadableStreamDefaultReader } from "./stream.js";
|
|
2
|
-
export declare class
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
export declare class BufferedReadableStream {
|
|
6
|
-
private buffered;
|
|
7
|
-
private bufferedOffset;
|
|
8
|
-
private bufferedLength;
|
|
9
|
-
private _position;
|
|
3
|
+
export declare class BufferedReadableStream implements AsyncExactReadable {
|
|
4
|
+
#private;
|
|
10
5
|
get position(): number;
|
|
11
6
|
protected readonly stream: ReadableStream<Uint8Array>;
|
|
12
7
|
protected readonly reader: ReadableStreamDefaultReader<Uint8Array>;
|
|
@@ -18,7 +13,7 @@ export declare class BufferedReadableStream {
|
|
|
18
13
|
* @param length
|
|
19
14
|
* @returns
|
|
20
15
|
*/
|
|
21
|
-
|
|
16
|
+
readExactly(length: number): Uint8Array | Promise<Uint8Array>;
|
|
22
17
|
/**
|
|
23
18
|
* Return a readable stream with unconsumed data (if any) and
|
|
24
19
|
* all data from the wrapped stream.
|
package/esm/buffered.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffered.d.ts","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"
|
|
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,IAAW,QAAQ,WAElB;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAEhD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;YAKvC,UAAU;YASV,SAAS;IAmDvB;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBpE;;;;OAIG;IACI,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC;IA6BrC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;CAGjC"}
|
package/esm/buffered.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
+
import { ExactReadableEndedError } from "@yume-chan/struct";
|
|
1
2
|
import { PushReadableStream } from "./push-readable.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// Fix Error's prototype chain when compiling to ES5
|
|
6
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
3
|
+
const NOOP = () => {
|
|
4
|
+
// no-op
|
|
5
|
+
};
|
|
9
6
|
export class BufferedReadableStream {
|
|
10
|
-
buffered;
|
|
11
|
-
bufferedOffset = 0;
|
|
12
|
-
bufferedLength = 0;
|
|
13
|
-
|
|
7
|
+
#buffered;
|
|
8
|
+
#bufferedOffset = 0;
|
|
9
|
+
#bufferedLength = 0;
|
|
10
|
+
#position = 0;
|
|
14
11
|
get position() {
|
|
15
|
-
return this
|
|
12
|
+
return this.#position;
|
|
16
13
|
}
|
|
17
14
|
stream;
|
|
18
15
|
reader;
|
|
@@ -23,9 +20,9 @@ export class BufferedReadableStream {
|
|
|
23
20
|
async readSource() {
|
|
24
21
|
const { done, value } = await this.reader.read();
|
|
25
22
|
if (done) {
|
|
26
|
-
throw new
|
|
23
|
+
throw new ExactReadableEndedError();
|
|
27
24
|
}
|
|
28
|
-
this
|
|
25
|
+
this.#position += value.byteLength;
|
|
29
26
|
return value;
|
|
30
27
|
}
|
|
31
28
|
async readAsync(length, initial) {
|
|
@@ -43,9 +40,9 @@ export class BufferedReadableStream {
|
|
|
43
40
|
return array;
|
|
44
41
|
}
|
|
45
42
|
if (array.byteLength > length) {
|
|
46
|
-
this
|
|
47
|
-
this
|
|
48
|
-
this
|
|
43
|
+
this.#buffered = array;
|
|
44
|
+
this.#bufferedOffset = length;
|
|
45
|
+
this.#bufferedLength = array.byteLength - length;
|
|
49
46
|
return array.subarray(0, length);
|
|
50
47
|
}
|
|
51
48
|
result = new Uint8Array(length);
|
|
@@ -60,9 +57,9 @@ export class BufferedReadableStream {
|
|
|
60
57
|
return result;
|
|
61
58
|
}
|
|
62
59
|
if (array.byteLength > length) {
|
|
63
|
-
this
|
|
64
|
-
this
|
|
65
|
-
this
|
|
60
|
+
this.#buffered = array;
|
|
61
|
+
this.#bufferedOffset = length;
|
|
62
|
+
this.#bufferedLength = array.byteLength - length;
|
|
66
63
|
result.set(array.subarray(0, length), index);
|
|
67
64
|
return result;
|
|
68
65
|
}
|
|
@@ -77,19 +74,21 @@ export class BufferedReadableStream {
|
|
|
77
74
|
* @param length
|
|
78
75
|
* @returns
|
|
79
76
|
*/
|
|
80
|
-
|
|
77
|
+
readExactly(length) {
|
|
81
78
|
// PERF: Add a synchronous path for reading from internal buffer
|
|
82
|
-
if (this
|
|
83
|
-
const array = this
|
|
84
|
-
const offset = this
|
|
85
|
-
if (this
|
|
79
|
+
if (this.#buffered) {
|
|
80
|
+
const array = this.#buffered;
|
|
81
|
+
const offset = this.#bufferedOffset;
|
|
82
|
+
if (this.#bufferedLength > length) {
|
|
86
83
|
// PERF: `subarray` is slow
|
|
87
84
|
// don't use it until absolutely necessary
|
|
88
|
-
this
|
|
89
|
-
this
|
|
85
|
+
this.#bufferedOffset += length;
|
|
86
|
+
this.#bufferedLength -= length;
|
|
90
87
|
return array.subarray(offset, offset + length);
|
|
91
88
|
}
|
|
92
|
-
this
|
|
89
|
+
this.#buffered = undefined;
|
|
90
|
+
this.#bufferedLength = 0;
|
|
91
|
+
this.#bufferedOffset = 0;
|
|
93
92
|
return this.readAsync(length, array.subarray(offset));
|
|
94
93
|
}
|
|
95
94
|
return this.readAsync(length);
|
|
@@ -100,10 +99,15 @@ export class BufferedReadableStream {
|
|
|
100
99
|
* @returns A `ReadableStream`
|
|
101
100
|
*/
|
|
102
101
|
release() {
|
|
103
|
-
if (this
|
|
102
|
+
if (this.#bufferedLength > 0) {
|
|
104
103
|
return new PushReadableStream(async (controller) => {
|
|
105
104
|
// Put the remaining data back to the stream
|
|
106
|
-
|
|
105
|
+
const buffered = this.#buffered.subarray(this.#bufferedOffset);
|
|
106
|
+
await controller.enqueue(buffered);
|
|
107
|
+
controller.abortSignal.addEventListener("abort", () => {
|
|
108
|
+
// NOOP: the reader might already be released
|
|
109
|
+
this.reader.cancel().catch(NOOP);
|
|
110
|
+
});
|
|
107
111
|
// Manually pipe the stream
|
|
108
112
|
while (true) {
|
|
109
113
|
const { done, value } = await this.reader.read();
|
package/esm/buffered.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffered.js","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffered.js","sourceRoot":"","sources":["../src/buffered.ts"],"names":[],"mappings":"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"}
|
package/esm/consumable.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { QueuingStrategy, WritableStreamDefaultWriter } from "./stream.js";
|
|
2
2
|
import { ReadableStream, TransformStream, WritableStream } from "./stream.js";
|
|
3
3
|
export declare class Consumable<T> {
|
|
4
|
-
private
|
|
5
|
-
private readonly resolver;
|
|
4
|
+
#private;
|
|
6
5
|
readonly value: T;
|
|
7
6
|
readonly consumed: Promise<void>;
|
|
8
7
|
constructor(value: T);
|
package/esm/consumable.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumable.d.ts","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAwB9E,qBAAa,UAAU,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"consumable.d.ts","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"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"}
|
package/esm/consumable.js
CHANGED
|
@@ -9,31 +9,31 @@ const createTask = console.createTask?.bind(console) ??
|
|
|
9
9
|
},
|
|
10
10
|
}));
|
|
11
11
|
export class Consumable {
|
|
12
|
-
task;
|
|
13
|
-
resolver;
|
|
12
|
+
#task;
|
|
13
|
+
#resolver;
|
|
14
14
|
value;
|
|
15
15
|
consumed;
|
|
16
16
|
constructor(value) {
|
|
17
|
-
this
|
|
17
|
+
this.#task = createTask("Consumable");
|
|
18
18
|
this.value = value;
|
|
19
|
-
this
|
|
20
|
-
this.consumed = this
|
|
19
|
+
this.#resolver = new PromiseResolver();
|
|
20
|
+
this.consumed = this.#resolver.promise;
|
|
21
21
|
}
|
|
22
22
|
consume() {
|
|
23
|
-
this
|
|
23
|
+
this.#resolver.resolve();
|
|
24
24
|
}
|
|
25
25
|
error(error) {
|
|
26
|
-
this
|
|
26
|
+
this.#resolver.reject(error);
|
|
27
27
|
}
|
|
28
28
|
async tryConsume(callback) {
|
|
29
29
|
try {
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
31
|
-
const result = await this
|
|
31
|
+
const result = await this.#task.run(() => callback(this.value));
|
|
32
32
|
this.consume();
|
|
33
33
|
return result;
|
|
34
34
|
}
|
|
35
35
|
catch (e) {
|
|
36
|
-
this
|
|
36
|
+
this.#resolver.reject(e);
|
|
37
37
|
throw e;
|
|
38
38
|
}
|
|
39
39
|
}
|
package/esm/consumable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumable.js","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAc9E,wFAAwF;AACxF,MAAM,EAAE,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"consumable.js","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"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"}
|
package/esm/distribution.d.ts
CHANGED
|
@@ -3,10 +3,7 @@ import { ConsumableTransformStream } from "./consumable.js";
|
|
|
3
3
|
* Splits or combines buffers to specified size.
|
|
4
4
|
*/
|
|
5
5
|
export declare class BufferCombiner {
|
|
6
|
-
private
|
|
7
|
-
private readonly _buffer;
|
|
8
|
-
private _offset;
|
|
9
|
-
private _available;
|
|
6
|
+
#private;
|
|
10
7
|
constructor(size: number);
|
|
11
8
|
/**
|
|
12
9
|
* Pushes data to the combiner.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,qBAAa,cAAc
|
|
1
|
+
{"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,qBAAa,cAAc;;gBAMJ,IAAI,EAAE,MAAM;IAO/B;;;;;;OAMG;IACK,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IA0C1D,KAAK,IAAI,UAAU,GAAG,SAAS;CAUzC;AAED,qBAAa,kBAAmB,SAAQ,yBAAyB,CAC7D,UAAU,EACV,UAAU,CACb;gBACsB,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ;CA6BnD"}
|
package/esm/distribution.js
CHANGED
|
@@ -3,15 +3,15 @@ import { ConsumableTransformStream } from "./consumable.js";
|
|
|
3
3
|
* Splits or combines buffers to specified size.
|
|
4
4
|
*/
|
|
5
5
|
export class BufferCombiner {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
#capacity;
|
|
7
|
+
#buffer;
|
|
8
|
+
#offset;
|
|
9
|
+
#available;
|
|
10
10
|
constructor(size) {
|
|
11
|
-
this
|
|
12
|
-
this
|
|
13
|
-
this
|
|
14
|
-
this
|
|
11
|
+
this.#capacity = size;
|
|
12
|
+
this.#buffer = new Uint8Array(size);
|
|
13
|
+
this.#offset = 0;
|
|
14
|
+
this.#available = size;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Pushes data to the combiner.
|
|
@@ -23,44 +23,44 @@ export class BufferCombiner {
|
|
|
23
23
|
*push(data) {
|
|
24
24
|
let offset = 0;
|
|
25
25
|
let available = data.byteLength;
|
|
26
|
-
if (this
|
|
27
|
-
if (available >= this
|
|
28
|
-
this.
|
|
29
|
-
offset += this
|
|
30
|
-
available -= this
|
|
31
|
-
yield this
|
|
32
|
-
this
|
|
33
|
-
this
|
|
26
|
+
if (this.#offset !== 0) {
|
|
27
|
+
if (available >= this.#available) {
|
|
28
|
+
this.#buffer.set(data.subarray(0, this.#available), this.#offset);
|
|
29
|
+
offset += this.#available;
|
|
30
|
+
available -= this.#available;
|
|
31
|
+
yield this.#buffer;
|
|
32
|
+
this.#offset = 0;
|
|
33
|
+
this.#available = this.#capacity;
|
|
34
34
|
if (available === 0) {
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
|
-
this.
|
|
40
|
-
this
|
|
41
|
-
this
|
|
39
|
+
this.#buffer.set(data, this.#offset);
|
|
40
|
+
this.#offset += available;
|
|
41
|
+
this.#available -= available;
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
while (available >= this
|
|
46
|
-
const end = offset + this
|
|
45
|
+
while (available >= this.#capacity) {
|
|
46
|
+
const end = offset + this.#capacity;
|
|
47
47
|
yield data.subarray(offset, end);
|
|
48
48
|
offset = end;
|
|
49
|
-
available -= this
|
|
49
|
+
available -= this.#capacity;
|
|
50
50
|
}
|
|
51
51
|
if (available > 0) {
|
|
52
|
-
this.
|
|
53
|
-
this
|
|
54
|
-
this
|
|
52
|
+
this.#buffer.set(data.subarray(offset), this.#offset);
|
|
53
|
+
this.#offset += available;
|
|
54
|
+
this.#available -= available;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
flush() {
|
|
58
|
-
if (this
|
|
58
|
+
if (this.#offset === 0) {
|
|
59
59
|
return undefined;
|
|
60
60
|
}
|
|
61
|
-
const output = this.
|
|
62
|
-
this
|
|
63
|
-
this
|
|
61
|
+
const output = this.#buffer.subarray(0, this.#offset);
|
|
62
|
+
this.#offset = 0;
|
|
63
|
+
this.#available = this.#capacity;
|
|
64
64
|
return output;
|
|
65
65
|
}
|
|
66
66
|
}
|
package/esm/distribution.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"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"}
|
package/esm/duplex.d.ts
CHANGED
|
@@ -33,13 +33,9 @@ export interface DuplexStreamFactoryOptions {
|
|
|
33
33
|
* when any of them is closed, all other streams will be closed as well.
|
|
34
34
|
*/
|
|
35
35
|
export declare class DuplexStreamFactory<R, W> {
|
|
36
|
-
private
|
|
37
|
-
private writers;
|
|
38
|
-
private _writableClosed;
|
|
36
|
+
#private;
|
|
39
37
|
get writableClosed(): boolean;
|
|
40
|
-
private _closed;
|
|
41
38
|
get closed(): Promise<void>;
|
|
42
|
-
private options;
|
|
43
39
|
constructor(options?: DuplexStreamFactoryOptions);
|
|
44
40
|
wrapReadable(readable: ReadableStream<R>): WrapReadableStream<R>;
|
|
45
41
|
createWritable(stream: WritableStream<W>): WritableStream<W>;
|
package/esm/duplex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplex.d.ts","sourceRoot":"","sources":["../src/duplex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EACR,cAAc,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,MAAM,WAAW,0BAA0B;IACvC;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAE3D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"duplex.d.ts","sourceRoot":"","sources":["../src/duplex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EACR,cAAc,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,MAAM,WAAW,0BAA0B;IACvC;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAE3D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC;;IAKjC,IAAW,cAAc,YAExB;IAGD,IAAW,MAAM,kBAEhB;gBAIkB,OAAO,CAAC,EAAE,0BAA0B;IAIhD,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAiBhE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAsBtD,KAAK;IAkBL,OAAO;CAcvB"}
|