@haddowg/json-api-client 1.0.0 → 1.2.0
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/README.md +9 -1
- package/dist/ajv.d.cts +1 -1
- package/dist/ajv.d.mts +1 -1
- package/dist/index.cjs +124 -38
- package/dist/index.d.cts +31 -9
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +31 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +121 -39
- package/dist/index.mjs.map +1 -1
- package/dist/{validate-BmyPbJCK.d.cts → validate-DgCUbzgT.d.cts} +292 -53
- package/dist/validate-DgCUbzgT.d.cts.map +1 -0
- package/dist/{validate-BmyPbJCK.d.mts → validate-DgCUbzgT.d.mts} +292 -53
- package/dist/validate-DgCUbzgT.d.mts.map +1 -0
- package/package.json +1 -1
- package/dist/validate-BmyPbJCK.d.cts.map +0 -1
- package/dist/validate-BmyPbJCK.d.mts.map +0 -1
|
@@ -64,7 +64,7 @@ interface RelationDescriptor {
|
|
|
64
64
|
*/
|
|
65
65
|
countable?: CountableDescriptor;
|
|
66
66
|
/**
|
|
67
|
-
* The paginator
|
|
67
|
+
* The paginator this relation's OWN related/relationship endpoints advertise
|
|
68
68
|
* (`GET /{type}/{id}/{rel}` / `.../relationships/{rel}`), when it DIVERGES from the related
|
|
69
69
|
* type's collection-level {@link ResourceDescriptor.paginator}. A related endpoint may paginate
|
|
70
70
|
* differently than the related type's own collection (e.g. a cursor-paginated related to-many
|
|
@@ -72,9 +72,37 @@ interface RelationDescriptor {
|
|
|
72
72
|
* related/embedded to-many array's `$page.kind` from this per-relation value first, falling back
|
|
73
73
|
* to the related type's collection paginator (D6a). Absent when the two agree (the common case).
|
|
74
74
|
*/
|
|
75
|
-
paginator?:
|
|
75
|
+
paginator?: PaginatorDescriptor;
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
/** A built-in pagination strategy. */
|
|
78
|
+
type PaginatorStrategy = 'page' | 'offset' | 'cursor' | 'fixed';
|
|
79
|
+
/** The strategy that answers a read, or `none` for an unpaginated endpoint. */
|
|
80
|
+
type PaginatorKind = PaginatorStrategy | 'none';
|
|
81
|
+
/**
|
|
82
|
+
* A role a page parameter fills. `page`: number, size; `offset`: offset, limit; `cursor`: after,
|
|
83
|
+
* before, size; `fixed`: number.
|
|
84
|
+
*/
|
|
85
|
+
type PaginatorRole = 'number' | 'size' | 'offset' | 'limit' | 'after' | 'before';
|
|
86
|
+
/** A strategy whose roles are filled by renamed wire keys, e.g. `{ number: 'p', size: 'size' }`. */
|
|
87
|
+
interface StrategyDescriptor {
|
|
88
|
+
strategy: PaginatorStrategy;
|
|
89
|
+
keys: Readonly<Partial<Record<PaginatorRole, string>>>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* A MultiPaginator menu: the client picks an arm by its `kind` (sent as `page[kind]`), and the
|
|
93
|
+
* server answers with `default` when the request names none. Arm keys are the `kind` values.
|
|
94
|
+
*/
|
|
95
|
+
interface MenuDescriptor {
|
|
96
|
+
strategy: 'multi';
|
|
97
|
+
default: string;
|
|
98
|
+
arms: Readonly<Record<string, PaginatorStrategy | StrategyDescriptor>>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* How an endpoint paginates. A bare kind uses the canonical wire keys (`page[number]`,
|
|
102
|
+
* `page[size]`, ...); a {@link StrategyDescriptor} names renamed keys; a {@link MenuDescriptor}
|
|
103
|
+
* offers several strategies.
|
|
104
|
+
*/
|
|
105
|
+
type PaginatorDescriptor = PaginatorKind | StrategyDescriptor | MenuDescriptor;
|
|
78
106
|
type ClientIdPolicy = 'forbidden' | 'optional' | 'required';
|
|
79
107
|
/** Where a custom action is invoked: collection-scoped (`/{type}/-actions/{name}`) or resource-scoped (`/{type}/{id}/-actions/{name}`). */
|
|
80
108
|
type ActionScope = 'collection' | 'resource';
|
|
@@ -145,7 +173,7 @@ interface ResourceDescriptor {
|
|
|
145
173
|
relations: Readonly<Record<string, RelationDescriptor>>;
|
|
146
174
|
/** Per-operation path templates, e.g. `{ fetchOne: '/albums/{id}' }`. */
|
|
147
175
|
paths: Readonly<Record<string, string>>;
|
|
148
|
-
paginator:
|
|
176
|
+
paginator: PaginatorDescriptor;
|
|
149
177
|
clientId: ClientIdPolicy;
|
|
150
178
|
/**
|
|
151
179
|
* The `withCount` count tokens + negotiation profile for this type's read endpoints.
|
|
@@ -187,6 +215,168 @@ interface AtomicDescriptor {
|
|
|
187
215
|
path: string;
|
|
188
216
|
}
|
|
189
217
|
//#endregion
|
|
218
|
+
//#region src/pagination.d.ts
|
|
219
|
+
/** The wire key for each role when the server keeps the default names. */
|
|
220
|
+
declare const CANONICAL_PAGE_KEYS: {
|
|
221
|
+
readonly page: {
|
|
222
|
+
readonly number: "number";
|
|
223
|
+
readonly size: "size";
|
|
224
|
+
};
|
|
225
|
+
readonly offset: {
|
|
226
|
+
readonly offset: "offset";
|
|
227
|
+
readonly limit: "limit";
|
|
228
|
+
};
|
|
229
|
+
readonly cursor: {
|
|
230
|
+
readonly after: "after";
|
|
231
|
+
readonly before: "before";
|
|
232
|
+
readonly size: "size";
|
|
233
|
+
};
|
|
234
|
+
readonly fixed: {
|
|
235
|
+
readonly number: "number";
|
|
236
|
+
};
|
|
237
|
+
readonly none: {};
|
|
238
|
+
};
|
|
239
|
+
/** Role -> wire key for the strategy that answered. */
|
|
240
|
+
type PageKeys = Readonly<Partial<Record<PaginatorRole, string>>>;
|
|
241
|
+
/** The strategy that answers one read, with its wire keys and, for a menu pick, the arm's `kind`. */
|
|
242
|
+
interface ResolvedPaginator {
|
|
243
|
+
kind: PaginatorKind;
|
|
244
|
+
keys: PageKeys;
|
|
245
|
+
/** The menu arm the request picked with `page[kind]`. Absent when it picked none (the default). */
|
|
246
|
+
arm?: string;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Resolve the strategy that answers a read from the endpoint's paginator and the `page` the
|
|
250
|
+
* request sends. A menu answers with the arm named by `page.kind`, else its `default`.
|
|
251
|
+
*/
|
|
252
|
+
declare function resolvePaginator(paginator: PaginatorDescriptor | undefined, page?: Readonly<Record<string, unknown>>): ResolvedPaginator;
|
|
253
|
+
/** Navigation links by relation (`first`/`prev`/`next`/`last`), when present. */
|
|
254
|
+
interface PageLinks {
|
|
255
|
+
first?: string;
|
|
256
|
+
prev?: string;
|
|
257
|
+
next?: string;
|
|
258
|
+
last?: string;
|
|
259
|
+
}
|
|
260
|
+
/** Normalised pagination state on a collection, as the runtime builds it; count-free-safe. */
|
|
261
|
+
interface Page {
|
|
262
|
+
kind: PaginatorKind;
|
|
263
|
+
/** Role -> wire key for the strategy that answered. */
|
|
264
|
+
keys: PageKeys;
|
|
265
|
+
/** The menu arm the request picked with `page[kind]`, when it picked one. */
|
|
266
|
+
arm?: string;
|
|
267
|
+
/** The raw `meta.page` block, when present (shape varies by kind). */
|
|
268
|
+
meta?: Record<string, unknown>;
|
|
269
|
+
links: PageLinks;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* The `meta.page` block each built-in strategy renders. `total`/`lastPage` (and `to` on an empty
|
|
273
|
+
* page) are absent when the server does not count.
|
|
274
|
+
*/
|
|
275
|
+
type PageMeta<K extends PaginatorKind> = K extends 'page' ? {
|
|
276
|
+
currentPage: number;
|
|
277
|
+
perPage: number;
|
|
278
|
+
from: number;
|
|
279
|
+
to?: number;
|
|
280
|
+
total?: number;
|
|
281
|
+
lastPage?: number;
|
|
282
|
+
} : K extends 'fixed' ? {
|
|
283
|
+
currentPage: number;
|
|
284
|
+
total?: number;
|
|
285
|
+
lastPage?: number;
|
|
286
|
+
} : K extends 'offset' ? {
|
|
287
|
+
offset: number;
|
|
288
|
+
limit: number;
|
|
289
|
+
from: number;
|
|
290
|
+
to?: number;
|
|
291
|
+
total?: number;
|
|
292
|
+
} : K extends 'cursor' ? {
|
|
293
|
+
perPage: number;
|
|
294
|
+
from?: string;
|
|
295
|
+
to?: string;
|
|
296
|
+
hasMore: boolean;
|
|
297
|
+
} : Record<string, unknown>;
|
|
298
|
+
/** `$page` typed by the strategy `K` that answers, its wire keys and the picked menu arm. */
|
|
299
|
+
type TypedPage<K extends PaginatorKind, Keys extends PageKeys, Arm extends string | undefined = undefined> = {
|
|
300
|
+
kind: K;
|
|
301
|
+
keys: Keys;
|
|
302
|
+
meta?: PageMeta<K>;
|
|
303
|
+
links: PageLinks;
|
|
304
|
+
} & (Arm extends string ? {
|
|
305
|
+
arm: Arm;
|
|
306
|
+
} : {
|
|
307
|
+
arm?: never;
|
|
308
|
+
});
|
|
309
|
+
/** A non-menu paginator entry as `{ strategy, keys }` (a bare kind takes the canonical keys). */
|
|
310
|
+
type StrategyOf<P> = P extends PaginatorKind ? {
|
|
311
|
+
strategy: P;
|
|
312
|
+
keys: (typeof CANONICAL_PAGE_KEYS)[P];
|
|
313
|
+
} : P extends StrategyDescriptor ? P : never;
|
|
314
|
+
/** Cursors are opaque strings; every other role is a count. */
|
|
315
|
+
type RoleValue<R> = R extends 'after' | 'before' ? string : number;
|
|
316
|
+
/** The page members one strategy accepts, keyed by their wire names. */
|
|
317
|
+
type StrategyParams<S> = S extends {
|
|
318
|
+
keys: infer K;
|
|
319
|
+
} ? { -readonly [R in keyof K as K[R] extends string ? K[R] : never]?: RoleValue<R> } : never;
|
|
320
|
+
/** True when `P` is the loose `PaginatorDescriptor` union rather than a generated literal. */
|
|
321
|
+
type IsLoose<P> = [PaginatorKind] extends [P] ? true : false;
|
|
322
|
+
type ArmName<M extends MenuDescriptor> = Extract<keyof M['arms'], string>;
|
|
323
|
+
type ArmParams<M extends MenuDescriptor, A> = A extends ArmName<M> ? {
|
|
324
|
+
kind: A;
|
|
325
|
+
} & StrategyParams<StrategyOf<M['arms'][A]>> : never;
|
|
326
|
+
type KeysOfUnion<U> = U extends unknown ? keyof U : never;
|
|
327
|
+
/**
|
|
328
|
+
* The default arm's members without `kind`. Members only another arm reads are `never`: the
|
|
329
|
+
* server would select that arm by them, while the response is typed as the default.
|
|
330
|
+
*/
|
|
331
|
+
type DefaultArmParams<M extends MenuDescriptor> = StrategyParams<StrategyOf<M['arms'][M['default']]>> & {
|
|
332
|
+
kind?: undefined;
|
|
333
|
+
} & { [X in Exclude<KeysOfUnion<StrategyParams<StrategyOf<M['arms'][ArmName<M>]>>>, keyof StrategyParams<StrategyOf<M['arms'][M['default']]>>>]?: never };
|
|
334
|
+
/**
|
|
335
|
+
* The `page` parameter an endpoint with paginator `P` accepts: its strategy's members under
|
|
336
|
+
* their wire keys (numbers, cursors as strings). A menu takes one arm tagged by `kind`, or the
|
|
337
|
+
* default arm's members untagged. `never` for an unpaginated endpoint; a loose record when the
|
|
338
|
+
* descriptor is not a generated literal.
|
|
339
|
+
*/
|
|
340
|
+
type PageParams<P> = IsLoose<P> extends true ? Readonly<Record<string, unknown>> : P extends 'none' ? never : P extends MenuDescriptor ? ArmParams<P, ArmName<P>> | DefaultArmParams<P> : StrategyParams<StrategyOf<P>>;
|
|
341
|
+
/** The member of page parameter union `P` that argument `Q` selects by its `kind`, if any. */
|
|
342
|
+
type SelectedArm<Q, P> = Q extends {
|
|
343
|
+
kind: infer K;
|
|
344
|
+
} ? Extract<P, {
|
|
345
|
+
kind: K;
|
|
346
|
+
}> : Extract<P, {
|
|
347
|
+
kind?: undefined;
|
|
348
|
+
}>;
|
|
349
|
+
/**
|
|
350
|
+
* A page argument `Q` with any member outside the arm it selects turned into `never`, so a typo,
|
|
351
|
+
* or another arm's member, is an error.
|
|
352
|
+
*/
|
|
353
|
+
type ExactPageParams<Q, P> = Q & { [K in Exclude<keyof Q, KeysOfUnion<[SelectedArm<Q, P>] extends [never] ? P : SelectedArm<Q, P>>>]: never };
|
|
354
|
+
type StrategyPage<S, Arm extends string | undefined = undefined> = S extends {
|
|
355
|
+
strategy: infer K extends PaginatorStrategy;
|
|
356
|
+
keys: infer Keys extends PageKeys;
|
|
357
|
+
} ? TypedPage<K, Keys, Arm> : Page;
|
|
358
|
+
type MenuPage<M extends MenuDescriptor, Q> = [Q] extends [never] ? StrategyPage<StrategyOf<M['arms'][M['default']]>> : Q extends {
|
|
359
|
+
kind: infer A extends ArmName<M>;
|
|
360
|
+
} ? StrategyPage<StrategyOf<M['arms'][A]>, A> : StrategyPage<StrategyOf<M['arms'][M['default']]>>;
|
|
361
|
+
/**
|
|
362
|
+
* The `$page` a read on an endpoint with paginator `P` carries, given the `page` argument `Q`
|
|
363
|
+
* it sent: the picked menu arm's strategy, the default's when it picked none, else the
|
|
364
|
+
* endpoint's own strategy.
|
|
365
|
+
*/
|
|
366
|
+
type PageOf<P, Q = undefined> = IsLoose<P> extends true ? Page : P extends MenuDescriptor ? MenuPage<P, Q> : P extends 'none' ? TypedPage<'none', Record<never, never>> : StrategyPage<StrategyOf<P>>;
|
|
367
|
+
/**
|
|
368
|
+
* The `page` argument that reads another page from the strategy that answered `P` (a `$page`):
|
|
369
|
+
* its members under their wire keys, tagged with the menu arm it picked. A loose record for an
|
|
370
|
+
* untyped `Page`.
|
|
371
|
+
*/
|
|
372
|
+
type PageParamsOf<P extends Page> = PaginatorKind extends P['kind'] ? Readonly<Record<string, string | number>> : StrategyParams<{
|
|
373
|
+
keys: P['keys'];
|
|
374
|
+
}> & (P extends {
|
|
375
|
+
arm: infer A extends string;
|
|
376
|
+
} ? {
|
|
377
|
+
kind: A;
|
|
378
|
+
} : unknown);
|
|
379
|
+
//#endregion
|
|
190
380
|
//#region src/materialise.d.ts
|
|
191
381
|
/** A trimmed, by-reference top-level envelope shared by every resource from one response. */
|
|
192
382
|
interface DocumentEnvelope {
|
|
@@ -204,19 +394,6 @@ interface Edge {
|
|
|
204
394
|
links?: Record<string, unknown>;
|
|
205
395
|
meta?: Record<string, unknown>;
|
|
206
396
|
}
|
|
207
|
-
/** Normalised pagination, discriminated by paginator kind; count-free-safe. */
|
|
208
|
-
interface Page {
|
|
209
|
-
kind: PaginatorKind;
|
|
210
|
-
/** The raw `meta.page` block, when present (shape varies by kind). */
|
|
211
|
-
meta?: Record<string, unknown>;
|
|
212
|
-
/** Navigation links by relation (`first`/`prev`/`next`/`last`), when present. */
|
|
213
|
-
links: {
|
|
214
|
-
first?: string;
|
|
215
|
-
prev?: string;
|
|
216
|
-
next?: string;
|
|
217
|
-
last?: string;
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
397
|
/** The uniform shape `$rel(name)` returns. */
|
|
221
398
|
interface RelationView {
|
|
222
399
|
data?: unknown;
|
|
@@ -242,8 +419,13 @@ interface ArrayEnvelope {
|
|
|
242
419
|
readonly $page: Page;
|
|
243
420
|
readonly $links: Record<string, unknown> | undefined;
|
|
244
421
|
readonly $meta: Record<string, unknown> | undefined;
|
|
245
|
-
$next(): Promise<unknown>;
|
|
246
|
-
$prev(): Promise<unknown>;
|
|
422
|
+
$next(options?: NavigateOptions): Promise<unknown>;
|
|
423
|
+
$prev(options?: NavigateOptions): Promise<unknown>;
|
|
424
|
+
}
|
|
425
|
+
/** Per-call options for `$next()`/`$prev()`. */
|
|
426
|
+
interface NavigateOptions {
|
|
427
|
+
/** Cancels the page fetch when signalled. */
|
|
428
|
+
signal?: AbortSignal;
|
|
247
429
|
}
|
|
248
430
|
/** The runtime context materialise reads its descriptor + navigation seam from. */
|
|
249
431
|
interface MaterialiseContext {
|
|
@@ -252,10 +434,11 @@ interface MaterialiseContext {
|
|
|
252
434
|
* Re-fetch + re-materialise a link (wired in Build 4); returns the materialised value.
|
|
253
435
|
* `linkage` propagates the originating surface so a paginated relationship-endpoint
|
|
254
436
|
* array re-materialises as identifiers (not resources) on `$next()`/`$prev()`. `paginator`
|
|
255
|
-
* carries the current page
|
|
256
|
-
* (a divergent per-relation paginator, or an EMPTY next page
|
|
437
|
+
* carries the strategy that answered the current page, so the re-materialised page reports the
|
|
438
|
+
* same `$page` (a divergent per-relation paginator, a picked menu arm, or an EMPTY next page
|
|
439
|
+
* that carries no member to sniff).
|
|
257
440
|
*/
|
|
258
|
-
navigate: (url: string, linkage?: boolean, paginator?:
|
|
441
|
+
navigate: (url: string, linkage?: boolean, paginator?: ResolvedPaginator, signal?: AbortSignal) => Promise<unknown>;
|
|
259
442
|
/**
|
|
260
443
|
* The opt-in per-resource validator (ADR 0004), resolved from `ClientOptions.validate`. When
|
|
261
444
|
* present, every wire resource in `data`/`included` is validated against its per-type schema
|
|
@@ -296,14 +479,15 @@ interface RawRelationship {
|
|
|
296
479
|
* full resource) — a structural guess can't tell them apart for an attribute-less,
|
|
297
480
|
* relation-less resource, so the caller passes the surface it issued.
|
|
298
481
|
*
|
|
299
|
-
* `paginatorOverride` sets the top-level array's `$page
|
|
300
|
-
*
|
|
301
|
-
*
|
|
482
|
+
* `paginatorOverride` sets the top-level array's `$page` for a related/relationship read, where the
|
|
483
|
+
* paginator is the RELATION's (which may diverge from the related type's collection — D6a), for a
|
|
484
|
+
* menu read that picked an arm, and where an empty page carries no member to sniff a type from. A
|
|
485
|
+
* bare kind is read with its canonical wire keys. `primaryType` is preferred for a
|
|
302
486
|
* top-level collection read (statically-known); both override the sniff-from-`data[0]` fallback.
|
|
303
487
|
*/
|
|
304
|
-
declare function materialise(doc: Document, ctx: MaterialiseContext, linkage?: boolean, primaryType?: string, paginatorOverride?: PaginatorKind): unknown;
|
|
488
|
+
declare function materialise(doc: Document, ctx: MaterialiseContext, linkage?: boolean, primaryType?: string, paginatorOverride?: ResolvedPaginator | PaginatorKind): unknown;
|
|
305
489
|
/**
|
|
306
|
-
* A to-many relation's paginator
|
|
490
|
+
* A to-many relation's paginator. The relation's OWN related/relationship endpoint may
|
|
307
491
|
* paginate differently than the related type's top-level collection (D6a), so prefer the
|
|
308
492
|
* per-relation `paginator` (carried in the descriptor only when it diverges); otherwise fall back
|
|
309
493
|
* to the related type's own paginator (the relationship and related endpoints both paginate that
|
|
@@ -311,6 +495,8 @@ declare function materialise(doc: Document, ctx: MaterialiseContext, linkage?: b
|
|
|
311
495
|
* resolves off its first declared related type (its members span types, matching the relationship
|
|
312
496
|
* endpoint's first-member resolution).
|
|
313
497
|
*/
|
|
498
|
+
declare function relatedPaginator(relation: RelationDescriptor | undefined, ctx: MaterialiseContext): PaginatorDescriptor | undefined;
|
|
499
|
+
/** The kind a relation's related read answers with when it sends no `page`. See {@link relatedPaginator}. */
|
|
314
500
|
declare function relatedPaginatorKind(relation: RelationDescriptor | undefined, ctx: MaterialiseContext): PaginatorKind;
|
|
315
501
|
//#endregion
|
|
316
502
|
//#region src/types.d.ts
|
|
@@ -484,11 +670,13 @@ declare function runAtomic<D extends ApiDescriptor, A, W, const Ops>(request: Js
|
|
|
484
670
|
* a real, read-only `T[]` carrying the non-enumerable relationship-level envelope
|
|
485
671
|
* (`$page`/`$links`/`$meta`) plus link-driven `$next()`/`$prev()` navigation. The same
|
|
486
672
|
* model backs top-level collections, related-endpoint collections, and hydrated/linkage
|
|
487
|
-
* to-many relationship values ("one model, three surfaces").
|
|
673
|
+
* to-many relationship values ("one model, three surfaces"). `P` types `$page` by the strategy
|
|
674
|
+
* that answered (see {@link PageOf}); following a link keeps it.
|
|
488
675
|
*/
|
|
489
|
-
type Collection<T> = ReadonlyArray<T> & Omit<ArrayEnvelope, '$next' | '$prev'> & {
|
|
490
|
-
$
|
|
491
|
-
$
|
|
676
|
+
type Collection<T, P = Page> = ReadonlyArray<T> & Omit<ArrayEnvelope, '$page' | '$next' | '$prev'> & {
|
|
677
|
+
readonly $page: P;
|
|
678
|
+
$next(options?: NavigateOptions): Promise<Collection<T, P> | undefined>;
|
|
679
|
+
$prev(options?: NavigateOptions): Promise<Collection<T, P> | undefined>;
|
|
492
680
|
};
|
|
493
681
|
/**
|
|
494
682
|
* The edge-local accessors carried by a materialised related VALUE (a per-edge view):
|
|
@@ -548,6 +736,15 @@ type PickSelected<Obj, Sel> = [Sel] extends [AllFields] ? Obj : Pick<Obj, Extrac
|
|
|
548
736
|
type RelatedType<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T>> = Extract<D[T]['relations'][R]['types'][number], TypeName<D>>;
|
|
549
737
|
/** True when relation `R` of type `T` is to-many. */
|
|
550
738
|
type IsMany<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T>> = D[T]['relations'][R]['cardinality'] extends 'many' ? true : false;
|
|
739
|
+
/**
|
|
740
|
+
* The paginator relation `R`'s related/relationship endpoints use: the relation's own when it
|
|
741
|
+
* diverges (D6a), else its first related type's collection paginator (as the runtime resolves).
|
|
742
|
+
*/
|
|
743
|
+
type RelationPaginator<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T>> = D[T]['relations'][R] extends {
|
|
744
|
+
paginator: infer P;
|
|
745
|
+
} ? P : D[T]['relations'][R]['types'][0] extends infer First extends TypeName<D> ? D[First]['paginator'] : 'none';
|
|
746
|
+
/** The `$page` of relation `R`'s to-many value read with page argument `Q` (none = the default). */
|
|
747
|
+
type RelationPage<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T>, Q = undefined> = PageOf<RelationPaginator<D, T, R>, Q>;
|
|
551
748
|
/**
|
|
552
749
|
* The bare resource-identifier shape a non-included (but linked) relation takes,
|
|
553
750
|
* carrying the per-edge `$edge`/`$pivot` accessors the runtime attaches to every
|
|
@@ -579,7 +776,7 @@ type Identifier<TType extends string, Pivot = Record<string, unknown>> = TType e
|
|
|
579
776
|
* (Excluded to-many stays a `Collection`: linkage may still be present, and a lazy
|
|
580
777
|
* to-many materialises as an augmented array regardless — only its members differ.)
|
|
581
778
|
*/
|
|
582
|
-
type RelationValue<D extends ApiDescriptor, A, T extends TypeName<D>, R extends RelationName<D, T>, Inc, F = unknown> = R extends Inc ? IsMany<D, T, R> extends true ? Collection<Hydrated<D, A, RelatedType<D, T, R>, F>> : Hydrated<D, A, RelatedType<D, T, R>, F> | null : IsMany<D, T, R> extends true ? Collection<Identifier<RelatedType<D, T, R
|
|
779
|
+
type RelationValue<D extends ApiDescriptor, A, T extends TypeName<D>, R extends RelationName<D, T>, Inc, F = unknown> = R extends Inc ? IsMany<D, T, R> extends true ? Collection<Hydrated<D, A, RelatedType<D, T, R>, F>, RelationPage<D, T, R>> : Hydrated<D, A, RelatedType<D, T, R>, F> | null : IsMany<D, T, R> extends true ? Collection<Identifier<RelatedType<D, T, R>>, RelationPage<D, T, R>> : Identifier<RelatedType<D, T, R>> | null | undefined;
|
|
583
780
|
/**
|
|
584
781
|
* The relation slots of type `T`, each typed by cardinality and include-presence, then
|
|
585
782
|
* narrowed to the fieldset selection for `T` (relations are sparse-fieldset members too — an
|
|
@@ -664,14 +861,16 @@ type FieldsMap<D extends ApiDescriptor> = { [T in TypeName<D>]?: readonly Member
|
|
|
664
861
|
* `fields` entries are constrained to real members.
|
|
665
862
|
*/
|
|
666
863
|
type MemberName<D extends ApiDescriptor, T extends TypeName<D>> = Extract<keyof D[T]['attributes'], string> | RelationName<D, T>;
|
|
864
|
+
/** The `page` argument a collection read of type `T` accepts (see {@link PageParams}). */
|
|
865
|
+
type ListPageParams<D extends ApiDescriptor, T extends TypeName<D>> = PageParams<D[T]['paginator']>;
|
|
667
866
|
/**
|
|
668
867
|
* A read query carrying a typed, narrowing `include`, a typed `fields` (drives sparse-fieldset
|
|
669
|
-
* return narrowing), a `withCount` constrained to the type's count tokens,
|
|
670
|
-
* JSON:API query families. `Inc`/`F` are inferred (as `const`) at the call site. Used for the
|
|
868
|
+
* return narrowing), a `withCount` constrained to the type's count tokens, a `page` typed by the
|
|
869
|
+
* collection's paginator (`Pg` drives the `$page` type), plus the loose JSON:API query families. `Inc`/`F` are inferred (as `const`) at the call site. Used for the
|
|
671
870
|
* COLLECTION read (`list`); the single-resource read (`get`) uses {@link SingleReadQuery}, which
|
|
672
871
|
* drops `withCount` (no `GET /{type}/{id}` endpoint advertises it).
|
|
673
872
|
*/
|
|
674
|
-
interface TypedReadQuery<D extends ApiDescriptor, T extends TypeName<D>, Inc extends readonly IncludePath<D, T>[], F extends FieldsMap<D> = FieldsMap<D
|
|
873
|
+
interface TypedReadQuery<D extends ApiDescriptor, T extends TypeName<D>, Inc extends readonly IncludePath<D, T>[], F extends FieldsMap<D> = FieldsMap<D>, Pg extends ListPageParams<D, T> | undefined = ListPageParams<D, T> | undefined> {
|
|
675
874
|
/** The relations to include — drives static narrowing; constrained to the advertised paths. */
|
|
676
875
|
include?: Inc;
|
|
677
876
|
/** Filter the collection — keys constrained to the type's advertised `filter[...]` params. */
|
|
@@ -682,7 +881,13 @@ interface TypedReadQuery<D extends ApiDescriptor, T extends TypeName<D>, Inc ext
|
|
|
682
881
|
fields?: F;
|
|
683
882
|
/** Relationship-count tokens (the Countable profile) — comma-joined onto `withCount`. */
|
|
684
883
|
withCount?: readonly CountToken<D, T>[];
|
|
685
|
-
|
|
884
|
+
/**
|
|
885
|
+
* The page to read, under the paginator's wire keys. On a menu, `kind` picks a strategy;
|
|
886
|
+
* without it the server answers with its default.
|
|
887
|
+
*/
|
|
888
|
+
page?: ExactPageParams<Pg, ListPageParams<D, T>>;
|
|
889
|
+
/** Cancels the read when signalled (e.g. a superseded request). Not sent to the server. */
|
|
890
|
+
signal?: AbortSignal;
|
|
686
891
|
}
|
|
687
892
|
/**
|
|
688
893
|
* A single-resource read query (`GET /{type}/{id}`): only `include` and sparse `fields`. A
|
|
@@ -695,6 +900,8 @@ interface SingleReadQuery<D extends ApiDescriptor, T extends TypeName<D>, Inc ex
|
|
|
695
900
|
include?: Inc;
|
|
696
901
|
/** Sparse fieldsets per type — drives return-type narrowing (unrequested members are absent). */
|
|
697
902
|
fields?: F;
|
|
903
|
+
/** Cancels the read when signalled (e.g. a superseded request). Not sent to the server. */
|
|
904
|
+
signal?: AbortSignal;
|
|
698
905
|
}
|
|
699
906
|
/**
|
|
700
907
|
* The static return type of a read on type `T` given its `include` tuple and `fields` selection
|
|
@@ -702,19 +909,24 @@ interface SingleReadQuery<D extends ApiDescriptor, T extends TypeName<D>, Inc ex
|
|
|
702
909
|
* narrowed to the requested sparse fieldset.
|
|
703
910
|
*/
|
|
704
911
|
type ReadResult<D extends ApiDescriptor, A, T extends TypeName<D>, Inc extends readonly IncludePath<D, T>[] = [], F = unknown> = ResourceObjectView<D, A, T, IncludedRelations<D, T, Inc>, F>;
|
|
705
|
-
/**
|
|
706
|
-
|
|
912
|
+
/**
|
|
913
|
+
* A read query for the relationship/related endpoints: loose filter/sort/include/fields/withCount,
|
|
914
|
+
* and a `page` of type `Pg` (typed from the relation's paginator on a typed accessor).
|
|
915
|
+
*/
|
|
916
|
+
interface RelationReadQuery<Pg = Readonly<Record<string, unknown>>> {
|
|
707
917
|
filter?: Record<string, unknown>;
|
|
708
918
|
sort?: string | readonly string[];
|
|
709
919
|
include?: readonly string[];
|
|
710
920
|
fields?: Record<string, readonly string[]>;
|
|
711
|
-
page?:
|
|
921
|
+
page?: Pg;
|
|
712
922
|
/**
|
|
713
923
|
* Relationship-count tokens (`_self_` + the relation's countable relations) — the related/
|
|
714
924
|
* relationship endpoints advertise their own `withCount`, and the client negotiates the
|
|
715
925
|
* relation's Countable profile so a strict server accepts it (D3).
|
|
716
926
|
*/
|
|
717
927
|
withCount?: readonly string[];
|
|
928
|
+
/** Cancels the read when signalled (e.g. a superseded request). Not sent to the server. */
|
|
929
|
+
signal?: AbortSignal;
|
|
718
930
|
}
|
|
719
931
|
/** The TS type a descriptor wire-format hint maps to (mirrors the runtime coercion vocabulary). */
|
|
720
932
|
type FormatToTs<H> = H extends 'number' | 'integer' ? number : H extends 'boolean' ? boolean : H extends 'object' ? Record<string, unknown> : H extends 'array' ? readonly unknown[] : H extends 'unknown' ? unknown : string;
|
|
@@ -732,13 +944,15 @@ type PivotFieldsOf<D extends ApiDescriptor, T extends TypeName<D>, R extends Rel
|
|
|
732
944
|
* the hydrated member (or `null`) for to-one. Each member's `$pivot` is typed from the
|
|
733
945
|
* relation's `pivotFields` (D33).
|
|
734
946
|
*/
|
|
735
|
-
type RelatedValue<D extends ApiDescriptor, A, T extends TypeName<D>, R extends RelationName<D, T
|
|
947
|
+
type RelatedValue<D extends ApiDescriptor, A, T extends TypeName<D>, R extends RelationName<D, T>, Q = undefined> = IsMany<D, T, R> extends true ? Collection<Hydrated<D, A, RelatedType<D, T, R>, unknown, PivotFieldsOf<D, T, R>>, RelationPage<D, T, R, Q>> : Hydrated<D, A, RelatedType<D, T, R>, unknown, PivotFieldsOf<D, T, R>> | null;
|
|
736
948
|
/**
|
|
737
949
|
* A linkage VALUE for relation `R` (the `/relationships/{rel}` endpoint, identifiers only):
|
|
738
950
|
* a `Collection` of identifier members for to-many, a single identifier (or `null`) for to-one.
|
|
739
951
|
* Each member's `$pivot` is typed from the relation's `pivotFields` (D33).
|
|
740
952
|
*/
|
|
741
|
-
type LinkageValue<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T
|
|
953
|
+
type LinkageValue<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T>, Q = undefined> = IsMany<D, T, R> extends true ? Collection<Identifier<RelatedType<D, T, R>, PivotFieldsOf<D, T, R>>, RelationPage<D, T, R, Q>> : Identifier<RelatedType<D, T, R>, PivotFieldsOf<D, T, R>> | null;
|
|
954
|
+
/** The `page` argument relation `R`'s to-many reads accept; `never` for a to-one. */
|
|
955
|
+
type RelationPageParams<D extends ApiDescriptor, T extends TypeName<D>, R extends RelationName<D, T>> = IsMany<D, T, R> extends true ? PageParams<RelationPaginator<D, T, R>> : never;
|
|
742
956
|
/**
|
|
743
957
|
* A relationship accessor off a {@link ResourceHandle} (`client.albums.id('1').tracks`):
|
|
744
958
|
* reads — `.get()` (linkage) / `.related()` (related collection); writes — to-many
|
|
@@ -752,8 +966,8 @@ type LinkageValue<D extends ApiDescriptor, T extends TypeName<D>, R extends Rela
|
|
|
752
966
|
* linkage, or `void` when the server replies `204`.
|
|
753
967
|
*/
|
|
754
968
|
interface RelationshipAccessor<D extends ApiDescriptor, A, T extends TypeName<D>, R extends RelationName<D, T>> {
|
|
755
|
-
get: ExposesRelationship<D, T, R> extends true ? (query?: RelationReadQuery) => Promise<LinkageValue<D, T, R>> : never;
|
|
756
|
-
related: ExposesRelated<D, T, R> extends true ? (query?: RelationReadQuery) => Promise<RelatedValue<D, A, T, R>> : never;
|
|
969
|
+
get: ExposesRelationship<D, T, R> extends true ? <const Pg extends RelationPageParams<D, T, R> | undefined = undefined>(query?: RelationReadQuery<ExactPageParams<Pg, RelationPageParams<D, T, R>>>) => Promise<LinkageValue<D, T, R, Pg>> : never;
|
|
970
|
+
related: ExposesRelated<D, T, R> extends true ? <const Pg extends RelationPageParams<D, T, R> | undefined = undefined>(query?: RelationReadQuery<ExactPageParams<Pg, RelationPageParams<D, T, R>>>) => Promise<RelatedValue<D, A, T, R, Pg>> : never;
|
|
757
971
|
add: RelationMutation<D, T, R, 'add', readonly WriteRef<D, T, R>[]>;
|
|
758
972
|
remove: RelationMutation<D, T, R, 'remove', readonly LinkageRefOf<RelatedType<D, T, R>>[]>;
|
|
759
973
|
replace: RelationMutation<D, T, R, 'replace', readonly WriteRef<D, T, R>[]>;
|
|
@@ -982,7 +1196,7 @@ type ResourceHandle<D extends ApiDescriptor, A, W, T extends TypeName<D>, Act =
|
|
|
982
1196
|
} & RelationshipAccessors<D, A, T>;
|
|
983
1197
|
/** The collection-scoped accessor for one wire type (`client.albums`). */
|
|
984
1198
|
interface TypeAccessor<D extends ApiDescriptor, A, W, T extends TypeName<D>, Act = DefaultActionTypes> {
|
|
985
|
-
list<const Inc extends readonly IncludePath<D, T>[] = [], const F extends FieldsMap<D> = {}>(query?: TypedReadQuery<D, T, Inc, F>): Promise<Collection<ReadResult<D, A, T, Inc, F>>>;
|
|
1199
|
+
list<const Inc extends readonly IncludePath<D, T>[] = [], const F extends FieldsMap<D> = {}, const Pg extends ListPageParams<D, T> | undefined = undefined>(query?: TypedReadQuery<D, T, Inc, F, Pg>): Promise<Collection<ReadResult<D, A, T, Inc, F>, PageOf<D[T]['paginator'], Pg>>>;
|
|
986
1200
|
get<const Inc extends readonly IncludePath<D, T>[] = [], const F extends FieldsMap<D> = {}>(id: string, query?: SingleReadQuery<D, T, Inc, F>): Promise<ReadResult<D, A, T, Inc, F>>;
|
|
987
1201
|
create<const Inc extends readonly IncludePath<D, T>[] = [], const F extends FieldsMap<D> = {}>(input: CreateInput<D, W, T>, opts?: WriteOptions<D, T, Inc, F>): Promise<ReadResult<D, A, T, Inc, F>>;
|
|
988
1202
|
id(id: string): ResourceHandle<D, A, W, T, Act>;
|
|
@@ -993,9 +1207,10 @@ interface TypeAccessor<D extends ApiDescriptor, A, W, T extends TypeName<D>, Act
|
|
|
993
1207
|
* The descriptor-driven client surface: one {@link TypeAccessor} per wire type. `W` is the
|
|
994
1208
|
* generated `WriteAttributes` map (per-type `{ create; update }` attribute pairs) and `Act`
|
|
995
1209
|
* the generated per-action body-type map; both thread through to the write/action surfaces and
|
|
996
|
-
* default so read-only / codegen-less callers compile.
|
|
1210
|
+
* default so read-only / codegen-less callers compile. `E` is the server's documented
|
|
1211
|
+
* error-code union, carried at the type level only (read it back with `ErrorCodeOf`).
|
|
997
1212
|
*/
|
|
998
|
-
type Client<D extends ApiDescriptor, A = DefaultAttributes<D>, W = DefaultWriteAttributes<D>, Act = DefaultActionTypes> = { [T in TypeName<D>]: TypeAccessor<D, A, W, T, Act> } & {
|
|
1213
|
+
type Client<D extends ApiDescriptor, A = DefaultAttributes<D>, W = DefaultWriteAttributes<D>, Act = DefaultActionTypes, E extends string = string> = { [T in TypeName<D>]: TypeAccessor<D, A, W, T, Act> } & {
|
|
999
1214
|
/**
|
|
1000
1215
|
* Run an Atomic Operations batch (CONTEXT.md "Atomic — typed transaction builder"): the
|
|
1001
1216
|
* callback records `create`/`update`/`delete` ops on a non-type-scoped recorder (each carries
|
|
@@ -1013,7 +1228,13 @@ type Client<D extends ApiDescriptor, A = DefaultAttributes<D>, W = DefaultWriteA
|
|
|
1013
1228
|
* - return void/nothing -> the loose, ordered `AtomicResult[]` (backward-compatible).
|
|
1014
1229
|
*/
|
|
1015
1230
|
atomic<const Ops>(build: (tx: AtomicRecorder<D, W>) => Ops): Promise<Ops extends readonly AtomicHandle[] ? AtomicResults<D, A, Ops> : AtomicResult[]>;
|
|
1231
|
+
readonly [errorCodes]?: E;
|
|
1016
1232
|
};
|
|
1233
|
+
declare const errorCodes: unique symbol;
|
|
1234
|
+
/** The error-code union a client type carries, or `string` for one that carries none. */
|
|
1235
|
+
type ErrorCodeOf<T> = T extends {
|
|
1236
|
+
readonly [errorCodes]?: infer C extends string;
|
|
1237
|
+
} ? C : string;
|
|
1017
1238
|
/**
|
|
1018
1239
|
* The fallback attribute map when a caller doesn't supply the generated `Attributes`
|
|
1019
1240
|
* (direct `createClient` users without codegen): every type's attributes are an open
|
|
@@ -1037,6 +1258,11 @@ interface TransportRequest {
|
|
|
1037
1258
|
url: string;
|
|
1038
1259
|
headers: Record<string, string>;
|
|
1039
1260
|
body?: string;
|
|
1261
|
+
/**
|
|
1262
|
+
* Aborts the request when signalled. Optional: a transport that ignores it still works, the
|
|
1263
|
+
* caller just can't cancel an in-flight request through it.
|
|
1264
|
+
*/
|
|
1265
|
+
signal?: AbortSignal;
|
|
1040
1266
|
}
|
|
1041
1267
|
/** A single inbound response, body still a string for the runtime to parse. */
|
|
1042
1268
|
interface TransportResponse {
|
|
@@ -1097,9 +1323,9 @@ declare const HANDLE_RESERVED: ReadonlySet<string>;
|
|
|
1097
1323
|
* not per-type codegen: `client.<type>` yields a {@link TypeAccessor}, `.id(id)` a handle,
|
|
1098
1324
|
* and a handle's relation accessors drive the relationship/related endpoints. Navigation
|
|
1099
1325
|
* (`$next()`/`$prev()`, related links) is wired through `materialise`'s `navigate` seam,
|
|
1100
|
-
* which
|
|
1326
|
+
* which resolves the server's link against `baseUrl`, executes it and re-materialises.
|
|
1101
1327
|
*/
|
|
1102
|
-
declare function createClient<D extends ApiDescriptor, A = DefaultAttributes<D>, W = DefaultWriteAttributes<D>, Act = DefaultActionTypes>(descriptor: D, options: ClientOptions): Client<D, A, W, Act>;
|
|
1328
|
+
declare function createClient<D extends ApiDescriptor, A = DefaultAttributes<D>, W = DefaultWriteAttributes<D>, Act = DefaultActionTypes, E extends string = string>(descriptor: D, options: ClientOptions): Client<D, A, W, Act, E>;
|
|
1103
1329
|
//#endregion
|
|
1104
1330
|
//#region src/request.d.ts
|
|
1105
1331
|
/**
|
|
@@ -1114,6 +1340,8 @@ interface ReadQuery {
|
|
|
1114
1340
|
/** Relationship-count tokens (the Countable profile) — serialised comma-joined onto `withCount`. */
|
|
1115
1341
|
withCount?: readonly string[];
|
|
1116
1342
|
page?: Record<string, unknown>;
|
|
1343
|
+
/** Cancels the read when signalled. Never serialised; passed to the transport. */
|
|
1344
|
+
signal?: AbortSignal;
|
|
1117
1345
|
}
|
|
1118
1346
|
/** A loose JSON:API document — enough structure for the runtime to materialise. */
|
|
1119
1347
|
interface Document {
|
|
@@ -1132,8 +1360,17 @@ interface JsonApiContext {
|
|
|
1132
1360
|
/** A single read/write request, before serialisation. */
|
|
1133
1361
|
interface JsonApiRequest {
|
|
1134
1362
|
method: string;
|
|
1135
|
-
/**
|
|
1363
|
+
/**
|
|
1364
|
+
* A path appended to `baseUrl` (a filled path template such as `/albums/1`), or an absolute
|
|
1365
|
+
* `http(s)://` URL. With {@link link} set, a link from the server instead.
|
|
1366
|
+
*/
|
|
1136
1367
|
path: string;
|
|
1368
|
+
/**
|
|
1369
|
+
* `path` is a link the server sent (a `links` member such as `next`, or a `Location` header).
|
|
1370
|
+
* It resolves against `baseUrl` per RFC 3986, so a root-relative `/api/v5/albums?page[number]=2`
|
|
1371
|
+
* keeps the base's origin but not its path, where a path template is appended to the base.
|
|
1372
|
+
*/
|
|
1373
|
+
link?: boolean;
|
|
1137
1374
|
query?: ReadQuery;
|
|
1138
1375
|
body?: unknown;
|
|
1139
1376
|
/**
|
|
@@ -1166,6 +1403,8 @@ interface JsonApiRequest {
|
|
|
1166
1403
|
* `JSON.stringify`.
|
|
1167
1404
|
*/
|
|
1168
1405
|
raw?: boolean;
|
|
1406
|
+
/** Passed through to the transport so the caller can cancel the request. */
|
|
1407
|
+
signal?: AbortSignal;
|
|
1169
1408
|
}
|
|
1170
1409
|
/**
|
|
1171
1410
|
* Serialise a read query to a query string (no leading `?`). Bracketed keys
|
|
@@ -1175,8 +1414,8 @@ interface JsonApiRequest {
|
|
|
1175
1414
|
*/
|
|
1176
1415
|
declare function serializeQuery(query: ReadQuery): string;
|
|
1177
1416
|
/**
|
|
1178
|
-
* Execute a request: build the URL (
|
|
1179
|
-
* else `baseUrl + path`), apply content negotiation and any async per-request headers,
|
|
1417
|
+
* Execute a request: build the URL (a server link resolved against `baseUrl`, an absolute path
|
|
1418
|
+
* verbatim, else `baseUrl + path`), apply content negotiation and any async per-request headers,
|
|
1180
1419
|
* then drive the transport. A 2xx with a body parses to a {@link Document}; an empty /
|
|
1181
1420
|
* 204 body resolves to `undefined`. A non-2xx throws a {@link JsonApiError} carrying the
|
|
1182
1421
|
* parsed error objects (tolerating a non-JSON error body with an empty list).
|
|
@@ -1250,5 +1489,5 @@ declare function assertJsonApiDocument(body: unknown): asserts body is Document;
|
|
|
1250
1489
|
*/
|
|
1251
1490
|
declare function validateDocument(body: Document, validator: ResolvedValidator): void;
|
|
1252
1491
|
//#endregion
|
|
1253
|
-
export {
|
|
1254
|
-
//# sourceMappingURL=validate-
|
|
1492
|
+
export { ResourceAccessors as $, ActionInput as $t, DefaultActionTypes as A, Edge as At, IdentifierMember as B, CANONICAL_PAGE_KEYS as Bt, fetchTransport as C, JSON_API_MEDIA_TYPE as Ct, Collection as D, mediaType as Dt, Client as E, ResourceIdentifier as Et, FieldSelectionMap as F, ResourceEnvelope as Ft, MemberName as G, PageMeta as Gt, IncludedRelations as H, Page as Ht, FieldsMap as I, ResourceLinks as It, RelationName as J, PageParamsOf as Jt, PivotInput as K, PageOf as Kt, FilterKey as L, materialise as Lt, DefaultWriteAttributes as M, MaterialiseContext as Mt, EdgeMembers as N, NavigateOptions as Nt, CountToken as O, ArrayEnvelope as Ot, ErrorCodeOf as P, RelationView as Pt, RelationshipAccessor as Q, ActionDescriptor as Qt, FilterQuery as R, relatedPaginator as Rt, TransportResponse as S, ATOMIC_MEDIA_TYPE as St, AtomicResultOf as T, MediaTypeParams as Tt, LinkageRef as U, PageKeys as Ut, IncludePath as V, ExactPageParams as Vt, ListPageParams as W, PageLinks as Wt, RelationPaginator as X, TypedPage as Xt, RelationPageParams as Y, ResolvedPaginator as Yt, RelationReadQuery as Z, resolvePaginator as Zt, HANDLE_RESERVED as _, AtomicResults as _t, Validator as a, ClientIdPolicy as an, TypeAccessor as at, JsonApiTransport as b, runAtomic as bt, resolveValidator as c, PaginatorDescriptor as cn, UpdateInput as ct, JsonApiContext as d, PaginatorStrategy as dn, AtomicCreateInput as dt, ActionOutput as en, ResourceHandle as et, JsonApiRequest as f, RelationDescriptor as fn, AtomicDeleteHandle as ft, ClientOptions as g, AtomicResult as gt, serializeQuery as h, StrategyDescriptor as hn, AtomicRef as ht, ValidationOption as i, Cardinality as in, SortToken as it, DefaultAttributes as j, EdgeEnvelope as jt, CreateInput as k, DocumentEnvelope as kt, validateDocument as l, PaginatorKind as ln, WriteOptions as lt, execute as m, ResourceDescriptor as mn, AtomicRecorder as mt, SchemaMap as n, ApiDescriptor as nn, SingleReadQuery as nt, WireResource as o, CountableDescriptor as on, TypeName as ot, ReadQuery as p, RelationMutations as pn, AtomicHandle as pt, ReadResult as q, PageParams as qt, ValidationConfig as r, AtomicDescriptor as rn, SortQuery as rt, assertJsonApiDocument as s, MenuDescriptor as sn, TypedReadQuery as st, ResolvedValidator as t, ActionScope as tn, ResourceObjectView as tt, Document as u, PaginatorRole as un, AtomicCreateHandle as ut, HeadersInit as v, AtomicUpdateHandle as vt, ActionsAccessor as w, LocalIdentifier as wt, TransportRequest as x, ATOMIC_EXT as xt, createClient as y, AtomicUpdateInput as yt, HydratedMember as z, relatedPaginatorKind as zt };
|
|
1493
|
+
//# sourceMappingURL=validate-DgCUbzgT.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-DgCUbzgT.d.cts","names":[],"sources":["../src/descriptor.ts","../src/pagination.ts","../src/materialise.ts","../src/types.ts","../src/atomic.ts","../src/result-types.ts","../src/transport.ts","../src/client.ts","../src/request.ts","../src/validate.ts"],"mappings":";;AAQA;;;;AAAuB;AAYvB;;KAZY,WAAA;;;;;;;AAgBP;AAGL;;;UAPiB,iBAAA;EACf,GAAA;EACA,MAAA;EACA,OAAA;EACA,GAAA;AAAA;AAAA,UAGe,kBAAA;EACf,WAAA,EAAa,WAAA;EAAb;EAEA,KAAA;EAAA;EAEA,KAAA;EAOA;;;;;;EAAA,WAAA,GAAc,QAAA,CAAS,MAAA;EA0BvB;;;;;EApBA,OAAA;EAkCU;;;;AAAiB;EA5B3B,YAAA;EA+BuB;;;AAAoB;AAM7C;;EA9BE,SAAA,GAAY,iBAAA;EA8BW;AAAA;AAGzB;;;;EA1BE,SAAA,GAAY,mBAAA;EA4BW;;;;;;;;;EAlBvB,SAAA,GAAY,mBAAA;AAAA;;KAIF,iBAAA;AAciC;AAAA,KAXjC,aAAA,GAAgB,iBAAiB;;;;;KAMjC,aAAA;;UAGK,kBAAA;EACf,QAAA,EAAU,iBAAA;EACV,IAAA,EAAM,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,aAAA;AAAA;;;;;UAOf,cAAA;EACf,QAAA;EACA,OAAA;EACA,IAAA,EAAM,QAAA,CAAS,MAAA,SAAe,iBAAA,GAAoB,kBAAA;AAAA;;;;;;KAQxC,mBAAA,GAAsB,aAAA,GAAgB,kBAAA,GAAqB,cAAA;AAAA,KAE3D,cAAA;;KAGA,WAAA;;KAGA,WAAA;AANZ;;;;AAA0B;AAA1B,KAaY,YAAA;;;;AAVW;AAGvB;;UAeiB,gBAAA;EACf,KAAA,EAAO,WAAA;EAhBc;EAkBrB,IAAA;EAXsB;;;AAAA;AAQxB;EASE,MAAA;EACA,KAAA,EAAO,WAAA;EACP,MAAA,EAAQ,YAAA;EADD;;;;;;;EASP,SAAA;EAVA;;;;;EAgBA,UAAA;EAAA;EAEA,iBAAA,GAAoB,WAAA;EAAA;;;AAMT;AAWb;EAXE,WAAA;AAAA;;AAaO;AAGT;;;;;;UALiB,mBAAA;EACf,MAAA;EACA,OAAO;AAAA;AAAA,UAGQ,kBAAA;EAOL;EALV,UAAA,EAAY,QAAA,CAAS,MAAA;EACrB,SAAA,EAAW,QAAA,CAAS,MAAA,SAAe,kBAAA;EA+BhB;EA7BnB,KAAA,EAAO,QAAA,CAAS,MAAA;EAChB,SAAA,EAAW,mBAAA;EACX,QAAA,EAAU,cAAA;EALV;;;;EAUA,SAAA,GAAY,mBAAA;EATQ;;;;;;EAgBpB,UAAA;EAZA;;;;;EAkBA,QAAA;EAOA;;;;;;EAAA,UAAA;EAKU;EAHV,OAAA,GAAU,QAAA,CAAS,MAAA,SAAe,gBAAA;AAAA;AAAA,KAGxB,aAAA,GAAgB,QAAA,CAAS,MAAA,SAAe,kBAAA;;;;;;;;UASnC,gBAAA;EACf,IAAI;AAAA;;;;cCtNO,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;KASD,QAAA,GAAW,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,aAAA;;UAG9B,iBAAA;EACf,IAAA,EAAM,aAAA;EACN,IAAA,EAAM,QAAQ;EDSS;ECPvB,GAAA;AAAA;;;;;iBAOc,gBAAA,CACd,SAAA,EAAW,mBAAA,cACX,IAAA,GAAO,QAAA,CAAS,MAAA,qBACf,iBAAA;;UAkBc,SAAA;EACf,KAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;AAAA;ADe2B;AAAA,UCXZ,IAAA;EACf,IAAA,EAAM,aAAA;;EAEN,IAAA,EAAM,QAAA;EDWqC;ECT3C,GAAA;EDeuB;ECbvB,IAAA,GAAO,MAAA;EACP,KAAA,EAAO,SAAA;AAAA;ADeT;;;;AAAA,KCRY,QAAA,WAAmB,aAAA,IAAiB,CAAA;EAE1C,WAAA;EACA,OAAA;EACA,IAAA;EACA,EAAA;EACA,KAAA;EACA,QAAA;AAAA,IAEF,CAAA;EACI,WAAA;EAAqB,KAAA;EAAgB,QAAA;AAAA,IACvC,CAAA;EACI,MAAA;EAAgB,KAAA;EAAe,IAAA;EAAc,EAAA;EAAa,KAAA;AAAA,IAC5D,CAAA;EACI,OAAA;EAAiB,IAAA;EAAe,EAAA;EAAa,OAAA;AAAA,IAC/C,MAAA;;KAGE,SAAA,WACA,aAAA,eACG,QAAA;EAGb,IAAA,EAAM,CAAA;EACN,IAAA,EAAM,IAAA;EACN,IAAA,GAAO,QAAA,CAAS,CAAA;EAChB,KAAA,EAAO,SAAA;AAAA,KACJ,GAAA;EAAuB,GAAA,EAAK,GAAA;AAAA;EAAU,GAAA;AAAA;;KAGtC,UAAA,MAAgB,CAAA,SAAU,aAAA;EACzB,QAAA,EAAU,CAAA;EAAG,IAAA,UAAc,mBAAA,EAAqB,CAAA;AAAA,IAClD,CAAA,SAAU,kBAAA,GACR,CAAA;;KAID,SAAA,MAAe,CAAC;;KAGhB,cAAA,MAAoB,CAAA;EAAY,IAAA;AAAA,4BACT,CAAA,IAAK,CAAA,CAAE,CAAA,mBAAoB,CAAA,CAAE,CAAA,aAAc,SAAA,CAAU,CAAA;;KAI5E,OAAA,OAAc,aAAA,WAAwB,CAAC;AAAA,KAEvC,OAAA,WAAkB,cAAA,IAAkB,OAAA,OAAc,CAAA;AAAA,KAElD,SAAA,WAAoB,cAAA,OACvB,CAAA,SAAU,OAAA,CAAQ,CAAA;EAAO,IAAA,EAAM,CAAA;AAAA,IAAM,cAAA,CAAe,UAAA,CAAW,CAAA,SAAU,CAAA;AAAA,KAEtE,WAAA,MAAiB,CAAA,yBAA0B,CAAC;;ADnB1B;AAGvB;;KCsBK,gBAAA,WAA2B,cAAA,IAAkB,cAAA,CAChD,UAAA,CAAW,CAAA,SAAU,CAAA;EACjB,IAAA;AAAA,YACE,OAAA,CACJ,WAAA,CAAY,cAAA,CAAe,UAAA,CAAW,CAAA,SAAU,OAAA,CAAQ,CAAA,aAClD,cAAA,CAAe,UAAA,CAAW,CAAA,SAAU,CAAA;;;ADpBtB;AAQxB;;;KCsBY,UAAA,MACV,OAAA,CAAQ,CAAA,iBACJ,QAAA,CAAS,MAAA,qBACT,CAAA,0BAEE,CAAA,SAAU,cAAA,GACR,SAAA,CAAU,CAAA,EAAG,OAAA,CAAQ,CAAA,KAAM,gBAAA,CAAiB,CAAA,IAC5C,cAAA,CAAe,UAAA,CAAW,CAAA;;KAG/B,WAAA,SAAoB,CAAA;EAAY,IAAA;AAAA,IACjC,OAAA,CAAQ,CAAA;EAAK,IAAA,EAAM,CAAA;AAAA,KACnB,OAAA,CAAQ,CAAA;EAAK,IAAA;AAAA;;;;;KAML,eAAA,SAAwB,CAAA,WAC5B,OAAA,OACE,CAAA,EACN,WAAA,EAAa,WAAA,CAAY,CAAA,EAAG,CAAA,qBAAsB,CAAA,GAAI,WAAA,CAAY,CAAA,EAAG,CAAA;AAAA,KAIpE,YAAA,kDAA8D,CAAA;EACjE,QAAA,kBAA0B,iBAAA;EAC1B,IAAA,qBAAyB,QAAA;AAAA,IAEvB,SAAA,CAAU,CAAA,EAAG,IAAA,EAAM,GAAA,IACnB,IAAA;AAAA,KAEC,QAAA,WAAmB,cAAA,QAAsB,CAAA,oBAC1C,YAAA,CAAa,UAAA,CAAW,CAAA,SAAU,CAAA,iBAClC,CAAA;EAAY,IAAA,kBAAsB,OAAA,CAAQ,CAAA;AAAA,IACxC,YAAA,CAAa,UAAA,CAAW,CAAA,SAAU,CAAA,IAAK,CAAA,IACvC,YAAA,CAAa,UAAA,CAAW,CAAA,SAAU,CAAA;;;ADZ/B;AAGT;;KCgBY,MAAA,qBACV,OAAA,CAAQ,CAAA,iBACJ,IAAA,GACA,CAAA,SAAU,cAAA,GACR,QAAA,CAAS,CAAA,EAAG,CAAA,IACZ,CAAA,kBACE,SAAA,SAAkB,MAAA,kBAClB,YAAA,CAAa,UAAA,CAAW,CAAA;;;;;;KAOtB,YAAA,WAAuB,IAAA,IAAQ,aAAA,SAAsB,CAAA,WAC7D,QAAA,CAAS,MAAA,6BACT,cAAA;EAAiB,IAAA,EAAM,CAAA;AAAA,MACpB,CAAA;EAAY,GAAA;AAAA;EAAkC,IAAA,EAAM,CAAA;AAAA;;;;UC7M1C,gBAAA;EACf,OAAA,GAAU,MAAA;EACV,IAAA,GAAO,MAAA;EACP,KAAA,GAAQ,MAAA;AAAA;;UAIO,aAAA;EACf,IAAA;EAAA,CACC,GAAW;AAAA;AFIT;AAAA,UEAY,IAAA;EACf,KAAA,GAAQ,MAAA;EACR,IAAA,GAAO,MAAM;AAAA;;UAIE,YAAA;EACf,IAAA;EACA,KAAA,GAAQ,MAAA;EACR,IAAA,GAAO,MAAM;AAAA;;UAIE,gBAAA;EAAA,SACN,KAAA,EAAO,MAAA;EAAA,SACP,MAAA,EAAQ,aAAA;EAAA,SACR,KAAA;EAAA,SACA,SAAA,EAAW,gBAAA;EAAA,SACX,IAAA,EAAM,WAAA;EACf,IAAA,CAAK,IAAA,WAAe,YAAA;AAAA;;UAIL,YAAA;EAAA,SACN,KAAA,EAAO,IAAA;EAAA,SACP,MAAA,EAAQ,MAAM;AAAA;;UAIR,aAAA;EAAA,SACN,KAAA,EAAO,IAAA;EAAA,SACP,MAAA,EAAQ,MAAA;EAAA,SACR,KAAA,EAAO,MAAA;EAChB,KAAA,CAAM,OAAA,GAAU,eAAA,GAAkB,OAAA;EAClC,KAAA,CAAM,OAAA,GAAU,eAAA,GAAkB,OAAA;AAAA;AFqBP;AAAA,UEjBZ,eAAA;EFoBQ;EElBvB,MAAA,GAAS,WAAW;AAAA;AFkBuB;AAAA,UEd5B,kBAAA;EACf,UAAA,EAAY,aAAA;;;AFmBW;AAGzB;;;;;EEbE,QAAA,GACE,GAAA,UACA,OAAA,YACA,SAAA,GAAY,iBAAA,EACZ,MAAA,GAAS,WAAA,KACN,OAAA;EFUU;;;;;EEJf,QAAA,GAAW,iBAAA;AAAA;;UAIH,WAAA;EACR,IAAA;EACA,EAAA;EACA,IAAA,GAAO,MAAA;EACP,KAAA,GAAQ,aAAA;EACR,UAAA,GAAa,MAAA;EACb,aAAA,GAAgB,MAAA,SAAe,eAAA;AAAA;AAAA,UAGvB,eAAA;EACR,IAAA;EACA,KAAA,GAAQ,MAAA;EACR,IAAA,GAAO,MAAM;AAAA;;;;;;;;;;AFFuD;AAQtE;;;;;;;;;;;;AAAqF;AAErF;;iBE+BgB,WAAA,CACd,GAAA,EAAK,QAAA,EACL,GAAA,EAAK,kBAAA,EACL,OAAA,YACA,WAAA,WACA,iBAAA,GAAoB,iBAAA,GAAoB,aAAA;;AFpChB;AAG1B;;;;AAAuB;AAGvB;;iBE6bgB,gBAAA,CACd,QAAA,EAAU,kBAAA,cACV,GAAA,EAAK,kBAAA,GACJ,mBAAA;;iBAOa,oBAAA,CACd,QAAA,EAAU,kBAAA,cACV,GAAA,EAAK,kBAAA,GACJ,aAAA;;;;cChkBU,mBAAA;;cAGA,UAAA;;AHIU;AAYvB;;;UGTiB,eAAA;EACf,GAAA;EACA,QAAQ;AAAA;;;AHWL;AAGL;;;;iBGJgB,SAAA,CAAU,MAA4B,GAApB,eAAoB;;;;;;cAgBzC,iBAAA;;UAGI,kBAAA;EACf,IAAA,EAAM,KAAA;EACN,EAAA;EACA,IAAA,GAAO,MAAM;AAAA;;UAIE,eAAA;EACf,IAAA,EAAM,KAAK;EACX,GAAA;AAAA;;;;;;;;;;KCVU,SAAA,GACR,kBAAA;EACE,IAAA;EAAc,EAAA;AAAA,IAChB,eAAe;EACb,IAAA;EAAc,GAAA;AAAA;AJkCpB;;;;AAA6B;AAG7B;AAHA,KI1BY,iBAAA,WAA4B,aAAA,eAA4B,QAAA,CAAS,CAAA;EAC3E,IAAA,EAAM,CAAA;AAAA,IACJ,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;AJ2BuB;AAM7C;;;;AAN6C,KIpBjC,iBAAA,WAA4B,aAAA,eAA4B,QAAA,CAAS,CAAA;EACtE,IAAA,EAAM,CAAA;EAAG,EAAA;EAAY,GAAA;AAAA,IAAgB,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;EACvD,IAAA,EAAM,CAAA;EAAG,GAAA;EAAa,EAAA;AAAA,IAAe,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;;;;;;;;UAS7C,kBAAA,oCAAsD,eAAe;EAAA,SAC3E,IAAA,EAAM,CAAA;EAAA,SACN,IAAA;EAAA,SACA,OAAA;AAAA;;;;;;UAQM,kBAAA;EAAA,SACN,IAAA,EAAM,CAAC;EAAA,SACP,IAAA;EAAA,SACA,OAAA;AAAA;;;;;UAOM,kBAAA;EAAA,SACN,IAAA;EAAA,SACA,OAAO;AAAA;;;;;;;;;;;KAaN,YAAA,GACR,kBAAA,WACA,kBAAA,WACA,kBAAA;AJDiF;AAErF;;;;AAA0B;AAG1B;;AALqF,UIqBpE,cAAA,WAAyB,aAAA;EACxC,MAAA,WAAiB,QAAA,CAAS,CAAA,GAAI,KAAA,EAAO,iBAAA,CAAkB,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,kBAAA,CAAmB,CAAA;EACrF,MAAA,WAAiB,QAAA,CAAS,CAAA,GAAI,KAAA,EAAO,iBAAA,CAAkB,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,kBAAA,CAAmB,CAAA;EACrF,MAAA,CAAO,GAAA,EAAK,SAAA,GAAY,kBAAA;AAAA;;UAIT,YAAA;EACf,IAAA,EAAM,IAAA;EACN,IAAA,GAAO,MAAM;AAAA;;;AJfS;AAQxB;;;;KIuBY,aAAA,WAAwB,aAAA,0BAAuC,YAAA,8BACnD,GAAA,GAAM,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA;;;;;;;;;;;;;;;;;AJS1C;AAWb;iBICgB,SAAA,WAAoB,aAAA,mBAClC,OAAA,EAAS,cAAA,EACT,cAAA,EAAgB,kBAAA,EAChB,UAAA,EAAY,CAAA,EACZ,IAAA,UACA,KAAA,GAAQ,EAAA,EAAI,cAAA,CAAe,CAAA,EAAG,CAAA,MAAO,GAAA,GACpC,OAAA,CAAQ,GAAA,kBAAqB,YAAA,KAAiB,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,GAAA,IAAO,YAAA;;;AJ9J5E;;;;;;;;AAAA,KKaY,UAAA,QAAkB,IAAA,IAAQ,aAAA,CAAc,CAAA,IAClD,IAAA,CAAK,aAAA;EAAA,SACM,KAAA,EAAO,CAAA;EAChB,KAAA,CAAM,OAAA,GAAU,eAAA,GAAkB,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA;EACxD,KAAA,CAAM,OAAA,GAAU,eAAA,GAAkB,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA;AAAA;;;;;;;UAS3C,WAAA,SAAoB,MAAA;EAAA,SAC1B,KAAA,EAAO,IAAA;EAAA,SACP,MAAA,EAAQ,KAAA;AAAA;;UAIF,iBAAA;EAAA,SACN,KAAA,EAAO,MAAA;EAAA,SACP,MAAA,EAAQ,aAAA;EAAA,SACR,KAAA;EAAA,SACA,SAAA,EAAW,gBAAA;EAAA,SACX,IAAA,EAAM,MAAA;EACf,IAAA,CAAK,IAAA,WAAe,YAAA;AAAA;ALcO;AAAA,KKVjB,QAAA,WAAmB,aAAA,IAAiB,OAAA,OAAc,CAAA;;KAGlD,YAAA,WAAuB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,OAAA,OACnE,CAAA,CAAE,CAAA;;KAKL,YAAA,SAAqB,CAAA,eAAgB,CAAA,GAAI,CAAA,CAAE,CAAA,IAAK,MAAA;ALUrD;;;;AAAyB;AAGzB;;AAHA,KKDY,iBAAA,GAAoB,QAAQ,CAAC,MAAA;;;;;;;KAQpC,SAAA;EAAA,SAAuB,WAAW;AAAA;;KAGlC,cAAA,wBAAsC,CAAA,SAAU,iBAAA,GACjD,CAAA,eAAgB,CAAA,GACd,CAAA,CAAE,CAAA,YACF,SAAA,GACF,SAAA;;;;;ALTyC;KKgBxC,YAAA,cAA0B,GAAA,WAAc,SAAA,IAAa,GAAA,GAAM,IAAA,CAAK,GAAA,EAAK,OAAA,OAAc,GAAA,EAAK,GAAA;;;;;;KAOxF,WAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,OAAA,CAAQ,CAAA,CAAE,CAAA,eAAgB,CAAA,oBAAqB,QAAA,CAAS,CAAA;;KAGvD,MAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,CAAA,CAAE,CAAA,eAAgB,CAAA;;;;;KAMV,iBAAA,WACA,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,CAAA,CAAE,CAAA,eAAgB,CAAA;EAAa,SAAA;AAAA,IAC/B,CAAA,GACA,CAAA,CAAE,CAAA,eAAgB,CAAA,0CAA2C,QAAA,CAAS,CAAA,IACpE,CAAA,CAAE,KAAA;;KAIH,YAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,oBAExB,MAAA,CAAO,iBAAA,CAAkB,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,CAAA;ALtCvC;;;;;AAAA,KK6CY,gBAAA,+BAEF,MAAA,qBACN,kBAAA,CAAmB,KAAA,IAAS,WAAA,CAAY,KAAA;;;;;;;ALhDyC;KKyDzE,cAAA,WACA,aAAA,mBAEI,QAAA,CAAS,CAAA,wBAEf,MAAA,qBACN,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,KAAA,SAAc,CAAA,IAAK,WAAA,CAAY,KAAA;;KAGvD,QAAA,WACO,aAAA,mBAEI,QAAA,CAAS,CAAA,wBAEf,MAAA,qBACN,KAAA,SAAc,QAAA,CAAS,CAAA,IAAK,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,KAAA,EAAO,CAAA,EAAG,KAAA;;KAG1D,UAAA,+BAAyC,MAAA,qBAA2B,KAAA,kBACrE,gBAAA,CAAiB,KAAA,EAAO,KAAA;ALvE5B;;;;AAAuB;AAGvB;;;;AAAuB;AAOvB;;;AAVA,KKuFK,aAAA,WACO,aAAA,eAEA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,uBAGxB,CAAA,SAAU,GAAA,GACV,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,iBACX,UAAA,CAAW,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,CAAA,GAAI,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,KACvE,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,CAAA,WACvC,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,iBACX,UAAA,CAAW,UAAA,CAAW,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,KAChE,UAAA,CAAW,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;AL1FX;AAQxB;;;;AARwB,KKiGnB,SAAA,WAAoB,aAAA,eAA4B,QAAA,CAAS,CAAA,uBAAwB,YAAA,SAE5E,YAAA,CAAa,CAAA,EAAG,CAAA,IAAK,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,KAE5D,cAAA,CAAe,CAAA,EAAG,CAAA;;;;;;;;;KAWR,kBAAA,WACA,aAAA,eAEA,QAAA,CAAS,CAAA;EAInB,IAAA,EAAM,CAAA;EACN,EAAA;AAAA,IACE,YAAA,CAAa,YAAA,CAAa,CAAA,EAAG,CAAA,GAAI,cAAA,CAAe,CAAA,EAAG,CAAA,KACrD,SAAA,CAAU,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,IACxB,iBAAA;;;;;ALlFW;AAWb;;KKgFY,WAAA,WAAsB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,CAAA,CAAE,CAAA;EAC1E,UAAA;AAAA,IAEE,CAAA,gCACE,CAAA;AL/EN;;;;;;;AAAA,KK0FY,iBAAA,WACA,aAAA,YACA,QAAA,CAAS,CAAA,wBACE,WAAA,CAAY,CAAA,EAAG,CAAA,OAClC,OAAA,eACY,GAAA,GAAM,GAAA,CAAI,CAAA,sCAAuC,IAAA,GAAO,GAAA,CAAI,CAAA,aAC1E,YAAA,CAAa,CAAA,EAAG,CAAA;;;;;;KAQN,UAAA,WAAqB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,CAAA,CAAE,CAAA;EACzE,SAAA;IAAa,MAAA;EAAA;AAAA,IAEX,MAAA,oCACE,KAAA;;;;;KAQM,SAAA,WAAoB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,CAAA,CAAE,CAAA;EACxE,QAAA;AAAA,IAEE,CAAA,oCACE,KAAA;;;;;KAQM,SAAA,WAAoB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,CAAA,CAAE,CAAA;EACxE,UAAA;AAAA,IAEE,EAAA,kCACE,GAAA;;;;;;KASM,SAAA,WAAoB,aAAA,YAAyB,QAAA,CAAS,CAAA,MAAO,SAAA,CAAU,CAAA,EAAG,CAAA,6BAIlF,SAAA,CAAU,CAAA,EAAG,CAAA,aAAc,SAAA,CAAU,CAAA,EAAG,CAAA;AL/GQ;AAGpD;;;;AAHoD,KKsHxC,WAAA,WAAsB,aAAA,YAAyB,QAAA,CAAS,CAAA,MAClE,SAAA,CAAU,CAAA,EAAG,CAAA,6BAGX,OAAA,CAAQ,MAAA,CAAO,SAAA,CAAU,CAAA,EAAG,CAAA;;;;;;KAOpB,SAAA,WAAoB,aAAA,YACxB,QAAA,CAAS,CAAA,cAAe,UAAA,CAAW,CAAA,EAAG,CAAA;;;ALrHxC;;;KK6HM,UAAA,WAAqB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAC/D,OAAA,OAAc,CAAA,CAAE,CAAA,2BAChB,YAAA,CAAa,CAAA,EAAG,CAAA;AJrVpB;AAAA,KIwVY,cAAA,WAAyB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,UAAA,CAC3E,CAAA,CAAE,CAAA;;;;;;;;UAUa,cAAA,WACL,aAAA,YACA,QAAA,CAAS,CAAA,wBACE,WAAA,CAAY,CAAA,EAAG,CAAA,eAC1B,SAAA,CAAU,CAAA,IAAK,SAAA,CAAU,CAAA,cACxB,cAAA,CAAe,CAAA,EAAG,CAAA,gBAAiB,cAAA,CAAe,CAAA,EAAG,CAAA;;EAGhE,OAAA,GAAU,GAAA;;EAEV,MAAA,GAAS,WAAA,CAAY,CAAA,EAAG,CAAA;;EAExB,IAAA,GAAO,SAAA,CAAU,CAAA,EAAG,CAAA;;EAEpB,MAAA,GAAS,CAAA;;EAET,SAAA,YAAqB,UAAA,CAAW,CAAA,EAAG,CAAA;EJ1WjB;;;;EI+WlB,IAAA,GAAO,eAAA,CAAgB,EAAA,EAAI,cAAA,CAAe,CAAA,EAAG,CAAA;EJ/WxB;EIiXrB,MAAA,GAAS,WAAA;AAAA;;;;;;AJjXiD;UI0X3C,eAAA,WACL,aAAA,YACA,QAAA,CAAS,CAAA,wBACE,WAAA,CAAY,CAAA,EAAG,CAAA,eAC1B,SAAA,CAAU,CAAA,IAAK,SAAA,CAAU,CAAA;EJ3XH;EI8XhC,OAAA,GAAU,GAAA;EJ5XI;EI8Xd,MAAA,GAAS,CAAA;EJ/XH;EIiYN,MAAA,GAAS,WAAA;AAAA;;;AJ9XN;AAOL;;KI+XY,UAAA,WACA,aAAA,eAEA,QAAA,CAAS,CAAA,wBACE,WAAA,CAAY,CAAA,EAAG,CAAA,yBAElC,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,iBAAA,CAAkB,CAAA,EAAG,CAAA,EAAG,GAAA,GAAM,CAAA;;;;;UAM7C,iBAAA,MAAuB,QAAA,CAAS,MAAA;EAC/C,MAAA,GAAS,MAAA;EACT,IAAA;EACA,OAAA;EACA,MAAA,GAAS,MAAA;EACT,IAAA,GAAO,EAAA;EJ9YP;;;AACkB;AAkBpB;EIiYE,SAAA;;EAEA,MAAA,GAAS,WAAA;AAAA;;KAIN,UAAA,MAAgB,CAAA,yCAEjB,CAAA,+BAEE,CAAA,oBACE,MAAA,oBACA,CAAA,wCAEE,CAAA;;;AJ3YJ;AAIN;;KIgZK,aAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,CAAA,CAAE,CAAA,eAAgB,CAAA;EAAa,WAAA;AAAA,2BACR,CAAA,GAAI,UAAA,CAAW,CAAA,CAAE,CAAA,OACxC,MAAA;;;;;;;KAQC,YAAA,WACO,aAAA,eAEA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,oBAG1B,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,iBACT,UAAA,CACE,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,YAAa,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA,IAClE,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,KAExB,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,YAAa,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;;;;;;KAOnE,YAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,oBAG1B,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,iBACT,UAAA,CAAW,UAAA,CAAW,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,KAC3F,UAAA,CAAW,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;AJ1a3D;AAAA,KI6aY,kBAAA,WACA,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,iBAAkB,UAAA,CAAW,iBAAA,CAAkB,CAAA,EAAG,CAAA,EAAG,CAAA;;;;;;;;;;;;;UAcrD,oBAAA,WACL,aAAA,eAEA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA;EAE1B,GAAA,EAAK,mBAAA,CAAoB,CAAA,EAAG,CAAA,EAAG,CAAA,mCACT,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA,2BACzC,KAAA,GAAQ,iBAAA,CAAkB,eAAA,CAAgB,EAAA,EAAI,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA,QACpE,OAAA,CAAQ,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,EAAA;EAEvC,OAAA,EAAS,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,CAAA,mCACR,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA,2BACzC,KAAA,GAAQ,iBAAA,CAAkB,eAAA,CAAgB,EAAA,EAAI,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA,QACpE,OAAA,CAAQ,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,EAAA;EAE1C,GAAA,EAAK,gBAAA,CAAiB,CAAA,EAAG,CAAA,EAAG,CAAA,kBAAmB,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA;EAC9D,MAAA,EAAQ,gBAAA,CAAiB,CAAA,EAAG,CAAA,EAAG,CAAA,qBAAsB,YAAA,CAAa,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;EACpF,OAAA,EAAS,gBAAA,CAAiB,CAAA,EAAG,CAAA,EAAG,CAAA,sBAAuB,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA;EACtE,GAAA,EAAK,gBAAA,CAAiB,CAAA,EAAG,CAAA,EAAG,CAAA,SAAU,YAAA,CAAa,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA;;;;;;KAQlE,QAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,YAAA,CAAa,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;EAAQ,MAAA,GAAS,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA;;;;;KAMnE,cAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,CAAA,CAAE,CAAA,eAAgB,CAAA;EAAa,OAAA;AAAA;AJzdnB;AAGhB;;;AAHgB,KI+dX,mBAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,KACxB,CAAA,CAAE,CAAA,eAAgB,CAAA;EAAa,YAAA;AAAA;;KAG9B,YAAA;;KAGA,eAAA,WAA0B,YAAA,IAAgB,CAAC;;;;;;;;KAS3C,cAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,aAChB,YAAA,IACR,CAAA,CAAE,CAAA,eAAgB,CAAA;EAAa,SAAA;AAAA,IAC/B,CAAA,SAAU,OAAA,CAAQ,MAAA,CAAO,CAAA,cACvB,CAAA,CAAE,CAAA;;;;;;;;;KAcH,gBAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,aACT,YAAA,CAAa,CAAA,EAAG,CAAA,aAChB,YAAA,UAGV,CAAA,CAAE,CAAA,eAAgB,CAAA,yBAA0B,eAAA,CAAgB,CAAA,IACxD,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,kBACrB,IAAA,EAAM,IAAA,KAAS,OAAA,CAAQ,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA;;KAK9C,qBAAA,WAAgC,aAAA,eAA4B,QAAA,CAAS,CAAA,aAClE,YAAA,CAAa,CAAA,EAAG,CAAA,IAAK,oBAAA,CAAqB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AJ1gBb;AAAW;;;;AAAX,KIohBlC,UAAA,GAAa,MAAM;;;;;;;;KASnB,UAAA,0BACP,kBAAA,CAAmB,KAAA;EAAW,MAAA,GAAS,UAAA;AAAA,MACvC,eAAA,CAAgB,KAAA;EAAW,MAAA,GAAS,UAAA;AAAA,MACpC,kBAAA,CAAmB,aAAA,WAAwB,KAAA;EAAW,MAAA,GAAS,UAAA;AAAA;;KAG/D,YAAA,yBAAqC,KAAA,kBAAuB,UAAA,CAAW,KAAA;;;;;KAMvE,aAAA,WAAwB,aAAA,YAAyB,QAAA,CAAS,CAAA,aAAc,YAAA,CAAa,CAAA,EAAG,CAAA,KAC3F,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,0BACA,YAAA,CAAa,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,OACxC,YAAA,CAAa,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA;AJtiB9B;AAAA,KIyiBF,cAAA,WAAyB,aAAA,YAAyB,QAAA,CAAS,CAAA,aACxD,YAAA,CAAa,CAAA,EAAG,CAAA,KAAM,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;AJtiB7B;AAAA,KI0iBhB,SAAA,SAAkB,CAAA,eAAgB,CAAA,GACnC,CAAA,CAAE,CAAA;EACA,MAAA,EAAQ,MAAA;EAAyB,MAAA,EAAQ,MAAA;AAAA;;KAG1C,kBAAA,SAA2B,SAAA,CAAU,CAAA,EAAG,CAAA;EAAa,MAAA;AAAA,IAAoB,CAAA;;KAGzE,kBAAA,SAA2B,SAAA,CAAU,CAAA,EAAG,CAAA;EAAa,MAAA;AAAA,IAAoB,CAAA;;;;;KAMzE,QAAA,WAAmB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,CAAA,CAAE,CAAA;EAC5D,EAAA;AAAA,IACF,CAAA,CAAE,CAAA;EACE,EAAA;AAAA;EACA,EAAA;AAAA;;;;AJxjB0E;AAAA;KI+jBtE,WAAA,WAAsB,aAAA,eAA4B,QAAA,CAAS,CAAA,KAAM,kBAAA,CAC3E,CAAA,EACA,CAAA,IAEA,cAAA,CAAe,CAAA,EAAG,CAAA,IAClB,QAAA,CAAS,CAAA,EAAG,CAAA;;;;;KAMF,WAAA,WAAsB,aAAA,eAA4B,QAAA,CAAS,CAAA,KAAM,kBAAA,CAC3E,CAAA,EACA,CAAA,IAEA,cAAA,CAAe,CAAA,EAAG,CAAA;;UAGH,YAAA,WACL,aAAA,YACA,QAAA,CAAS,CAAA,wBACE,WAAA,CAAY,CAAA,EAAG,CAAA,oBAC1B,SAAA,CAAU,CAAA,IAAK,SAAA,CAAU,CAAA;EAEnC,OAAA,GAAU,GAAA;EJjlBA;EImlBV,MAAA,GAAS,CAAA;AAAA;;;;;;;;;;AJnlB6C;AAAA;;KIomB5C,cAAA,WAAyB,aAAA,eAA4B,MAAA,SAAe,kBAAA,eAE5E,MAAA,SAAe,kBAAA,YACb,CAAA,SAAU,QAAA,CAAS,CAAA,IACjB,YAAA,CAAa,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA,aAExC,MAAA,SAAe,kBAAA,YACb,CAAA,SAAU,QAAA,CAAS,CAAA,IACjB,YAAA,CAAa,kBAAA,CAAmB,CAAA,EAAG,CAAA,EAAG,CAAA;;KAO3C,SAAA,WAAoB,aAAA,YAAyB,QAAA,CAAS,CAAA,KAAM,CAAA,CAAE,CAAA;EACjE,OAAA;AAAA,IAEE,IAAA,GACA,MAAA;;KAGC,iBAAA,WACO,aAAA,YACA,QAAA,CAAS,CAAA,2BAEjB,OAAA,SAEM,OAAA,OAAc,SAAA,CAAU,CAAA,EAAG,CAAA,aAAc,SAAA,CAAU,CAAA,EAAG,CAAA,EAAG,CAAA;EAAa,KAAA,EAAO,KAAA;AAAA,IAC/E,CAAA,WAEJ,OAAA,OAAc,SAAA,CAAU,CAAA,EAAG,CAAA;;;;;;;;;;KAanB,kBAAA,GAAqB,MAAM;;KAGlC,cAAA,4CAA0D,CAAA,eAAgB,GAAA,GAC3E,CAAA,eAAgB,GAAA,CAAI,CAAA,IAClB,GAAA,CAAI,CAAA,EAAG,CAAA,IACP,MAAA,iBACF,MAAA;;;AJppBwE;AAAA;;KI2pBvE,eAAA,4BAA2C,CAAA,GAAI,CAAA,YAAa,MAAA;;KAG5D,gBAAA,6BAA6C,CAAA,GAAI,CAAC;;;;AJ5pBN;AAAA;;;;;;;KIyqB5C,YAAA,WAAuB,aAAA,iBAA8B,gBAAA,OAAuB,GAAA;EAC/E,MAAA;AAAA,IAEE,GAAA;EAAc,UAAA,mBAA6B,QAAA,CAAS,CAAA;AAAA,IAClD,GAAA;EAAc,iBAAA;AAAA,IACZ,OAAA,CAAQ,UAAA,CAAW,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,EAAA,MACpC,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,EAAA,KAC3B,OAAA,CAAQ,gBAAA,CAAiB,CAAA,KAC3B,GAAA;EAAc,MAAA;AAAA,IACZ,OAAA,CAAQ,MAAA,qBACR,OAAA;;;;;;;;;;;;KAaD,YAAA,WAAuB,aAAA,oBAAiC,gBAAA,OAAuB,GAAA;EAClF,KAAA;AAAA,UAEQ,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,IAC9B,GAAA;EAAc,KAAA;AAAA,IACZ,GAAA;EAAc,SAAA,mBAA4B,QAAA,CAAS,CAAA;AAAA,KAChD,KAAA,EAAO,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,EAAA,MAAQ,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,KACzD,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAO,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,KACxD,KAAA,cAAmB,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA;;;;;;;;AJ7rBH;KIusBnC,eAAA,WACA,aAAA,kBAGA,QAAA,CAAS,CAAA,+BAEb,kBAAA,YAEA,iBAAA,CAAkB,CAAA,EAAG,CAAA,EAAG,KAAA,IAAS,SAAA,CAAU,CAAA,EAAG,CAAA,EAAG,CAAA,UAAW,gBAAA,GAC9D,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,SAAA,CAAU,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,cAAA,CAAe,GAAA,EAAK,CAAA,EAAG,CAAA;;;;;;;;KAW3D,cAAA,WACA,aAAA,kBAGA,QAAA,CAAS,CAAA,SACb,kBAAA;EAAA,SAEG,IAAA,EAAM,CAAA;EAAA,SACN,EAAA;EACT,GAAA,4BAA+B,WAAA,CAAY,CAAA,EAAG,CAAA,0BAA2B,SAAA,CAAU,CAAA,QACjF,KAAA,GAAQ,eAAA,CAAgB,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,IAClC,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA;EACpC,MAAA,4BAAkC,WAAA,CAAY,CAAA,EAAG,CAAA,0BAA2B,SAAA,CAAU,CAAA,QACpF,KAAA,EAAO,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,GACzB,IAAA,GAAO,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,IAC9B,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA;EACpC,MAAA,IAAU,OAAA;EACV,GAAA,WAAc,YAAA,CAAa,CAAA,EAAG,CAAA,GAAI,IAAA,EAAM,CAAA,GAAI,oBAAA,CAAqB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,GJ3tBnD;EAAA,SI6tBd,OAAA,EAAS,eAAA,CAAgB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,cAAe,GAAA;AAAA,IACxD,qBAAA,CAAsB,CAAA,EAAG,CAAA,EAAG,CAAA;;UAGf,YAAA,WACL,aAAA,kBAGA,QAAA,CAAS,CAAA,SACb,kBAAA;EAEN,IAAA,4BAC6B,WAAA,CAAY,CAAA,EAAG,CAAA,0BAC1B,SAAA,CAAU,CAAA,yBACT,cAAA,CAAe,CAAA,EAAG,CAAA,2BAEnC,KAAA,GAAQ,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,EAAA,IACpC,OAAA,CAAQ,UAAA,CAAW,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,CAAA,gBAAiB,EAAA;EAC7E,GAAA,4BAA+B,WAAA,CAAY,CAAA,EAAG,CAAA,0BAA2B,SAAA,CAAU,CAAA,QACjF,EAAA,UACA,KAAA,GAAQ,eAAA,CAAgB,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,IAClC,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA;EACpC,MAAA,4BAAkC,WAAA,CAAY,CAAA,EAAG,CAAA,0BAA2B,SAAA,CAAU,CAAA,QACpF,KAAA,EAAO,WAAA,CAAY,CAAA,EAAG,CAAA,EAAG,CAAA,GACzB,IAAA,GAAO,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,IAC9B,OAAA,CAAQ,UAAA,CAAW,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA;EACpC,EAAA,CAAG,EAAA,WAAa,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA;EJ3vBvC;EAAA,SI6vBK,OAAA,EAAS,eAAA,CAAgB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,gBAAiB,GAAA;AAAA;;;;;;;;KAUlD,MAAA,WACA,aAAA,MACN,iBAAA,CAAkB,CAAA,OAClB,sBAAA,CAAuB,CAAA,SACrB,kBAAA,uCAGA,QAAA,CAAS,CAAA,IAAK,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA;EJ1wBV;AAAE;;;;;;;;;;;;;;;EI4xBrC,MAAA,YACE,KAAA,GAAQ,EAAA,EAAI,cAAA,CAAe,CAAA,EAAG,CAAA,MAAO,GAAA,GACpC,OAAA,CAAQ,GAAA,kBAAqB,YAAA,KAAiB,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,GAAA,IAAO,YAAA;EAAA,UAElE,UAAA,IAAc,CAAA;AAAA;AAAA,cAIZ,UAAA;;KAGF,WAAA,MAAiB,CAAA;EAAA,UAAsB,UAAU;AAAA,IACzD,CAAA;;AJnyBiB;AAMrB;;;KIqyBY,iBAAA,WAA4B,aAAA,YAChC,QAAA,CAAS,CAAA,IAAK,MAAA;;;;;;KAQV,sBAAA,WAAiC,aAAA,YACrC,QAAA,CAAS,CAAA;EAAO,MAAA,EAAQ,MAAA;EAAyB,MAAA,EAAQ,MAAA;AAAA;;;;UC59BhD,gBAAA;EACf,MAAA;EACA,GAAA;EACA,OAAA,EAAS,MAAA;EACT,IAAA;ENee;;;;EMVf,MAAA,GAAS,WAAW;AAAA;;UAIL,iBAAA;EACf,MAAA;EACA,OAAA,EAAS,MAAM;EACf,IAAA;AAAA;;;;;;KAQU,gBAAA,IAAoB,GAAA,EAAK,gBAAA,KAAqB,OAAA,CAAQ,iBAAA;;cAGrD,cAAA,EAAgB,gBAiB5B;;;;ANrCsB;AAYvB;;;KOWY,WAAA,GAAc,WAAW,CAAC,WAAA;;UAGrB,aAAA;EPXf;EOaA,OAAA;EPZG;EOcH,SAAA,GAAY,gBAAA;EPXG;EOaf,OAAA,SAAgB,WAAA,GAAc,OAAA,CAAQ,WAAA;;;;;;EAMtC,MAAA,GAAS,gBAAA;EP6BG;;;;;;;;;EOnBZ,QAAA,GAAW,gBAAA;AAAA;;;;;;;cAiUA,eAAA,EAAiB,WAAW;;AP9SR;AAIjC;;;;AAA6B;iBOgYb,YAAA,WACJ,aAAA,MACN,iBAAA,CAAkB,CAAA,OAClB,sBAAA,CAAuB,CAAA,SACrB,kBAAA,6BAEN,UAAA,EAAY,CAAA,EAAG,OAAA,EAAS,aAAA,GAAgB,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA;;;;;;AP7cxC;UQCN,SAAA;EACf,MAAA,GAAS,MAAA;EACT,IAAA;EACA,OAAA;EACA,MAAA,GAAS,MAAA;ERST;EQPA,SAAA;EACA,IAAA,GAAO,MAAA;ERQJ;EQNH,MAAA,GAAS,WAAA;AAAA;;UAIM,QAAA;EACf,IAAA;EACA,QAAA;EACA,KAAA,GAAQ,MAAA;EACR,IAAA,GAAO,MAAA;EACP,OAAA,GAAU,MAAA;AAAA;;UAIK,cAAA;EACf,OAAA;EACA,SAAA,EAAW,gBAAA;EACX,OAAA,SAAgB,WAAA,GAAc,OAAA,CAAQ,WAAA;AAAA;;UAIvB,cAAA;EACf,MAAA;ERMA;;;;EQDA,IAAA;ERqBY;;;;AAUmB;EQzB/B,IAAA;EACA,KAAA,GAAQ,SAAA;EACR,IAAA;ER2B2B;AAAA;AAG7B;;;EQxBE,WAAA;ERwB2C;AAM7C;;;;EQxBE,MAAA;ER2Be;;;;;EQrBf,GAAA;ERuBe;;;;;EQjBf,QAAA;ERiBA;;;;;EQXA,GAAA;ERW2C;EQT3C,MAAA,GAAS,WAAW;AAAA;;;;;;;iBAuDN,cAAA,CAAe,KAAgB,EAAT,SAAS;;;;;;;;iBA+CzB,OAAA,CACpB,GAAA,EAAK,cAAA,EACL,GAAA,EAAK,cAAA,GACJ,OAAA,CAAQ,QAAA;;;ARrLX;;;;AAAuB;AAAvB,USAiB,YAAA;EACf,IAAA;EACA,EAAA;EAAA,CACC,GAAA;AAAA;;;;;ATaE;AAGL;;KSNY,SAAA,IAAa,QAAA,EAAU,YAAY,EAAE,MAAA;;KAGrC,SAAA,GAAY,QAAQ,CAAC,MAAA;;;;;UAMhB,gBAAA;EACf,OAAA,EAAS,SAAA;EACT,SAAA,EAAW,SAAS;AAAA;;;;;;;KASV,gBAAA,GAAmB,gBAAA,GAAmB,SAAS;;UAG1C,iBAAA;EACf,QAAA,CAAS,QAAA,EAAU,YAAY;AAAA;;;;AT8BA;AAIjC;;iBSpBgB,gBAAA,CACd,MAAA,EAAQ,gBAAA,eACP,iBAAiB;;ATkBS;AAG7B;;;;AAA6C;AAM7C;;;;AAAyB;iBSWT,qBAAA,CAAsB,IAAA,oBAAwB,IAAA,IAAQ,QAAQ;;;;;;iBA6C9D,gBAAA,CAAiB,IAAA,EAAM,QAAA,EAAU,SAAA,EAAW,iBAAiB"}
|