@yume-chan/adb 0.0.18 → 0.0.19

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 (164) hide show
  1. package/CHANGELOG.json +21 -0
  2. package/CHANGELOG.md +11 -1
  3. package/esm/adb.d.ts +63 -60
  4. package/esm/adb.d.ts.map +1 -1
  5. package/esm/adb.js +257 -249
  6. package/esm/adb.js.map +1 -1
  7. package/esm/auth.d.ts +51 -51
  8. package/esm/auth.d.ts.map +1 -1
  9. package/esm/auth.js +95 -96
  10. package/esm/auth.js.map +1 -1
  11. package/esm/backend.d.ts +8 -8
  12. package/esm/backend.d.ts.map +1 -1
  13. package/esm/backend.js +1 -1
  14. package/esm/commands/base.d.ts +6 -6
  15. package/esm/commands/base.d.ts.map +1 -1
  16. package/esm/commands/base.js +8 -8
  17. package/esm/commands/framebuffer.d.ts +53 -53
  18. package/esm/commands/framebuffer.d.ts.map +1 -1
  19. package/esm/commands/framebuffer.js +46 -46
  20. package/esm/commands/framebuffer.js.map +1 -1
  21. package/esm/commands/index.d.ts +7 -8
  22. package/esm/commands/index.d.ts.map +1 -1
  23. package/esm/commands/index.js +7 -8
  24. package/esm/commands/index.js.map +1 -1
  25. package/esm/commands/install.d.ts +9 -3
  26. package/esm/commands/install.d.ts.map +1 -1
  27. package/esm/commands/install.js +26 -26
  28. package/esm/commands/install.js.map +1 -1
  29. package/esm/commands/power.d.ts +22 -22
  30. package/esm/commands/power.js +48 -48
  31. package/esm/commands/reverse.d.ts +41 -28
  32. package/esm/commands/reverse.d.ts.map +1 -1
  33. package/esm/commands/reverse.js +125 -100
  34. package/esm/commands/reverse.js.map +1 -1
  35. package/esm/commands/subprocess/command.d.ts +57 -51
  36. package/esm/commands/subprocess/command.d.ts.map +1 -1
  37. package/esm/commands/subprocess/command.js +86 -80
  38. package/esm/commands/subprocess/command.js.map +1 -1
  39. package/esm/commands/subprocess/index.d.ts +3 -3
  40. package/esm/commands/subprocess/index.js +3 -3
  41. package/esm/commands/subprocess/protocols/index.d.ts +3 -3
  42. package/esm/commands/subprocess/protocols/index.js +3 -3
  43. package/esm/commands/subprocess/protocols/none.d.ts +35 -35
  44. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
  45. package/esm/commands/subprocess/protocols/none.js +65 -55
  46. package/esm/commands/subprocess/protocols/none.js.map +1 -1
  47. package/esm/commands/subprocess/protocols/shell.d.ts +39 -38
  48. package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
  49. package/esm/commands/subprocess/protocols/shell.js +166 -162
  50. package/esm/commands/subprocess/protocols/shell.js.map +1 -1
  51. package/esm/commands/subprocess/protocols/types.d.ts +49 -49
  52. package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
  53. package/esm/commands/subprocess/protocols/types.js +1 -1
  54. package/esm/commands/subprocess/utils.d.ts +1 -1
  55. package/esm/commands/subprocess/utils.js +18 -18
  56. package/esm/commands/sync/index.d.ts +8 -7
  57. package/esm/commands/sync/index.d.ts.map +1 -1
  58. package/esm/commands/sync/index.js +8 -7
  59. package/esm/commands/sync/index.js.map +1 -1
  60. package/esm/commands/sync/list.d.ts +42 -40
  61. package/esm/commands/sync/list.d.ts.map +1 -1
  62. package/esm/commands/sync/list.js +67 -47
  63. package/esm/commands/sync/list.js.map +1 -1
  64. package/esm/commands/sync/pull.d.ts +13 -11
  65. package/esm/commands/sync/pull.d.ts.map +1 -1
  66. package/esm/commands/sync/pull.js +35 -37
  67. package/esm/commands/sync/pull.js.map +1 -1
  68. package/esm/commands/sync/push.d.ts +46 -7
  69. package/esm/commands/sync/push.d.ts.map +1 -1
  70. package/esm/commands/sync/push.js +89 -22
  71. package/esm/commands/sync/push.js.map +1 -1
  72. package/esm/commands/sync/request.d.ts +26 -23
  73. package/esm/commands/sync/request.d.ts.map +1 -1
  74. package/esm/commands/sync/request.js +40 -42
  75. package/esm/commands/sync/request.js.map +1 -1
  76. package/esm/commands/sync/response.d.ts +19 -19
  77. package/esm/commands/sync/response.d.ts.map +1 -1
  78. package/esm/commands/sync/response.js +54 -54
  79. package/esm/commands/sync/response.js.map +1 -1
  80. package/esm/commands/sync/socket.d.ts +27 -0
  81. package/esm/commands/sync/socket.d.ts.map +1 -0
  82. package/esm/commands/sync/socket.js +66 -0
  83. package/esm/commands/sync/socket.js.map +1 -0
  84. package/esm/commands/sync/stat.d.ts +72 -72
  85. package/esm/commands/sync/stat.d.ts.map +1 -1
  86. package/esm/commands/sync/stat.js +116 -104
  87. package/esm/commands/sync/stat.js.map +1 -1
  88. package/esm/commands/sync/sync.d.ts +72 -60
  89. package/esm/commands/sync/sync.d.ts.map +1 -1
  90. package/esm/commands/sync/sync.js +127 -149
  91. package/esm/commands/sync/sync.js.map +1 -1
  92. package/esm/commands/tcpip.d.ts +5 -5
  93. package/esm/commands/tcpip.js +18 -18
  94. package/esm/crypto.d.ts +36 -36
  95. package/esm/crypto.js +248 -248
  96. package/esm/features.d.ts +10 -7
  97. package/esm/features.d.ts.map +1 -1
  98. package/esm/features.js +13 -10
  99. package/esm/features.js.map +1 -1
  100. package/esm/index.d.ts +9 -9
  101. package/esm/index.js +9 -9
  102. package/esm/packet.d.ts +45 -46
  103. package/esm/packet.d.ts.map +1 -1
  104. package/esm/packet.js +43 -48
  105. package/esm/packet.js.map +1 -1
  106. package/esm/socket/dispatcher.d.ts +59 -59
  107. package/esm/socket/dispatcher.d.ts.map +1 -1
  108. package/esm/socket/dispatcher.js +223 -234
  109. package/esm/socket/dispatcher.js.map +1 -1
  110. package/esm/socket/index.d.ts +2 -2
  111. package/esm/socket/index.js +2 -2
  112. package/esm/socket/socket.d.ts +59 -59
  113. package/esm/socket/socket.d.ts.map +1 -1
  114. package/esm/socket/socket.js +118 -118
  115. package/esm/socket/socket.js.map +1 -1
  116. package/esm/utils/auto-reset-event.d.ts +9 -9
  117. package/esm/utils/auto-reset-event.d.ts.map +1 -1
  118. package/esm/utils/auto-reset-event.js +33 -33
  119. package/esm/utils/auto-reset-event.js.map +1 -1
  120. package/esm/utils/base64.d.ts +27 -27
  121. package/esm/utils/base64.js +246 -246
  122. package/esm/utils/conditional-variable.d.ts +9 -0
  123. package/esm/utils/conditional-variable.d.ts.map +1 -0
  124. package/esm/utils/conditional-variable.js +34 -0
  125. package/esm/utils/conditional-variable.js.map +1 -0
  126. package/esm/utils/index.d.ts +4 -3
  127. package/esm/utils/index.d.ts.map +1 -1
  128. package/esm/utils/index.js +4 -3
  129. package/esm/utils/index.js.map +1 -1
  130. package/package.json +11 -10
  131. package/src/adb.ts +47 -37
  132. package/src/auth.ts +7 -6
  133. package/src/backend.ts +4 -4
  134. package/src/commands/base.ts +1 -1
  135. package/src/commands/framebuffer.ts +4 -4
  136. package/src/commands/index.ts +7 -8
  137. package/src/commands/reverse.ts +35 -10
  138. package/src/commands/subprocess/command.ts +12 -4
  139. package/src/commands/subprocess/index.ts +3 -3
  140. package/src/commands/subprocess/protocols/index.ts +3 -3
  141. package/src/commands/subprocess/protocols/none.ts +25 -11
  142. package/src/commands/subprocess/protocols/shell.ts +50 -28
  143. package/src/commands/subprocess/protocols/types.ts +8 -7
  144. package/src/commands/subprocess/utils.ts +1 -1
  145. package/src/commands/sync/index.ts +8 -7
  146. package/src/commands/sync/list.ts +42 -23
  147. package/src/commands/sync/pull.ts +40 -45
  148. package/src/commands/sync/push.ts +146 -39
  149. package/src/commands/sync/request.ts +20 -15
  150. package/src/commands/sync/response.ts +7 -6
  151. package/src/commands/sync/socket.ts +97 -0
  152. package/src/commands/sync/stat.ts +47 -42
  153. package/src/commands/sync/sync.ts +68 -108
  154. package/src/commands/tcpip.ts +5 -5
  155. package/src/features.ts +9 -6
  156. package/src/packet.ts +19 -34
  157. package/src/socket/dispatcher.ts +32 -47
  158. package/src/socket/index.ts +2 -2
  159. package/src/socket/socket.ts +26 -17
  160. package/src/utils/auto-reset-event.ts +14 -15
  161. package/src/utils/conditional-variable.ts +45 -0
  162. package/src/utils/index.ts +4 -3
  163. package/tsconfig.build.tsbuildinfo +1 -1
  164. package/src/commands/install.ts +0 -40
@@ -1,119 +1,119 @@
1
- import { PromiseResolver } from "@yume-chan/async";
2
- import { ChunkStream, DuplexStreamFactory, PushReadableStream, WritableStream, pipeFrom, } from "@yume-chan/stream-extra";
3
- import { AdbCommand } from "../packet.js";
4
- export class AdbSocketController {
5
- dispatcher;
6
- localId;
7
- remoteId;
8
- localCreated;
9
- serviceString;
10
- _duplex;
11
- _readable;
12
- _readableController;
13
- get readable() {
14
- return this._readable;
15
- }
16
- _writePromise;
17
- writable;
18
- _closed = false;
19
- /**
20
- * Whether the socket is half-closed (i.e. the local side initiated the close).
21
- *
22
- * It's only used by dispatcher to avoid sending another `CLSE` packet to remote.
23
- */
24
- get closed() {
25
- return this._closed;
26
- }
27
- _socket;
28
- get socket() {
29
- return this._socket;
30
- }
31
- constructor(options) {
32
- Object.assign(this, options);
33
- // Check this image to help you understand the stream graph
34
- // cspell: disable-next-line
35
- // https://www.plantuml.com/plantuml/png/TL0zoeGm4ErpYc3l5JxyS0yWM6mX5j4C6p4cxcJ25ejttuGX88ZftizxUKmJI275pGhXl0PP_UkfK_CAz5Z2hcWsW9Ny2fdU4C1f5aSchFVxA8vJjlTPRhqZzDQMRB7AklwJ0xXtX0ZSKH1h24ghoKAdGY23FhxC4nS2pDvxzIvxb-8THU0XlEQJ-ZB7SnXTAvc_LhOckhMdLBnbtndpb-SB7a8q2SRD_W00
36
- this._duplex = new DuplexStreamFactory({
37
- close: async () => {
38
- this._closed = true;
39
- await this.dispatcher.sendPacket(AdbCommand.Close, this.localId, this.remoteId);
40
- // Don't `dispose` here, we need to wait for `CLSE` response packet.
41
- return false;
42
- },
43
- dispose: () => {
44
- // Error out the pending writes
45
- this._writePromise?.reject(new Error("Socket closed"));
46
- },
47
- });
48
- this._readable = this._duplex.wrapReadable(new PushReadableStream((controller) => {
49
- this._readableController = controller;
50
- }, {
51
- highWaterMark: options.highWaterMark ?? 16 * 1024,
52
- size(chunk) {
53
- return chunk.byteLength;
54
- },
55
- }));
56
- this.writable = pipeFrom(this._duplex.createWritable(new WritableStream({
57
- write: async (chunk) => {
58
- // Wait for an ack packet
59
- this._writePromise = new PromiseResolver();
60
- await this.dispatcher.sendPacket(AdbCommand.Write, this.localId, this.remoteId, chunk);
61
- await this._writePromise.promise;
62
- },
63
- })), new ChunkStream(this.dispatcher.options.maxPayloadSize));
64
- this._socket = new AdbSocket(this);
65
- }
66
- async enqueue(packet) {
67
- // Consumer may abort the `ReadableStream` to close the socket,
68
- // it's OK to throw away further packets in this case.
69
- if (this._readableController.abortSignal.aborted) {
70
- return;
71
- }
72
- await this._readableController.enqueue(packet);
73
- }
74
- ack() {
75
- this._writePromise?.resolve();
76
- }
77
- async close() {
78
- await this._duplex.close();
79
- }
80
- dispose() {
81
- return this._duplex.dispose();
82
- }
83
- }
84
- /**
85
- * A duplex stream representing a socket to ADB daemon.
86
- *
87
- * To close it, call either `socket.close()`,
88
- * `socket.readable.cancel()`, `socket.readable.getReader().cancel()`,
89
- * `socket.writable.abort()`, `socket.writable.getWriter().abort()`,
90
- * `socket.writable.close()` or `socket.writable.getWriter().close()`.
91
- */
92
- export class AdbSocket {
93
- _controller;
94
- get localId() {
95
- return this._controller.localId;
96
- }
97
- get remoteId() {
98
- return this._controller.remoteId;
99
- }
100
- get localCreated() {
101
- return this._controller.localCreated;
102
- }
103
- get serviceString() {
104
- return this._controller.serviceString;
105
- }
106
- get readable() {
107
- return this._controller.readable;
108
- }
109
- get writable() {
110
- return this._controller.writable;
111
- }
112
- constructor(controller) {
113
- this._controller = controller;
114
- }
115
- close() {
116
- return this._controller.close();
117
- }
118
- }
1
+ import { PromiseResolver } from "@yume-chan/async";
2
+ import { ConsumableWritableStream, DistributionStream, DuplexStreamFactory, PushReadableStream, pipeFrom, } from "@yume-chan/stream-extra";
3
+ import { AdbCommand } from "../packet.js";
4
+ export class AdbSocketController {
5
+ dispatcher;
6
+ localId;
7
+ remoteId;
8
+ localCreated;
9
+ serviceString;
10
+ _duplex;
11
+ _readable;
12
+ _readableController;
13
+ get readable() {
14
+ return this._readable;
15
+ }
16
+ _writePromise;
17
+ writable;
18
+ _closed = false;
19
+ /**
20
+ * Whether the socket is half-closed (i.e. the local side initiated the close).
21
+ *
22
+ * It's only used by dispatcher to avoid sending another `CLSE` packet to remote.
23
+ */
24
+ get closed() {
25
+ return this._closed;
26
+ }
27
+ _socket;
28
+ get socket() {
29
+ return this._socket;
30
+ }
31
+ constructor(options) {
32
+ Object.assign(this, options);
33
+ // Check this image to help you understand the stream graph
34
+ // cspell: disable-next-line
35
+ // https://www.plantuml.com/plantuml/png/TL0zoeGm4ErpYc3l5JxyS0yWM6mX5j4C6p4cxcJ25ejttuGX88ZftizxUKmJI275pGhXl0PP_UkfK_CAz5Z2hcWsW9Ny2fdU4C1f5aSchFVxA8vJjlTPRhqZzDQMRB7AklwJ0xXtX0ZSKH1h24ghoKAdGY23FhxC4nS2pDvxzIvxb-8THU0XlEQJ-ZB7SnXTAvc_LhOckhMdLBnbtndpb-SB7a8q2SRD_W00
36
+ this._duplex = new DuplexStreamFactory({
37
+ close: async () => {
38
+ this._closed = true;
39
+ await this.dispatcher.sendPacket(AdbCommand.Close, this.localId, this.remoteId);
40
+ // Don't `dispose` here, we need to wait for `CLSE` response packet.
41
+ return false;
42
+ },
43
+ dispose: () => {
44
+ // Error out the pending writes
45
+ this._writePromise?.reject(new Error("Socket closed"));
46
+ },
47
+ });
48
+ this._readable = this._duplex.wrapReadable(new PushReadableStream((controller) => {
49
+ this._readableController = controller;
50
+ }, {
51
+ highWaterMark: options.highWaterMark ?? 16 * 1024,
52
+ size(chunk) {
53
+ return chunk.byteLength;
54
+ },
55
+ }));
56
+ this.writable = pipeFrom(this._duplex.createWritable(new ConsumableWritableStream({
57
+ write: async (chunk) => {
58
+ // Wait for an ack packet
59
+ this._writePromise = new PromiseResolver();
60
+ await this.dispatcher.sendPacket(AdbCommand.Write, this.localId, this.remoteId, chunk);
61
+ await this._writePromise.promise;
62
+ },
63
+ })), new DistributionStream(this.dispatcher.options.maxPayloadSize));
64
+ this._socket = new AdbSocket(this);
65
+ }
66
+ async enqueue(data) {
67
+ // Consumer may abort the `ReadableStream` to close the socket,
68
+ // it's OK to throw away further packets in this case.
69
+ if (this._readableController.abortSignal.aborted) {
70
+ return;
71
+ }
72
+ await this._readableController.enqueue(data);
73
+ }
74
+ ack() {
75
+ this._writePromise?.resolve();
76
+ }
77
+ async close() {
78
+ await this._duplex.close();
79
+ }
80
+ dispose() {
81
+ return this._duplex.dispose();
82
+ }
83
+ }
84
+ /**
85
+ * A duplex stream representing a socket to ADB daemon.
86
+ *
87
+ * To close it, call either `socket.close()`,
88
+ * `socket.readable.cancel()`, `socket.readable.getReader().cancel()`,
89
+ * `socket.writable.abort()`, `socket.writable.getWriter().abort()`,
90
+ * `socket.writable.close()` or `socket.writable.getWriter().close()`.
91
+ */
92
+ export class AdbSocket {
93
+ _controller;
94
+ get localId() {
95
+ return this._controller.localId;
96
+ }
97
+ get remoteId() {
98
+ return this._controller.remoteId;
99
+ }
100
+ get localCreated() {
101
+ return this._controller.localCreated;
102
+ }
103
+ get serviceString() {
104
+ return this._controller.serviceString;
105
+ }
106
+ get readable() {
107
+ return this._controller.readable;
108
+ }
109
+ get writable() {
110
+ return this._controller.writable;
111
+ }
112
+ constructor(controller) {
113
+ this._controller = controller;
114
+ }
115
+ close() {
116
+ return this._controller.close();
117
+ }
118
+ }
119
119
  //# sourceMappingURL=socket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { type Disposable } from "@yume-chan/event";
2
- export declare class AutoResetEvent implements Disposable {
3
- private readonly list;
4
- private blocking;
5
- constructor(initialSet?: boolean);
6
- wait(): Promise<void>;
7
- notify(): void;
8
- dispose(): void;
9
- }
1
+ import type { Disposable } from "@yume-chan/event";
2
+ export declare class AutoResetEvent implements Disposable {
3
+ private _set;
4
+ private readonly _queue;
5
+ constructor(initialSet?: boolean);
6
+ wait(): Promise<void>;
7
+ notifyOne(): void;
8
+ dispose(): void;
9
+ }
10
10
  //# sourceMappingURL=auto-reset-event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-reset-event.d.ts","sourceRoot":"","sources":["../../src/utils/auto-reset-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,qBAAa,cAAe,YAAW,UAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IAEpD,OAAO,CAAC,QAAQ,CAAU;gBAEP,UAAU,UAAQ;IAI9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAcrB,MAAM;IAQN,OAAO;CAMjB"}
1
+ {"version":3,"file":"auto-reset-event.d.ts","sourceRoot":"","sources":["../../src/utils/auto-reset-event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,qBAAa,cAAe,YAAW,UAAU;IAC7C,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAEnC,UAAU,UAAQ;IAI9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAcrB,SAAS;IAQT,OAAO;CAMjB"}
@@ -1,34 +1,34 @@
1
- import { PromiseResolver } from "@yume-chan/async";
2
- export class AutoResetEvent {
3
- list = [];
4
- blocking;
5
- constructor(initialSet = false) {
6
- this.blocking = initialSet;
7
- }
8
- wait() {
9
- if (!this.blocking) {
10
- this.blocking = true;
11
- if (this.list.length === 0) {
12
- return Promise.resolve();
13
- }
14
- }
15
- const resolver = new PromiseResolver();
16
- this.list.push(resolver);
17
- return resolver.promise;
18
- }
19
- notify() {
20
- if (this.list.length !== 0) {
21
- this.list.pop().resolve();
22
- }
23
- else {
24
- this.blocking = false;
25
- }
26
- }
27
- dispose() {
28
- for (const item of this.list) {
29
- item.reject(new Error("The AutoResetEvent has been disposed"));
30
- }
31
- this.list.length = 0;
32
- }
33
- }
1
+ import { PromiseResolver } from "@yume-chan/async";
2
+ export class AutoResetEvent {
3
+ _set;
4
+ _queue = [];
5
+ constructor(initialSet = false) {
6
+ this._set = initialSet;
7
+ }
8
+ wait() {
9
+ if (!this._set) {
10
+ this._set = true;
11
+ if (this._queue.length === 0) {
12
+ return Promise.resolve();
13
+ }
14
+ }
15
+ const resolver = new PromiseResolver();
16
+ this._queue.push(resolver);
17
+ return resolver.promise;
18
+ }
19
+ notifyOne() {
20
+ if (this._queue.length !== 0) {
21
+ this._queue.pop().resolve();
22
+ }
23
+ else {
24
+ this._set = false;
25
+ }
26
+ }
27
+ dispose() {
28
+ for (const item of this._queue) {
29
+ item.reject(new Error("The AutoResetEvent has been disposed"));
30
+ }
31
+ this._queue.length = 0;
32
+ }
33
+ }
34
34
  //# sourceMappingURL=auto-reset-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-reset-event.js","sourceRoot":"","sources":["../../src/utils/auto-reset-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,OAAO,cAAc;IACN,IAAI,GAA4B,EAAE,CAAC;IAE5C,QAAQ,CAAU;IAE1B,YAAmB,UAAU,GAAG,KAAK;QACjC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC5B;SACJ;QAED,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAQ,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM;QACT,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC,OAAO,EAAE,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;IACL,CAAC;IAEM,OAAO;QACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"auto-reset-event.js","sourceRoot":"","sources":["../../src/utils/auto-reset-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,OAAO,cAAc;IACf,IAAI,CAAU;IACL,MAAM,GAA4B,EAAE,CAAC;IAEtD,YAAmB,UAAU,GAAG,KAAK;QACjC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IAC3B,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC5B;SACJ;QAED,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAQ,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,SAAS;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAG,CAAC,OAAO,EAAE,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB;IACL,CAAC;IAEM,OAAO;QACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ"}
@@ -1,28 +1,28 @@
1
- /**
2
- * Calculate the required length of the output buffer for the given input length.
3
- *
4
- * @param inputLength Length of the input in bytes
5
- * @returns Length of the output in bytes
6
- */
7
- export declare function calculateBase64EncodedLength(inputLength: number): [outputLength: number, paddingLength: number];
8
- /**
9
- * Encode the given input buffer into base64.
10
- *
11
- * @param input The input buffer
12
- * @returns The encoded output buffer
13
- */
14
- export declare function encodeBase64(input: Uint8Array): Uint8Array;
15
- /**
16
- * Encode the given input into base64 and write it to the output buffer.
17
- *
18
- * The output buffer must be at least as long as the value returned by `calculateBase64EncodedLength`.
19
- * It can points to the same buffer as the input, as long as `output.offset <= input.offset - input.length / 3`,
20
- * or `output.offset >= input.offset - 1`
21
- *
22
- * @param input The input buffer
23
- * @param output The output buffer
24
- * @returns The number of bytes written to the output buffer
25
- */
26
- export declare function encodeBase64(input: Uint8Array, output: Uint8Array): number;
27
- export declare function decodeBase64(input: string): Uint8Array;
1
+ /**
2
+ * Calculate the required length of the output buffer for the given input length.
3
+ *
4
+ * @param inputLength Length of the input in bytes
5
+ * @returns Length of the output in bytes
6
+ */
7
+ export declare function calculateBase64EncodedLength(inputLength: number): [outputLength: number, paddingLength: number];
8
+ /**
9
+ * Encode the given input buffer into base64.
10
+ *
11
+ * @param input The input buffer
12
+ * @returns The encoded output buffer
13
+ */
14
+ export declare function encodeBase64(input: Uint8Array): Uint8Array;
15
+ /**
16
+ * Encode the given input into base64 and write it to the output buffer.
17
+ *
18
+ * The output buffer must be at least as long as the value returned by `calculateBase64EncodedLength`.
19
+ * It can points to the same buffer as the input, as long as `output.offset <= input.offset - input.length / 3`,
20
+ * or `output.offset >= input.offset - 1`
21
+ *
22
+ * @param input The input buffer
23
+ * @param output The output buffer
24
+ * @returns The number of bytes written to the output buffer
25
+ */
26
+ export declare function encodeBase64(input: Uint8Array, output: Uint8Array): number;
27
+ export declare function decodeBase64(input: string): Uint8Array;
28
28
  //# sourceMappingURL=base64.d.ts.map