@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.
@@ -64,7 +64,7 @@ interface RelationDescriptor {
64
64
  */
65
65
  countable?: CountableDescriptor;
66
66
  /**
67
- * The paginator kind this relation's OWN related/relationship endpoints advertise
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?: PaginatorKind;
75
+ paginator?: PaginatorDescriptor;
76
76
  }
77
- type PaginatorKind = 'page' | 'offset' | 'cursor' | 'none';
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: PaginatorKind;
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's kind so the re-materialised page reports the same `$page.kind`
256
- * (a divergent per-relation paginator, or an EMPTY next page that carries no member to sniff).
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?: PaginatorKind) => Promise<unknown>;
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.kind` for a related/relationship read,
300
- * where the paginator is the RELATION's (which may diverge from the related type's collection —
301
- * D6a) and an empty page carries no member to sniff a type from. `primaryType` is preferred for a
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 kind. The relation's OWN related/relationship endpoint may
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
- $next(): Promise<Collection<T> | undefined>;
491
- $prev(): Promise<Collection<T> | undefined>;
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>>> : Identifier<RelatedType<D, T, R>> | null | undefined;
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, plus the loose
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
- page?: Record<string, unknown>;
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
- /** A loose read query (filter/sort/include/fields/page/withCount) for the relationship/related endpoints. */
706
- interface RelationReadQuery {
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?: Record<string, unknown>;
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>> = IsMany<D, T, R> extends true ? Collection<Hydrated<D, A, RelatedType<D, T, R>, unknown, PivotFieldsOf<D, T, R>>> : Hydrated<D, A, RelatedType<D, T, R>, unknown, PivotFieldsOf<D, T, R>> | null;
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>> = IsMany<D, T, R> extends true ? Collection<Identifier<RelatedType<D, T, R>, PivotFieldsOf<D, T, R>>> : Identifier<RelatedType<D, T, R>, PivotFieldsOf<D, T, R>> | null;
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 executes the (absolute) link and re-materialises.
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
- /** A path relative to `baseUrl`, or an absolute `http(s)://` URL (e.g. a page link). */
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 (verbatim when already absolute — for page links —
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 { SortQuery as $, DefaultActionTypes as A, RelationView as At, IncludePath as B, AtomicDescriptor as Bt, fetchTransport as C, mediaType as Ct, Collection as D, EdgeEnvelope as Dt, Client as E, Edge as Et, FieldsMap as F, ActionDescriptor as Ft, ReadResult as G, RelationDescriptor as Gt, LinkageRef as H, ClientIdPolicy as Ht, FilterKey as I, ActionInput as It, RelationshipAccessor as J, RelationName as K, RelationMutations as Kt, FilterQuery as L, ActionOutput as Lt, DefaultWriteAttributes as M, ResourceLinks as Mt, EdgeMembers as N, materialise as Nt, CountToken as O, MaterialiseContext as Ot, FieldSelectionMap as P, relatedPaginatorKind as Pt, SingleReadQuery as Q, HydratedMember as R, ActionScope as Rt, TransportResponse as S, ResourceIdentifier as St, AtomicResultOf as T, DocumentEnvelope as Tt, MemberName as U, CountableDescriptor as Ut, IncludedRelations as V, Cardinality as Vt, PivotInput as W, PaginatorKind as Wt, ResourceHandle as X, ResourceAccessors as Y, ResourceObjectView as Z, HANDLE_RESERVED as _, ATOMIC_EXT as _t, Validator as a, WriteOptions as at, JsonApiTransport as b, LocalIdentifier as bt, resolveValidator as c, AtomicDeleteHandle as ct, JsonApiContext as d, AtomicRef as dt, SortToken as et, JsonApiRequest as f, AtomicResult as ft, ClientOptions as g, runAtomic as gt, serializeQuery as h, AtomicUpdateInput as ht, ValidationOption as i, UpdateInput as it, DefaultAttributes as j, ResourceEnvelope as jt, CreateInput as k, Page as kt, validateDocument as l, AtomicHandle as lt, execute as m, AtomicUpdateHandle as mt, SchemaMap as n, TypeName as nt, WireResource as o, AtomicCreateHandle as ot, ReadQuery as p, AtomicResults as pt, RelationReadQuery as q, ResourceDescriptor as qt, ValidationConfig as r, TypedReadQuery as rt, assertJsonApiDocument as s, AtomicCreateInput as st, ResolvedValidator as t, TypeAccessor as tt, Document as u, AtomicRecorder as ut, HeadersInit as v, ATOMIC_MEDIA_TYPE as vt, ActionsAccessor as w, ArrayEnvelope as wt, TransportRequest as x, MediaTypeParams as xt, createClient as y, JSON_API_MEDIA_TYPE as yt, IdentifierMember as z, ApiDescriptor as zt };
1254
- //# sourceMappingURL=validate-BmyPbJCK.d.mts.map
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.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-DgCUbzgT.d.mts","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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haddowg/json-api-client",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Generic, framework-agnostic runtime for a typesafe JSON:API client. Parameterised by a generated descriptor.",
5
5
  "license": "MIT",
6
6
  "author": "Gregory Haddow (https://github.com/haddowg)",