@yume-chan/adb 0.0.12 → 0.0.15

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 (145) hide show
  1. package/CHANGELOG.json +54 -0
  2. package/CHANGELOG.md +28 -1
  3. package/README.md +24 -17
  4. package/esm/adb.d.ts +10 -9
  5. package/esm/adb.d.ts.map +1 -1
  6. package/esm/adb.js +88 -67
  7. package/esm/adb.js.map +1 -1
  8. package/esm/auth.d.ts +6 -6
  9. package/esm/auth.d.ts.map +1 -1
  10. package/esm/auth.js +8 -6
  11. package/esm/auth.js.map +1 -1
  12. package/esm/backend.d.ts +2 -2
  13. package/esm/commands/install.d.ts.map +1 -1
  14. package/esm/commands/install.js +5 -7
  15. package/esm/commands/install.js.map +1 -1
  16. package/esm/commands/reverse.d.ts +9 -12
  17. package/esm/commands/reverse.d.ts.map +1 -1
  18. package/esm/commands/reverse.js +44 -36
  19. package/esm/commands/reverse.js.map +1 -1
  20. package/esm/commands/subprocess/index.d.ts +19 -20
  21. package/esm/commands/subprocess/index.d.ts.map +1 -1
  22. package/esm/commands/subprocess/index.js +36 -31
  23. package/esm/commands/subprocess/index.js.map +1 -1
  24. package/esm/commands/subprocess/legacy.d.ts +14 -7
  25. package/esm/commands/subprocess/legacy.d.ts.map +1 -1
  26. package/esm/commands/subprocess/legacy.js +14 -5
  27. package/esm/commands/subprocess/legacy.js.map +1 -1
  28. package/esm/commands/subprocess/protocol.d.ts +3 -2
  29. package/esm/commands/subprocess/protocol.d.ts.map +1 -1
  30. package/esm/commands/subprocess/protocol.js +6 -4
  31. package/esm/commands/subprocess/protocol.js.map +1 -1
  32. package/esm/commands/subprocess/protocols/index.d.ts +4 -0
  33. package/esm/commands/subprocess/protocols/index.d.ts.map +1 -0
  34. package/esm/commands/subprocess/protocols/index.js +4 -0
  35. package/esm/commands/subprocess/protocols/index.js.map +1 -0
  36. package/esm/commands/subprocess/protocols/none.d.ts +35 -0
  37. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -0
  38. package/esm/commands/subprocess/protocols/none.js +53 -0
  39. package/esm/commands/subprocess/protocols/none.js.map +1 -0
  40. package/esm/commands/subprocess/protocols/shell.d.ts +39 -0
  41. package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -0
  42. package/esm/commands/subprocess/protocols/shell.js +155 -0
  43. package/esm/commands/subprocess/protocols/shell.js.map +1 -0
  44. package/esm/commands/subprocess/protocols/types.d.ts +50 -0
  45. package/esm/commands/subprocess/protocols/types.d.ts.map +1 -0
  46. package/esm/commands/subprocess/protocols/types.js +2 -0
  47. package/esm/commands/subprocess/protocols/types.js.map +1 -0
  48. package/esm/commands/subprocess/types.d.ts +9 -6
  49. package/esm/commands/subprocess/types.d.ts.map +1 -1
  50. package/esm/commands/sync/list.d.ts +25 -1
  51. package/esm/commands/sync/list.d.ts.map +1 -1
  52. package/esm/commands/sync/list.js +40 -5
  53. package/esm/commands/sync/list.js.map +1 -1
  54. package/esm/commands/sync/pull.d.ts.map +1 -1
  55. package/esm/commands/sync/pull.js +6 -3
  56. package/esm/commands/sync/pull.js.map +1 -1
  57. package/esm/commands/sync/request.d.ts +1 -0
  58. package/esm/commands/sync/request.d.ts.map +1 -1
  59. package/esm/commands/sync/request.js +1 -0
  60. package/esm/commands/sync/request.js.map +1 -1
  61. package/esm/commands/sync/response.d.ts +2 -1
  62. package/esm/commands/sync/response.d.ts.map +1 -1
  63. package/esm/commands/sync/response.js +2 -1
  64. package/esm/commands/sync/response.js.map +1 -1
  65. package/esm/commands/sync/stat.d.ts +13 -1
  66. package/esm/commands/sync/stat.d.ts.map +1 -1
  67. package/esm/commands/sync/stat.js +22 -9
  68. package/esm/commands/sync/stat.js.map +1 -1
  69. package/esm/commands/sync/sync.d.ts +13 -35
  70. package/esm/commands/sync/sync.d.ts.map +1 -1
  71. package/esm/commands/sync/sync.js +40 -10
  72. package/esm/commands/sync/sync.js.map +1 -1
  73. package/esm/crypto.d.ts +23 -10
  74. package/esm/crypto.d.ts.map +1 -1
  75. package/esm/crypto.js +64 -46
  76. package/esm/crypto.js.map +1 -1
  77. package/esm/features.d.ts +4 -2
  78. package/esm/features.d.ts.map +1 -1
  79. package/esm/features.js +6 -2
  80. package/esm/features.js.map +1 -1
  81. package/esm/packet.d.ts +21 -2
  82. package/esm/packet.d.ts.map +1 -1
  83. package/esm/packet.js +2 -2
  84. package/esm/packet.js.map +1 -1
  85. package/esm/socket/dispatcher.d.ts +35 -23
  86. package/esm/socket/dispatcher.d.ts.map +1 -1
  87. package/esm/socket/dispatcher.js +97 -72
  88. package/esm/socket/dispatcher.js.map +1 -1
  89. package/esm/socket/socket.d.ts +29 -8
  90. package/esm/socket/socket.d.ts.map +1 -1
  91. package/esm/socket/socket.js +43 -29
  92. package/esm/socket/socket.js.map +1 -1
  93. package/esm/stream/buffered.d.ts +1 -1
  94. package/esm/stream/buffered.d.ts.map +1 -1
  95. package/esm/stream/buffered.js +2 -2
  96. package/esm/stream/buffered.js.map +1 -1
  97. package/esm/stream/detect.d.ts +1 -17
  98. package/esm/stream/detect.d.ts.map +1 -1
  99. package/esm/stream/detect.js +4 -5
  100. package/esm/stream/detect.js.map +1 -1
  101. package/esm/stream/detect.polyfill.d.ts +1 -1
  102. package/esm/stream/detect.polyfill.d.ts.map +1 -1
  103. package/esm/stream/detect.polyfill.js +4 -1
  104. package/esm/stream/detect.polyfill.js.map +1 -1
  105. package/esm/stream/transform.d.ts +39 -33
  106. package/esm/stream/transform.d.ts.map +1 -1
  107. package/esm/stream/transform.js +121 -100
  108. package/esm/stream/transform.js.map +1 -1
  109. package/esm/utils/base64.js +5 -5
  110. package/esm/utils/base64.js.map +1 -1
  111. package/esm/utils/encoding.d.ts.map +1 -1
  112. package/esm/utils/encoding.js.map +1 -1
  113. package/esm/utils/index.d.ts +1 -1
  114. package/esm/utils/index.d.ts.map +1 -1
  115. package/esm/utils/index.js +1 -1
  116. package/esm/utils/index.js.map +1 -1
  117. package/package.json +7 -7
  118. package/src/adb.ts +112 -86
  119. package/src/auth.ts +21 -18
  120. package/src/backend.ts +2 -2
  121. package/src/commands/install.ts +7 -9
  122. package/src/commands/reverse.ts +48 -44
  123. package/src/commands/subprocess/index.ts +57 -42
  124. package/src/commands/subprocess/protocols/index.ts +3 -0
  125. package/src/commands/subprocess/{legacy.ts → protocols/none.ts} +20 -10
  126. package/src/commands/subprocess/{protocol.ts → protocols/shell.ts} +22 -17
  127. package/src/commands/subprocess/{types.ts → protocols/types.ts} +13 -9
  128. package/src/commands/sync/list.ts +51 -5
  129. package/src/commands/sync/pull.ts +6 -3
  130. package/src/commands/sync/request.ts +1 -0
  131. package/src/commands/sync/response.ts +8 -2
  132. package/src/commands/sync/stat.ts +36 -9
  133. package/src/commands/sync/sync.ts +56 -20
  134. package/src/crypto.ts +72 -56
  135. package/src/features.ts +6 -2
  136. package/src/packet.ts +17 -6
  137. package/src/socket/dispatcher.ts +139 -91
  138. package/src/socket/socket.ts +76 -61
  139. package/src/stream/buffered.ts +2 -2
  140. package/src/stream/detect.polyfill.ts +5 -2
  141. package/src/stream/detect.ts +4 -24
  142. package/src/stream/transform.ts +144 -124
  143. package/src/utils/index.ts +1 -1
  144. package/tsconfig.build.tsbuildinfo +1 -1
  145. package/src/utils/encoding.ts +0 -13
@@ -1,7 +1,7 @@
1
1
  import { PromiseResolver } from "@yume-chan/async";
2
2
  import { AdbCommand } from '../packet.js';
3
- import { ChunkStream, DuplexStreamFactory, pipeFrom } from '../stream/index.js';
4
- export class AdbSocket {
3
+ import { ChunkStream, DuplexStreamFactory, pipeFrom, PushReadableStream, WritableStream } from '../stream/index.js';
4
+ export class AdbSocketController {
5
5
  dispatcher;
6
6
  localId;
7
7
  remoteId;
@@ -15,6 +15,8 @@ export class AdbSocket {
15
15
  writable;
16
16
  _closed = false;
17
17
  get closed() { return this._closed; }
18
+ _socket;
19
+ get socket() { return this._socket; }
18
20
  constructor(options) {
19
21
  Object.assign(this, options);
20
22
  // Check this image to help you understand the stream graph
@@ -22,54 +24,66 @@ export class AdbSocket {
22
24
  // https://www.plantuml.com/plantuml/png/TL0zoeGm4ErpYc3l5JxyS0yWM6mX5j4C6p4cxcJ25ejttuGX88ZftizxUKmJI275pGhXl0PP_UkfK_CAz5Z2hcWsW9Ny2fdU4C1f5aSchFVxA8vJjlTPRhqZzDQMRB7AklwJ0xXtX0ZSKH1h24ghoKAdGY23FhxC4nS2pDvxzIvxb-8THU0XlEQJ-ZB7SnXTAvc_LhOckhMdLBnbtndpb-SB7a8q2SRD_W00
23
25
  this._factory = new DuplexStreamFactory({
24
26
  close: async () => {
25
- await this.close();
27
+ await this.dispatcher.sendPacket(AdbCommand.Close, this.localId, this.remoteId);
28
+ // Don't `dispose` here, we need to wait for `CLSE` response packet.
29
+ return false;
30
+ },
31
+ dispose: () => {
32
+ this._closed = true;
33
+ // Error out the pending writes
34
+ this._writePromise?.reject(new Error('Socket closed'));
26
35
  },
27
36
  });
28
- this._readable = this._factory.createPushReadable(controller => {
37
+ this._readable = this._factory.wrapReadable(new PushReadableStream(controller => {
29
38
  this._readableController = controller;
30
39
  }, {
31
40
  highWaterMark: options.highWaterMark ?? 16 * 1024,
32
41
  size(chunk) { return chunk.byteLength; }
33
- });
34
- this.writable = pipeFrom(this._factory.createWritable({
42
+ }));
43
+ this.writable = pipeFrom(this._factory.createWritable(new WritableStream({
35
44
  write: async (chunk) => {
36
45
  // Wait for an ack packet
37
46
  this._writePromise = new PromiseResolver();
38
47
  await this.dispatcher.sendPacket(AdbCommand.Write, this.localId, this.remoteId, chunk);
39
48
  await this._writePromise.promise;
40
- },
41
- }), new ChunkStream(this.dispatcher.maxPayloadSize));
49
+ }
50
+ })), new ChunkStream(this.dispatcher.options.maxPayloadSize));
51
+ this._socket = new AdbSocket(this);
42
52
  }
43
- /**
44
- * @internal
45
- */
46
53
  async enqueue(packet) {
47
54
  await this._readableController.enqueue(packet);
48
55
  }
49
- /**
50
- * @internal
51
- */
52
56
  ack() {
53
57
  this._writePromise?.resolve();
54
58
  }
55
59
  async close() {
56
- // Error out the pending writes
57
- this._writePromise?.reject(new Error('Socket closed'));
58
- if (!this._closed) {
59
- this._closed = true;
60
- // Only send close packet when `close` is called before `dispose`
61
- // (the client initiated the close)
62
- await this.dispatcher.sendPacket(AdbCommand.Close, this.localId, this.remoteId);
63
- }
60
+ this._factory.close();
64
61
  }
65
- /**
66
- * @internal
67
- */
68
62
  dispose() {
69
- this._closed = true;
70
- this._factory.close();
71
- // Close `writable` side
72
- this.close();
63
+ this._factory.dispose();
64
+ }
65
+ }
66
+ /**
67
+ * AdbSocket is a duplex stream.
68
+ *
69
+ * To close it, call either `socket.close()`,
70
+ * `socket.readable.cancel()`, `socket.readable.getReader().cancel()`,
71
+ * `socket.writable.abort()`, `socket.writable.getWriter().abort()`,
72
+ * `socket.writable.close()` or `socket.writable.getWriter().close()`.
73
+ */
74
+ export class AdbSocket {
75
+ _controller;
76
+ get localId() { return this._controller.localId; }
77
+ get remoteId() { return this._controller.remoteId; }
78
+ get localCreated() { return this._controller.localCreated; }
79
+ get serviceString() { return this._controller.serviceString; }
80
+ get readable() { return this._controller.readable; }
81
+ get writable() { return this._controller.writable; }
82
+ constructor(controller) {
83
+ this._controller = controller;
84
+ }
85
+ close() {
86
+ return this._controller.close();
73
87
  }
74
88
  }
75
89
  //# sourceMappingURL=socket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAqE,MAAM,oBAAoB,CAAC;AA0BnJ,MAAM,OAAO,SAAS;IACD,UAAU,CAAuB;IAElC,OAAO,CAAU;IACjB,QAAQ,CAAU;IAClB,YAAY,CAAW;IACvB,aAAa,CAAU;IAE/B,QAAQ,CAA8C;IAEtD,SAAS,CAA6B;IACtC,mBAAmB,CAA4C;IACvE,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAExC,aAAa,CAAoC;IACzC,QAAQ,CAA6B;IAE7C,OAAO,GAAG,KAAK,CAAC;IACxB,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,YAAmB,OAAqC;QACpD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7B,2DAA2D;QAC3D,4BAA4B;QAC5B,6QAA6Q;QAE7Q,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAyB;YAC5D,KAAK,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;YAC3D,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC;QAC1C,CAAC,EAAE;YACC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,GAAG,IAAI;YACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CACpB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YACzB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,yBAAyB;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC5B,UAAU,CAAC,KAAK,EAChB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,KAAK,CACR,CAAC;gBACF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACrC,CAAC;SACJ,CAAC,EACF,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAClD,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,MAAkB;QACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACI,GAAG;QACN,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,+BAA+B;QAC/B,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,iEAAiE;YACjE,mCAAmC;YACnC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC5B,UAAU,CAAC,KAAK,EAChB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;IACL,CAAC;IAED;;OAEG;IACI,OAAO;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEtB,wBAAwB;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export declare class BufferedStream {
21
21
  * @returns A `ReadableStream`
22
22
  */
23
23
  release(): ReadableStream<Uint8Array>;
24
- close(): void;
24
+ close(): Promise<void>;
25
25
  }
26
26
  export declare class AdbBufferedStream extends BufferedStream implements AdbSocketInfo, StructAsyncDeserializeStream {
27
27
  protected readonly socket: AdbSocket;
@@ -1 +1 @@
1
- {"version":3,"file":"buffered.d.ts","sourceRoot":"","sources":["../../src/stream/buffered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAG/E,qBAAa,wBAAyB,SAAQ,KAAK;;CAOlD;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAyB;IAEvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAEhD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAKrD;;;;OAIG;IACU,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4DtD;;;;OAIG;IACI,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC;IA6BrC,KAAK;CAGf;AAED,qBAAa,iBACT,SAAQ,cACR,YAAW,aAAa,EAAE,4BAA4B;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAErC,IAAW,OAAO,WAAkC;IACpD,IAAW,QAAQ,WAAmC;IACtD,IAAW,YAAY,YAAuC;IAC9D,IAAW,aAAa,WAAwC;IAEhE,IAAW,QAAQ,8DAAmC;gBAEnC,MAAM,EAAE,SAAS;CAIvC"}
1
+ {"version":3,"file":"buffered.d.ts","sourceRoot":"","sources":["../../src/stream/buffered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAG/E,qBAAa,wBAAyB,SAAQ,KAAK;;CAOlD;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAyB;IAEvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAEhD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAKrD;;;;OAIG;IACU,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4DtD;;;;OAIG;IACI,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC;IA6B/B,KAAK;CAGrB;AAED,qBAAa,iBACT,SAAQ,cACR,YAAW,aAAa,EAAE,4BAA4B;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAErC,IAAW,OAAO,WAAkC;IACpD,IAAW,QAAQ,WAAmC;IACtD,IAAW,YAAY,YAAuC;IAC9D,IAAW,aAAa,WAAwC;IAEhE,IAAW,QAAQ,8DAAmC;gBAEnC,MAAM,EAAE,SAAS;CAIvC"}
@@ -104,8 +104,8 @@ export class BufferedStream {
104
104
  return this.stream;
105
105
  }
106
106
  }
107
- close() {
108
- this.reader.cancel();
107
+ async close() {
108
+ await this.reader.cancel();
109
109
  }
110
110
  }
111
111
  export class AdbBufferedStream extends BufferedStream {
@@ -1 +1 @@
1
- {"version":3,"file":"buffered.js","sourceRoot":"","sources":["../../src/stream/buffered.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC/C;QACI,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtB,oDAAoD;QACpD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACJ;AAED,MAAM,OAAO,cAAc;IACf,MAAM,CAAyB;IAEpB,MAAM,CAA6B;IAEnC,MAAM,CAA0C;IAEnE,YAAmB,MAAkC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,MAAc;QAC5B,IAAI,KAAiB,CAAC;QACtB,IAAI,KAAa,CAAC;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aACrC;YAED,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClB,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;SAC3B;aAAM;YACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,IAAI,EAAE;gBACN,MAAM,IAAI,wBAAwB,EAAE,CAAC;aACxC;YAED,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE;gBAC7B,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,EAAE;gBAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aACpC;YAED,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;SAC5B;QAED,OAAO,KAAK,GAAG,MAAM,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;YAE5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,IAAI,EAAE;gBACN,MAAM,IAAI,wBAAwB,EAAE,CAAC;aACxC;YAED,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;gBAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,EAAE;gBACzB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;aAChB;YAED,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;SAC7B;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,OAAO;QACV,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,kBAAkB,CAAa,KAAK,EAAC,UAAU,EAAC,EAAE;gBACzD,4CAA4C;gBAC5C,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;gBAEvC,2BAA2B;gBAC3B,OAAO,IAAI,EAAE;oBACT,IAAI;wBACA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjD,IAAI,IAAI,EAAE;4BACN,UAAU,CAAC,KAAK,EAAE,CAAC;4BACnB,MAAM;yBACT;6BAAM;4BACH,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;yBACnC;qBACJ;oBAAC,OAAO,CAAC,EAAE;wBACR,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,MAAM;qBACT;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,kDAAkD;YAClD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,MAAM,CAAC;SACtB;IACL,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACJ;AAED,MAAM,OAAO,iBACT,SAAQ,cAAc;IAEH,MAAM,CAAY;IAErC,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,IAAW,aAAa,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhE,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtD,YAAmB,MAAiB;QAChC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"buffered.js","sourceRoot":"","sources":["../../src/stream/buffered.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,2 @@
1
- import type { AbortSignal } from "web-streams-polyfill";
2
- export * from 'web-streams-polyfill';
3
- /** A controller object that allows you to abort one or more DOM requests as and when desired. */
4
- export interface AbortController {
5
- /**
6
- * Returns the AbortSignal object associated with this object.
7
- */
8
- readonly signal: AbortSignal;
9
- /**
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
- */
12
- abort(): void;
13
- }
14
- export declare let AbortController: {
15
- prototype: AbortController;
16
- new (): AbortController;
17
- };
1
+ export * from './detect.polyfill.js';
18
2
  //# sourceMappingURL=detect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/stream/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,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.d.ts","sourceRoot":"","sources":["../../src/stream/detect.ts"],"names":[],"mappings":"AAIA,cAAc,sBAAsB,CAAC"}
@@ -1,6 +1,5 @@
1
- // cspell: ignore ponyfill
2
- // TODO: import the ponyfill instead (as a library should do)
3
- export * from 'web-streams-polyfill';
4
- export let AbortController;
5
- ({ AbortController } = globalThis);
1
+ // cspell: ignore vercel
2
+ // Always use polyfilled version because
3
+ // Vercel doesn't support Node.js 16 (`streams/web` module) yet
4
+ export * from './detect.polyfill.js';
6
5
  //# sourceMappingURL=detect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/stream/detect.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,6DAA6D;AAC7D,cAAc,sBAAsB,CAAC;AAerC,MAAM,CAAC,IAAI,eAGV,CAAC;AAEF,CAAC,EAAE,eAAe,EAAE,GAAG,UAAiB,CAAC,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"}
@@ -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;AAExD,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":"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,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,5 +1,8 @@
1
1
  // cspell: ignore ponyfill
2
- // TODO: import the ponyfill instead (as a library should do)
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
3
6
  export * from 'web-streams-polyfill';
4
7
  export let AbortController;
5
8
  ({ AbortController } = globalThis);
@@ -1 +1 @@
1
- {"version":3,"file":"detect.polyfill.js","sourceRoot":"","sources":["../../src/stream/detect.polyfill.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,6DAA6D;AAC7D,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":"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,30 +1,34 @@
1
1
  import type Struct from "@yume-chan/struct";
2
- import type { StructValueType } from "@yume-chan/struct";
3
- import { AbortSignal, ReadableStream, TransformStream, WritableStream, type QueuingStrategy, type ReadableWritablePair, type UnderlyingSink, type UnderlyingSource } from "./detect.js";
2
+ import type { StructValueType, ValueOrPromise } from "@yume-chan/struct";
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
+ close?: (() => ValueOrPromise<boolean | void>) | undefined;
6
+ dispose?: (() => void | Promise<void>) | undefined;
7
7
  }
8
+ /**
9
+ * A factory for creating a duplex stream.
10
+ *
11
+ * It can create multiple `ReadableStream`s and `WritableStream`s,
12
+ * when any of them is closed, all other streams will be closed as well.
13
+ */
8
14
  export declare class DuplexStreamFactory<R, W> {
9
15
  private readableControllers;
10
- private pushReadableControllers;
16
+ private writers;
17
+ private _writableClosed;
18
+ get writableClosed(): boolean;
11
19
  private _closed;
12
20
  get closed(): Promise<void>;
13
21
  private options;
14
- private _closeRequestedByReadable;
15
- private _writableClosed;
16
22
  constructor(options?: DuplexStreamFactoryOptions);
17
- createPushReadable(source: PushReadableStreamSource<R>, strategy?: QueuingStrategy<R>): PushReadableStream<R>;
18
- createWrapReadable(readable: ReadableStream<R>): WrapReadableStream<R, ReadableStream<R>, void>;
19
- createReadable(source?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
20
- createWritable(sink: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
21
- closeReadableStreams(): Promise<void>;
23
+ wrapReadable(readable: ReadableStream<R>): WrapReadableStream<R>;
24
+ createWritable(stream: WritableStream<W>): WritableStream<W>;
22
25
  close(): Promise<void>;
26
+ dispose(): Promise<void>;
23
27
  }
24
28
  export declare class DecodeUtf8Stream extends TransformStream<Uint8Array, string> {
25
29
  constructor();
26
30
  }
27
- export declare class GatherStringStream extends TransformStream<string, string> {
31
+ export declare class GatherStringStream extends WritableStream<string> {
28
32
  private _result;
29
33
  get result(): string;
30
34
  constructor();
@@ -39,31 +43,33 @@ export declare class StructDeserializeStream<T extends Struct<any, any, any, any
39
43
  export declare class StructSerializeStream<T extends Struct<any, any, any, any>> extends TransformStream<T['TInit'], Uint8Array> {
40
44
  constructor(struct: T);
41
45
  }
42
- export interface WritableStreamWrapper<T, W extends WritableStream<T>, S> {
43
- start(): Promise<{
44
- writable: W;
45
- state: S;
46
- }>;
47
- close?(state: S): Promise<void>;
46
+ export declare type WrapWritableStreamStart<T> = () => ValueOrPromise<WritableStream<T>>;
47
+ export interface WritableStreamWrapper<T> {
48
+ start: WrapWritableStreamStart<T>;
49
+ close?(): Promise<void>;
48
50
  }
49
- export declare class WrapWritableStream<T, W extends WritableStream<T>, S> extends WritableStream<T> {
50
- writable: W;
51
+ export declare class WrapWritableStream<T> extends WritableStream<T> {
52
+ writable: WritableStream<T>;
51
53
  private writer;
52
- private state;
53
- constructor(wrapper: WritableStreamWrapper<T, W, S>);
54
+ constructor(wrapper: WritableStream<T> | WrapWritableStreamStart<T> | WritableStreamWrapper<T>);
54
55
  }
55
- export interface ReadableStreamWrapper<T, R extends ReadableStream<T>, S> {
56
- start(): Promise<{
57
- readable: R;
58
- state: S;
59
- }>;
60
- close?(state: S): Promise<void>;
56
+ export declare type WrapReadableStreamStart<T> = (controller: ReadableStreamDefaultController<T>) => ValueOrPromise<ReadableStream<T>>;
57
+ export interface ReadableStreamWrapper<T> {
58
+ start: WrapReadableStreamStart<T>;
59
+ cancel?(reason?: any): ValueOrPromise<void>;
60
+ close?(): ValueOrPromise<void>;
61
61
  }
62
- export declare class WrapReadableStream<T, R extends ReadableStream<T>, S> extends ReadableStream<T> {
63
- readable: R;
62
+ /**
63
+ * This class has multiple usages:
64
+ *
65
+ * 1. Get notified when the stream is cancelled or closed.
66
+ * 2. Synchronously create a `ReadableStream` by asynchronously return another `ReadableStream`.
67
+ * 3. Convert native `ReadableStream`s to polyfilled ones so they can `pipe` between.
68
+ */
69
+ export declare class WrapReadableStream<T> extends ReadableStream<T> {
70
+ readable: ReadableStream<T>;
64
71
  private reader;
65
- private state;
66
- constructor(wrapper: ReadableStreamWrapper<T, R, S>);
72
+ constructor(wrapper: ReadableStream<T> | WrapReadableStreamStart<T> | ReadableStreamWrapper<T>);
67
73
  }
68
74
  export declare class ChunkStream extends TransformStream<Uint8Array, Uint8Array> {
69
75
  constructor(size: number);
@@ -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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"}