@pinionengineering/prover-client 0.10.0 → 0.11.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.
package/dist/client.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  * Pass the full base URL including the path prefix, e.g.:
9
9
  * new PinionProverClient("https://hydrogen.pinion.build/prover", { getToken })
10
10
  */
11
- import type { AuditResult, ChallengeKeyInfo, CreateKeyResult, ParsedSetup, ProveJobStatusResponse, RawSetupResponse, TagJobListEntry, TagJobProgress, TagJobStatusResponse, TagResponse } from './types.js';
11
+ import type { AuditResult, ChallengeKeyInfo, CreateKeyResult, ParsedSetup, ProveJobStatusResponse, ProveSubmission, RawSetupResponse, TagJobListEntry, TagJobProgress, TagJobStatusResponse, TagResponse, TagSubmission } from './types.js';
12
12
  export interface PinionProverClientOptions {
13
13
  /**
14
14
  * Returns a JWT Bearer token for authenticated endpoints, or null/undefined
@@ -20,7 +20,7 @@ export interface PinionProverClientOptions {
20
20
  * Options for the audit() convenience wrapper.
21
21
  *
22
22
  * For exact control over block count, use buildChallenge(n, total) +
23
- * prove() + verifyProof() directly.
23
+ * prove() + waitForProve() + verifyProof() directly.
24
24
  */
25
25
  export interface AuditOptions {
26
26
  /**
@@ -29,42 +29,71 @@ export interface AuditOptions {
29
29
  roots?: string[];
30
30
  /**
31
31
  * Percentage of blocks to sample per round, 0–100. Default 1.
32
- * Repeated 1% rounds accumulate statistical certainty over time each round
32
+ * Repeated 1% rounds accumulate statistical certainty over time. Each round
33
33
  * forces the server to prove possession of an independently random sample.
34
34
  * Use 100 for a one-shot full audit.
35
35
  *
36
36
  * For an exact block count use buildChallenge(n, total) + prove() + verifyProof().
37
37
  */
38
38
  challengePct?: number;
39
+ /** Milliseconds between GET /prove/:job_id polls during audit()'s wait
40
+ * phase. Default 500. */
41
+ pollIntervalMs?: number;
42
+ /**
43
+ * Optional cancellation of audit()'s wait phase. There is no default
44
+ * deadline. Omit to wait as long as the proof takes. Pass
45
+ * `AbortSignal.timeout(ms)` to restore a fixed ceiling.
46
+ */
47
+ signal?: AbortSignal;
48
+ /** Called after every status poll with the raw status string
49
+ * ("prove-queued" | "prove-running"), for progress UI. There is no
50
+ * per-block progress signal for proving, unlike tag()'s onProgress. */
51
+ onStatus?: (status: string) => void;
39
52
  }
40
- /** Options for tag()'s internal job-status polling. */
41
- export interface TagOptions {
53
+ /** Options for waitForTag()'s job-status polling. */
54
+ export interface WaitForTagOptions {
42
55
  /** Milliseconds between GET /tag/:job_id polls. Default 1000. */
43
56
  pollIntervalMs?: number;
44
- /** Give up and throw TagTimeoutError after this long. Default 10 minutes. */
45
- timeoutMs?: number;
57
+ /**
58
+ * Optional cancellation. There is no default deadline, omit to wait
59
+ * indefinitely. Pass `AbortSignal.timeout(ms)` to restore the old fixed
60
+ * ceiling (waitForTag() throws TagTimeoutError when the signal fires
61
+ * before the job reaches a terminal state).
62
+ */
63
+ signal?: AbortSignal;
46
64
  /**
47
65
  * Called after every status poll with the latest progress and the raw
48
66
  * status string ("tag-queued" | "tag-planning" | "tag-running" |
49
67
  * "tag-merging" | "tag-done" | "tag-failed"). The server populates
50
68
  * progress on every poll regardless of status, including "tag-queued"
51
- * before any work has started (as {total_blocks: 0, completed_blocks: 0})
52
- * check `status` if you need to distinguish "not started yet" from
69
+ * before any work has started (as {total_blocks: 0, completed_blocks: 0}).
70
+ * Check `status` if you need to distinguish "not started yet" from
53
71
  * "actively running".
54
72
  */
55
73
  onProgress?: (progress: TagJobProgress, status: string) => void;
56
74
  }
57
- /** Options for prove()'s internal job-status polling. */
58
- export interface ProveOptions {
75
+ /** Options for waitForProve()'s job-status polling. */
76
+ export interface WaitForProveOptions {
59
77
  /** Milliseconds between GET /prove/:job_id polls. Default 500. */
60
78
  pollIntervalMs?: number;
61
79
  /**
62
- * Give up and throw ProveTimeoutError after this long. Default 60
63
- * seconds much shorter than tag()'s default, since a proof round is one
64
- * bounded crypto operation over the sampled blocks, not a per-block loop
65
- * over an entire file.
80
+ * Optional cancellation. There is no default deadline, omit to wait
81
+ * indefinitely. Pass `AbortSignal.timeout(ms)` to restore the old fixed
82
+ * ceiling (waitForProve() throws ProveTimeoutError when the signal fires
83
+ * before the job reaches a terminal state).
66
84
  */
67
- timeoutMs?: number;
85
+ signal?: AbortSignal;
86
+ /**
87
+ * The challenge/roots this job was submitted with. Optional, but passing
88
+ * them lets a thrown ProveFailedError/ProveTimeoutError carry enough to
89
+ * reconstruct a retry. Pass what prove() gave you back.
90
+ */
91
+ challenge?: string;
92
+ roots?: string[];
93
+ /** Called after every status poll with the raw status string
94
+ * ("prove-queued" | "prove-running"). There is no per-block progress
95
+ * signal for proving, unlike waitForTag()'s onProgress. */
96
+ onStatus?: (status: string) => void;
68
97
  }
69
98
  export declare class PinionProverClient {
70
99
  private readonly baseUrl;
@@ -76,7 +105,7 @@ export declare class PinionProverClient {
76
105
  *
77
106
  * The server generates a key pair and keeps the private scalar α. The returned
78
107
  * `publicKey` is the public half: G1 points U[0..s-1] and G2 point V = α·G₂.
79
- * Store these alongside `keyId` they are all you need to verify proofs locally,
108
+ * Store these alongside `keyId`. They are all you need to verify proofs locally,
80
109
  * independent of the server returning the same material later.
81
110
  */
82
111
  createKey(label?: string): Promise<CreateKeyResult>;
@@ -86,7 +115,7 @@ export declare class PinionProverClient {
86
115
  /**
87
116
  * Fetch the setup document for a key: public key material and, per
88
117
  * registered root, either the block ID list (non-chunked protocols) or the
89
- * super-block count (chunked protocols: SW-Priv, SW-Pub) parseSetupResponse
118
+ * super-block count (chunked protocols: SW-Priv, SW-Pub). parseSetupResponse
90
119
  * turns either into a uniform ParsedRoot.blockIds array.
91
120
  *
92
121
  * Call this once after tagging to obtain the ParsedSetup needed for auditing.
@@ -98,24 +127,31 @@ export declare class PinionProverClient {
98
127
  * authentication tags, and store them under keyId.
99
128
  *
100
129
  * The root must already be in the "pinned" lifecycle state for the
101
- * authenticated account. Tagging runs asynchronously on the server
102
- * this enqueues the job and polls GET /api/v1/tag/:job_id until it
103
- * reaches a terminal state, so the returned promise resolves only once
104
- * tagging is actually done (matching the pre-async blocking behavior).
105
- * Call getSetup() after tagging to get the updated block ID lists for the
106
- * next audit cycle.
107
- *
108
- * Throws TagFailedError if the job reaches "tag-failed", or
109
- * TagTimeoutError if it doesn't reach a terminal state within
110
- * options.timeoutMs.
130
+ * authenticated account. Tagging runs asynchronously on the server. This
131
+ * submits the job and returns immediately with a job handle. Poll
132
+ * tagStatus(jobId) yourself, or await waitForTag(jobId, options) to wait
133
+ * for a terminal state (with no default deadline, pass `signal:
134
+ * AbortSignal.timeout(ms)` if you want one). Call getSetup() after
135
+ * tagging completes to get the updated block ID lists for the next audit
136
+ * cycle.
111
137
  */
112
- tag(root: string, keyId: string, options?: TagOptions): Promise<TagResponse>;
113
- /** Poll the status of a tag job started by tag(). Exposed for callers that want progress UI without waiting on tag()'s full promise. */
138
+ tag(root: string, keyId: string): Promise<TagSubmission>;
139
+ /** Poll the status of a tag job started by tag(). Exposed for callers that want progress UI without waiting on waitForTag()'s full promise. */
114
140
  tagStatus(jobId: string): Promise<TagJobStatusResponse>;
141
+ /**
142
+ * Wait for a tag job started by tag() to reach a terminal state, polling
143
+ * tagStatus(jobId) on an interval.
144
+ *
145
+ * There is no default deadline. This waits as long as the job takes
146
+ * unless options.signal is given and fires first, in which case it
147
+ * throws TagTimeoutError with the last-seen status. Throws TagFailedError
148
+ * if the job reaches "tag-failed".
149
+ */
150
+ waitForTag(jobId: string, options?: WaitForTagOptions): Promise<TagResponse>;
115
151
  /**
116
152
  * List the caller's tag jobs, most recently created first.
117
153
  *
118
- * Unlike tagStatus(), this doesn't require already knowing a job_id — use
154
+ * Unlike tagStatus(), this doesn't require already knowing a job_id. Use
119
155
  * it to discover in-flight tagging after a page reload or from a
120
156
  * different tab/device than the one that started it. Pass
121
157
  * `{ active: true }` to list only non-terminal jobs (queued/planning/
@@ -127,55 +163,67 @@ export declare class PinionProverClient {
127
163
  }): Promise<TagJobListEntry[]>;
128
164
  deregister(keyId: string, root: string): Promise<void>;
129
165
  /**
130
- * POST /prove unauthenticated, the server resolves the account from key_id.
166
+ * POST /prove: unauthenticated, the server resolves the account from key_id.
131
167
  *
132
- * Proving is asynchronous: this posts the challenge, then polls GET
133
- * /prove/:job_id until the job reaches a terminal state, so the returned
134
- * promise resolves only once a proof is actually ready (matching the
135
- * pre-async blocking behavior). Returns the raw proof bytes. Most callers
136
- * should use audit() instead, which also cryptographically verifies the
137
- * response.
168
+ * Proving is asynchronous: this submits the challenge and returns
169
+ * immediately with a job handle. Poll proveStatus(jobId) yourself, or
170
+ * await waitForProve(jobId, options) to wait for a terminal state (with
171
+ * no default deadline (pass `signal: AbortSignal.timeout(ms)` if you
172
+ * want one). Most callers should use audit() instead, which submits,
173
+ * waits, and cryptographically verifies the response in one call.
138
174
  *
139
175
  * @param keyId Challenge key ID.
140
176
  * @param roots CID strings to prove, in the same order as the challenge.
141
177
  * @param challenge base64(JSON(WireChallenge)) from buildChallenge().
142
178
  * @param challengeId Optional idempotency key. If a caller's own retry
143
179
  * logic re-calls prove() for what is logically the
144
- * same request (e.g. after a timeout with an unclear
145
- * outcome), passing the same challengeId across those
146
- * attempts makes the server return the original job
147
- * instead of starting a redundant one. Leave unset for
148
- * normal audit rounds each is a fresh, independently
149
- * random challenge, which should never be deduped
150
- * against a previous one.
180
+ * same request (e.g. after giving up waiting on an
181
+ * earlier attempt with an unclear outcome), passing the
182
+ * same challengeId across those attempts makes the
183
+ * server return the original job instead of starting a
184
+ * redundant one. Leave unset for normal audit rounds:
185
+ * each is a fresh, independently random challenge,
186
+ * which should never be deduped against a previous one.
151
187
  *
152
188
  * Throws PinNotActiveError (409, checked synchronously before any job is
153
- * created), ProveFailedError if the job reaches "prove-failed", or
154
- * ProveTimeoutError if it doesn't reach a terminal state within
155
- * options.timeoutMs.
189
+ * created) or ProverError for any other non-2xx submit response.
156
190
  */
157
- prove(keyId: string, roots: string[], challenge: string, challengeId?: string, options?: ProveOptions): Promise<Uint8Array>;
158
- /** Poll the status of a proof job started by prove(). Exposed for callers that want to observe progress without waiting on prove()'s full promise. */
191
+ prove(keyId: string, roots: string[], challenge: string, challengeId?: string): Promise<ProveSubmission>;
192
+ /** Poll the status of a proof job started by prove(). Exposed for callers that want to observe progress without waiting on waitForProve()'s full promise. */
159
193
  proveStatus(jobId: string): Promise<ProveJobStatusResponse>;
194
+ /**
195
+ * Wait for a proof job started by prove() to reach a terminal state,
196
+ * polling proveStatus(jobId) on an interval. Returns the raw proof bytes.
197
+ *
198
+ * There is no default deadline. This waits as long as the proof takes
199
+ * unless options.signal is given and fires first, in which case it
200
+ * throws ProveTimeoutError with the last-seen status. Throws
201
+ * ProveFailedError if the job reaches "prove-failed".
202
+ */
203
+ waitForProve(jobId: string, options?: WaitForProveOptions): Promise<Uint8Array>;
160
204
  /**
161
205
  * Run one audit round against a pre-fetched setup.
162
206
  *
163
207
  * Builds a random challenge for the requested percentage of blocks, posts it
164
208
  * to POST /prove, and cryptographically verifies the response. Pass the
165
- * ParsedSetup obtained from getSetup() audit() does not fetch it for you,
209
+ * ParsedSetup obtained from getSetup(). audit() does not fetch it for you,
166
210
  * keeping the setup and audit phases explicit.
167
211
  *
168
212
  * ```ts
169
- * // Setup phase done once (or after adding/removing roots):
213
+ * // Setup phase (done once, or after adding/removing roots):
170
214
  * const { keyId } = await client.createKey();
171
215
  * await client.tag(cid, keyId);
172
216
  * const setup = await client.getSetup(keyId);
173
217
  *
174
- * // Audit phase repeat on a schedule:
218
+ * // Audit phase (repeat on a schedule):
175
219
  * const result = await client.audit(keyId, setup);
176
220
  * const result = await client.audit(keyId, setup, { challengePct: 100 });
177
221
  * ```
178
222
  *
223
+ * Waits for the proof with no default deadline. Pass `options.signal` if
224
+ * you want to cancel or bound how long this waits (e.g.
225
+ * `AbortSignal.timeout(60_000)` for the old fixed ceiling).
226
+ *
179
227
  * Throws `PinNotActiveError` if any challenged root is no longer pinned.
180
228
  */
181
229
  audit(keyId: string, setup: ParsedSetup, options?: AuditOptions): Promise<AuditResult>;
@@ -193,7 +241,7 @@ export declare class ProverError extends Error {
193
241
  }
194
242
  /**
195
243
  * Thrown when a response has a successful HTTP status but a body that
196
- * isn't valid JSON this is what an infra problem often looks like from
244
+ * isn't valid JSON. This is what an infra problem often looks like from
197
245
  * the client's perspective (a proxy's HTML error page returned with a 200,
198
246
  * a response cut off mid-stream), as opposed to a clean non-2xx status
199
247
  * (which surfaces as ProverError instead). bodyPreview is truncated to 200
@@ -214,39 +262,49 @@ export declare class PinNotActiveError extends Error {
214
262
  readonly cid: string;
215
263
  constructor(cid: string);
216
264
  }
217
- /** Thrown by tag() when the async tag job reaches the "tag-failed" state. */
265
+ /** Thrown by waitForTag() when the async tag job reaches the "tag-failed" state. */
218
266
  export declare class TagFailedError extends Error {
219
267
  readonly jobId: string;
220
268
  readonly reason: string;
221
269
  constructor(jobId: string, reason: string);
222
270
  }
223
- /** Thrown by tag() when the job hasn't reached a terminal state within the configured timeout. */
271
+ /**
272
+ * Thrown by waitForTag() when its `options.signal` fires before the job
273
+ * reaches a terminal state. There is no default deadline anymore. This
274
+ * only happens if the caller opted into one (e.g. `signal:
275
+ * AbortSignal.timeout(ms)`).
276
+ */
224
277
  export declare class TagTimeoutError extends Error {
225
278
  readonly jobId: string;
226
279
  readonly lastStatus: string;
227
280
  constructor(jobId: string, lastStatus: string);
228
281
  }
229
- /** Thrown by prove() when the async proof job reaches the "prove-failed" state. */
282
+ /** Thrown by waitForProve() when the async proof job reaches the "prove-failed" state. */
230
283
  export declare class ProveFailedError extends Error {
231
284
  readonly jobId: string;
232
285
  readonly reason: string;
233
- /** The challenge this job was for base64(JSON(WireChallenge)), decode with decodeChallenge(). */
234
- readonly challenge: string;
235
- readonly roots: string[];
286
+ /** The challenge this job was for: base64(JSON(WireChallenge)), decode with decodeChallenge(). Undefined if the caller didn't pass one to waitForProve(). */
287
+ readonly challenge: string | undefined;
288
+ readonly roots: string[] | undefined;
236
289
  constructor(jobId: string, reason: string,
237
- /** The challenge this job was for base64(JSON(WireChallenge)), decode with decodeChallenge(). */
238
- challenge: string, roots: string[]);
290
+ /** The challenge this job was for: base64(JSON(WireChallenge)), decode with decodeChallenge(). Undefined if the caller didn't pass one to waitForProve(). */
291
+ challenge: string | undefined, roots: string[] | undefined);
239
292
  }
240
- /** Thrown by prove() when the job hasn't reached a terminal state within the configured timeout. */
293
+ /**
294
+ * Thrown by waitForProve() when its `options.signal` fires before the job
295
+ * reaches a terminal state. There is no default deadline anymore. This
296
+ * only happens if the caller opted into one (e.g. `signal:
297
+ * AbortSignal.timeout(ms)`).
298
+ */
241
299
  export declare class ProveTimeoutError extends Error {
242
300
  readonly jobId: string;
243
301
  readonly lastStatus: string;
244
- /** The challenge this job was for base64(JSON(WireChallenge)), decode with decodeChallenge(). */
245
- readonly challenge: string;
246
- readonly roots: string[];
302
+ /** The challenge this job was for: base64(JSON(WireChallenge)), decode with decodeChallenge(). Undefined if the caller didn't pass one to waitForProve(). */
303
+ readonly challenge: string | undefined;
304
+ readonly roots: string[] | undefined;
247
305
  constructor(jobId: string, lastStatus: string,
248
- /** The challenge this job was for base64(JSON(WireChallenge)), decode with decodeChallenge(). */
249
- challenge: string, roots: string[]);
306
+ /** The challenge this job was for: base64(JSON(WireChallenge)), decode with decodeChallenge(). Undefined if the caller didn't pass one to waitForProve(). */
307
+ challenge: string | undefined, roots: string[] | undefined);
250
308
  }
251
309
  /**
252
310
  * Decode a raw /setup response into a ParsedSetup.
@@ -257,7 +315,7 @@ export declare class ProveTimeoutError extends Error {
257
315
  * decoded to raw CID bytes (Uint8Array) via multiformats/cid.
258
316
  * - chunked (SW-Priv/SW-Pub): roots[].block_count is a super-block count;
259
317
  * ids are synthesized locally as superBlockId(rootBytes, i) for i in
260
- * [0, block_count) see superBlockId()'s doc comment in challenge.ts for
318
+ * [0, block_count), see superBlockId()'s doc comment in challenge.ts for
261
319
  * why no per-block manifest is needed for these protocols.
262
320
  */
263
321
  export declare function parseSetupResponse(raw: RawSetupResponse): ParsedSetup;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAEhB,eAAe,EACf,WAAW,EAGX,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAEf,cAAc,EAEd,oBAAoB,EACpB,WAAW,EAEZ,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACrD;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;gBAExD,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B;IAS9D,QAAQ,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI7C;;;;;;;OAOG;IACG,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAYnD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,4EAA4E;IACtE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjE;;;;;;;;OAQG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOnD;;;;;;;;;;;;;;;OAeG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BtF,wIAAwI;IAClI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI7D;;;;;;;;;OASG;IACG,WAAW,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAM3E,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC;IAkCtB,sJAAsJ;IAChJ,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;YAyClF,GAAG;YAQH,IAAI;YAWJ,UAAU;YAQV,SAAS;YAST,WAAW;YAKX,SAAS;CAIxB;AA2BD,qBAAa,WAAY,SAAQ,KAAK;aAElB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM;CAK/B;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,MAAM,EAAE,MAAM;aACd,WAAW,EAAE,MAAM;aACnB,KAAK,CAAC,EAAE,OAAO;gBAFf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aACd,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CAIxC;AAED,6EAA6E;AAC7E,qBAAa,cAAe,SAAQ,KAAK;aAErB,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;gBADd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;CAKjC;AAED,kGAAkG;AAClG,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,KAAK,EAAE,MAAM;aACb,UAAU,EAAE,MAAM;gBADlB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM;CAKrC;AAED,mFAAmF;AACnF,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;IAC9B,mGAAmG;aACnF,SAAS,EAAE,MAAM;aACjB,KAAK,EAAE,MAAM,EAAE;gBAJf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;IAC9B,mGAAmG;IACnF,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EAAE;CAKlC;AAED,oGAAoG;AACpG,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,KAAK,EAAE,MAAM;aACb,UAAU,EAAE,MAAM;IAClC,mGAAmG;aACnF,SAAS,EAAE,MAAM;aACjB,KAAK,EAAE,MAAM,EAAE;gBAJf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM;IAClC,mGAAmG;IACnF,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EAAE;CAKlC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,WAAW,CAmBrE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}