@traffical/js-client 0.15.0 → 0.16.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 CHANGED
@@ -112,8 +112,14 @@ createTrafficalClient({
112
112
  baseUrl?: string, // Default: https://sdk.traffical.io
113
113
  refreshIntervalMs?: number, // Config refresh interval (default: 60000)
114
114
  localConfig?: ConfigBundle, // Offline fallback config
115
- eventBatchSize?: number, // Events per batch (default: 10)
116
- eventFlushIntervalMs?: number, // Flush interval (default: 30000)
115
+ batchSize?: number, // Events per batch (default: 10)
116
+ // (legacy alias: eventBatchSize)
117
+ flushIntervalMs?: number, // Flush interval (default: 30000)
118
+ // (legacy alias: eventFlushIntervalMs)
119
+ configTimeoutMs?: number, // Config-fetch timeout (default: 10000)
120
+ eventsTimeoutMs?: number, // Event-delivery timeout (default: 10000)
121
+ resolveTimeoutMs?: number, // Server-resolve timeout (default: 5000)
122
+ // (legacy fallback for all three: requestTimeoutMs)
117
123
  exposureSessionTtlMs?: number, // Dedup session TTL (default: 1800000)
118
124
  plugins?: TrafficalPlugin[], // Plugins to register
119
125
  });
package/dist/client.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * - Plugin system (P2)
10
10
  * - Auto stable ID for anonymous users
11
11
  */
12
- import { type ConfigBundle, type Context, type DecisionResult, type ParameterValue, type AssignmentLogger, type TrackableEventLogger, type TrackEventMap, type OnSchemaWarnings } from "@traffical/core";
12
+ import { type ConfigBundle, type Context, type DecisionResult, type ParameterValue, type DecideOptions, type GetParamsOptions, type TrackEventOptions, type AssignmentLogger, type TrackableEventLogger, type TrackEventMap, type OnSchemaWarnings } from "@traffical/core";
13
13
  import { type ErrorBoundaryOptions } from "./error-boundary.js";
14
14
  import { type StorageProvider } from "./storage.js";
15
15
  import { type TrafficalPlugin } from "./plugins/index.js";
@@ -36,13 +36,49 @@ export interface TrafficalClientOptions {
36
36
  * On timeout the request is aborted and treated exactly like a network
37
37
  * failure: config fetches fall back to the cached/local config, and event
38
38
  * batches are persisted for retry.
39
+ *
40
+ * @deprecated Use the per-path options `configTimeoutMs`, `eventsTimeoutMs`,
41
+ * and `resolveTimeoutMs` instead. `requestTimeoutMs` is still honored as the
42
+ * legacy fallback for all three when the specific option is not provided.
39
43
  */
40
44
  requestTimeoutMs?: number;
45
+ /**
46
+ * Timeout in milliseconds for the config-bundle fetch (default: 10000).
47
+ * Falls back to `requestTimeoutMs` when not set.
48
+ */
49
+ configTimeoutMs?: number;
50
+ /**
51
+ * Timeout in milliseconds for event-delivery POSTs (default: 10000).
52
+ * Falls back to `requestTimeoutMs` when not set.
53
+ */
54
+ eventsTimeoutMs?: number;
55
+ /**
56
+ * Timeout in milliseconds for server-resolve requests (POST /v1/resolve,
57
+ * default: 5000). Falls back to `requestTimeoutMs` when not set.
58
+ */
59
+ resolveTimeoutMs?: number;
41
60
  /** Error boundary options */
42
61
  errorBoundary?: ErrorBoundaryOptions;
43
62
  /** Event batching options */
63
+ /**
64
+ * Events per delivery batch (default: 10).
65
+ * @deprecated Use the canonical `batchSize` instead. `eventBatchSize` still works.
66
+ */
44
67
  eventBatchSize?: number;
68
+ /**
69
+ * Event flush cadence in milliseconds (default: 30000).
70
+ * @deprecated Use the canonical `flushIntervalMs` instead. `eventFlushIntervalMs` still works.
71
+ */
45
72
  eventFlushIntervalMs?: number;
73
+ /** Events per delivery batch (default: 10). Canonical alias of `eventBatchSize`. */
74
+ batchSize?: number;
75
+ /** Event flush cadence in milliseconds (default: 30000). Canonical alias of `eventFlushIntervalMs`. */
76
+ flushIntervalMs?: number;
77
+ /**
78
+ * Maximum number of events buffered in memory before the oldest is dropped
79
+ * (default: 1000). Bounds memory so the queue never grows without limit.
80
+ */
81
+ eventMaxQueueSize?: number;
46
82
  /** Exposure deduplication session TTL */
47
83
  exposureSessionTtlMs?: number;
48
84
  /**
@@ -150,6 +186,11 @@ export declare class TrafficalClient<TEvents extends TrackEventMap = TrackEventM
150
186
  private _identityListeners;
151
187
  private _overrideListeners;
152
188
  private _overrides;
189
+ /** Serialized context of the last server-mode resolve (per-call throttle). */
190
+ private _lastResolveContextKey;
191
+ /** Resolves once the first config load attempt completes (fail-open). */
192
+ private _readyResolve;
193
+ private readonly _readyPromise;
153
194
  constructor(options: TrafficalClientOptions);
154
195
  /**
155
196
  * Initializes the client by fetching the config bundle.
@@ -159,8 +200,22 @@ export declare class TrafficalClient<TEvents extends TrackEventMap = TrackEventM
159
200
  * Check if the client is initialized.
160
201
  */
161
202
  get isInitialized(): boolean;
203
+ /**
204
+ * Resolves once the first usable config has loaded (or the SDK has failed
205
+ * open on an unavailable/malformed bundle). Never rejects.
206
+ */
207
+ waitForReady(): Promise<void>;
208
+ /**
209
+ * Single teardown verb (spec 0.7.0 design contract). Awaits a final event
210
+ * flush before returning; on page unload it falls back to sendBeacon so the
211
+ * final batch still ships. Prefer this over destroy()/destroySync().
212
+ */
213
+ close(): Promise<void>;
162
214
  /**
163
215
  * Stops background refresh and cleans up resources.
216
+ *
217
+ * @deprecated Use {@link close} instead — the canonical single teardown verb
218
+ * that awaits the final flush.
164
219
  */
165
220
  destroy(): void;
166
221
  /**
@@ -171,20 +226,29 @@ export declare class TrafficalClient<TEvents extends TrackEventMap = TrackEventM
171
226
  * Gets the current config bundle version.
172
227
  */
173
228
  getConfigVersion(): string | null;
229
+ /**
230
+ * Returns the context field the bundle buckets on (the project's unit key),
231
+ * or null before the bundle has loaded. Adapters (e.g. an OpenFeature
232
+ * provider) map their targeting key onto this field.
233
+ */
234
+ getUnitKeyField(): string | null;
235
+ /**
236
+ * Returns the id of the layer a parameter belongs to, or null if the
237
+ * parameter is unknown / the bundle is not yet loaded.
238
+ */
239
+ getParameterLayerId(key: string): string | null;
174
240
  /**
175
241
  * Resolves parameters with defaults as fallback.
176
242
  */
177
- getParams<T extends Record<string, ParameterValue>>(options: {
178
- context: Context;
179
- defaults: T;
180
- }): T;
243
+ getParams<T extends Record<string, ParameterValue>>(context: Context, defaults: T): T;
244
+ /** @deprecated Pass `(context, defaults)` positionally (spec 0.7.0 contract). */
245
+ getParams<T extends Record<string, ParameterValue>>(options: GetParamsOptions<T>): T;
181
246
  /**
182
247
  * Makes a decision with full metadata for tracking.
183
248
  */
184
- decide<T extends Record<string, ParameterValue>>(options: {
185
- context: Context;
186
- defaults: T;
187
- }): DecisionResult;
249
+ decide<T extends Record<string, ParameterValue>>(context: Context, defaults: T): DecisionResult;
250
+ /** @deprecated Pass `(context, defaults)` positionally (spec 0.7.0 contract). */
251
+ decide<T extends Record<string, ParameterValue>>(options: DecideOptions<T>): DecisionResult;
188
252
  /**
189
253
  * Tracks an exposure event.
190
254
  * Automatically deduplicates exposures for the same user/variant.
@@ -211,10 +275,7 @@ export declare class TrafficalClient<TEvents extends TrackEventMap = TrackEventM
211
275
  * // Track with explicit decision attribution
212
276
  * client.track('checkout_complete', { value: 1 }, { decisionId: decision.decisionId });
213
277
  */
214
- track<E extends Extract<keyof TEvents, string>>(eventName: E, properties?: TEvents[E], options?: {
215
- decisionId?: string;
216
- unitKey?: string;
217
- }): void;
278
+ track<E extends Extract<keyof TEvents, string>>(eventName: E, properties?: TEvents[E], options?: TrackEventOptions): void;
218
279
  /**
219
280
  * Flush pending events immediately.
220
281
  */
@@ -287,6 +348,14 @@ export declare class TrafficalClient<TEvents extends TrackEventMap = TrackEventM
287
348
  private _enrichContext;
288
349
  private _fetchConfig;
289
350
  private _startBackgroundRefresh;
351
+ /**
352
+ * Server mode: threads the per-call context into a background /v1/resolve so
353
+ * the cached snapshot converges to the contexts actually being evaluated.
354
+ * Throttled by serialized context so repeated identical contexts don't hammer
355
+ * the edge. decide()/getParams() are synchronous and cannot await this; the
356
+ * current call degrades to the last-good snapshot.
357
+ */
358
+ private _maybeResolveForContext;
290
359
  private _fetchServerResolve;
291
360
  /**
292
361
  * Finds edge-mode policies in the current bundle.
@@ -298,6 +367,7 @@ export declare class TrafficalClient<TEvents extends TrackEventMap = TrackEventM
298
367
  */
299
368
  private _prefetchEdgeResults;
300
369
  private _logOfflineWarning;
370
+ private _logMalformedBundleWarning;
301
371
  /**
302
372
  * Caches a decision for attribution lookup when track() is called.
303
373
  * Maintains a bounded cache to prevent memory leaks.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,cAAc,EAQnB,KAAK,gBAAgB,EAGrB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAQtB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI/E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAiB,KAAK,eAAe,EAAgC,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAmBxF,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kCAAkC;IAClC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,sDAAsD;IACtD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAC5C;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAmBD,qBAAa,eAAe,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMvB;IAEF,OAAO,CAAC,MAAM,CASZ;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA8B;IACrE,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyD;IAChG,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,kBAAkB,CAAkE;IAC5F,OAAO,CAAC,UAAU,CAAsC;gBAE5C,OAAO,EAAE,sBAAsB;IA8H3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,OAAO,IAAI,IAAI;IAoCf;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,CAAC;IAiClG;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,cAAc;IAmE5G;;;;;;;OAOG;IACH,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAkD7C;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAC5C,SAAS,EAAE,CAAC,EACZ,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,IAAI;IAuCP;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAsBlC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAQpD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAO3D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAWtF;;;;;OAKG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAK/D;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAQ9C,OAAO,CAAC,wBAAwB;IAWhC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,yBAAyB;IAyCjC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,cAAc;YAeR,YAAY;IAyD1B,OAAO,CAAC,uBAAuB;YAgBjB,mBAAmB;IAejC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;YACW,oBAAoB;IAqDlC,OAAO,CAAC,kBAAkB;IAU1B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAyBpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;CA6B1B;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAI7J;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAElJ"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAItB,KAAK,gBAAgB,EAGrB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAUtB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI/E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAiB,KAAK,eAAe,EAAgC,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAsExF,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,6BAA6B;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kCAAkC;IAClC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,sDAAsD;IACtD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAC5C;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAoBD,qBAAa,eAAe,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMvB;IAEF,OAAO,CAAC,MAAM,CAUZ;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA8B;IACrE,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyD;IAChG,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,kBAAkB,CAAkE;IAC5F,OAAO,CAAC,UAAU,CAAsC;IACxD,8EAA8E;IAC9E,OAAO,CAAC,sBAAsB,CAAuB;IACrD,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE3B;gBAES,OAAO,EAAE,sBAAsB;IAuI3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAoCf;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;;;OAIG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;;OAGG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ/C;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IACrF,iFAAiF;IACjF,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAuCpF;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc;IAC/F,iFAAiF;IACjF,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc;IA8E3F;;;;;;;OAOG;IACH,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAiE7C;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAC5C,SAAS,EAAE,CAAC,EACZ,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI;IA+CP;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAsBlC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAQpD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAO3D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAWtF;;;;;OAKG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAK/D;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAQ9C,OAAO,CAAC,wBAAwB;IAWhC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,yBAAyB;IAkDjC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,cAAc;YAeR,YAAY;IAqE1B,OAAO,CAAC,uBAAuB;IAyB/B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;YAajB,mBAAmB;IAejC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;YACW,oBAAoB;IAqDlC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,0BAA0B;IAUlC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAyBpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;CA6B1B;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAI7J;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAElJ"}