@yume-chan/adb-daemon-webusb 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/src/device.ts ADDED
@@ -0,0 +1,328 @@
1
+ import type {
2
+ AdbDaemonDevice,
3
+ AdbPacketData,
4
+ AdbPacketInit,
5
+ } from "@yume-chan/adb";
6
+ import {
7
+ AdbPacketHeader,
8
+ AdbPacketSerializeStream,
9
+ unreachable,
10
+ } from "@yume-chan/adb";
11
+ import type {
12
+ Consumable,
13
+ ReadableWritablePair,
14
+ WritableStream,
15
+ } from "@yume-chan/stream-extra";
16
+ import {
17
+ ConsumableWritableStream,
18
+ DuplexStreamFactory,
19
+ ReadableStream,
20
+ pipeFrom,
21
+ } from "@yume-chan/stream-extra";
22
+ import type { ExactReadable } from "@yume-chan/struct";
23
+ import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct";
24
+
25
+ import type { AdbDeviceFilter } from "./utils.js";
26
+ import { findUsbAlternateInterface, isErrorName } from "./utils.js";
27
+
28
+ /**
29
+ * The default filter for ADB devices, as defined by Google.
30
+ */
31
+ export const ADB_DEFAULT_DEVICE_FILTER = {
32
+ classCode: 0xff,
33
+ subclassCode: 0x42,
34
+ protocolCode: 1,
35
+ } as const satisfies AdbDeviceFilter;
36
+
37
+ /**
38
+ * Find the first pair of input and output endpoints from an alternate interface.
39
+ *
40
+ * ADB interface only has two endpoints, one for input and one for output.
41
+ */
42
+ function findUsbEndpoints(endpoints: USBEndpoint[]) {
43
+ if (endpoints.length === 0) {
44
+ throw new Error("No endpoints given");
45
+ }
46
+
47
+ let inEndpoint: USBEndpoint | undefined;
48
+ let outEndpoint: USBEndpoint | undefined;
49
+
50
+ for (const endpoint of endpoints) {
51
+ switch (endpoint.direction) {
52
+ case "in":
53
+ inEndpoint = endpoint;
54
+ if (outEndpoint) {
55
+ return { inEndpoint, outEndpoint };
56
+ }
57
+ break;
58
+ case "out":
59
+ outEndpoint = endpoint;
60
+ if (inEndpoint) {
61
+ return { inEndpoint, outEndpoint };
62
+ }
63
+ break;
64
+ }
65
+ }
66
+
67
+ if (!inEndpoint) {
68
+ throw new Error("No input endpoint found.");
69
+ }
70
+ if (!outEndpoint) {
71
+ throw new Error("No output endpoint found.");
72
+ }
73
+ throw new Error("unreachable");
74
+ }
75
+
76
+ class Uint8ArrayExactReadable implements ExactReadable {
77
+ #data: Uint8Array;
78
+ #position: number;
79
+
80
+ public get position() {
81
+ return this.#position;
82
+ }
83
+
84
+ public constructor(data: Uint8Array) {
85
+ this.#data = data;
86
+ this.#position = 0;
87
+ }
88
+
89
+ public readExactly(length: number): Uint8Array {
90
+ const result = this.#data.subarray(
91
+ this.#position,
92
+ this.#position + length
93
+ );
94
+ this.#position += length;
95
+ return result;
96
+ }
97
+ }
98
+
99
+ export class AdbDaemonWebUsbConnection
100
+ implements ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>
101
+ {
102
+ #readable: ReadableStream<AdbPacketData>;
103
+ public get readable() {
104
+ return this.#readable;
105
+ }
106
+
107
+ #writable: WritableStream<Consumable<AdbPacketInit>>;
108
+ public get writable() {
109
+ return this.#writable;
110
+ }
111
+
112
+ public constructor(
113
+ device: USBDevice,
114
+ inEndpoint: USBEndpoint,
115
+ outEndpoint: USBEndpoint,
116
+ usbManager: USB
117
+ ) {
118
+ let closed = false;
119
+
120
+ const duplex = new DuplexStreamFactory<
121
+ AdbPacketData,
122
+ Consumable<Uint8Array>
123
+ >({
124
+ close: async () => {
125
+ try {
126
+ closed = true;
127
+ await device.close();
128
+ } catch {
129
+ /* device may have already disconnected */
130
+ }
131
+ },
132
+ dispose: () => {
133
+ closed = true;
134
+ usbManager.removeEventListener(
135
+ "disconnect",
136
+ handleUsbDisconnect
137
+ );
138
+ },
139
+ });
140
+
141
+ function handleUsbDisconnect(e: USBConnectionEvent) {
142
+ if (e.device === device) {
143
+ duplex.dispose().catch(unreachable);
144
+ }
145
+ }
146
+
147
+ usbManager.addEventListener("disconnect", handleUsbDisconnect);
148
+
149
+ this.#readable = duplex.wrapReadable(
150
+ new ReadableStream<AdbPacketData>({
151
+ async pull(controller) {
152
+ try {
153
+ // The `length` argument in `transferIn` must not be smaller than what the device sent,
154
+ // otherwise it will return `babble` status without any data.
155
+ // ADB daemon sends each packet in two parts, the 24-byte header and the payload.
156
+ const result = await device.transferIn(
157
+ inEndpoint.endpointNumber,
158
+ 24
159
+ );
160
+
161
+ // TODO: webusb: handle `babble` by discarding the data and receive again
162
+
163
+ // Per spec, the `result.data` always covers the whole `buffer`.
164
+ const buffer = new Uint8Array(result.data!.buffer);
165
+ const stream = new Uint8ArrayExactReadable(buffer);
166
+
167
+ // Add `payload` field to its type, it's assigned below.
168
+ const packet = AdbPacketHeader.deserialize(
169
+ stream
170
+ ) as AdbPacketHeader & { payload: Uint8Array };
171
+ if (packet.payloadLength !== 0) {
172
+ const result = await device.transferIn(
173
+ inEndpoint.endpointNumber,
174
+ packet.payloadLength
175
+ );
176
+ packet.payload = new Uint8Array(
177
+ result.data!.buffer
178
+ );
179
+ } else {
180
+ packet.payload = EMPTY_UINT8_ARRAY;
181
+ }
182
+
183
+ controller.enqueue(packet);
184
+ } catch (e) {
185
+ // On Windows, disconnecting the device will cause `NetworkError` to be thrown,
186
+ // even before the `disconnect` event is fired.
187
+ // We need to wait a little bit and check if the device is still connected.
188
+ // https://github.com/WICG/webusb/issues/219
189
+ if (isErrorName(e, "NetworkError")) {
190
+ await new Promise<void>((resolve) => {
191
+ setTimeout(() => {
192
+ resolve();
193
+ }, 100);
194
+ });
195
+
196
+ if (closed) {
197
+ controller.close();
198
+ } else {
199
+ throw e;
200
+ }
201
+ }
202
+
203
+ throw e;
204
+ }
205
+ },
206
+ })
207
+ );
208
+
209
+ const zeroMask = outEndpoint.packetSize - 1;
210
+ this.#writable = pipeFrom(
211
+ duplex.createWritable(
212
+ new ConsumableWritableStream({
213
+ write: async (chunk) => {
214
+ try {
215
+ await device.transferOut(
216
+ outEndpoint.endpointNumber,
217
+ chunk
218
+ );
219
+
220
+ // In USB protocol, a not-full packet indicates the end of a transfer.
221
+ // If the payload size is a multiple of the packet size,
222
+ // we need to send an empty packet to indicate the end,
223
+ // so the OS will send it to the device immediately.
224
+ if (
225
+ zeroMask &&
226
+ (chunk.byteLength & zeroMask) === 0
227
+ ) {
228
+ await device.transferOut(
229
+ outEndpoint.endpointNumber,
230
+ EMPTY_UINT8_ARRAY
231
+ );
232
+ }
233
+ } catch (e) {
234
+ if (closed) {
235
+ return;
236
+ }
237
+ throw e;
238
+ }
239
+ },
240
+ })
241
+ ),
242
+ new AdbPacketSerializeStream()
243
+ );
244
+ }
245
+ }
246
+
247
+ export class AdbDaemonWebUsbDevice implements AdbDaemonDevice {
248
+ #filters: AdbDeviceFilter[];
249
+ #usbManager: USB;
250
+
251
+ #raw: USBDevice;
252
+ public get raw() {
253
+ return this.#raw;
254
+ }
255
+
256
+ public get serial(): string {
257
+ return this.#raw.serialNumber!;
258
+ }
259
+
260
+ public get name(): string {
261
+ return this.#raw.productName!;
262
+ }
263
+
264
+ /**
265
+ * Create a new instance of `AdbDaemonWebUsbConnection` using a specified `USBDevice` instance
266
+ *
267
+ * @param device The `USBDevice` instance obtained elsewhere.
268
+ * @param filters The filters to use when searching for ADB interface. Defaults to {@link ADB_DEFAULT_DEVICE_FILTER}.
269
+ */
270
+ public constructor(
271
+ device: USBDevice,
272
+ filters: AdbDeviceFilter[] = [ADB_DEFAULT_DEVICE_FILTER],
273
+ usbManager: USB
274
+ ) {
275
+ this.#raw = device;
276
+ this.#filters = filters;
277
+ this.#usbManager = usbManager;
278
+ }
279
+
280
+ /**
281
+ * Claim the device and create a pair of `AdbPacket` streams to the ADB interface.
282
+ * @returns The pair of `AdbPacket` streams.
283
+ */
284
+ public async connect(): Promise<
285
+ ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>
286
+ > {
287
+ if (!this.#raw.opened) {
288
+ await this.#raw.open();
289
+ }
290
+
291
+ const { configuration, interface_, alternate } =
292
+ findUsbAlternateInterface(this.#raw, this.#filters);
293
+
294
+ if (
295
+ this.#raw.configuration?.configurationValue !==
296
+ configuration.configurationValue
297
+ ) {
298
+ // Note: Switching configuration is not supported on Windows,
299
+ // but Android devices should always expose ADB function at the first (default) configuration.
300
+ await this.#raw.selectConfiguration(
301
+ configuration.configurationValue
302
+ );
303
+ }
304
+
305
+ if (!interface_.claimed) {
306
+ await this.#raw.claimInterface(interface_.interfaceNumber);
307
+ }
308
+
309
+ if (
310
+ interface_.alternate.alternateSetting !== alternate.alternateSetting
311
+ ) {
312
+ await this.#raw.selectAlternateInterface(
313
+ interface_.interfaceNumber,
314
+ alternate.alternateSetting
315
+ );
316
+ }
317
+
318
+ const { inEndpoint, outEndpoint } = findUsbEndpoints(
319
+ alternate.endpoints
320
+ );
321
+ return new AdbDaemonWebUsbConnection(
322
+ this.#raw,
323
+ inEndpoint,
324
+ outEndpoint,
325
+ this.#usbManager
326
+ );
327
+ }
328
+ }
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./device.js";
2
+ export * from "./manager.js";
3
+ export * from "./utils.js";
4
+ export * from "./watcher.js";
package/src/manager.ts ADDED
@@ -0,0 +1,110 @@
1
+ import { ADB_DEFAULT_DEVICE_FILTER, AdbDaemonWebUsbDevice } from "./device.js";
2
+ import type { AdbDeviceFilter } from "./utils.js";
3
+ import { findUsbAlternateInterface, isErrorName } from "./utils.js";
4
+
5
+ export class AdbDaemonWebUsbDeviceManager {
6
+ /**
7
+ * Gets the instance of {@link AdbDaemonWebUsbDeviceManager} using browser WebUSB implementation.
8
+ *
9
+ * May be `undefined` if current runtime does not support WebUSB.
10
+ */
11
+ public static readonly BROWSER =
12
+ typeof globalThis.navigator !== "undefined" &&
13
+ !!globalThis.navigator.usb
14
+ ? new AdbDaemonWebUsbDeviceManager(globalThis.navigator.usb)
15
+ : undefined;
16
+
17
+ #usbManager: USB;
18
+
19
+ /**
20
+ * Create a new instance of {@link AdbDaemonWebUsbDeviceManager} using the specified WebUSB implementation.
21
+ * @param usbManager A WebUSB compatible interface.
22
+ */
23
+ public constructor(usbManager: USB) {
24
+ this.#usbManager = usbManager;
25
+ }
26
+
27
+ /**
28
+ * Request access to a connected device.
29
+ * This is a convince method for `usb.requestDevice()`.
30
+ * @param filters
31
+ * The filters to apply to the device list.
32
+ *
33
+ * It must have `classCode`, `subclassCode` and `protocolCode` fields for selecting the ADB interface,
34
+ * but might also have `vendorId`, `productId` or `serialNumber` fields to limit the displayed device list.
35
+ *
36
+ * Defaults to {@link ADB_DEFAULT_DEVICE_FILTER}.
37
+ * @returns An {@link AdbDaemonWebUsbDevice} instance if the user selected a device,
38
+ * or `undefined` if the user cancelled the device picker.
39
+ */
40
+ public async requestDevice(
41
+ filters: AdbDeviceFilter[] = [ADB_DEFAULT_DEVICE_FILTER]
42
+ ): Promise<AdbDaemonWebUsbDevice | undefined> {
43
+ try {
44
+ const device = await this.#usbManager.requestDevice({
45
+ filters,
46
+ });
47
+ return new AdbDaemonWebUsbDevice(device, filters, this.#usbManager);
48
+ } catch (e) {
49
+ // No device selected
50
+ if (isErrorName(e, "NotFoundError")) {
51
+ return undefined;
52
+ }
53
+
54
+ throw e;
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Get all connected and authenticated devices.
60
+ * This is a convince method for `usb.getDevices()`.
61
+ * @param filters
62
+ * The filters to apply to the device list.
63
+ *
64
+ * It must have `classCode`, `subclassCode` and `protocolCode` fields for selecting the ADB interface,
65
+ * but might also have `vendorId`, `productId` or `serialNumber` fields to limit the device list.
66
+ *
67
+ * Defaults to {@link ADB_DEFAULT_DEVICE_FILTER}.
68
+ * @returns An array of {@link AdbDaemonWebUsbDevice} instances for all connected and authenticated devices.
69
+ */
70
+ public async getDevices(
71
+ filters: AdbDeviceFilter[] = [ADB_DEFAULT_DEVICE_FILTER]
72
+ ): Promise<AdbDaemonWebUsbDevice[]> {
73
+ const devices = await this.#usbManager.getDevices();
74
+ return devices
75
+ .filter((device) => {
76
+ for (const filter of filters) {
77
+ if (
78
+ "vendorId" in filter &&
79
+ device.vendorId !== filter.vendorId
80
+ ) {
81
+ continue;
82
+ }
83
+ if (
84
+ "productId" in filter &&
85
+ device.productId !== filter.productId
86
+ ) {
87
+ continue;
88
+ }
89
+ if (
90
+ "serialNumber" in filter &&
91
+ device.serialNumber !== filter.serialNumber
92
+ ) {
93
+ continue;
94
+ }
95
+
96
+ try {
97
+ findUsbAlternateInterface(device, filters);
98
+ return true;
99
+ } catch {
100
+ continue;
101
+ }
102
+ }
103
+ return false;
104
+ })
105
+ .map(
106
+ (device) =>
107
+ new AdbDaemonWebUsbDevice(device, filters, this.#usbManager)
108
+ );
109
+ }
110
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,46 @@
1
+ export function isErrorName(e: unknown, name: string): boolean {
2
+ // node-usb package doesn't use `DOMException`,
3
+ // so use a looser check
4
+ // https://github.com/node-usb/node-usb/issues/573
5
+ return (
6
+ typeof e === "object" && e !== null && "name" in e && e.name === name
7
+ );
8
+ }
9
+
10
+ /**
11
+ * `classCode`, `subclassCode` and `protocolCode` are required
12
+ * for selecting correct USB configuration and interface.
13
+ */
14
+ export type AdbDeviceFilter = USBDeviceFilter &
15
+ Required<
16
+ Pick<USBDeviceFilter, "classCode" | "subclassCode" | "protocolCode">
17
+ >;
18
+
19
+ function alternateMatchesFilter(
20
+ alternate: USBAlternateInterface,
21
+ filters: AdbDeviceFilter[]
22
+ ) {
23
+ return filters.some(
24
+ (filter) =>
25
+ alternate.interfaceClass === filter.classCode &&
26
+ alternate.interfaceSubclass === filter.subclassCode &&
27
+ alternate.interfaceProtocol === filter.protocolCode
28
+ );
29
+ }
30
+
31
+ export function findUsbAlternateInterface(
32
+ device: USBDevice,
33
+ filters: AdbDeviceFilter[]
34
+ ) {
35
+ for (const configuration of device.configurations) {
36
+ for (const interface_ of configuration.interfaces) {
37
+ for (const alternate of interface_.alternates) {
38
+ if (alternateMatchesFilter(alternate, filters)) {
39
+ return { configuration, interface_, alternate };
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ throw new Error("No matched alternate interface found");
46
+ }
package/src/watcher.ts ADDED
@@ -0,0 +1,28 @@
1
+ export class AdbDaemonWebUsbDeviceWatcher {
2
+ #callback: (newDeviceSerial?: string) => void;
3
+ #usbManager: USB;
4
+
5
+ public constructor(callback: (newDeviceSerial?: string) => void, usb: USB) {
6
+ this.#callback = callback;
7
+ this.#usbManager = usb;
8
+
9
+ this.#usbManager.addEventListener("connect", this.handleConnect);
10
+ this.#usbManager.addEventListener("disconnect", this.handleDisconnect);
11
+ }
12
+
13
+ public dispose(): void {
14
+ this.#usbManager.removeEventListener("connect", this.handleConnect);
15
+ this.#usbManager.removeEventListener(
16
+ "disconnect",
17
+ this.handleDisconnect
18
+ );
19
+ }
20
+
21
+ private handleConnect = (e: USBConnectionEvent) => {
22
+ this.#callback(e.device.serialNumber);
23
+ };
24
+
25
+ private handleDisconnect = () => {
26
+ this.#callback();
27
+ };
28
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "extends": "./node_modules/@yume-chan/tsconfig/tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "lib": [
5
+ "ESNext",
6
+ "DOM"
7
+ ],
8
+ "types": [
9
+ "w3c-web-usb",
10
+ ]
11
+ },
12
+ "references": [
13
+ {
14
+ "path": "../adb/tsconfig.build.json"
15
+ },
16
+ {
17
+ "path": "../stream-extra/tsconfig.build.json"
18
+ },
19
+ {
20
+ "path": "../struct/tsconfig.build.json"
21
+ },
22
+ ]
23
+ }
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es5.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2016.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2017.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2018.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2019.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2021.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2023.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.esnext.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.dom.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.core.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2017.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2017.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2019.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2019.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2019.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.date.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2020.number.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2021.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.error.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2023.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.decorators.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../common/temp/node_modules/.pnpm/tslib@2.5.2/node_modules/tslib/tslib.d.ts","../../common/temp/node_modules/.pnpm/tslib@2.5.2/node_modules/tslib/modules/index.d.ts","../struct/esm/basic/options.d.ts","../struct/esm/basic/struct-value.d.ts","../struct/esm/basic/field-value.d.ts","../struct/esm/utils.d.ts","../struct/esm/basic/stream.d.ts","../struct/esm/basic/definition.d.ts","../struct/esm/basic/index.d.ts","../struct/esm/types/bigint.d.ts","../struct/esm/types/buffer/base.d.ts","../struct/esm/types/buffer/fixed-length.d.ts","../struct/esm/types/buffer/variable-length.d.ts","../struct/esm/types/buffer/index.d.ts","../struct/esm/types/number.d.ts","../struct/esm/types/index.d.ts","../struct/esm/struct.d.ts","../struct/esm/sync-promise.d.ts","../struct/esm/index.d.ts","../../common/temp/node_modules/.pnpm/web-streams-polyfill@4.0.0-beta.3/node_modules/web-streams-polyfill/types/ponyfill.d.ts","../stream-extra/esm/stream.d.ts","../stream-extra/esm/buffered.d.ts","../stream-extra/esm/buffered-transform.d.ts","../stream-extra/esm/consumable.d.ts","../stream-extra/esm/decode-utf8.d.ts","../stream-extra/esm/distribution.d.ts","../stream-extra/esm/wrap-readable.d.ts","../stream-extra/esm/duplex.d.ts","../stream-extra/esm/gather-string.d.ts","../stream-extra/esm/inspect.d.ts","../stream-extra/esm/pipe-from.d.ts","../stream-extra/esm/push-readable.d.ts","../stream-extra/esm/split-string.d.ts","../stream-extra/esm/struct-deserialize.d.ts","../stream-extra/esm/struct-serialize.d.ts","../stream-extra/esm/wrap-writable.d.ts","../stream-extra/esm/index.d.ts","../adb/esm/features.d.ts","../adb/esm/banner.d.ts","../event/esm/disposable.d.ts","../event/esm/event.d.ts","../event/esm/event-emitter.d.ts","../event/esm/utils.d.ts","../event/esm/index.d.ts","../adb/esm/commands/base.d.ts","../adb/esm/commands/framebuffer.d.ts","../adb/esm/commands/power.d.ts","../adb/esm/commands/reverse.d.ts","../adb/esm/commands/subprocess/protocols/types.d.ts","../adb/esm/commands/subprocess/protocols/none.d.ts","../adb/esm/commands/subprocess/protocols/shell.d.ts","../adb/esm/commands/subprocess/protocols/index.d.ts","../adb/esm/commands/subprocess/command.d.ts","../adb/esm/commands/subprocess/utils.d.ts","../adb/esm/commands/subprocess/index.d.ts","../adb/esm/commands/sync/response.d.ts","../adb/esm/utils/auto-reset-event.d.ts","../adb/esm/utils/base64.d.ts","../adb/esm/utils/conditional-variable.d.ts","../adb/esm/utils/hex.d.ts","../adb/esm/utils/no-op.d.ts","../adb/esm/utils/index.d.ts","../adb/esm/commands/sync/socket.d.ts","../adb/esm/commands/sync/stat.d.ts","../adb/esm/commands/sync/list.d.ts","../adb/esm/commands/sync/pull.d.ts","../adb/esm/commands/sync/request.d.ts","../adb/esm/commands/sync/push.d.ts","../adb/esm/commands/sync/sync.d.ts","../adb/esm/commands/sync/index.d.ts","../adb/esm/commands/tcpip.d.ts","../adb/esm/commands/index.d.ts","../adb/esm/adb.d.ts","../adb/esm/daemon/packet.d.ts","../adb/esm/daemon/auth.d.ts","../adb/esm/daemon/crypto.d.ts","../adb/esm/daemon/device.d.ts","../adb/esm/daemon/dispatcher.d.ts","../adb/esm/daemon/socket.d.ts","../adb/esm/daemon/transport.d.ts","../adb/esm/daemon/index.d.ts","../adb/esm/server/transport.d.ts","../adb/esm/server/client.d.ts","../adb/esm/server/index.d.ts","../adb/esm/index.d.ts","./src/utils.ts","./src/device.ts","./src/manager.ts","./src/watcher.ts","./src/index.ts","../../common/temp/node_modules/.pnpm/@types+w3c-web-usb@1.0.6/node_modules/@types/w3c-web-usb/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","impliedFormat":1},{"version":"27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","impliedFormat":1},{"version":"eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec","impliedFormat":1},{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true,"impliedFormat":1},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true,"impliedFormat":1},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true,"impliedFormat":1},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true,"impliedFormat":1},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true,"impliedFormat":1},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7feb7967c6c6003e11f49efa8f5de989484e0a6ba2e5a6c41b55f8b8bd85dba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true,"impliedFormat":1},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true,"impliedFormat":1},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1c9fe42b65437a61104e601eb298c5c859fb522b483f1bdb700eed67a16f980","impliedFormat":1},{"version":"0734467ebd328b91af92eff2af9c97f6079bc4736c4992f8a5e47123680cf21b","impliedFormat":99},{"version":"7ceac7d7800ef7065908464aba0a009e9a03ff95f177a44f999687bdf10d039f","impliedFormat":99},{"version":"6043ab81faab77b975cb2a8457cc28c3b6f90a766cbbd27914da686bc41c83a0","impliedFormat":99},{"version":"613051be0c04c0fadf883f5ec01dcb0a4639ac92d9e2c12a222680c91b374595","impliedFormat":99},{"version":"a740a1e2d889fc4344fbb49a7f8b02ee664850be5cdcf029ace8ceb4316623db","impliedFormat":99},{"version":"ffe3c0472cf0ad60edbf5037319135c645bd92e7acbf403d72101df3598258e0","impliedFormat":99},{"version":"64ebe41006e87ea8b5e9b3acf048018b5226c4b08c6575526a76f6801143bf90","impliedFormat":99},{"version":"5af3b8b1a9063e033fc1e32a3e95956f5f5e22548d5ccca628b1ab87e42087d1","impliedFormat":99},{"version":"2414e378fb9e46fe36d8a0f4fb7af126441078299c03a46096713b03a5f6571d","impliedFormat":99},{"version":"1ed47fe653ec1bbcbd8ed241873938642755f2917f9e9a2e78daef11519f0745","impliedFormat":99},{"version":"4e74287ad61c1544e88339e78a4da19cb79c729be8799b8cd190353368532e30","impliedFormat":99},{"version":"21a136c72551be7c24d797d4fa1401d35ee62325bec7442a6869cea50a50ad7a","impliedFormat":99},{"version":"5ea1325a998e722fffc89ff8c2d00eaf35e491f3fada16fb56c6360f63d16d79","impliedFormat":99},{"version":"2f50c2700b3397c9961c1e14b903d0ff1120e064755603740cecdcdf3b05d20f","impliedFormat":99},{"version":"e24d67437856c921a9a40f7fbac38ac576439e6616eb698fb769279ecbc7802a","impliedFormat":99},{"version":"8fd12fa3eb9c1cc067d1fed98d649971da96a5ed161dafc6fba4a5b7a9ceb7fe","impliedFormat":99},{"version":"15cc3dd9a039f8ba1628d1e27cdf4b45582fc387a4241ebb65eff1786b89f522","impliedFormat":99},{"version":"01056fd3092681e2f1c0cb0e1fec91ac081b5bb758551494fca1c1d27f06c2b4","affectsGlobalScope":true,"impliedFormat":99},{"version":"19c2d8da51e4944a19e0ca377df3fd9d249dd8f9cab9544632fb8d10a72808f7","impliedFormat":1},{"version":"a387648b45b3d02c838a213809bf7aa3a3c6e009b0cfedbbb98e7863219fd0b4","impliedFormat":99},{"version":"fd9a69c8fa10f578b0d5961441fb2778fb34cd41d20e5714aa49f983f1cdd52f","impliedFormat":99},{"version":"7e9aecc83330a5c15b10f8995dfce2e1004f9bbdd0c4a9df18e8483facd76703","impliedFormat":99},{"version":"280386331ba739ec12261d42474f90f2d98214f9ac87ecad4be0585507acd937","impliedFormat":99},{"version":"316d7bdfb430fa119cbd460e01ffbf726321a5e54575c22b70e8ff56241d849a","impliedFormat":99},{"version":"d5a938d49803873c6de2daa0e81fa87ab44eee5259df765345932a28ecfb64fc","impliedFormat":99},{"version":"6642b7e23799bfb100805fbde097790a6484bd375c2c75dc18da086639f8b7e5","impliedFormat":99},{"version":"f4be8f5f1fbf13b24da4b2141e124c000750454d5168544c27352631e4edccd9","impliedFormat":99},{"version":"15268f168504a8daad6197637bf91c0399fb26861e720805051dd0e8c2f2ebd1","impliedFormat":99},{"version":"4ebc57d20caf062019a2b8c9ce1e54602a411022eb4f7fa325888b9bcf63693a","impliedFormat":99},{"version":"662cafdf363d512eff0d6c525c711684dba726ac5f4d09f473110a05c8ecd8e5","impliedFormat":99},{"version":"86c62ba4f3279d13647e2901b8819c9b32f4eb9645d50d02b4d60e5521f693db","impliedFormat":99},{"version":"98678d6ac29dfa3f80452de2a87f464dee4908476f817d6f5e0677802ad43f7b","impliedFormat":99},{"version":"057f28f1e4c53bfdc397099ee4bf873ef32f26a938a135881b19bf10f968a805","impliedFormat":99},{"version":"d00e790b0d3738482ddb18bb446210b41019520dd32438570d6bc533f7b95239","impliedFormat":99},{"version":"c4e45ef293b9b228aad0d51acb0ef0397dad22a3454b3f6f751b6de1ac9e11e0","impliedFormat":99},{"version":"9e33e135a12a5761c92a4ef0057e1d24310ada6f0758a13223036efc22b9e745","impliedFormat":99},{"version":"020962899646e5e2efc7100d1a0c443be16800cef6f2cada68c20fe8de585d43","impliedFormat":99},{"version":"48b65aae077c0a25bef9982871b488aebd4161768ee8bb88b9cc0d4736e15644","impliedFormat":99},{"version":"7565a3e1f88b68c438331d8ece71540f9fb5a11a8a0480b5c262c701142c5048","impliedFormat":99},{"version":"af6ac8a19dbd05c34feff97d0eae81194fd0be1358bd2366478e9a574492d332","impliedFormat":99},{"version":"a21c587d34edbe9808b8f4fac207d190f802687b477ef55ee0f494d79a427f31","impliedFormat":99},{"version":"f00b8fc0c970cfd54d4df6047aae216bce4d7a2ceb6610655541a678ac54c57a","impliedFormat":99},{"version":"11fd6a023d60896a902933f64a2c8363102e5276838dbe29aa02a24c2e69fbd1","impliedFormat":99},{"version":"d5664fad55c16b09f4fbda92412a3c0d99c5e143434a5a82dc0f86d0823014ae","impliedFormat":99},{"version":"ac5d1242b5e0af60effdcbdbd2ea3f1a1cfbc2877eb4ad8e6df0e596ff3ce047","impliedFormat":99},{"version":"18d3ba92c8cd5b0dc0413aa76efde4892c1095c865a6590560f4e30679a31afb","impliedFormat":99},{"version":"22a65c300fb8989d8c282e949c1219ba70ec4a7542136629d75072b0c191539f","impliedFormat":99},{"version":"8b686124fd8d7102d8c2293311e0b9b2d48ddae7d88fe0688841b3f440eaef55","impliedFormat":99},{"version":"3662463ad80a475e0e31f0d909c04036e9dc5e4b63141396db38795f6ec20edb","impliedFormat":99},{"version":"eb5828be18865d34ea3049afc3679267661a290b9858e2cd2866387c70b981ef","impliedFormat":99},{"version":"721313e1405531faa6e144e78ad3561023150692fbbcc23a4db9c2bda7e2b292","impliedFormat":99},{"version":"0bfafbea0db16cf312eb181f9153d840640fc36e47c0e61b30ddc16e5d23d432","impliedFormat":99},{"version":"3651947da5192aa0655f8a24ca016b3fb0a65bf24950cf52176d8972c7c32785","impliedFormat":99},{"version":"98da7969aa8079a6625791fdb0806f2cb125ae398bccd84e8cb8a76c454aac93","impliedFormat":99},{"version":"57cf1e4b805c24f3d61c1e753a4aac48061e932e90e2afdf38ddbc5111886410","impliedFormat":99},{"version":"40471ac4c2b6056bdc7ee09f1f279345d8fcc40b8b326eac38cff2df37ece97a","impliedFormat":99},{"version":"c82303f9ddeb0df5c2853ba02e9f1603ad0f01200225e6ee4cb2da53757243c0","impliedFormat":99},{"version":"8923bb9bac8a80132bbf1510facaa96198df1de6df035b77b5a81b681c5fba70","impliedFormat":99},{"version":"390d45fe0b15286282624b4646ac3267a601bf47154e2809cc9c12762d13223b","impliedFormat":99},{"version":"6bfed074c652e8043dfc926842ebc05f81db6c0c45b521e4bedc9dd8998df736","impliedFormat":99},{"version":"9fca5e617704571d97a09c9d6bafd115ecfdf54e9b719b263bd77cc7820e1e7a","impliedFormat":99},{"version":"372b22fc038ee96b5a52f6b998d37c0c9c0cb8300b858e3f368b61388359ae23","impliedFormat":99},{"version":"8fc0d6a1e97a1fcd37ebdb72241e4608652a69e1a963ca662d1429750cf04f73","impliedFormat":99},{"version":"8f70945f7ea3ad857863b6035d2ac1fdf1b6793c6a2ca74ce89508f82be4dc29","impliedFormat":99},{"version":"85e159ffc1676583a00e26cdae8f40fa3139e32c89aa7ecbc725e120a8db1418","impliedFormat":99},{"version":"ea4d0669fa41158a8ae4dfbcb9f690f3177edd29c83a4cf01b74a4db24c5dcc8","impliedFormat":99},{"version":"3a908670fbb5fa07652421362e908b98e3abb854dc07b036dcdf800b919901b4","impliedFormat":99},{"version":"1df671bf418dd913e42d9d9d848541e3c6e5989e5db362cb12ddd84305f34b17","impliedFormat":99},{"version":"eb90fe18be0b3b5b759ff8f055e9ccb19c6a4287c9061c7a4bb9805968e46498","impliedFormat":99},{"version":"d73ce6a51a42271a54f27cd4bbc0a1aa9897882a83f35c3ce1a611578305bc11","impliedFormat":99},{"version":"055d5c58abf9c069d88cd9f62a426008adc38258390ceba978fa527fffa54441","impliedFormat":99},{"version":"5a78fbd15c9e2a1d0603252fabff17addd55597ca9e25440132c26fb2ce117f3","impliedFormat":99},{"version":"78ab431a811184547b55f5f0af6f2d2859f5e638b2665bccb5efee2f2d947325","impliedFormat":99},{"version":"72e9620fda3c1d56bb3f1cfcf7e3052732c61fc57b042b128b7bf41d6d8c199f","impliedFormat":99},{"version":"8ec40582c992093bdc404d6d4d21459d31cc4cbd761f738979ba31f2d054cedd","impliedFormat":99},{"version":"2943c4190d96fc3a3ec84acbd89b8467572facc49459a9727cbd48acb5581c0e","impliedFormat":99},{"version":"afc3207b86111de2fda0fce7951a0beccffbb34eee0cbed88298413ad8d45494","impliedFormat":99},{"version":"451dbe724a8951a9ea92fb490d984e06a0de072532b7c74ad48d8dc0dd918bd1","impliedFormat":99},{"version":"208884a7e414e5b3c04c02677a6ed4c50e2d386f0eb851f637860ced9366ab17","impliedFormat":99},{"version":"6651e0e8d0a95ccab2cd3b24df4ea6c33da06499f588938f8758d2d3e822090a","impliedFormat":99},{"version":"2dfefff9f09ec7460c4ca86b1c5e5d2cfa0fe9a2a1613916b74a6a4949ea26cc","impliedFormat":99},{"version":"74cd613e6eae8d673e2198d877583ddff7879d52ba5a94b3dc35d8da0800f199","impliedFormat":99},{"version":"25cbd0baaecc32efabbed23767498e3cd2ebfc8f7a222866efe1e580f08f526b","impliedFormat":99},{"version":"af7d6189331b10c030322f3dc7e600466126bad616f098bda0fce116c7dd09c2","impliedFormat":99},{"version":"038380c14e8df9d0e74a45ac9e52f712989fc004e1b7c0aa7a189b9d02e669ce","signature":"5880148b7628f44eac1f32b905815872261d19b639f8ba45772ef263983d962d","impliedFormat":99},{"version":"a015d7080d3a13ba12d49c86414272ec5fe42243faa5fe1eb1b8c88419ea35d6","signature":"590e4cf12b4184de031367f406075363c76603d9ae8798849d878fd3d82962e9","impliedFormat":99},{"version":"dcb4f516503619639ba92509a55ff5e71ac6c6baf30dafa69fd9bb04bde7b108","signature":"8911f91f6513ffecff496fbaafdfb61c6afed546365aab1c03ca1a11e7509c15","impliedFormat":99},{"version":"d534ffda869e64916cea59219f3f24d5f66e49ff348149deb604e34998ba7b4c","signature":"96e4bc9e76e4ede432e44d1aa45cc1db1a713c26c9412570e3cd041892ccf83d","impliedFormat":99},{"version":"4e6e61be5afdc113e504c2b51e235fe7e1b809bcd8c174aff02e5d3e602fc680","impliedFormat":99},{"version":"dc409f321fd996ae183ff5da8ddd2d6d8a9b234b340e3300fad92bfd8390f48c","affectsGlobalScope":true,"impliedFormat":1}],"root":[[146,150]],"options":{"composite":true,"declaration":true,"declarationDir":"./esm","declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"importHelpers":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"outDir":"./esm","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":99},"fileIdsList":[[61],[62,79,97,145,146],[62,146,147,148,149],[62,146,147],[62],[79,97,98,99,132],[98],[104,133],[79,133],[105,106,107,108,115,130,131],[105],[97,104,133],[105,112],[112,113,114],[109,110,111],[80,97,109,133],[79,97,109,133],[79,97,133],[116,123,124,125,126,127,128,129],[79,116,123,124],[79,97,116,123],[79,97,123,124,127],[79],[79,97,122,133],[79,116,123],[97,104,116,123,124,125,133],[79,104,134],[79,97,134],[97,133,134],[134,135,136,137,138,139,140],[79,97],[97,104,133,138],[79,97,99,133,134,135],[98,99,122,132,133,141,144],[79,97,98,133,142],[142,143],[79,99,133,143],[104],[79,117,118,119,120,121],[100,101],[100],[100,101,102,103],[101],[79,81,82],[79,81],[81],[84],[79,81,87],[81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],[80,81],[80],[79,83],[63,64,65,67],[63,64,68],[63,64,65,67,68],[66],[65],[66,69,76,77,78],[66,69,76],[69],[71],[71,72,73],[66,69,71],[70,74,75],[97,145,146],[146,147,148,149],[146,147]],"referencedMap":[[62,1],[147,2],[150,3],[148,4],[146,5],[149,5],[133,6],[99,7],[105,8],[106,9],[132,10],[107,11],[108,12],[113,13],[115,14],[112,15],[110,16],[111,17],[109,18],[130,19],[125,20],[126,21],[128,22],[127,23],[116,23],[123,24],[124,25],[129,26],[131,11],[135,27],[137,28],[138,29],[141,30],[134,31],[139,32],[140,33],[145,34],[143,35],[144,36],[142,37],[117,38],[119,38],[122,39],[102,40],[101,41],[104,42],[103,43],[83,44],[82,45],[84,46],[85,46],[86,47],[88,48],[89,46],[97,49],[90,46],[91,50],[92,46],[93,46],[81,51],[94,52],[95,45],[87,45],[96,45],[68,53],[65,54],[69,55],[67,56],[64,57],[79,58],[77,59],[70,60],[71,60],[72,61],[74,62],[73,63],[76,64],[75,60]],"exportedModulesMap":[[62,1],[147,65],[150,66],[148,67],[133,6],[99,7],[105,8],[106,9],[132,10],[107,11],[108,12],[113,13],[115,14],[112,15],[110,16],[111,17],[109,18],[130,19],[125,20],[126,21],[128,22],[127,23],[116,23],[123,24],[124,25],[129,26],[131,11],[135,27],[137,28],[138,29],[141,30],[134,31],[139,32],[140,33],[145,34],[143,35],[144,36],[142,37],[117,38],[119,38],[122,39],[102,40],[101,41],[104,42],[103,43],[83,44],[82,45],[84,46],[85,46],[86,47],[88,48],[89,46],[97,49],[90,46],[91,50],[92,46],[93,46],[81,51],[94,52],[95,45],[87,45],[96,45],[68,53],[65,54],[69,55],[67,56],[64,57],[79,58],[77,59],[70,60],[71,60],[72,61],[74,62],[73,63],[76,64],[75,60]],"semanticDiagnosticsPerFile":[151,62,61,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,80,147,150,148,146,149,133,99,105,106,132,107,108,113,115,112,110,111,109,114,130,125,126,128,127,116,123,124,129,131,135,136,137,138,141,134,139,140,98,145,143,144,142,117,118,119,120,122,121,100,102,101,104,103,83,82,84,85,86,88,89,97,90,91,92,93,81,94,95,87,96,68,65,69,63,67,64,79,77,78,70,71,72,74,73,76,75,66],"latestChangedDtsFile":"./esm/manager.d.ts"},"version":"5.0.4"}