@yume-chan/adb 0.0.13 → 0.0.16

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 (116) hide show
  1. package/CHANGELOG.json +57 -0
  2. package/CHANGELOG.md +29 -1
  3. package/LICENSE +21 -21
  4. package/README.md +247 -247
  5. package/esm/adb.d.ts +12 -4
  6. package/esm/adb.d.ts.map +1 -1
  7. package/esm/adb.js +29 -19
  8. package/esm/adb.js.map +1 -1
  9. package/esm/commands/reverse.d.ts +9 -12
  10. package/esm/commands/reverse.d.ts.map +1 -1
  11. package/esm/commands/reverse.js +44 -36
  12. package/esm/commands/reverse.js.map +1 -1
  13. package/esm/commands/subprocess/protocols/none.d.ts +2 -1
  14. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
  15. package/esm/commands/subprocess/protocols/none.js +10 -9
  16. package/esm/commands/subprocess/protocols/none.js.map +1 -1
  17. package/esm/commands/sync/pull.d.ts.map +1 -1
  18. package/esm/commands/sync/pull.js +6 -3
  19. package/esm/commands/sync/pull.js.map +1 -1
  20. package/esm/commands/sync/stat.d.ts.map +1 -1
  21. package/esm/commands/sync/stat.js +2 -2
  22. package/esm/commands/sync/stat.js.map +1 -1
  23. package/esm/commands/sync/sync.js +1 -1
  24. package/esm/commands/sync/sync.js.map +1 -1
  25. package/esm/socket/dispatcher.d.ts +25 -14
  26. package/esm/socket/dispatcher.d.ts.map +1 -1
  27. package/esm/socket/dispatcher.js +94 -63
  28. package/esm/socket/dispatcher.js.map +1 -1
  29. package/esm/socket/socket.d.ts +18 -4
  30. package/esm/socket/socket.d.ts.map +1 -1
  31. package/esm/socket/socket.js +36 -21
  32. package/esm/socket/socket.js.map +1 -1
  33. package/esm/stream/buffered.d.ts +7 -3
  34. package/esm/stream/buffered.d.ts.map +1 -1
  35. package/esm/stream/buffered.js +69 -49
  36. package/esm/stream/buffered.js.map +1 -1
  37. package/esm/stream/detect.js +1 -0
  38. package/esm/stream/detect.js.map +1 -1
  39. package/esm/stream/detect.polyfill.d.ts +1 -1
  40. package/esm/stream/detect.polyfill.d.ts.map +1 -1
  41. package/esm/stream/detect.polyfill.js +0 -5
  42. package/esm/stream/detect.polyfill.js.map +1 -1
  43. package/esm/stream/transform.d.ts +39 -13
  44. package/esm/stream/transform.d.ts.map +1 -1
  45. package/esm/stream/transform.js +67 -90
  46. package/esm/stream/transform.js.map +1 -1
  47. package/esm/utils/base64.js +5 -5
  48. package/esm/utils/base64.js.map +1 -1
  49. package/package.json +10 -10
  50. package/src/adb.ts +280 -270
  51. package/src/auth.ts +173 -173
  52. package/src/backend.ts +11 -11
  53. package/src/commands/base.ts +11 -11
  54. package/src/commands/framebuffer.ts +73 -73
  55. package/src/commands/index.ts +8 -8
  56. package/src/commands/install.ts +30 -30
  57. package/src/commands/power.ts +54 -54
  58. package/src/commands/reverse.ts +140 -136
  59. package/src/commands/subprocess/index.ts +139 -139
  60. package/src/commands/subprocess/protocols/none.ts +70 -68
  61. package/src/commands/subprocess/protocols/shell.ts +190 -190
  62. package/src/commands/subprocess/protocols/types.ts +59 -59
  63. package/src/commands/subprocess/utils.ts +20 -20
  64. package/src/commands/sync/index.ts +7 -7
  65. package/src/commands/sync/list.ts +86 -86
  66. package/src/commands/sync/pull.ts +46 -43
  67. package/src/commands/sync/push.ts +41 -41
  68. package/src/commands/sync/request.ts +50 -50
  69. package/src/commands/sync/response.ts +64 -64
  70. package/src/commands/sync/stat.ts +151 -150
  71. package/src/commands/sync/sync.ts +181 -181
  72. package/src/commands/tcpip.ts +21 -21
  73. package/src/crypto.ts +296 -296
  74. package/src/features.ts +9 -9
  75. package/src/index.ts +11 -11
  76. package/src/packet.ts +80 -80
  77. package/src/socket/dispatcher.ts +305 -270
  78. package/src/socket/index.ts +2 -2
  79. package/src/socket/socket.ts +155 -136
  80. package/src/stream/buffered.ts +168 -147
  81. package/src/stream/detect.native.ts +362 -362
  82. package/src/stream/detect.polyfill.ts +22 -28
  83. package/src/stream/detect.ts +7 -5
  84. package/src/stream/index.ts +3 -3
  85. package/src/stream/transform.ts +474 -483
  86. package/src/utils/auto-reset-event.ts +41 -41
  87. package/src/utils/base64.ts +306 -306
  88. package/src/utils/index.ts +3 -3
  89. package/tsconfig.build.json +3 -3
  90. package/tsconfig.build.tsbuildinfo +1 -1
  91. package/tsconfig.test.json +9 -10
  92. package/web-streams-polyfill-4.0.0-beta.2.tgz +0 -0
  93. package/esm/commands/subprocess/legacy.d.ts +0 -35
  94. package/esm/commands/subprocess/legacy.d.ts.map +0 -1
  95. package/esm/commands/subprocess/legacy.js +0 -53
  96. package/esm/commands/subprocess/legacy.js.map +0 -1
  97. package/esm/commands/subprocess/protocol.d.ts +0 -39
  98. package/esm/commands/subprocess/protocol.d.ts.map +0 -1
  99. package/esm/commands/subprocess/protocol.js +0 -157
  100. package/esm/commands/subprocess/protocol.js.map +0 -1
  101. package/esm/commands/subprocess/types.d.ts +0 -50
  102. package/esm/commands/subprocess/types.d.ts.map +0 -1
  103. package/esm/commands/subprocess/types.js +0 -2
  104. package/esm/commands/subprocess/types.js.map +0 -1
  105. package/esm/socket/controller.d.ts +0 -37
  106. package/esm/socket/controller.d.ts.map +0 -1
  107. package/esm/socket/controller.js +0 -66
  108. package/esm/socket/controller.js.map +0 -1
  109. package/esm/stream/detect.bak.d.ts +0 -240
  110. package/esm/stream/detect.bak.d.ts.map +0 -1
  111. package/esm/stream/detect.bak.js +0 -60
  112. package/esm/stream/detect.bak.js.map +0 -1
  113. package/esm/utils/encoding.d.ts +0 -3
  114. package/esm/utils/encoding.d.ts.map +0 -1
  115. package/esm/utils/encoding.js +0 -11
  116. package/esm/utils/encoding.js.map +0 -1
@@ -7,67 +7,87 @@ export class BufferedStreamEndedError extends Error {
7
7
  }
8
8
  }
9
9
  export class BufferedStream {
10
- buffer;
10
+ buffered;
11
+ bufferedOffset = 0;
12
+ bufferedLength = 0;
11
13
  stream;
12
14
  reader;
13
15
  constructor(stream) {
14
16
  this.stream = stream;
15
17
  this.reader = stream.getReader();
16
18
  }
17
- /**
18
- *
19
- * @param length
20
- * @returns
21
- */
22
- async read(length) {
23
- let array;
19
+ async readSource() {
20
+ const { done, value } = await this.reader.read();
21
+ if (done) {
22
+ throw new BufferedStreamEndedError();
23
+ }
24
+ return value;
25
+ }
26
+ async readAsync(length, initial) {
27
+ let result;
24
28
  let index;
25
- if (this.buffer) {
26
- const buffer = this.buffer;
27
- if (buffer.byteLength > length) {
28
- this.buffer = buffer.subarray(length);
29
- return buffer.subarray(0, length);
30
- }
31
- array = new Uint8Array(length);
32
- array.set(buffer);
33
- index = buffer.byteLength;
34
- this.buffer = undefined;
29
+ if (initial) {
30
+ result = new Uint8Array(length);
31
+ result.set(initial);
32
+ index = initial.byteLength;
33
+ length -= initial.byteLength;
35
34
  }
36
35
  else {
37
- const { done, value } = await this.reader.read();
38
- if (done) {
39
- throw new BufferedStreamEndedError();
40
- }
41
- if (value.byteLength === length) {
42
- return value;
36
+ const array = await this.readSource();
37
+ if (array.byteLength === length) {
38
+ return array;
43
39
  }
44
- if (value.byteLength > length) {
45
- this.buffer = value.subarray(length);
46
- return value.subarray(0, length);
40
+ if (array.byteLength > length) {
41
+ this.buffered = array;
42
+ this.bufferedOffset = length;
43
+ this.bufferedLength = array.byteLength - length;
44
+ return array.subarray(0, length);
47
45
  }
48
- array = new Uint8Array(length);
49
- array.set(value);
50
- index = value.byteLength;
46
+ result = new Uint8Array(length);
47
+ result.set(array);
48
+ index = array.byteLength;
49
+ length -= array.byteLength;
51
50
  }
52
- while (index < length) {
53
- const left = length - index;
54
- const { done, value } = await this.reader.read();
55
- if (done) {
56
- throw new BufferedStreamEndedError();
51
+ while (length > 0) {
52
+ const array = await this.readSource();
53
+ if (array.byteLength === length) {
54
+ result.set(array, index);
55
+ return result;
57
56
  }
58
- if (value.byteLength === left) {
59
- array.set(value, index);
60
- return array;
57
+ if (array.byteLength > length) {
58
+ this.buffered = array;
59
+ this.bufferedOffset = length;
60
+ this.bufferedLength = array.byteLength - length;
61
+ result.set(array.subarray(0, length), index);
62
+ return result;
61
63
  }
62
- if (value.byteLength > left) {
63
- array.set(value.subarray(0, left), index);
64
- this.buffer = value.subarray(left);
65
- return array;
64
+ result.set(array, index);
65
+ index += array.byteLength;
66
+ length -= array.byteLength;
67
+ }
68
+ return result;
69
+ }
70
+ /**
71
+ *
72
+ * @param length
73
+ * @returns
74
+ */
75
+ read(length) {
76
+ // PERF: Add a synchronous path for reading from internal buffer
77
+ if (this.buffered) {
78
+ const array = this.buffered;
79
+ const offset = this.bufferedOffset;
80
+ if (this.bufferedLength > length) {
81
+ // PERF: `subarray` is slow
82
+ // don't use it until absolutely necessary
83
+ this.bufferedOffset += length;
84
+ this.bufferedLength -= length;
85
+ return array.subarray(offset, offset + length);
66
86
  }
67
- array.set(value, index);
68
- index += value.byteLength;
87
+ this.buffered = undefined;
88
+ return this.readAsync(length, array.subarray(offset));
69
89
  }
70
- return array;
90
+ return this.readAsync(length);
71
91
  }
72
92
  /**
73
93
  * Return a readable stream with unconsumed data (if any) and
@@ -75,10 +95,10 @@ export class BufferedStream {
75
95
  * @returns A `ReadableStream`
76
96
  */
77
97
  release() {
78
- if (this.buffer) {
98
+ if (this.buffered) {
79
99
  return new PushReadableStream(async (controller) => {
80
100
  // Put the remaining data back to the stream
81
- await controller.enqueue(this.buffer);
101
+ await controller.enqueue(this.buffered);
82
102
  // Manually pipe the stream
83
103
  while (true) {
84
104
  try {
@@ -104,8 +124,8 @@ export class BufferedStream {
104
124
  return this.stream;
105
125
  }
106
126
  }
107
- close() {
108
- this.reader.cancel();
127
+ async close() {
128
+ await this.reader.cancel();
109
129
  }
110
130
  }
111
131
  export class AdbBufferedStream extends BufferedStream {
@@ -1 +1 @@
1
- {"version":3,"file":"buffered.js","sourceRoot":"","sources":["../../src/stream/buffered.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffered.js","sourceRoot":"","sources":["../../src/stream/buffered.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@
2
2
  // Always use polyfilled version because
3
3
  // Vercel doesn't support Node.js 16 (`streams/web` module) yet
4
4
  export * from './detect.polyfill.js';
5
+ // export * from './detect.native.js';
5
6
  //# sourceMappingURL=detect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/stream/detect.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,wCAAwC;AACxC,+DAA+D;AAC/D,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/stream/detect.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,wCAAwC;AACxC,+DAA+D;AAC/D,cAAc,sBAAsB,CAAC;AAErC,sCAAsC"}
@@ -9,7 +9,7 @@ export interface AbortController {
9
9
  /**
10
10
  * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted.
11
11
  */
12
- abort(): void;
12
+ abort(reason?: any): void;
13
13
  }
14
14
  export declare let AbortController: {
15
15
  prototype: AbortController;
@@ -1 +1 @@
1
- {"version":3,"file":"detect.polyfill.d.ts","sourceRoot":"","sources":["../../src/stream/detect.polyfill.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,cAAc,sBAAsB,CAAC;AAErC,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC5B;;OAEG;IAEH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACjB;AAED,eAAO,IAAI,eAAe,EAAE;IACxB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAO,eAAe,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"detect.polyfill.d.ts","sourceRoot":"","sources":["../../src/stream/detect.polyfill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,cAAc,sBAAsB,CAAC;AAErC,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC5B;;OAEG;IAEH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,IAAI,eAAe,EAAE;IACxB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAO,eAAe,CAAC;CAC1B,CAAC"}
@@ -1,8 +1,3 @@
1
- // cspell: ignore ponyfill
2
- // TODO: Upgrade to `web-streams-polyfill@4.0.0-beta.2` once released.
3
- // `web-streams-polyfill@4.0.0-beta.1` changed the default export to ponyfill,
4
- // But it forgot to include `type` export so it's unusable.
5
- // See https://github.com/MattiasBuelens/web-streams-polyfill/pull/107
6
1
  export * from 'web-streams-polyfill';
7
2
  export let AbortController;
8
3
  ({ AbortController } = globalThis);
@@ -1 +1 @@
1
- {"version":3,"file":"detect.polyfill.js","sourceRoot":"","sources":["../../src/stream/detect.polyfill.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,sEAAsE;AACtE,8EAA8E;AAC9E,2DAA2D;AAC3D,sEAAsE;AACtE,cAAc,sBAAsB,CAAC;AAerC,MAAM,CAAC,IAAI,eAGV,CAAC;AAEF,CAAC,EAAE,eAAe,EAAE,GAAG,UAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"detect.polyfill.js","sourceRoot":"","sources":["../../src/stream/detect.polyfill.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AAerC,MAAM,CAAC,IAAI,eAGV,CAAC;AAEF,CAAC,EAAE,eAAe,EAAE,GAAG,UAAiB,CAAC,CAAC"}
@@ -1,9 +1,29 @@
1
1
  import type Struct from "@yume-chan/struct";
2
2
  import type { StructValueType, ValueOrPromise } from "@yume-chan/struct";
3
- import { AbortSignal, ReadableStream, TransformStream, WritableStream, type QueuingStrategy, type ReadableWritablePair, type UnderlyingSink, type UnderlyingSource } from "./detect.js";
3
+ import { AbortSignal, ReadableStream, TransformStream, WritableStream, type QueuingStrategy, type ReadableStreamDefaultController, type ReadableWritablePair } from "./detect.js";
4
4
  export interface DuplexStreamFactoryOptions {
5
- preventCloseReadableStreams?: boolean | undefined;
6
- close?: (() => void | Promise<void>) | undefined;
5
+ /**
6
+ * Callback when any `ReadableStream` is cancelled (the user doesn't need any more data),
7
+ * or `WritableStream` is ended (the user won't produce any more data),
8
+ * or `DuplexStreamFactory#close` is called.
9
+ *
10
+ * Usually you want to let the other peer know that the duplex stream should be clsoed.
11
+ *
12
+ * `dispose` will automatically be called after `close` completes,
13
+ * but if you want to wait another peer for a close confirmation and call
14
+ * `DuplexStreamFactory#dispose` yourself, you can return `false`
15
+ * (or a `Promise` that resolves to `false`) to disable the automatic call.
16
+ */
17
+ close?: (() => ValueOrPromise<boolean | void>) | undefined;
18
+ /**
19
+ * Callback when any `ReadableStream` is closed (the other peer doesn't produce any more data),
20
+ * or `WritableStream` is aborted (the other peer can't receive any more data),
21
+ * or `DuplexStreamFactory#abort` is called.
22
+ *
23
+ * Usually indicates the other peer has closed the duplex stream. You can clean up
24
+ * any resources you have allocated now.
25
+ */
26
+ dispose?: (() => void | Promise<void>) | undefined;
7
27
  }
8
28
  /**
9
29
  * A factory for creating a duplex stream.
@@ -13,19 +33,17 @@ export interface DuplexStreamFactoryOptions {
13
33
  */
14
34
  export declare class DuplexStreamFactory<R, W> {
15
35
  private readableControllers;
16
- private pushReadableControllers;
36
+ private writers;
37
+ private _writableClosed;
38
+ get writableClosed(): boolean;
17
39
  private _closed;
18
40
  get closed(): Promise<void>;
19
41
  private options;
20
- private _closeRequestedByReadable;
21
- private _writableClosed;
22
42
  constructor(options?: DuplexStreamFactoryOptions);
23
- createPushReadable(source: PushReadableStreamSource<R>, strategy?: QueuingStrategy<R>): PushReadableStream<R>;
24
- createWrapReadable(wrapper: ReadableStream<R> | WrapReadableStreamStart<R> | ReadableStreamWrapper<R>): WrapReadableStream<R>;
25
- createReadable(source?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
26
- createWritable(sink: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
27
- closeReadableStreams(): Promise<void>;
43
+ wrapReadable(readable: ReadableStream<R>): WrapReadableStream<R>;
44
+ createWritable(stream: WritableStream<W>): WritableStream<W>;
28
45
  close(): Promise<void>;
46
+ dispose(): Promise<void>;
29
47
  }
30
48
  export declare class DecodeUtf8Stream extends TransformStream<Uint8Array, string> {
31
49
  constructor();
@@ -55,11 +73,19 @@ export declare class WrapWritableStream<T> extends WritableStream<T> {
55
73
  private writer;
56
74
  constructor(wrapper: WritableStream<T> | WrapWritableStreamStart<T> | WritableStreamWrapper<T>);
57
75
  }
58
- export declare type WrapReadableStreamStart<T> = () => ValueOrPromise<ReadableStream<T>>;
76
+ export declare type WrapReadableStreamStart<T> = (controller: ReadableStreamDefaultController<T>) => ValueOrPromise<ReadableStream<T>>;
59
77
  export interface ReadableStreamWrapper<T> {
60
78
  start: WrapReadableStreamStart<T>;
61
- close?(): Promise<void>;
79
+ cancel?(reason?: any): ValueOrPromise<void>;
80
+ close?(): ValueOrPromise<void>;
62
81
  }
82
+ /**
83
+ * This class has multiple usages:
84
+ *
85
+ * 1. Get notified when the stream is cancelled or closed.
86
+ * 2. Synchronously create a `ReadableStream` by asynchronously return another `ReadableStream`.
87
+ * 3. Convert native `ReadableStream`s to polyfilled ones so they can `pipe` between.
88
+ */
63
89
  export declare class WrapReadableStream<T> extends ReadableStream<T> {
64
90
  readable: ReadableStream<T>;
65
91
  private reader;
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/stream/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/stream/transform.ts"],"names":[],"mappings":"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"}
@@ -10,116 +10,81 @@ import { AbortController, ReadableStream, TransformStream, WritableStream } from
10
10
  */
11
11
  export class DuplexStreamFactory {
12
12
  readableControllers = [];
13
- pushReadableControllers = [];
13
+ writers = [];
14
+ _writableClosed = false;
15
+ get writableClosed() { return this._writableClosed; }
14
16
  _closed = new PromiseResolver();
15
17
  get closed() { return this._closed.promise; }
16
18
  options;
17
- _closeRequestedByReadable = false;
18
- _writableClosed = false;
19
19
  constructor(options) {
20
20
  this.options = options ?? {};
21
21
  }
22
- createPushReadable(source, strategy) {
23
- return new PushReadableStream(controller => {
24
- this.pushReadableControllers.push(controller);
25
- controller.abortSignal.addEventListener('abort', async () => {
26
- this._closeRequestedByReadable = true;
27
- await this.close();
28
- });
29
- source({
30
- abortSignal: controller.abortSignal,
31
- async enqueue(chunk) {
32
- await controller.enqueue(chunk);
33
- },
34
- close: async () => {
35
- // The source signals stream ended,
36
- // usually means the other end closed the connection first.
37
- controller.close();
38
- this._closeRequestedByReadable = true;
39
- await this.close();
40
- },
41
- error: async (e) => {
42
- controller.error(e);
43
- this._closeRequestedByReadable = true;
44
- await this.close();
45
- },
46
- });
47
- }, strategy);
48
- }
49
- ;
50
- createWrapReadable(wrapper) {
22
+ wrapReadable(readable) {
51
23
  return new WrapReadableStream({
52
- async start() {
53
- return getWrappedReadableStream(wrapper);
54
- },
55
- close: async () => {
56
- if ('close' in wrapper) {
57
- await wrapper.close?.();
58
- }
59
- this._closeRequestedByReadable = true;
60
- await this.close();
61
- },
62
- });
63
- }
64
- createReadable(source, strategy) {
65
- return new ReadableStream({
66
- start: async (controller) => {
24
+ start: (controller) => {
67
25
  this.readableControllers.push(controller);
68
- await source?.start?.(controller);
26
+ return readable;
69
27
  },
70
- pull: (controller) => {
71
- return source?.pull?.(controller);
72
- },
73
- cancel: async (reason) => {
74
- await source?.cancel?.(reason);
75
- this._closeRequestedByReadable = true;
28
+ cancel: async () => {
29
+ // cancel means the local peer closes the connection first.
76
30
  await this.close();
77
31
  },
78
- }, strategy);
32
+ close: async () => {
33
+ // stream end means the remote peer closed the connection first.
34
+ await this.dispose();
35
+ },
36
+ });
79
37
  }
80
- createWritable(sink, strategy) {
38
+ createWritable(stream) {
39
+ const writer = stream.getWriter();
40
+ this.writers.push(writer);
41
+ // `WritableStream` has no way to tell if the remote peer has closed the connection.
42
+ // So it only triggers `close`.
81
43
  return new WritableStream({
82
- start: async (controller) => {
83
- await sink.start?.(controller);
44
+ write: async (chunk) => {
45
+ await writer.ready;
46
+ await writer.write(chunk);
84
47
  },
85
- write: async (chunk, controller) => {
86
- if (this._writableClosed) {
87
- throw new Error("stream is closed");
88
- }
89
- await sink.write?.(chunk, controller);
48
+ abort: async (reason) => {
49
+ await writer.abort(reason);
50
+ await this.close();
90
51
  },
91
52
  close: async () => {
92
- await sink.close?.();
93
- this.close();
94
- },
95
- abort: async (reason) => {
96
- await sink.abort?.(reason);
53
+ try {
54
+ await writer.close();
55
+ }
56
+ catch { }
97
57
  await this.close();
98
58
  },
99
- }, strategy);
59
+ });
100
60
  }
101
- async closeReadableStreams() {
102
- this._closed.resolve();
103
- await this.options.close?.();
104
- for (const controller of this.readableControllers) {
61
+ async close() {
62
+ if (this._writableClosed) {
63
+ return;
64
+ }
65
+ this._writableClosed = true;
66
+ // Call `close` first, so it can still write data to `WritableStream`s.
67
+ if (await this.options.close?.() !== false) {
68
+ // `close` can return `false` to disable automatic `dispose`.
69
+ await this.dispose();
70
+ }
71
+ for (const writer of this.writers) {
105
72
  try {
106
- controller.close();
73
+ await writer.close();
107
74
  }
108
75
  catch { }
109
76
  }
110
- for (const controller of this.pushReadableControllers) {
77
+ }
78
+ async dispose() {
79
+ this._writableClosed = true;
80
+ this._closed.resolve();
81
+ for (const controller of this.readableControllers) {
111
82
  try {
112
83
  controller.close();
113
84
  }
114
85
  catch { }
115
86
  }
116
- }
117
- async close() {
118
- this._writableClosed = true;
119
- if (this._closeRequestedByReadable ||
120
- !this.options.preventCloseReadableStreams) {
121
- await this.closeReadableStreams();
122
- }
87
+ await this.options.dispose?.();
123
88
  }
124
89
  }
125
90
  export class DecodeUtf8Stream extends TransformStream {
@@ -241,12 +206,12 @@ export class WrapWritableStream extends WritableStream {
241
206
  });
242
207
  }
243
208
  }
244
- function getWrappedReadableStream(wrapper) {
209
+ function getWrappedReadableStream(wrapper, controller) {
245
210
  if ('start' in wrapper) {
246
- return wrapper.start();
211
+ return wrapper.start(controller);
247
212
  }
248
213
  else if (typeof wrapper === 'function') {
249
- return wrapper();
214
+ return wrapper(controller);
250
215
  }
251
216
  else {
252
217
  // Can't use `wrapper instanceof ReadableStream`
@@ -254,24 +219,31 @@ function getWrappedReadableStream(wrapper) {
254
219
  return wrapper;
255
220
  }
256
221
  }
222
+ /**
223
+ * This class has multiple usages:
224
+ *
225
+ * 1. Get notified when the stream is cancelled or closed.
226
+ * 2. Synchronously create a `ReadableStream` by asynchronously return another `ReadableStream`.
227
+ * 3. Convert native `ReadableStream`s to polyfilled ones so they can `pipe` between.
228
+ */
257
229
  export class WrapReadableStream extends ReadableStream {
258
230
  readable;
259
231
  reader;
260
232
  constructor(wrapper) {
261
233
  super({
262
- start: async () => {
234
+ start: async (controller) => {
263
235
  // `start` is invoked before `ReadableStream`'s constructor finish,
264
236
  // so using `this` synchronously causes
265
237
  // "Must call super constructor in derived class before accessing 'this' or returning from derived constructor".
266
238
  // Queue a microtask to avoid this.
267
239
  await Promise.resolve();
268
- this.readable = await getWrappedReadableStream(wrapper);
240
+ this.readable = await getWrappedReadableStream(wrapper, controller);
269
241
  this.reader = this.readable.getReader();
270
242
  },
271
243
  cancel: async (reason) => {
272
244
  await this.reader.cancel(reason);
273
- if ('close' in wrapper) {
274
- await wrapper.close?.();
245
+ if ('cancel' in wrapper) {
246
+ await wrapper.cancel?.(reason);
275
247
  }
276
248
  },
277
249
  pull: async (controller) => {
@@ -369,6 +341,11 @@ export class PushReadableStream extends ReadableStream {
369
341
  source({
370
342
  abortSignal: canceled.signal,
371
343
  async enqueue(chunk) {
344
+ if (canceled.signal.aborted) {
345
+ // If the stream is already cancelled,
346
+ // throw immediately.
347
+ throw canceled.signal.reason ?? new Error('Aborted');
348
+ }
372
349
  // Only when the stream is errored, `desiredSize` will be `null`.
373
350
  // But since `null <= 0` is `true`
374
351
  // (`null <= 0` is evaluated as `!(null > 0)` => `!false` => `true`),
@@ -393,7 +370,7 @@ export class PushReadableStream extends ReadableStream {
393
370
  waterMarkLow?.resolve();
394
371
  },
395
372
  cancel: async (reason) => {
396
- canceled.abort();
373
+ canceled.abort(reason);
397
374
  waterMarkLow?.reject(reason);
398
375
  },
399
376
  }, strategy);
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/stream/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/stream/transform.ts"],"names":[],"mappings":"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"}
@@ -212,9 +212,9 @@ export function decodeBase64(input) {
212
212
  sIndex += 1;
213
213
  const d = charToIndex[input[sIndex]];
214
214
  sIndex += 1;
215
- result[dIndex] = (a << 2) | ((b & 0b11_0000) >> 4);
215
+ result[dIndex] = (a << 2) | ((b & 48) >> 4);
216
216
  dIndex += 1;
217
- result[dIndex] = ((b & 0b1111) << 4) | ((c & 0b11_1100) >> 2);
217
+ result[dIndex] = ((b & 0b1111) << 4) | ((c & 60) >> 2);
218
218
  dIndex += 1;
219
219
  result[dIndex] = ((c & 0b11) << 6) | d;
220
220
  dIndex += 1;
@@ -225,15 +225,15 @@ export function decodeBase64(input) {
225
225
  const b = charToIndex[input[sIndex]];
226
226
  sIndex += 1;
227
227
  const c = charToIndex[input[sIndex]];
228
- result[dIndex] = (a << 2) | ((b & 0b11_0000) >> 4);
228
+ result[dIndex] = (a << 2) | ((b & 48) >> 4);
229
229
  dIndex += 1;
230
- result[dIndex] = ((b & 0b1111) << 4) | ((c & 0b11_1100) >> 2);
230
+ result[dIndex] = ((b & 0b1111) << 4) | ((c & 60) >> 2);
231
231
  }
232
232
  else if (padding === 2) {
233
233
  const a = charToIndex[input[sIndex]];
234
234
  sIndex += 1;
235
235
  const b = charToIndex[input[sIndex]];
236
- result[dIndex] = (a << 2) | ((b & 0b11_0000) >> 4);
236
+ result[dIndex] = (a << 2) | ((b & 48) >> 4);
237
237
  }
238
238
  return result;
239
239
  }