@yume-chan/adb-credential-web 2.1.0 → 3.0.0-beta.1

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 (75) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -1
  3. package/esm/index.d.ts +2 -23
  4. package/esm/index.d.ts.map +1 -1
  5. package/esm/index.js +2 -102
  6. package/esm/index.js.map +1 -1
  7. package/esm/manager.d.ts +9 -0
  8. package/esm/manager.d.ts.map +1 -0
  9. package/esm/manager.js +56 -0
  10. package/esm/manager.js.map +1 -0
  11. package/esm/storage/index.d.ts +6 -0
  12. package/esm/storage/index.d.ts.map +1 -0
  13. package/esm/storage/index.js +6 -0
  14. package/esm/storage/index.js.map +1 -0
  15. package/esm/storage/indexed-db/index.d.ts +3 -0
  16. package/esm/storage/indexed-db/index.d.ts.map +1 -0
  17. package/esm/storage/indexed-db/index.js +3 -0
  18. package/esm/storage/indexed-db/index.js.map +1 -0
  19. package/esm/storage/indexed-db/shared.d.ts +4 -0
  20. package/esm/storage/indexed-db/shared.d.ts.map +1 -0
  21. package/esm/storage/indexed-db/shared.js +50 -0
  22. package/esm/storage/indexed-db/shared.js.map +1 -0
  23. package/esm/storage/indexed-db/v1.d.ts +5 -0
  24. package/esm/storage/indexed-db/v1.d.ts.map +1 -0
  25. package/esm/storage/indexed-db/v1.js +22 -0
  26. package/esm/storage/indexed-db/v1.js.map +1 -0
  27. package/esm/storage/indexed-db/v2.d.ts +14 -0
  28. package/esm/storage/indexed-db/v2.d.ts.map +1 -0
  29. package/esm/storage/indexed-db/v2.js +78 -0
  30. package/esm/storage/indexed-db/v2.js.map +1 -0
  31. package/esm/storage/local-storage.d.ts +8 -0
  32. package/esm/storage/local-storage.d.ts.map +1 -0
  33. package/esm/storage/local-storage.js +25 -0
  34. package/esm/storage/local-storage.js.map +1 -0
  35. package/esm/storage/password.d.ts +27 -0
  36. package/esm/storage/password.d.ts.map +1 -0
  37. package/esm/storage/password.js +129 -0
  38. package/esm/storage/password.js.map +1 -0
  39. package/esm/storage/prf/index.d.ts +4 -0
  40. package/esm/storage/prf/index.d.ts.map +1 -0
  41. package/esm/storage/prf/index.js +4 -0
  42. package/esm/storage/prf/index.js.map +1 -0
  43. package/esm/storage/prf/source.d.ts +27 -0
  44. package/esm/storage/prf/source.d.ts.map +1 -0
  45. package/esm/storage/prf/source.js +2 -0
  46. package/esm/storage/prf/source.js.map +1 -0
  47. package/esm/storage/prf/storage.d.ts +19 -0
  48. package/esm/storage/prf/storage.d.ts.map +1 -0
  49. package/esm/storage/prf/storage.js +125 -0
  50. package/esm/storage/prf/storage.js.map +1 -0
  51. package/esm/storage/prf/web-authn.d.ts +55 -0
  52. package/esm/storage/prf/web-authn.d.ts.map +1 -0
  53. package/esm/storage/prf/web-authn.js +138 -0
  54. package/esm/storage/prf/web-authn.js.map +1 -0
  55. package/esm/storage/type.d.ts +11 -0
  56. package/esm/storage/type.d.ts.map +1 -0
  57. package/esm/storage/type.js +2 -0
  58. package/esm/storage/type.js.map +1 -0
  59. package/package.json +10 -7
  60. package/src/index.ts +2 -121
  61. package/src/manager.ts +82 -0
  62. package/src/storage/index.ts +5 -0
  63. package/src/storage/indexed-db/index.ts +2 -0
  64. package/src/storage/indexed-db/shared.ts +62 -0
  65. package/src/storage/indexed-db/v1.ts +29 -0
  66. package/src/storage/indexed-db/v2.ts +95 -0
  67. package/src/storage/local-storage.ts +37 -0
  68. package/src/storage/password.ts +245 -0
  69. package/src/storage/prf/index.ts +3 -0
  70. package/src/storage/prf/source.ts +35 -0
  71. package/src/storage/prf/storage.ts +191 -0
  72. package/src/storage/prf/web-authn.ts +175 -0
  73. package/src/storage/type.ts +17 -0
  74. package/CHANGELOG.md +0 -149
  75. package/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,35 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
+
3
+ export interface TangoPrfCreationResult {
4
+ /**
5
+ * The generated PRF output
6
+ */
7
+ output: BufferSource;
8
+
9
+ /**
10
+ * ID of the created secret key
11
+ */
12
+ id: Uint8Array<ArrayBuffer>;
13
+ }
14
+
15
+ export interface TangoPrfSource {
16
+ /**
17
+ * Creates a new secret key and generate PRF output using the key and input data.
18
+ *
19
+ * @param input The input data
20
+ */
21
+ create(
22
+ input: Uint8Array<ArrayBuffer>,
23
+ ): MaybePromiseLike<TangoPrfCreationResult>;
24
+
25
+ /**
26
+ * Generates PRF output using the secret key and input data.
27
+ *
28
+ * @param id ID of the secret key
29
+ * @param input The input data
30
+ */
31
+ get(
32
+ id: BufferSource,
33
+ input: Uint8Array<ArrayBuffer>,
34
+ ): MaybePromiseLike<BufferSource>;
35
+ }
@@ -0,0 +1,191 @@
1
+ import type { MaybeError } from "@yume-chan/adb";
2
+ import { toLocalUint8Array } from "@yume-chan/adb";
3
+ import { toUint8Array } from "@yume-chan/stream-extra";
4
+ import {
5
+ buffer,
6
+ struct,
7
+ u16,
8
+ Uint8ArrayExactReadable,
9
+ } from "@yume-chan/struct";
10
+
11
+ import type { TangoKey, TangoKeyStorage } from "../type.js";
12
+
13
+ import type { TangoPrfSource } from "./source.js";
14
+
15
+ // PRF generally uses FIDO HMAC secret extension, which uses HMAC with SHA-256,
16
+ // and this input is used as salt, so should be 32 bytes
17
+ const PrfInputLength = 32;
18
+ const HkdfInfoLength = 32;
19
+ // We use HMAC with SHA-512, so should be 64 bytes
20
+ const HkdfSaltLength = 64;
21
+ // AES-GCM recommends 12-byte (96-bit) IV for performance and interoperability
22
+ const AesIvLength = 12;
23
+
24
+ async function deriveAesKey(
25
+ source: BufferSource,
26
+ info: Uint8Array<ArrayBuffer>,
27
+ salt: Uint8Array<ArrayBuffer>,
28
+ ): Promise<CryptoKey> {
29
+ const baseKey = await crypto.subtle.importKey(
30
+ "raw",
31
+ source,
32
+ "HKDF",
33
+ false,
34
+ ["deriveKey"],
35
+ );
36
+
37
+ return await crypto.subtle.deriveKey(
38
+ {
39
+ name: "HKDF",
40
+ hash: "SHA-512",
41
+ info,
42
+ salt,
43
+ } satisfies globalThis.HkdfParams,
44
+ baseKey,
45
+ { name: "AES-GCM", length: 256 },
46
+ false,
47
+ ["encrypt", "decrypt"],
48
+ );
49
+ }
50
+
51
+ const Bundle = struct(
52
+ {
53
+ id: buffer(u16),
54
+ prfInput: buffer(PrfInputLength),
55
+ hkdfInfo: buffer(HkdfInfoLength),
56
+ hkdfSalt: buffer(HkdfSaltLength),
57
+ aesIv: buffer(AesIvLength),
58
+ encrypted: buffer(u16),
59
+ },
60
+ { littleEndian: true },
61
+ );
62
+
63
+ /**
64
+ * A `TangoDataStorage` that encrypts and decrypts data using PRF
65
+ */
66
+ export class TangoPrfStorage implements TangoKeyStorage {
67
+ readonly #storage: TangoKeyStorage;
68
+ readonly #source: TangoPrfSource;
69
+ #prevId: Uint8Array<ArrayBuffer> | undefined;
70
+
71
+ /**
72
+ * Creates a new instance of `TangoPrfStorage`
73
+ *
74
+ * @param storage Another `TangoDataStorage` to store and retrieve the encrypted data
75
+ * @param source The `TangoPrfSource` to generate PRF output
76
+ */
77
+ constructor(storage: TangoKeyStorage, source: TangoPrfSource) {
78
+ this.#storage = storage;
79
+ this.#source = source;
80
+ }
81
+
82
+ async save(
83
+ privateKey: Uint8Array,
84
+ name: string | undefined,
85
+ ): Promise<undefined> {
86
+ const prfInput = new Uint8Array(PrfInputLength);
87
+ crypto.getRandomValues(prfInput);
88
+
89
+ // Maybe reuse the credential, but use different PRF input and HKDF params
90
+ let id: Uint8Array<ArrayBuffer>;
91
+ let prfOutput: BufferSource;
92
+ if (this.#prevId) {
93
+ prfOutput = await this.#source.get(this.#prevId, prfInput);
94
+ id = this.#prevId;
95
+ } else {
96
+ ({ output: prfOutput, id } = await this.#source.create(prfInput));
97
+ this.#prevId = id;
98
+ }
99
+
100
+ const info = new Uint8Array(HkdfInfoLength);
101
+ crypto.getRandomValues(info);
102
+
103
+ const salt = new Uint8Array(HkdfSaltLength);
104
+ crypto.getRandomValues(salt);
105
+
106
+ let aesKey: CryptoKey;
107
+ try {
108
+ aesKey = await deriveAesKey(prfOutput, info, salt);
109
+ } finally {
110
+ // Clear secret memory
111
+ toUint8Array(prfOutput).fill(0);
112
+ }
113
+
114
+ const iv = new Uint8Array(AesIvLength);
115
+ crypto.getRandomValues(iv);
116
+
117
+ const encrypted = await crypto.subtle.encrypt(
118
+ { name: "AES-GCM", iv },
119
+ aesKey,
120
+ toLocalUint8Array(privateKey),
121
+ );
122
+
123
+ const bundle = Bundle.serialize({
124
+ id,
125
+ prfInput,
126
+ hkdfInfo: info,
127
+ hkdfSalt: salt,
128
+ aesIv: iv,
129
+ encrypted: new Uint8Array(encrypted),
130
+ });
131
+
132
+ await this.#storage.save(bundle, name);
133
+ }
134
+
135
+ async *load(): AsyncGenerator<MaybeError<TangoKey>, void, void> {
136
+ for await (const result of this.#storage.load()) {
137
+ if (result instanceof Error) {
138
+ yield result;
139
+ continue;
140
+ }
141
+
142
+ const { privateKey: serialized, name } = result;
143
+
144
+ try {
145
+ const bundle = Bundle.deserialize(
146
+ new Uint8ArrayExactReadable(serialized),
147
+ );
148
+
149
+ const prfOutput = await this.#source.get(
150
+ bundle.id as Uint8Array<ArrayBuffer>,
151
+ bundle.prfInput as Uint8Array<ArrayBuffer>,
152
+ );
153
+
154
+ this.#prevId = bundle.id as Uint8Array<ArrayBuffer>;
155
+
156
+ let aesKey: CryptoKey;
157
+ try {
158
+ aesKey = await deriveAesKey(
159
+ prfOutput,
160
+ bundle.hkdfInfo as Uint8Array<ArrayBuffer>,
161
+ bundle.hkdfSalt as Uint8Array<ArrayBuffer>,
162
+ );
163
+ } finally {
164
+ // Clear secret memory
165
+ toUint8Array(prfOutput).fill(0);
166
+ }
167
+
168
+ const decrypted = await crypto.subtle.decrypt(
169
+ {
170
+ name: "AES-GCM",
171
+ iv: bundle.aesIv as Uint8Array<ArrayBuffer>,
172
+ },
173
+ aesKey,
174
+ bundle.encrypted as Uint8Array<ArrayBuffer>,
175
+ );
176
+
177
+ try {
178
+ yield { privateKey: new Uint8Array(decrypted), name };
179
+ } finally {
180
+ // Clear secret memory
181
+ // Caller is not allowed to use `decrypted` after `yield` returns
182
+ new Uint8Array(decrypted).fill(0);
183
+ }
184
+ } catch (e) {
185
+ yield e instanceof Error
186
+ ? e
187
+ : new Error(String(e), { cause: e });
188
+ }
189
+ }
190
+ }
191
+ }
@@ -0,0 +1,175 @@
1
+ import type { TangoPrfSource } from "./source.js";
2
+
3
+ function checkCredential(
4
+ credential: Credential | null,
5
+ ): asserts credential is PublicKeyCredential {
6
+ if (!credential || !(credential instanceof PublicKeyCredential)) {
7
+ throw new Error("Can't create credential");
8
+ }
9
+ }
10
+
11
+ function getPrfOutput(credential: PublicKeyCredential) {
12
+ const extensions = credential.getClientExtensionResults();
13
+
14
+ const prf = extensions["prf"];
15
+ if (!prf) {
16
+ throw new NotSupportedError();
17
+ }
18
+
19
+ return prf;
20
+ }
21
+
22
+ class NotSupportedError extends Error {
23
+ constructor() {
24
+ super("PRF extension is not supported");
25
+ }
26
+ }
27
+
28
+ class OperationCancelledError extends Error {
29
+ constructor() {
30
+ super("The operation is either cancelled by user or timed out");
31
+ }
32
+ }
33
+
34
+ export class TangoWebAuthnPrfSource implements TangoPrfSource {
35
+ static NotSupportedError = NotSupportedError;
36
+ static OperationCancelledError = OperationCancelledError;
37
+
38
+ /**
39
+ * Checks if the runtime supports WebAuthn PRF extension.
40
+ *
41
+ * Note that using the extension also requires a supported authenticator.
42
+ * Whether an authenticator supports the extension can only be checked
43
+ * during the `create` process.
44
+ * @returns `true` if the runtime supports WebAuthn PRF extension
45
+ */
46
+ static async isSupported(): Promise<boolean> {
47
+ if (typeof PublicKeyCredential === "undefined") {
48
+ return false;
49
+ }
50
+
51
+ if (!PublicKeyCredential.getClientCapabilities) {
52
+ return false;
53
+ }
54
+
55
+ const clientCapabilities =
56
+ await PublicKeyCredential.getClientCapabilities();
57
+ if (!clientCapabilities["extension:prf"]) {
58
+ return false;
59
+ }
60
+
61
+ return true;
62
+ }
63
+
64
+ readonly #appName: string;
65
+ readonly #userName: string;
66
+
67
+ /**
68
+ * Creates a new instance of `TangoWebAuthnPrfSource`
69
+ *
70
+ * @param appName Name of your website shows in Passkey manager
71
+ * @param userName Display name of the credential shows in Passkey manager
72
+ */
73
+ constructor(appName: string, userName: string) {
74
+ this.#appName = appName;
75
+ this.#userName = userName;
76
+ }
77
+
78
+ /**
79
+ * Creates a new credential and generate PRF output using the credential and input data.
80
+ *
81
+ * @param input The input data
82
+ * @returns The credential ID and PRF output
83
+ * @throws `NotSupportedError` if the runtime or authenticator doesn't support PRF extension
84
+ * @throws `OperationCancelledError` if the attestation is either cancelled by user or timed out
85
+ */
86
+ async create(input: Uint8Array<ArrayBuffer>): Promise<{
87
+ output: BufferSource;
88
+ id: Uint8Array<ArrayBuffer>;
89
+ }> {
90
+ const challenge = new Uint8Array(32);
91
+ crypto.getRandomValues(challenge);
92
+
93
+ let attestation;
94
+ try {
95
+ attestation = await navigator.credentials.create({
96
+ publicKey: {
97
+ challenge,
98
+ extensions: { prf: { eval: { first: input } } },
99
+ pubKeyCredParams: [
100
+ { type: "public-key", alg: -7 },
101
+ { type: "public-key", alg: -257 },
102
+ ],
103
+ rp: { name: this.#appName },
104
+ user: {
105
+ id: challenge,
106
+ name: this.#userName,
107
+ displayName: this.#userName,
108
+ },
109
+ },
110
+ });
111
+ } catch {
112
+ throw new OperationCancelledError();
113
+ }
114
+
115
+ checkCredential(attestation);
116
+
117
+ const prf = getPrfOutput(attestation);
118
+ if (prf.enabled === undefined) {
119
+ throw new NotSupportedError();
120
+ }
121
+
122
+ const id = new Uint8Array(attestation.rawId);
123
+
124
+ if (prf.results) {
125
+ return { output: prf.results.first, id };
126
+ }
127
+
128
+ // Some authenticators only support getting PRF in assertion
129
+ const output = await this.get(id, input);
130
+ return { output, id };
131
+ }
132
+
133
+ /**
134
+ * Generates PRF output using a credential and input data.
135
+ *
136
+ * @param id ID of a previously created credential
137
+ * @param input The input data
138
+ * @returns PRF output
139
+ * @throws `OperationCancelledError` if the attestation is either cancelled by user or timed out
140
+ */
141
+ async get(
142
+ id: BufferSource,
143
+ input: Uint8Array<ArrayBuffer>,
144
+ ): Promise<BufferSource> {
145
+ const challenge = new Uint8Array(32);
146
+ crypto.getRandomValues(challenge);
147
+
148
+ let assertion;
149
+ try {
150
+ assertion = await navigator.credentials.get({
151
+ publicKey: {
152
+ allowCredentials: [{ type: "public-key", id }],
153
+ challenge,
154
+ extensions: { prf: { eval: { first: input } } },
155
+ },
156
+ });
157
+ } catch {
158
+ throw new OperationCancelledError();
159
+ }
160
+
161
+ checkCredential(assertion);
162
+
163
+ const prfOutput = getPrfOutput(assertion);
164
+ if (!prfOutput.results) {
165
+ throw new NotSupportedError();
166
+ }
167
+
168
+ return prfOutput.results.first;
169
+ }
170
+ }
171
+
172
+ export namespace TangoWebAuthnPrfSource {
173
+ export type NotSupportedError = typeof NotSupportedError;
174
+ export type OperationCancelledError = typeof OperationCancelledError;
175
+ }
@@ -0,0 +1,17 @@
1
+ import type { MaybeError } from "@yume-chan/adb";
2
+ import type { MaybePromiseLike } from "@yume-chan/async";
3
+
4
+ export interface TangoKey {
5
+ privateKey: Uint8Array;
6
+ name: string | undefined;
7
+ }
8
+
9
+ export interface TangoKeyStorage {
10
+ save(
11
+ privateKey: Uint8Array,
12
+ name: string | undefined,
13
+ ): MaybePromiseLike<undefined>;
14
+
15
+ load():
16
+ Iterable<MaybeError<TangoKey>> | AsyncIterable<MaybeError<TangoKey>>;
17
+ }
package/CHANGELOG.md DELETED
@@ -1,149 +0,0 @@
1
- # Change Log - @yume-chan/adb-credential-web
2
-
3
- ## 2.1.0
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [a835eb8]
8
- - Updated dependencies [dbcfd34]
9
- - @yume-chan/adb@2.1.0
10
-
11
- ## 2.0.1
12
-
13
- ### Patch Changes
14
-
15
- - @yume-chan/adb@2.0.1
16
-
17
- ## 2.0.0
18
-
19
- ### Patch Changes
20
-
21
- - Updated dependencies
22
- - Updated dependencies [05c01ad]
23
- - @yume-chan/adb@2.0.0
24
-
25
- ## 1.1.0
26
-
27
- ### Patch Changes
28
-
29
- - Updated dependencies [ab98953]
30
- - @yume-chan/adb@1.1.0
31
-
32
- ## 1.0.1
33
-
34
- ### Patch Changes
35
-
36
- - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
37
-
38
- Because Changesets doesn't support alpha versions (`0.x.x`), this version is `1.0.0`. Future versions will follow SemVer rules, for example, breaking API changes will introduce a new major version.
39
-
40
- - db8466f: Add common interface for device observers
41
- - Updated dependencies [53688d3]
42
- - Updated dependencies [db8466f]
43
- - Updated dependencies [db8466f]
44
- - Updated dependencies [db8466f]
45
- - @yume-chan/adb@1.0.1
46
-
47
- This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
48
-
49
- ## 0.0.24
50
-
51
- Tue, 18 Jun 2024 02:49:43 GMT
52
-
53
- _Version update only_
54
-
55
- ## 0.0.23
56
-
57
- Thu, 21 Mar 2024 03:15:10 GMT
58
-
59
- _Version update only_
60
-
61
- ## 0.0.22
62
-
63
- Wed, 13 Dec 2023 05:57:27 GMT
64
-
65
- _Version update only_
66
-
67
- ## 0.0.21
68
-
69
- Fri, 25 Aug 2023 14:05:18 GMT
70
-
71
- ### Updates
72
-
73
- - Add name for public keys
74
- - Change to save private keys in IndexedDB, allow usage from Web Workers
75
-
76
- ## 0.0.20
77
-
78
- Mon, 05 Jun 2023 02:51:41 GMT
79
-
80
- ### Updates
81
-
82
- - Change `AdbWebCredentialStore` to save private keys in IndexedDB, so it can be used in Web Workers. Previously saved keys in `localStorage` will be ignored and a new key will be generated.
83
-
84
- ## 0.0.19
85
-
86
- Sun, 09 Apr 2023 05:55:33 GMT
87
-
88
- _Version update only_
89
-
90
- ## 0.0.18
91
-
92
- Wed, 25 Jan 2023 21:33:49 GMT
93
-
94
- _Version update only_
95
-
96
- ## 0.0.17
97
-
98
- Tue, 18 Oct 2022 09:32:30 GMT
99
-
100
- ### Updates
101
-
102
- - Update to use new stream util package
103
-
104
- ## 0.0.16
105
-
106
- Sat, 28 May 2022 03:56:37 GMT
107
-
108
- ### Updates
109
-
110
- - Upgrade TypeScript to 4.7.2 to enable Node.js ESM
111
-
112
- ## 0.0.15
113
-
114
- Mon, 02 May 2022 04:18:01 GMT
115
-
116
- _Version update only_
117
-
118
- ## 0.0.14
119
-
120
- Sat, 30 Apr 2022 14:05:48 GMT
121
-
122
- _Version update only_
123
-
124
- ## 0.0.13
125
-
126
- Thu, 28 Apr 2022 01:23:53 GMT
127
-
128
- _Version update only_
129
-
130
- ## 0.0.12
131
-
132
- Sun, 03 Apr 2022 11:18:47 GMT
133
-
134
- _Version update only_
135
-
136
- ## 0.0.11
137
-
138
- Sun, 03 Apr 2022 10:54:15 GMT
139
-
140
- ### Updates
141
-
142
- - Update to use Web Streams API
143
- - Improve compatibility with Node.js 12 ESM format
144
-
145
- ## 0.0.10
146
-
147
- Sun, 09 Jan 2022 15:52:20 GMT
148
-
149
- _Initial release_
@@ -1 +0,0 @@
1
- {"fileNames":["../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@yume-chan+async@4.1.3/node_modules/@yume-chan/async/dts/async-operation-manager.d.ts","../../node_modules/.pnpm/@yume-chan+async@4.1.3/node_modules/@yume-chan/async/dts/delay.d.ts","../../node_modules/.pnpm/@yume-chan+async@4.1.3/node_modules/@yume-chan/async/dts/maybe-promise.d.ts","../../node_modules/.pnpm/@yume-chan+async@4.1.3/node_modules/@yume-chan/async/dts/promise-resolver.d.ts","../../node_modules/.pnpm/@yume-chan+async@4.1.3/node_modules/@yume-chan/async/dts/index.d.ts","../struct/esm/bipedal.d.ts","../struct/esm/readable.d.ts","../struct/esm/field/types.d.ts","../struct/esm/field/serialize.d.ts","../struct/esm/field/factory.d.ts","../struct/esm/field/index.d.ts","../struct/esm/buffer.d.ts","../struct/esm/types.d.ts","../struct/esm/struct.d.ts","../struct/esm/concat.d.ts","../struct/esm/extend.d.ts","../struct/esm/number.d.ts","../struct/esm/string.d.ts","../struct/esm/utils.d.ts","../struct/esm/index.d.ts","../stream-extra/esm/types.d.ts","../stream-extra/esm/stream.d.ts","../stream-extra/esm/buffered.d.ts","../stream-extra/esm/buffered-transform.d.ts","../stream-extra/esm/concat.d.ts","../stream-extra/esm/consumable/readable.d.ts","../stream-extra/esm/consumable/wrap-byte-readable.d.ts","../stream-extra/esm/consumable/wrap-writable.d.ts","../stream-extra/esm/consumable/writable.d.ts","../stream-extra/esm/consumable/index.d.ts","../stream-extra/esm/consumable.d.ts","../stream-extra/esm/maybe-consumable/utils.d.ts","../stream-extra/esm/maybe-consumable/wrap-writable.d.ts","../stream-extra/esm/maybe-consumable/writable.d.ts","../stream-extra/esm/maybe-consumable/index.d.ts","../stream-extra/esm/maybe-consumable.d.ts","../stream-extra/esm/distribution.d.ts","../stream-extra/esm/wrap-readable.d.ts","../stream-extra/esm/duplex.d.ts","../stream-extra/esm/encoding.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/task.d.ts","../stream-extra/esm/try-close.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/sticky-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/none/spawner.d.ts","../adb/esm/commands/subprocess/none/process.d.ts","../adb/esm/commands/subprocess/pty.d.ts","../adb/esm/commands/subprocess/none/pty.d.ts","../adb/esm/commands/subprocess/none/service.d.ts","../adb/esm/commands/subprocess/none/index.d.ts","../adb/esm/commands/subprocess/shell/spawner.d.ts","../adb/esm/commands/subprocess/shell/process.d.ts","../adb/esm/commands/subprocess/shell/pty.d.ts","../adb/esm/commands/subprocess/shell/service.d.ts","../adb/esm/commands/subprocess/shell/shared.d.ts","../adb/esm/commands/subprocess/shell/index.d.ts","../adb/esm/commands/subprocess/service.d.ts","../adb/esm/commands/subprocess/utils.d.ts","../adb/esm/commands/subprocess/index.d.ts","../adb/esm/utils/auto-reset-event.d.ts","../adb/esm/utils/base64.d.ts","../adb/esm/utils/hex.d.ts","../adb/esm/utils/no-op.d.ts","../adb/esm/utils/ref.d.ts","../adb/esm/utils/sequence-equal.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/push.d.ts","../adb/esm/commands/sync/request.d.ts","../adb/esm/commands/sync/response.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/device-observer.d.ts","../adb/esm/server/commands/m-dns.d.ts","../adb/esm/server/commands/wireless.d.ts","../adb/esm/server/commands/index.d.ts","../adb/esm/server/observer.d.ts","../adb/esm/server/stream.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/index.ts"],"fileIdsList":[[193],[84,129,130,131,174],[130],[137,175],[99,175],[138,139,140,141,156,172,173],[138],[129,138,175],[147,153,154,155],[142,143,145,146],[84,129,142,175],[84,129,144,175],[142,145,175],[84,129],[147,153,175],[148,149,150,151,152],[84,129,148,175],[148,150,175],[99],[164,165,166,167,168,169,170,171],[99,164,165],[99,129,164],[99,129,164,165],[99,129,163,175],[99,164],[99,129,164,165,166,175],[84,137,176],[84,129,176],[129,175,176],[176,177,178,179,180,181,182],[99,129],[129,137,175,180],[84,129,130,131,175,176,177],[84,137],[130,131,163,174,175,183,184,192],[84,129,130,137,175,184,187,188,189,190],[185,186],[191],[188,189,190,191],[84,100,129,191],[130,131,175,191],[137],[99,157,158,159,160,161,162],[132,133],[132],[132,133,134,135,136],[133,134],[133],[84,101,102],[84,99,101],[101],[109],[105,106,107,108],[101,110],[101,115],[84,101,117],[101,102,103,104,110,115,116,117,118,119,120,121,122,123,124,125,126,127,128],[110,114],[111,112,113],[110,115],[100,101],[100],[99,103],[99,101],[101,102,122],[84,101],[84],[90],[93],[85,86,87,88],[87,88,89],[87],[84,86],[85,86,90,91,92,93,94,95,96,97,98],[90,91],[90,92],[84,86,90],[80,81,82,83]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4942ce52738852aac9e3eb7b2743abd920ea3f62dfc930e8ab49db6672c5d292","impliedFormat":99},{"version":"f232c6de4d9dacf27320453a89e04c29b3bcc7a084ee6184de18a15e4a1a3a1d","impliedFormat":99},{"version":"0bbbbb1b5a4f7a77a28dbcd2fc59311affab8cfed9dba97b5d5cf20ae7fbc3f3","impliedFormat":99},{"version":"557a9670c1bb00cdd5eb309ed1e28665fdefe501a4b12eb124dc1bcaa1498328","impliedFormat":99},{"version":"91ef0ad14ba3385732eceb83552b2a01fb9f86e0fa532f11d038368ab2ee4bc9","impliedFormat":99},{"version":"19872606f722ee6d7e7ae009f5e1d5518695d592de0bc88fbecffb09a190f61c","impliedFormat":99},{"version":"87b3f584a85a5c19bbc331b864710b5a17385c555449f10f1172a2fcdd461e80","impliedFormat":99},{"version":"584c50ac39249bea22701fc35e079d771574d7c7a5974813cac8478e49dd197f","impliedFormat":99},{"version":"f479141fdc9002c67ba83693f4d6b61daecb7af890d5f821dada93894b1c72bf","impliedFormat":99},{"version":"cc3fd3344888f2d160e3ef75189a200fd80e72f4ef4b61455a4474d79477bdeb","impliedFormat":99},{"version":"9ed39feaedfaa6d05973b74694ab07211fff43efb1ca554be3bda00ac86de46d","impliedFormat":99},{"version":"30dd5b92fc2765d755b3fb4c9da73926895a89c5a618018f2f5e259e7860b1f4","impliedFormat":99},{"version":"f03d368eceab76c159f7d9649c64aabb9f9c02f46b8d2a2c60a9e9cf4e2053fb","impliedFormat":99},{"version":"ef7f072d2e15105633948858169948be27240829cba599c2fa3d33964093b30d","impliedFormat":99},{"version":"2b8f38a2e51f762168a4ab8a06c92a78240f65ddaed431005b1056df859f1457","impliedFormat":99},{"version":"a55b182059f77da2687ed0e8877fd4e24481e883fcaf311f48b8ad98673e3e74","impliedFormat":99},{"version":"e4a185f4c6aa238c812d3c2ba9746d4bf198a31e70e9fae83d107457f0ab10df","impliedFormat":99},{"version":"910abfd85acbc348dd025d4d661db4625d4458de02c7419d948af152c282e512","impliedFormat":99},{"version":"0e7c5f81cf7dc16c999d304b346382a6002366a59278023907ea8c5685800c03","impliedFormat":99},{"version":"ca896dd22a7f1395338a89d9af4199176e8de935628611e299b218183b0f3e8f","affectsGlobalScope":true,"impliedFormat":99},{"version":"c21c96ef9d44716c3e5b10b331841a8f93bfb1c50d6118d44370792824da6a9b","impliedFormat":99},{"version":"705e82082894a3dc7f6b92b023914e1bf0db10788ddbdf07806002c26a1db3a9","impliedFormat":99},{"version":"93758b16a8798ec0957abf049ef5091497465d024e3b68a2be986ae984b8ebb0","impliedFormat":99},{"version":"233b3ef5dfa40f3459846e94d43c000736582e2ca85d17c496a47e582f79d102","impliedFormat":99},{"version":"256ac5c01fbbd7f17ec5d916b2cf1c4639cef6d5ac2161c82849db6cdc8d0c42","impliedFormat":99},{"version":"0c1970554298bff271f2e9a80e6eefd5f1edd4c359b4c78897729639805b98b1","impliedFormat":99},{"version":"a68d83b9edf5367294014b99d7809f785f1528b1123288694bd419df04c87169","impliedFormat":99},{"version":"65a273d2534e0cceee0a3999e3a586fb0fa4c9ef306b44c131de0c2134444e07","impliedFormat":99},{"version":"8aef166bd0bdf40c1930d01a7dc6e52a6b63203b070507d26780ee4a621de23e","impliedFormat":99},{"version":"fad61016cf71449ce00722a32125c5bbf41ecc1660f3dea1f88a5a0a862029ec","impliedFormat":99},{"version":"0d3f54fc90e087a51221649bf849bd7b5a1612f036889050c7f8a1f059ee17f8","impliedFormat":99},{"version":"07edb55d7f9f9fb492ccf92744f514255b534b1b994f485ff2c82f1414e88f04","impliedFormat":99},{"version":"f41b13b58a957b03fd5d07bfe5d85f4cc9249a117a1b9589d9a2ac4238b39d05","impliedFormat":99},{"version":"b715965f4d903ab130a1886c06f506211c9cbaf87ad3257a71114798475445f0","impliedFormat":99},{"version":"02ba2ea3d47215b8b4374ec4abe73048ac11f4cc2a4e6861b00e166be688c5c5","impliedFormat":99},{"version":"5d6a477460748b6b3434184178718e96bdea9cc32b73808ffc4384b1a0be485e","impliedFormat":99},{"version":"afe4250b9645928151991fd60790a92571d9251b60be91032152b472d6830ebf","impliedFormat":99},{"version":"68cdca7414470b34b6dba8e14fdbf17393148f84944d31e2adf5ed933f3ec8fa","impliedFormat":99},{"version":"0703fbf0cefe3eaa09abff465ad292b89464a2c80bb8d2bb2942fc3dc08e0285","impliedFormat":99},{"version":"d24fed323d65a8d753ff2d0ea105f5d0788a50b585c1a1334d9bd336b2f378c7","impliedFormat":99},{"version":"4ebc57d20caf062019a2b8c9ce1e54602a411022eb4f7fa325888b9bcf63693a","impliedFormat":99},{"version":"52279f70738da349b60a09be1294e3295c7e37189c10deb083ed6b5eb1c86744","impliedFormat":99},{"version":"6fa6950e14d6ca719a29c3ad2fb79d2b03a175af9e3441b3e762cf3b22c92d2b","impliedFormat":99},{"version":"98678d6ac29dfa3f80452de2a87f464dee4908476f817d6f5e0677802ad43f7b","impliedFormat":99},{"version":"b81bc956c1dfc60bfb0513e73aaad2f0331adf19407fdce70379bc7dc02c4e15","impliedFormat":99},{"version":"b96ce25bbc9ee012b65c73821ae59f90a168d1aa62da606948de8bcc561b1fde","impliedFormat":99},{"version":"560a9f24b6bcfc74fc2a18f6e8355aff169d15541c6ebd0ff7e05bdaad2f8949","impliedFormat":99},{"version":"aa375ae5339d3a81d468812021abeb49eafd532086482680f04ff539c93669bf","impliedFormat":99},{"version":"370c1b27c11d16c33a1fc96d8304fa7a2d4397cf849c6681e3c45b3818a933d7","impliedFormat":99},{"version":"b3f766182cb2158c59e513af05994dec67564359d841cdcc7dcbcb16aea3974e","impliedFormat":99},{"version":"142e20882a4b6555b471993a338c2148f555a3bf566eb99fa35a9cd12a49e10d","impliedFormat":99},{"version":"3d509bfd5593e9a158df7d8097e15e4e3115c854b0dfb38254951b8f91b63bb6","impliedFormat":99},{"version":"207ecf493b69ddca525bbbd8f1d120d99d00be1448ae8c0e690526f24dc182ca","impliedFormat":99},{"version":"af6ac8a19dbd05c34feff97d0eae81194fd0be1358bd2366478e9a574492d332","impliedFormat":99},{"version":"346557f6ca397f60089615ebe31c22e9aaa64ed104db53e72858a5b3c97aab66","impliedFormat":99},{"version":"e3427f1af48d46a0ebf78760ab9417773d00be504683ec0dd1c70e6eef3391ba","impliedFormat":99},{"version":"f00b8fc0c970cfd54d4df6047aae216bce4d7a2ceb6610655541a678ac54c57a","impliedFormat":99},{"version":"6006c2501c5f4bd65c31bad2a9ef2895a3c71d9d65a5ded4a85b1c9514c18041","impliedFormat":99},{"version":"1a47bba67b1bec83023979d7972c25f286e293902b6f4fd15c6dee8f55eff714","impliedFormat":99},{"version":"09d4077fd1fd4bf639ffacecb0adb3f375ceaf3d3b947d31f30948176f762d76","impliedFormat":99},{"version":"bdb1cfa306afeae93721bab7efe74258761247a644d85a5a10fb739a8606ab14","impliedFormat":99},{"version":"b249d533a9799a13f724da99defffd318b4acf61a5ad421a1d1ea6f60683a5f0","impliedFormat":99},{"version":"916ffd5eebeed08d4ed0fb342f40305c2a7ff2663250cbf6a965be1f1e8541e4","impliedFormat":99},{"version":"ed82977a9c942b909b2996783b9bbe90fe91391a51c511dc69d7bb20e94a8437","impliedFormat":99},{"version":"85c41b79bab9f8c206d16452e577fcbe186ade544cb526364d7bca5ed9574fcb","impliedFormat":99},{"version":"45124b54526973bc3aafc573815d1a5cebc683b61c48f35aceccfe16aec2aabc","impliedFormat":99},{"version":"5c53e0899c193cd5f80ccb5693a01eba90e17e45cd2248c6412bb2e9825c9e45","impliedFormat":99},{"version":"8f9027142f8676845857e9381a5942f80b1470233ab99e92baa52000d7293af0","impliedFormat":99},{"version":"2eb06cf91facd809e7d7ca413a4f0596e22ad6c009841caa64e5448f248985c1","impliedFormat":99},{"version":"32a5dd335b39a6ead7f14c9ada92c4293d1d48fd1e9a504db28aa03571071e45","impliedFormat":99},{"version":"36bc119be692c5a87c85d755981faa6c83f7cb24918baed60bbd1d0cf958af41","impliedFormat":99},{"version":"1b32ee5b79568242d7a2120006e5fb7b46989f3a86e2c4d609c3e0cd815e7bb1","impliedFormat":99},{"version":"232606d9b702acabb28c11ac3096ec8b164abc7025ab970175b2fb0c7e46fed6","impliedFormat":99},{"version":"6ed8b6e8060c452971256594b8f874c357a469393296e87bb3c2f1d5b4405bd1","impliedFormat":99},{"version":"51b82d4844fc1e4326629d5189ee0306b0e5d8b5986f263572b3056100d411c4","impliedFormat":99},{"version":"9bf6d10700e6702ac26248138a6bbc9f55d582c488be81a41be3b3eadedc936b","impliedFormat":99},{"version":"07a6c18e08abb31b5e4aa18c945c79195d3f453fc9419e54a75b9491c0a63d5b","impliedFormat":99},{"version":"40471ac4c2b6056bdc7ee09f1f279345d8fcc40b8b326eac38cff2df37ece97a","impliedFormat":99},{"version":"63b5fb65f038a3b29d73792b02fa5ce85e3aa9e9f3a695cdd82ef8515ea58ebf","impliedFormat":99},{"version":"6ca4db25e7bb76bda633a36d700bf10a07535a80df1870c375c8469c820448fc","impliedFormat":99},{"version":"6bfed074c652e8043dfc926842ebc05f81db6c0c45b521e4bedc9dd8998df736","impliedFormat":99},{"version":"61b6076ddd630a3ea556e9836d6b8b46d9b1e30b5d4caa338a7c0162cd148e75","impliedFormat":99},{"version":"21f936f4e0645998eb943a0b51ae386fb8c30dc5c2ec3af0202783eb6bc454ff","impliedFormat":99},{"version":"b33ef430acb7969ba485827d1dedd66d315263a57ff29a809cd246ea53d3509e","impliedFormat":99},{"version":"e0dfc3c48a5eb78ea39a9ae0d17c472e1aeb4ee213b65f6d3b54f145fafbbc42","impliedFormat":99},{"version":"694249bf032f13738866491f2f15fe984381fb6f45d7be8e29936c2c11f085d5","impliedFormat":99},{"version":"9b4f6757a9bfca5f00390e50f1b08406e73bc8d1591ec8dd9ff606333f2c5761","impliedFormat":99},{"version":"d70c85a5a0ab30712a9ace0ecb31ff2339cfb3fc209f9a3c578f64f11f7fcd44","impliedFormat":99},{"version":"60dffeffb44ee472d799379d115ef4a5ffb380dd48c45d7bf5e0e3a3224d246e","impliedFormat":99},{"version":"58b7381ddbfd466a014ad08b174df5efbe10193e297ce9da9d30c8d9cfe2c6eb","impliedFormat":99},{"version":"1d385ac55b2dfea2248fc155c4a96f7209a157612cdc1ee23d86d0377afb5834","impliedFormat":99},{"version":"4876b5ff21c8d3d161d00608f8022ebbd8ecc57555cf8e765bbc42ce13ddc378","impliedFormat":99},{"version":"eb90fe18be0b3b5b759ff8f055e9ccb19c6a4287c9061c7a4bb9805968e46498","impliedFormat":99},{"version":"a8e3ca933f3a58c5a3071761a493c760a55305b8f537a47a47a1c7c421ead6df","impliedFormat":99},{"version":"055d5c58abf9c069d88cd9f62a426008adc38258390ceba978fa527fffa54441","impliedFormat":99},{"version":"9b9bceb1f21669bdf904f3f701497ac6f9bca3af06e6b817ceb7336fe8a13ce5","impliedFormat":99},{"version":"eea976052efa564c8567a9c2905505854e59baea57831348bb97580ec12581aa","impliedFormat":99},{"version":"3633132e5cf6907c1de6fcceb417ec93ed189f4e44d1592ddfbed15d3028a642","impliedFormat":99},{"version":"35ad431bddcdd2734acb5b2b0d0da75aa3eb8b2e16bc83cdc16a3d12b4b9967b","impliedFormat":99},{"version":"bdfab105e5c6c095171d0721a84fafab796b301b7f5129158e6e7292b26a4410","impliedFormat":99},{"version":"d3f2d733b25bb7dbc29a22679abb5e8bd7235f491aec7c919272b9a824818bfa","impliedFormat":99},{"version":"816958f37db39f1d6352d585cb545c46093b56be9a9f7b49714b4e7fe75af8e1","impliedFormat":99},{"version":"015c3d99325ff0f00694781a49696e232eed7b9e81de17be2df3744fa816f0f4","impliedFormat":99},{"version":"6651e0e8d0a95ccab2cd3b24df4ea6c33da06499f588938f8758d2d3e822090a","impliedFormat":99},{"version":"43214bffa2a064162dc1c709f7a7b3d0d8fb5aff2267d092e7291b1b044010c6","impliedFormat":99},{"version":"c3ceb3c63334d4f5f85a03477ca9b91c2580cfd066094a1b58a9139bbe7eacb9","impliedFormat":99},{"version":"8a6c4b0864ddb785d14b36fd4fba10d56c5207d2951e2309c5616d80636e33a6","impliedFormat":99},{"version":"d44a0baed7a6e69366547f41056652efc7e8f3ba445696daa62469dc9703e3a9","impliedFormat":99},{"version":"51d099f542f4a6040d5bbf85c21f50afd68ff03c357ab01bc9373bd5c81878c7","impliedFormat":99},{"version":"00a2ff8223ad17bacbce81edb4fbee1ae7d8430c46cf1a86936642c14a6c0407","impliedFormat":99},{"version":"fee95edeeed4515bccf52a2f4e2c53c088e5755ce7747667d0a60abc27c6542f","impliedFormat":99},{"version":"f083f36f2504fe7d9e8c78c926931fcc7196cba21c77c983e59bf61f5a8be488","impliedFormat":99},{"version":"9794fd5a3d2183b5a987c6b02cf3732fdf1ed97b6f66d1c858b50a318069b637","impliedFormat":99},{"version":"74c194a9e7a5a5880e675fa8c22bc7d06e10c97c868117d145734aacfbda7381","impliedFormat":99},{"version":"8412532110345cff6fd711070808f845a9d9ef812cf84411ccf0d072fd0598a9","signature":"4459f3f804efd49e456e742393dcac5710c13e630a8b170dc1e4d3687d5df63c","impliedFormat":99}],"root":[194],"options":{"composite":true,"declaration":true,"declarationDir":"./esm","declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUncheckedSideEffectImports":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./esm","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[194,1],[175,2],[131,3],[138,4],[139,5],[174,6],[140,7],[141,8],[156,9],[147,10],[143,11],[145,12],[146,13],[142,14],[144,14],[154,15],[153,16],[149,17],[150,12],[151,18],[152,19],[148,14],[172,20],[166,21],[167,22],[168,23],[169,19],[170,19],[164,24],[165,25],[171,26],[173,7],[177,27],[179,28],[180,29],[183,30],[176,31],[181,32],[182,33],[184,34],[193,35],[191,36],[187,37],[185,38],[186,38],[192,39],[188,38],[189,40],[190,41],[157,42],[163,43],[134,44],[133,45],[137,46],[135,47],[136,48],[103,49],[102,50],[104,51],[110,52],[109,53],[105,54],[106,54],[107,54],[108,54],[116,55],[118,56],[119,51],[129,57],[120,51],[115,58],[114,59],[111,60],[112,55],[113,55],[121,61],[122,51],[123,51],[101,62],[124,63],[125,64],[127,65],[117,66],[128,66],[85,67],[91,68],[94,69],[95,69],[89,70],[90,71],[88,72],[87,73],[99,74],[96,68],[86,67],[97,75],[93,76],[92,77],[84,78]],"latestChangedDtsFile":"./esm/index.d.ts","version":"5.8.3"}