effect-dynamodb 1.22.0 → 1.24.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.
Files changed (68) hide show
  1. package/dist/Aggregate.d.ts +9 -4
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +644 -219
  4. package/dist/Aggregate.js.map +1 -1
  5. package/dist/Batch.d.ts +7 -0
  6. package/dist/Batch.d.ts.map +1 -1
  7. package/dist/Batch.js +132 -7
  8. package/dist/Batch.js.map +1 -1
  9. package/dist/Collection.d.ts.map +1 -1
  10. package/dist/Collection.js +13 -31
  11. package/dist/Collection.js.map +1 -1
  12. package/dist/DynamoClient.d.ts +40 -3
  13. package/dist/DynamoClient.d.ts.map +1 -1
  14. package/dist/DynamoClient.js +70 -19
  15. package/dist/DynamoClient.js.map +1 -1
  16. package/dist/Entity.d.ts +138 -55
  17. package/dist/Entity.d.ts.map +1 -1
  18. package/dist/Entity.js +3061 -626
  19. package/dist/Entity.js.map +1 -1
  20. package/dist/EventStore.d.ts +729 -53
  21. package/dist/EventStore.d.ts.map +1 -1
  22. package/dist/EventStore.js +1216 -231
  23. package/dist/EventStore.js.map +1 -1
  24. package/dist/Query.d.ts +75 -3
  25. package/dist/Query.d.ts.map +1 -1
  26. package/dist/Query.js +228 -30
  27. package/dist/Query.js.map +1 -1
  28. package/dist/Transaction.d.ts +13 -2
  29. package/dist/Transaction.d.ts.map +1 -1
  30. package/dist/Transaction.js +48 -38
  31. package/dist/Transaction.js.map +1 -1
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal/BoundCrud.d.ts +31 -20
  37. package/dist/internal/BoundCrud.d.ts.map +1 -1
  38. package/dist/internal/BoundCrud.js +1 -1
  39. package/dist/internal/BoundCrud.js.map +1 -1
  40. package/dist/internal/BoundQuery.d.ts +47 -2
  41. package/dist/internal/BoundQuery.d.ts.map +1 -1
  42. package/dist/internal/BoundQuery.js +182 -18
  43. package/dist/internal/BoundQuery.js.map +1 -1
  44. package/dist/internal/EntityCombinators.d.ts +32 -10
  45. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  46. package/dist/internal/EntityCombinators.js +16 -7
  47. package/dist/internal/EntityCombinators.js.map +1 -1
  48. package/dist/internal/EntityOps.d.ts +44 -10
  49. package/dist/internal/EntityOps.d.ts.map +1 -1
  50. package/dist/internal/EntityOps.js +48 -5
  51. package/dist/internal/EntityOps.js.map +1 -1
  52. package/dist/internal/Expr.d.ts +23 -0
  53. package/dist/internal/Expr.d.ts.map +1 -1
  54. package/dist/internal/Expr.js +84 -9
  55. package/dist/internal/Expr.js.map +1 -1
  56. package/dist/internal/ItemSize.d.ts +38 -0
  57. package/dist/internal/ItemSize.d.ts.map +1 -0
  58. package/dist/internal/ItemSize.js +62 -0
  59. package/dist/internal/ItemSize.js.map +1 -0
  60. package/dist/internal/TransactWriteOps.d.ts +112 -19
  61. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  62. package/dist/internal/TransactWriteOps.js +210 -33
  63. package/dist/internal/TransactWriteOps.js.map +1 -1
  64. package/dist/internal/TransactableOps.d.ts +33 -14
  65. package/dist/internal/TransactableOps.d.ts.map +1 -1
  66. package/dist/internal/TransactableOps.js +46 -19
  67. package/dist/internal/TransactableOps.js.map +1 -1
  68. package/package.json +2 -2
package/dist/Query.js CHANGED
@@ -7,10 +7,11 @@
7
7
  *
8
8
  * Implements Pipeable for ergonomic composition.
9
9
  */
10
+ import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
10
11
  import * as Projection from "@effect-dynamodb/schema/Projection.js";
11
12
  import { Effect, Function, Option, Pipeable, Stream } from "effect";
12
13
  import { DynamoClient } from "./DynamoClient.js";
13
- import { compileExpr } from "./internal/Expr.js";
14
+ import { compileExpr, ExprTag, emptyPartProblem, isEmptyExpr } from "./internal/Expr.js";
14
15
  import { compilePath } from "./internal/PathBuilder.js";
15
16
  import { fromAttributeMap, toAttributeValue } from "./Marshaller.js";
16
17
  /** @internal Dedupe + drop absent entries from a caller-supplied key field list. */
@@ -42,6 +43,9 @@ class QueryImpl {
42
43
  // Constructor (internal — used by Entity and Collection)
43
44
  // ---------------------------------------------------------------------------
44
45
  export const make = (config) => new QueryImpl({
46
+ liveRows: config.liveRows,
47
+ prepare: config.prepare,
48
+ keepRow: undefined,
45
49
  tableName: config.tableName,
46
50
  indexName: config.indexName,
47
51
  pkField: config.pkField,
@@ -56,6 +60,7 @@ export const make = (config) => new QueryImpl({
56
60
  maxPagesValue: undefined,
57
61
  scanForward: true,
58
62
  consistentRead: false,
63
+ globalIndex: config.globalIndex ?? false,
59
64
  ignoreOwnershipFlag: false,
60
65
  exclusiveStartKey: undefined,
61
66
  isScan: false,
@@ -71,6 +76,9 @@ export const make = (config) => new QueryImpl({
71
76
  * No key condition — only filter expressions and entity type filter.
72
77
  */
73
78
  export const makeScan = (config) => new QueryImpl({
79
+ liveRows: config.liveRows,
80
+ prepare: config.prepare,
81
+ keepRow: undefined,
74
82
  tableName: config.tableName,
75
83
  indexName: config.indexName,
76
84
  pkField: "",
@@ -85,6 +93,7 @@ export const makeScan = (config) => new QueryImpl({
85
93
  maxPagesValue: undefined,
86
94
  scanForward: true,
87
95
  consistentRead: false,
96
+ globalIndex: config.globalIndex ?? false,
88
97
  ignoreOwnershipFlag: false,
89
98
  exclusiveStartKey: undefined,
90
99
  isScan: true,
@@ -151,7 +160,9 @@ export const reverse = (self) => new QueryImpl({
151
160
  scanForward: false,
152
161
  });
153
162
  /**
154
- * Enable consistent reads for this query (or scan).
163
+ * Enable consistent reads for this query (or scan). Refused with a
164
+ * `ValidationError` when it runs on a global secondary index, which DynamoDB
165
+ * reads only eventually consistently.
155
166
  */
156
167
  export const consistentRead = Function.dual((args) => isQuery(args[0]), (self) => new QueryImpl({
157
168
  ...self._state,
@@ -201,16 +212,52 @@ export const select = Function.dual(2, (self, attributes) => {
201
212
  decoder: (raw) => Effect.succeed(raw),
202
213
  });
203
214
  });
215
+ /**
216
+ * @internal A projection of stored attribute paths, decoded by `decode`: what
217
+ * `select` becomes when the names a caller asks for are not the names stored
218
+ * (#133). Always numbered placeholders (`#proj0`), whatever characters the
219
+ * stored names hold.
220
+ */
221
+ export const selectProjected = (self, storedPaths, decode) => {
222
+ if (self._state.predicates.length > 0) {
223
+ throw new Error(rejectPredicateWithProjection("select() after filterBy()"));
224
+ }
225
+ return new QueryImpl({
226
+ ...self._state,
227
+ projection: undefined,
228
+ projectionPaths: storedPaths,
229
+ decoder: (raw) => Effect.succeed(decode(raw)),
230
+ });
231
+ };
232
+ /**
233
+ * @internal `select` / `selectPaths` of DOMAIN field names on an entity that
234
+ * stores some under other names (`DynamoModel.configure(..., { field })`): the
235
+ * projection names the stored attributes, and each item is handed back keyed
236
+ * by the domain names asked for (#133).
237
+ */
238
+ export const selectRenamed = (self, paths, resolveDbName) => {
239
+ const heads = [...new Set(paths.map((path) => String(path[0])))];
240
+ return selectProjected(self, paths.map((path) => [resolveDbName(String(path[0])), ...path.slice(1)]), (raw) => {
241
+ const item = {};
242
+ for (const head of heads) {
243
+ const value = raw[resolveDbName(head)];
244
+ if (value !== undefined)
245
+ item[head] = value;
246
+ }
247
+ return item;
248
+ });
249
+ };
204
250
  /**
205
251
  * Add an Expr-based filter expression to the query.
206
252
  * Multiple filterExpr calls are ANDed together.
207
253
  */
208
254
  export const filterExpr = Function.dual(2, (self, expr) => {
209
- // An empty shorthand (`.filter({})`) parses to an empty `and`, which
210
- // compiles to the empty string — and `FilterExpression: ""` is rejected by
211
- // DynamoDB. A predicate over no attributes is a no-op, so drop it here
212
- // rather than emitting an unusable request.
213
- if ((expr._tag === "and" || expr._tag === "or") && expr.exprs.length === 0)
255
+ // A filter that asserts nothing (`.filter({})`, `and()`) is no filter: it is
256
+ // dropped here, never sent as `FilterExpression: ""`, which DynamoDB
257
+ // rejects (#133). An empty part anywhere else — under `or` or `not`, or an
258
+ // `or()` with no parts — is kept, and refused when the query runs
259
+ // (`emptyPartProblem`).
260
+ if (isEmptyExpr(expr))
214
261
  return self;
215
262
  return new QueryImpl({
216
263
  ...self._state,
@@ -308,10 +355,18 @@ const buildFilterClauses = (state) => {
308
355
  values[`:et${i}`] = toAttributeValue(et);
309
356
  });
310
357
  }
311
- // Expr-based filters (compiled from Entity.filter() callback/shorthand API)
312
- for (const expr of state.exprFilters) {
313
- const compiled = compileExpr(expr);
314
- filterClauses.push(compiled.expression);
358
+ // Expr-based filters (compiled from Entity.filter() callback/shorthand API).
359
+ // Compiled as ONE expression: each compile numbers its placeholders from
360
+ // zero, so two compiled apart both wrote `#e0` and the second overwrote the
361
+ // first's name (#133).
362
+ if (state.exprFilters.length > 0) {
363
+ const compiled = compileExpr(state.exprFilters.length === 1
364
+ ? state.exprFilters[0]
365
+ : { [ExprTag]: ExprTag, _tag: "and", exprs: state.exprFilters });
366
+ // Parenthesised beside the ownership clause: a top-level `OR` would
367
+ // otherwise bind looser than the `AND` and admit other entities' rows
368
+ // (`#eddE IN (:et0) AND a OR b`).
369
+ filterClauses.push(filterClauses.length > 0 ? `(${compiled.expression})` : compiled.expression);
315
370
  Object.assign(names, compiled.names);
316
371
  Object.assign(values, compiled.values);
317
372
  }
@@ -419,6 +474,8 @@ const buildDynamoCommand = (state, tableName, overrides, extraProjectionFields =
419
474
  // ---------------------------------------------------------------------------
420
475
  // Internal: limit / pageSize execution helpers
421
476
  // ---------------------------------------------------------------------------
477
+ /** The largest `Limit` a growing request asks for: DynamoDB stops at 1 MB anyway. */
478
+ const MAX_GROWN_LIMIT = 100_000;
422
479
  /**
423
480
  * @internal DynamoDB `Limit` for the next request.
424
481
  *
@@ -432,15 +489,93 @@ const buildDynamoCommand = (state, tableName, overrides, extraProjectionFields =
432
489
  * `pageSize` — or, unset, a natural (1 MB) page.
433
490
  * - A client-side predicate ({@link filterBy}) rejects rows even later, after
434
491
  * decode, so it disqualifies the budget for exactly the same reason.
492
+ * - Rows dropped as history ({@link QueryState.liveRows}, a prepared `keep`)
493
+ * are not: they can't be skipped server-side, and a run of them (an item's
494
+ * versions, its tombstones) can far outnumber the items. The first request
495
+ * asks for `limit`, and each later one twice the last — so a run of `n`
496
+ * history rows costs about `log2(n / limit)` requests, not `n / limit` — and
497
+ * the surplus past `limit` is discarded, the cursor rebuilt from the last
498
+ * item returned (#133). `pageSize`, when set, is used as is.
499
+ *
500
+ * `page` is the request's 1-based number within the terminal.
435
501
  */
436
- const computeRequestLimit = (state, remaining) => {
502
+ const computeRequestLimit = (state, remaining, page = 1) => {
437
503
  const pageSize = state.pageSizeValue;
438
504
  if (remaining === undefined)
439
505
  return pageSize;
440
506
  if (state.exprFilters.length > 0 || state.predicates.length > 0)
441
507
  return pageSize;
508
+ if (dropsRows(state)) {
509
+ if (pageSize !== undefined)
510
+ return pageSize;
511
+ const limit = state.limitValue ?? remaining;
512
+ return Math.min(limit * 2 ** (page - 1), MAX_GROWN_LIMIT);
513
+ }
442
514
  return pageSize === undefined ? remaining : Math.min(pageSize, remaining);
443
515
  };
516
+ /**
517
+ * @internal Whether the query drops rows client-side (#133): like a predicate,
518
+ * it rejects rows after they are read, so the `limit` budget cannot be handed
519
+ * to DynamoDB, and a count has to read the rows.
520
+ */
521
+ const dropsRows = (state) => state.keepRow !== undefined || state.liveRows !== undefined;
522
+ /** @internal Is this raw row one the query leaves out (#133)? */
523
+ const isExcludedRow = (state, row) => (state.keepRow !== undefined && !state.keepRow(row)) ||
524
+ (state.liveRows !== undefined && !state.liveRows.isLive(row));
525
+ /**
526
+ * @internal A filter with an empty part where none may be (`emptyPartProblem`):
527
+ * the `ValidationError` every path that builds a request fails with, before
528
+ * `compileExpr` — which throws on one — ever sees it (#133).
529
+ */
530
+ const refuseEmptyFilterParts = (state) => {
531
+ for (const filter of state.exprFilters) {
532
+ const problem = emptyPartProblem(filter);
533
+ if (problem !== undefined) {
534
+ return new ValidationError({
535
+ entityType: state.entityTypes.join(", ") || "unknown",
536
+ operation: "query.filter",
537
+ cause: `filter: ${problem} Nothing was sent.`,
538
+ });
539
+ }
540
+ }
541
+ return undefined;
542
+ };
543
+ /**
544
+ * @internal The state a terminal runs: {@link QueryState.prepare} applied
545
+ * against the resolved table.
546
+ */
547
+ const prepared = (state, tableName) => {
548
+ // A consistent read of a GSI — which DynamoDB only reads eventually
549
+ // consistently — is refused before anything is sent (#133).
550
+ if (state.consistentRead && state.globalIndex) {
551
+ return Effect.fail(new ValidationError({
552
+ entityType: state.entityTypes.join(", ") || "unknown",
553
+ operation: "query.consistentRead",
554
+ cause: `consistentRead: index "${state.indexName}" is a global secondary index, which ` +
555
+ "DynamoDB reads only eventually consistently. Nothing was sent.",
556
+ }));
557
+ }
558
+ // A filter with an empty part where none may be is refused before
559
+ // anything is sent (#133).
560
+ const filterRefusal = refuseEmptyFilterParts(state);
561
+ if (filterRefusal !== undefined)
562
+ return Effect.fail(filterRefusal);
563
+ return state.prepare === undefined
564
+ ? Effect.succeed(state)
565
+ : Effect.map(state.prepare(tableName), (prep) => {
566
+ const swap = prep.replaceBeginsWith;
567
+ return {
568
+ ...state,
569
+ prepare: undefined,
570
+ keepRow: prep.keep,
571
+ skConditions: swap === undefined
572
+ ? state.skConditions
573
+ : state.skConditions.map((c) => "beginsWith" in c.condition && c.condition.beginsWith === swap.from
574
+ ? { ...c, condition: { beginsWith: swap.to } }
575
+ : c),
576
+ };
577
+ });
578
+ };
444
579
  /** @internal Does the decoded item pass every client-side predicate? */
445
580
  const accepts = (state, item) => {
446
581
  for (const predicate of state.predicates) {
@@ -477,16 +612,22 @@ const cursorFromItem = (item, names) => {
477
612
  * over-reading request can still rebuild an accurate cursor. They are stripped
478
613
  * from the items handed back, so the caller sees exactly what it selected.
479
614
  */
480
- const cursorProjectionFields = (state) => {
481
- if (state.limitValue === undefined || !state.keyFields)
482
- return [];
615
+ const cursorProjectionFields = (state,
616
+ /** Whether the terminal rebuilds a cursor (`execute`); `paginate` doesn't. */
617
+ forCursor) => {
483
618
  const projected = new Set([
484
619
  ...(state.projection ?? []),
485
620
  ...(state.projectionPaths ?? []).map((segments) => String(segments[0])),
486
621
  ]);
487
622
  if (projected.size === 0)
488
623
  return [];
489
- return state.keyFields.filter((field) => !projected.has(field));
624
+ const borrowed = new Set(!forCursor || state.limitValue === undefined || !state.keyFields ? [] : state.keyFields);
625
+ // A query that drops rows reads what it judges them by (#133).
626
+ if (state.keepRow !== undefined && state.skField !== undefined)
627
+ borrowed.add(state.skField);
628
+ for (const attr of state.liveRows?.reads ?? [])
629
+ borrowed.add(attr);
630
+ return [...borrowed].filter((field) => !projected.has(field));
490
631
  };
491
632
  // ---------------------------------------------------------------------------
492
633
  // Terminals
@@ -521,16 +662,18 @@ export const collect = (self) => Effect.gen(function* () {
521
662
  */
522
663
  export const execute = (self) => Effect.gen(function* () {
523
664
  const client = yield* DynamoClient;
524
- const state = self._state;
525
- const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
665
+ const tableName = self._state.resolveTableName
666
+ ? yield* self._state.resolveTableName
667
+ : self._state.tableName;
668
+ const state = yield* prepared(self._state, tableName);
526
669
  const limitValue = state.limitValue;
527
670
  if (limitValue !== undefined && limitValue <= 0) {
528
671
  return { items: [], cursor: null };
529
672
  }
530
673
  // Key attributes borrowed into an active projection so an over-reading
531
674
  // request can still rebuild a cursor. Stripped again before decoding.
532
- const borrowedFields = cursorProjectionFields(state);
533
- const hasPredicate = state.predicates.length > 0;
675
+ const borrowedFields = cursorProjectionFields(state, true);
676
+ const hasPredicate = state.predicates.length > 0 || dropsRows(state);
534
677
  const items = [];
535
678
  let startKey = state.exclusiveStartKey;
536
679
  let pageCount = 0;
@@ -538,7 +681,7 @@ export const execute = (self) => Effect.gen(function* () {
538
681
  while (true) {
539
682
  pageCount++;
540
683
  const remaining = limitValue === undefined ? undefined : limitValue - items.length;
541
- const cmd = buildDynamoCommand(state, tableName, { ExclusiveStartKey: startKey, Limit: computeRequestLimit(state, remaining) }, borrowedFields);
684
+ const cmd = buildDynamoCommand(state, tableName, { ExclusiveStartKey: startKey, Limit: computeRequestLimit(state, remaining, pageCount) }, borrowedFields);
542
685
  const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
543
686
  const returned = (result.Items ?? []);
544
687
  const lastEvaluatedKey = result.LastEvaluatedKey;
@@ -552,6 +695,8 @@ export const execute = (self) => Effect.gen(function* () {
552
695
  /** Index of the last row examined when the limit was reached, else -1. */
553
696
  let stoppedAt = -1;
554
697
  for (let i = 0; i < take; i++) {
698
+ if (isExcludedRow(state, returned[i]))
699
+ continue;
555
700
  const raw = fromAttributeMap(returned[i]);
556
701
  for (const field of borrowedFields)
557
702
  delete raw[field];
@@ -596,8 +741,13 @@ export const execute = (self) => Effect.gen(function* () {
596
741
  export const paginate = (self) => paginateInternal(self);
597
742
  const paginateInternal = (self) => Effect.gen(function* () {
598
743
  const client = yield* DynamoClient;
599
- const state = self._state;
600
- const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
744
+ const tableName = self._state.resolveTableName
745
+ ? yield* self._state.resolveTableName
746
+ : self._state.tableName;
747
+ // Prepared when the stream runs, so a failure is the stream's.
748
+ return Stream.unwrap(prepared(self._state, tableName).pipe(Effect.provideService(DynamoClient, client), Effect.map((state) => pageStream(client, tableName, state))));
749
+ });
750
+ const pageStream = (client, tableName, state) => {
601
751
  const limitValue = state.limitValue;
602
752
  if (limitValue !== undefined && limitValue <= 0) {
603
753
  return Stream.empty;
@@ -609,19 +759,28 @@ const paginateInternal = (self) => Effect.gen(function* () {
609
759
  }, (pageState) => Effect.gen(function* () {
610
760
  const pageCount = pageState.pageCount + 1;
611
761
  const remaining = limitValue === undefined ? undefined : limitValue - pageState.emitted;
762
+ const borrowedFields = cursorProjectionFields(state, false);
612
763
  const cmd = buildDynamoCommand(state, tableName, {
613
764
  ExclusiveStartKey: pageState.key,
614
- Limit: computeRequestLimit(state, remaining),
615
- });
765
+ Limit: computeRequestLimit(state, remaining, pageCount),
766
+ }, borrowedFields);
616
767
  const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
617
768
  const returned = (result.Items ?? []);
618
769
  // See `execute` — a client predicate rejects rows after decode, so
619
770
  // the budget cannot bound the examine window, only the accepted one.
620
- const hasPredicate = state.predicates.length > 0;
771
+ const hasPredicate = state.predicates.length > 0 || dropsRows(state);
621
772
  const take = remaining === undefined || hasPredicate
622
773
  ? returned.length
623
774
  : Math.min(remaining, returned.length);
624
- const examined = yield* Effect.forEach(returned.slice(0, take).map((item) => fromAttributeMap(item)), (raw) => state.decoder(raw));
775
+ const examined = yield* Effect.forEach(returned
776
+ .slice(0, take)
777
+ .filter((item) => !isExcludedRow(state, item))
778
+ .map((item) => {
779
+ const raw = fromAttributeMap(item);
780
+ for (const field of borrowedFields)
781
+ delete raw[field];
782
+ return raw;
783
+ }), (raw) => state.decoder(raw));
625
784
  const kept = hasPredicate ? examined.filter((item) => accepts(state, item)) : examined;
626
785
  const decoded = remaining === undefined ? kept : kept.slice(0, remaining);
627
786
  const emitted = pageState.emitted + decoded.length;
@@ -637,7 +796,7 @@ const paginateInternal = (self) => Effect.gen(function* () {
637
796
  : Option.none();
638
797
  return [[decoded], nextState];
639
798
  }));
640
- });
799
+ };
641
800
  /**
642
801
  * Execute a count query. Uses `Select: "COUNT"` on DynamoDB — no items are returned.
643
802
  * Returns the total count across all requests (respects {@link maxPages}).
@@ -649,8 +808,10 @@ const paginateInternal = (self) => Effect.gen(function* () {
649
808
  */
650
809
  export const count = (self) => Effect.gen(function* () {
651
810
  const client = yield* DynamoClient;
652
- const state = self._state;
653
- const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
811
+ const tableName = self._state.resolveTableName
812
+ ? yield* self._state.resolveTableName
813
+ : self._state.tableName;
814
+ const state = yield* prepared(self._state, tableName);
654
815
  const limitValue = state.limitValue;
655
816
  if (limitValue !== undefined && limitValue <= 0)
656
817
  return 0;
@@ -665,6 +826,37 @@ export const count = (self) => Effect.gen(function* () {
665
826
  const items = yield* collect(self);
666
827
  return items.length;
667
828
  }
829
+ // Rows that may be history are judged by a few attributes, so only those
830
+ // are read — never whole items (#133).
831
+ if (dropsRows(state)) {
832
+ const judged = [
833
+ ...new Set([
834
+ ...(state.liveRows?.reads ?? []),
835
+ ...(state.keepRow !== undefined && state.skField !== undefined ? [state.skField] : []),
836
+ ]),
837
+ ];
838
+ const judging = { ...state, projection: judged, projectionPaths: undefined };
839
+ let counted = 0;
840
+ let pages = 0;
841
+ let start;
842
+ do {
843
+ pages++;
844
+ const remaining = limitValue === undefined ? undefined : limitValue - counted;
845
+ const cmd = buildDynamoCommand(judging, tableName, {
846
+ ExclusiveStartKey: start,
847
+ Limit: computeRequestLimit(state, remaining, pages),
848
+ });
849
+ const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
850
+ const rows = (result.Items ?? []);
851
+ counted += rows.filter((row) => !isExcludedRow(state, row)).length;
852
+ start = result.LastEvaluatedKey;
853
+ if (limitValue !== undefined && counted >= limitValue)
854
+ return limitValue;
855
+ if (state.maxPagesValue != null && pages >= state.maxPagesValue)
856
+ break;
857
+ } while (start != null);
858
+ return counted;
859
+ }
668
860
  let total = 0;
669
861
  let pageCount = 0;
670
862
  let exclusiveStartKey;
@@ -689,9 +881,15 @@ export const count = (self) => Effect.gen(function* () {
689
881
  /**
690
882
  * Return the built DynamoDB command input without executing.
691
883
  * Useful for debugging, logging, or passing to DynamoClient directly.
884
+ * Fails with a `ValidationError` for a filter the query would refuse to send
885
+ * (an empty part under `or` / `not`, an `or()` with no parts, an `isIn` with
886
+ * no values).
692
887
  */
693
888
  export const asParams = (self) => Effect.gen(function* () {
694
889
  const state = self._state;
890
+ const refusal = refuseEmptyFilterParts(state);
891
+ if (refusal !== undefined)
892
+ return yield* refusal;
695
893
  const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
696
894
  return buildDynamoCommand(state, tableName);
697
895
  });
package/dist/Query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAE,YAAY,EAAoD,MAAM,mBAAmB,CAAA;AAClG,OAAO,EAAE,WAAW,EAAa,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AA2GpE,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,CACzB,MAAqD,EAClB,EAAE;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AACzC,CAAC,CAAA;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AAoBtE,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,SAAS;IAIQ;IAHZ,CAAC,WAAW,CAAC,GAAgB,WAAW,CAAA;IAGjD,YAAqB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE3C,IAAI;QACF,8CAA8C;QAC9C,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;CACF;AAED,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,MAiBvB,EAAY,EAAE,CACb,IAAI,SAAS,CAAI;IACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,KAAK;IACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;IACxC,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,SAAS;IAC5B,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,SAAS;IACrB,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,MAAM,CAAC,OAE4B;IAC5C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;IACzC,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC;CAChD,CAAC,CAAA;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,MAc3B,EAAY,EAAE,CACb,IAAI,SAAS,CAAI;IACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,KAAK;IACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;IACxC,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,SAAS;IAC5B,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,SAAS;IACrB,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,MAAM,CAAC,OAE4B;IAC5C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;IACzC,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC;CAChD,CAAC,CAAA;AAEJ,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,YAAY,GAAG,CAAC,GAAmC,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAE/F,MAAM,YAAY,GAAG,CAAC,MAAc,EAAkC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAEjG,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAGd,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAI,IAAc,EAAE,SAA2B,EAAY,EAAE;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,IAAI,SAAS,CAAI;QACtB,GAAG,KAAK;QACR,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,KAAK,GAGd,QAAQ,CAAC,IAAI,CACf,CAAC,EACD,CAAI,IAAc,EAAE,CAAS,EAAY,EAAE,CACzC,IAAI,SAAS,CAAI;IACf,GAAG,IAAI,CAAC,MAAM;IACd,UAAU,EAAE,CAAC;CACd,CAAC,CACL,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,QAAQ,CAAC,IAAI,CACf,CAAC,EACD,CAAI,IAAc,EAAE,CAAS,EAAY,EAAE,CACzC,IAAI,SAAS,CAAI;IACf,GAAG,IAAI,CAAC,MAAM;IACd,aAAa,EAAE,CAAC;CACjB,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,IAAc,EAAY,EAAE,CACrD,IAAI,SAAS,CAAI;IACf,GAAG,IAAI,CAAC,MAAM;IACd,WAAW,EAAE,KAAK;CACnB,CAAC,CAAA;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAGvB,QAAQ,CAAC,IAAI,CACf,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1B,CAAI,IAAc,EAAY,EAAE,CAC9B,IAAI,SAAS,CAAI;IACf,GAAG,IAAI,CAAC,MAAM;IACd,cAAc,EAAE,IAAI;CACrB,CAAC,CACL,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,QAAQ,CAAC,IAAI,CACf,CAAC,EACD,CAAI,IAAc,EAAE,CAAS,EAAY,EAAE,CACzC,IAAI,SAAS,CAAI;IACf,GAAG,IAAI,CAAC,MAAM;IACd,aAAa,EAAE,CAAC;CACjB,CAAC,CACL,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,IAAc,EAAY,EAAE,CAC7D,IAAI,SAAS,CAAI;IACf,GAAG,IAAI,CAAC,MAAM;IACd,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAA;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAGlB,QAAQ,CAAC,IAAI,CACf,CAAC,EACD,CAAI,IAAc,EAAE,MAAc,EAAY,EAAE,CAC9C,MAAM,KAAK,EAAE;IACX,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,IAAI,SAAS,CAAI;QACf,GAAG,IAAI,CAAC,MAAM;QACd,iBAAiB,EAAE,YAAY,CAAC,MAAM,CAAC;KACxC,CAAC,CACT,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAGf,QAAQ,CAAC,IAAI,CACf,CAAC,EACD,CAAI,IAAc,EAAE,UAAiC,EAAkC,EAAE;IACvF,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,IAAI,SAAS,CAA0B;QAC5C,GAAG,IAAI,CAAC,MAAM;QACd,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;KACtC,CAAC,CAAA;AACJ,CAAC,CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAc,EACd,WAA0D,EAC1D,MAAiD,EACjB,EAAE;IAClC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,IAAI,SAAS,CAA0B;QAC5C,GAAG,IAAI,CAAC,MAAM;QACd,UAAU,EAAE,SAAS;QACrB,eAAe,EAAE,WAAW;QAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAA4B,CAAC;KACzE,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAc,EACd,KAAoD,EACpD,aAA6C,EACb,EAAE;IAClC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,OAAO,eAAe,CACpB,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EACvE,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,IAAI,GAA4B,EAAE,CAAA;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;QAC7C,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CACF,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAGnB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAI,IAAc,EAAE,IAAU,EAAY,EAAE;IAC/D,6EAA6E;IAC7E,qEAAqE;IACrE,2EAA2E;IAC3E,kEAAkE;IAClE,wBAAwB;IACxB,IAAI,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,OAAO,IAAI,SAAS,CAAI;QACtB,GAAG,IAAI,CAAC,MAAM;QACd,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;KAChD,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAI,IAAc,EAAE,SAA+B,EAAY,EAAE;IACpF,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,IAAI,SAAS,CAAI;QACtB,GAAG,IAAI,CAAC,MAAM;QACd,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAqC,CAAC;KAC/E,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,MAAM,6BAA6B,GAAG,CAAC,IAAY,EAAU,EAAE,CAC7D,cAAc,IAAI,iEAAiE;IACnF,sFAAsF;IACtF,qFAAqF;IACrF,kFAAkF;IAClF,yEAAyE,CAAA;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAQpB,QAAQ,CAAC,IAAI,CACf,CAAC,EACD,CACE,IAAc,EACd,KAAoD,EACpB,EAAE;IAClC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,IAAI,SAAS,CAA0B;QAC5C,GAAG,IAAI,CAAC,MAAM;QACd,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;KACtC,CAAC,CAAA;AACJ,CAAC,CACF,CAAA;AAED,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC/C,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,MAAM,aAAa,GAAkB,EAAE,CAAA;IAEvC,2DAA2D;IAC3D,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACjE,aAAa,CAAC,IAAI,CAAC,aAAa,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;QAC5B,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,uBAAuB;IACvB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE;YACvB,CAAC,CAAE,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAW,CAC5E,CAAA;QACD,oEAAoE;QACpE,sEAAsE;QACtE,kCAAkC;QAClC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC/F,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AACzC,CAAC,CAAA;AAED,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,MAAM,eAAe,GAAG,CACtB,KAAiB,EACjB,KAA6B,EAC7B,cAAqC,EAAE,EACnB,EAAE;IACtB,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,SAAS,GAAkB,EAAE,CAAA;QACnC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/D,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAeD,MAAM,iBAAiB,GAAG,CACxB,KAAiB,EACjB,wBAA+C,EAAE,EAC7B,EAAE;IACtB,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;IAC7B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;IAC/B,IAAI,YAAgC,CAAA;IAEpC,kCAAkC;IAClC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/C,YAAY,GAAG,WAAW,CAAA;QAE1B,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAA;YACrC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAA;YAC7B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,YAAY,IAAI,gBAAgB,CAAA;gBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC3C,CAAC;iBAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,YAAY,IAAI,gBAAgB,CAAA;gBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC3C,CAAC;iBAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,YAAY,IAAI,iBAAiB,CAAA;gBACjC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC5C,CAAC;iBAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,YAAY,IAAI,gBAAgB,CAAA;gBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC3C,CAAC;iBAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,YAAY,IAAI,iBAAiB,CAAA;gBACjC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC5C,CAAC;iBAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBAC7B,YAAY,IAAI,gCAAgC,CAAA;gBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClD,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;gBAChC,YAAY,IAAI,4BAA4B,CAAA;gBAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAA;IAEjF,OAAO;QACL,sBAAsB,EAAE,YAAY;QACpC,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,oBAAoB,EAAE,oBAAoB;QAC1C,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC3E,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC9E,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;KAClD,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CACzB,KAAiB,EACjB,SAAiB,EACjB,SAAmC,EACnC,wBAA+C,EAAE,EACjD,EAAE;IACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;IAC7D,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;QACpD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QACxD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;QAC1D,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;QACnD,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;QAC9D,GAAG,SAAS;KACb,CAAA;AACH,CAAC,CAAA;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,qFAAqF;AACrF,MAAM,eAAe,GAAG,OAAO,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,mBAAmB,GAAG,CAC1B,KAAiB,EACjB,SAA6B,EAC7B,IAAI,GAAG,CAAC,EACY,EAAE;IACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAA;IACpC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAC5C,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAA;IAChF,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,SAAS,CAAA;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC3E,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAW,EAAE,CAC/C,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAA;AAE7D,iEAAiE;AACjE,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,GAAmC,EAAW,EAAE,CACxF,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,KAAiB,EAA+B,EAAE;IAChF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,eAAe,CAAC;gBACzB,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;gBACrD,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,WAAW,OAAO,oBAAoB;aAC9C,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,QAAQ,GAAG,CACf,KAAiB,EACjB,SAAiB,EAC6D,EAAE;IAChF,oEAAoE;IACpE,4DAA4D;IAC5D,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,eAAe,CAAC;YAClB,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;YACrD,SAAS,EAAE,sBAAsB;YACjC,KAAK,EACH,0BAA0B,KAAK,CAAC,SAAS,uCAAuC;gBAChF,gEAAgE;SACnE,CAAC,CACH,CAAA;IACH,CAAC;IACD,kEAAkE;IAClE,2BAA2B;IAC3B,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACnD,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAA;YACnC,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,YAAY,EACV,IAAI,KAAK,SAAS;oBAChB,CAAC,CAAC,KAAK,CAAC,YAAY;oBACpB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI;wBACjE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;wBAC9C,CAAC,CAAC,CAAC,CACN;aACR,CAAA;QACH,CAAC,CAAC,CAAA;AACR,CAAC,CAAA;AAED,wEAAwE;AACxE,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAE,IAAa,EAAW,EAAE;IAC5D,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,CAAE,SAAqC,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;IACjE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CACrB,KAAiB,EACjB,gBAA4D,EACzB,EAAE,CACrC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CACrB,IAAoC,EACpC,KAAwC,EACpB,EAAE;IACtB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAClD,MAAM,GAAG,GAAmC,EAAE,CAAA;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACzC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAC7B,KAAiB;AACjB,8EAA8E;AAC9E,SAAkB,EACK,EAAE;IACzB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS;QAChC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE,CAAC,CAAA;IACF,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CACxF,CAAA;IACD,+DAA+D;IAC/D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3F,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAA;AAeD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,IAAc,EAC8D,EAAE,CAC9E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC,CAAC,CAAA;AAEJ;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,IAAc,EAC6D,EAAE,CAC7E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;QAC5C,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;QACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IAEnC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAa,CAAA;IAC/C,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;IAEpE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAA;IACtC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,MAAM,GAAkB,IAAI,CAAA;IAEhC,OAAO,IAAI,EAAE,CAAC;QACZ,SAAS,EAAE,CAAA;QACX,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAA;QAClF,MAAM,GAAG,GAAG,kBAAkB,CAC5B,KAAK,EACL,SAAS,EACT,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EACxF,cAAc,CACf,CAAA;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAA;QAC9E,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAA8D,CAAA;QAC9F,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,IAAI,GACR,SAAS,KAAK,SAAS,IAAI,YAAY;YACrC,CAAC,CAAC,QAAQ,CAAC,MAAM;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QAE1C,0EAA0E;QAC1E,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC;gBAAE,SAAQ;YAChD,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAA;YAC1C,KAAK,MAAM,KAAK,IAAI,cAAc;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;YACrD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAsC,CAAA;YAC3E,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;gBAAE,SAAQ;YACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChB,IAAI,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC3D,SAAS,GAAG,CAAC,CAAA;gBACb,MAAK;YACP,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,gEAAgE;QAChE,wEAAwE;QACxE,oEAAoE;QACpE,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM;gBACJ,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAE,EAAE,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBAC7E,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACpE,MAAK;QACP,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,IAAI,IAAI,CAAA;QAC1C,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,CAAA;QAC3E,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,aAAa,CAAA;QAEvF,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;YAC7E,MAAM,GAAG,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACzE,MAAK;QACP,CAAC;QAED,QAAQ,GAAG,gBAAgB,CAAA;IAC7B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAa,CAAA;AACrC,CAAC,CAAC,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAc,EAKd,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAE3B,MAAM,gBAAgB,GAAG,CACvB,IAAc,EAKd,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;QAC5C,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;QACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;IACzB,+DAA+D;IAC/D,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CACnC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,EAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAI,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAC/D,CACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,UAAU,GAAG,CACjB,MAA2B,EAC3B,SAAiB,EACjB,KAAiB,EAC6C,EAAE;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IACnC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,KAAqE,CAAA;IACrF,CAAC;IAUD,OAAO,MAAM,CAAC,QAAQ,CACpB;QACE,GAAG,EAAE,KAAK,CAAC,iBAA+D;QAC1E,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;KACE,EACd,CAAC,SAAoB,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAA;QACvF,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC3D,MAAM,GAAG,GAAG,kBAAkB,CAC5B,KAAK,EACL,SAAS,EACT;YACE,iBAAiB,EAAE,SAAS,CAAC,GAAG;YAChC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;SACxD,EACD,cAAc,CACf,CAAA;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAA;QAC9E,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;QACpE,MAAM,IAAI,GACR,SAAS,KAAK,SAAS,IAAI,YAAY;YACrC,CAAC,CAAC,QAAQ,CAAC,MAAM;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACpC,QAAQ;aACL,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;YAClC,KAAK,MAAM,KAAK,IAAI,cAAc;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;YACrD,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,EACJ,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAsC,CACjE,CAAA;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACtF,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAEzE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAA;QACpD,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,aAAa,CAAA;QACvF,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS,IAAI,OAAO,IAAI,UAAU,CAAA;QAEtE,MAAM,SAAS,GACb,YAAY,IAAI,CAAC,eAAe,IAAI,CAAC,YAAY;YAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,MAAM,CAAC,gBAAkD;gBAC9D,SAAS;gBACT,OAAO;aACK,CAAC;YACjB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAEnB,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,CAAU,CAAA;IACxC,CAAC,CAAC,CACL,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,IAAc,EAC4D,EAAE,CAC5E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;QAC5C,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;QACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IAEnC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IAEzD,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,iBAAiB;IACjB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClC,OAAO,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC;IAED,yEAAyE;IACzE,uCAAuC;IACvC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG;YACb,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF,CAAC;SACH,CAAA;QACD,MAAM,OAAO,GAAe,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAA;QACxF,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,KAAiD,CAAA;QACrD,GAAG,CAAC;YACF,KAAK,EAAE,CAAA;YACP,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAA;YAC7E,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE;gBACjD,iBAAiB,EAAE,KAAK;gBACxB,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;aACpD,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChF,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAA;YAC1E,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;YAClE,KAAK,GAAG,MAAM,CAAC,gBAA8D,CAAA;YAC7E,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAA;YACxE,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa;gBAAE,MAAK;QACxE,CAAC,QAAQ,KAAK,IAAI,IAAI,EAAC;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,iBAA6D,CAAA;IAEjE,GAAG,CAAC;QACF,SAAS,EAAE,CAAA;QACX,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAA;QAC3E,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE;YAC/C,iBAAiB,EAAE,iBAAiB;YACpC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC;SAC7C,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhF,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAA;QAC1B,iBAAiB,GAAG,MAAM,CAAC,gBAA8D,CAAA;QAEzF,IAAI,UAAU,KAAK,SAAS,IAAI,KAAK,IAAI,UAAU;YAAE,OAAO,UAAU,CAAA;QACtE,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,aAAa;YAAE,MAAK;IAC5E,CAAC,QAAQ,iBAAiB,IAAI,IAAI,EAAC;IAEnC,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,CAAA;AAEJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAc,EACgD,EAAE,CAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;IACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;IAC1F,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAC7C,CAAC,CAAC,CAAA;AAEJ,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAuB,EAAE,CACzD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,WAAW,IAAI,CAAC,CAAA"}
@@ -8,7 +8,7 @@
8
8
  * EntityDelete) instead of manual { entity, key/item } objects.
9
9
  * transactGet returns a typed tuple inferred per-position.
10
10
  */
11
- import { TransactionCancelled, UniqueConstraintViolation, ValidationError } from "@effect-dynamodb/schema/Errors.js";
11
+ import { type ConcurrentModification, type OptimisticLockError, TransactionCancelled, type UniqueConstraintViolation, ValidationError } from "@effect-dynamodb/schema/Errors.js";
12
12
  import { Effect } from "effect";
13
13
  import { DynamoClient, type DynamoClientError } from "./DynamoClient.js";
14
14
  import type { ExpressionResult } from "./Expression.js";
@@ -62,6 +62,17 @@ export declare const transactGet: <const T extends ReadonlyArray<AnyGet>>(items:
62
62
  * Atomically write up to 100 items across entities/tables.
63
63
  * Accepts EntityPut, EntityDelete, and ConditionCheckOp (via Transaction.check).
64
64
  *
65
+ * A put of a versioned or unique-constrained entity is guarded, exactly as the
66
+ * entity's own `put` (#133): the item is read first, a replaced item continues
67
+ * its version, incarnation and `createdAt` (and is snapshotted under `retain`),
68
+ * a created one continues after any retained history, and changed unique
69
+ * values rotate their sentinels — releasing only those the item owns. A race
70
+ * between that read and the transaction (or retained history the read did not
71
+ * see) cancels the transaction, which is then built and written again; a race
72
+ * lost on every attempt fails with `OptimisticLockError` /
73
+ * `ConcurrentModification`. A caller's own condition failing is
74
+ * `TransactionCancelled`; a taken unique value is `UniqueConstraintViolation`.
75
+ *
65
76
  * ```typescript
66
77
  * yield* Transaction.transactWrite([
67
78
  * Users.put({ userId: "u-1", ... }),
@@ -70,5 +81,5 @@ export declare const transactGet: <const T extends ReadonlyArray<AnyGet>>(items:
70
81
  * ])
71
82
  * ```
72
83
  */
73
- export declare const transactWrite: (operations: ReadonlyArray<TransactWriteOp>) => Effect.Effect<void, DynamoClientError | ValidationError | TransactionCancelled | UniqueConstraintViolation, DynamoClient | TableConfig>;
84
+ export declare const transactWrite: (operations: ReadonlyArray<TransactWriteOp>) => Effect.Effect<void, DynamoClientError | ValidationError | TransactionCancelled | UniqueConstraintViolation | OptimisticLockError | ConcurrentModification, DynamoClient | TableConfig>;
74
85
  //# sourceMappingURL=Transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,EAChB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMjE,OAAO,EAEL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAA;AAE5E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,SAAS,EAAE,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAA;IACjE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAa7D,CAAA;AAMF;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,IAAI;IACxD,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CACvD,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,EAC/D,OAAO,CAAC,KACP,MAAM,CAAC,MAAM,CACd,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CA8ExB,CAAA;AAMJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,aAAa,CAAC,eAAe,CAAC,KACzC,MAAM,CAAC,MAAM,CACd,IAAI,EACJ,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,GAAG,yBAAyB,EACtF,YAAY,GAAG,WAAW,CA2DxB,CAAA"}
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,sBAAsB,EAG3B,KAAK,mBAAmB,EAExB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,eAAe,EAChB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMjE,OAAO,EAEL,KAAK,gBAAgB,EACrB,oBAAoB,EAIpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAA;AAE5E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,SAAS,EAAE,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAA;IACjE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAa7D,CAAA;AAMF;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,IAAI;IACxD,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CACvD,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,EAC/D,OAAO,CAAC,KACP,MAAM,CAAC,MAAM,CACd,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CA8ExB,CAAA;AAMJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,aAAa,CAAC,eAAe,CAAC,KACzC,MAAM,CAAC,MAAM,CACd,IAAI,EACF,iBAAiB,GACjB,eAAe,GACf,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,sBAAsB,EACxB,YAAY,GAAG,WAAW,CA4DxB,CAAA"}