effect-dynamodb 1.23.0 → 1.25.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 (77) hide show
  1. package/dist/Aggregate.d.ts +5 -2
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +136 -53
  4. package/dist/Aggregate.js.map +1 -1
  5. package/dist/Batch.d.ts +14 -5
  6. package/dist/Batch.d.ts.map +1 -1
  7. package/dist/Batch.js +184 -119
  8. package/dist/Batch.js.map +1 -1
  9. package/dist/Collection.d.ts.map +1 -1
  10. package/dist/Collection.js +2 -4
  11. package/dist/Collection.js.map +1 -1
  12. package/dist/DynamoClient.d.ts.map +1 -1
  13. package/dist/DynamoClient.js +42 -14
  14. package/dist/DynamoClient.js.map +1 -1
  15. package/dist/Entity.d.ts +19 -13
  16. package/dist/Entity.d.ts.map +1 -1
  17. package/dist/Entity.js +287 -226
  18. package/dist/Entity.js.map +1 -1
  19. package/dist/EventStore.d.ts +1060 -50
  20. package/dist/EventStore.d.ts.map +1 -1
  21. package/dist/EventStore.js +1607 -299
  22. package/dist/EventStore.js.map +1 -1
  23. package/dist/Query.d.ts +47 -14
  24. package/dist/Query.d.ts.map +1 -1
  25. package/dist/Query.js +190 -68
  26. package/dist/Query.js.map +1 -1
  27. package/dist/Table.d.ts +56 -6
  28. package/dist/Table.d.ts.map +1 -1
  29. package/dist/Table.js +134 -54
  30. package/dist/Table.js.map +1 -1
  31. package/dist/Transaction.d.ts +8 -0
  32. package/dist/Transaction.d.ts.map +1 -1
  33. package/dist/Transaction.js +67 -22
  34. package/dist/Transaction.js.map +1 -1
  35. package/dist/VectorSearchEmulation.d.ts +3 -2
  36. package/dist/VectorSearchEmulation.d.ts.map +1 -1
  37. package/dist/VectorSearchEmulation.js +14 -2
  38. package/dist/VectorSearchEmulation.js.map +1 -1
  39. package/dist/internal/BoundQuery.d.ts +3 -2
  40. package/dist/internal/BoundQuery.d.ts.map +1 -1
  41. package/dist/internal/BoundQuery.js.map +1 -1
  42. package/dist/internal/BoundVectorQuery.d.ts +5 -1
  43. package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
  44. package/dist/internal/BoundVectorQuery.js +17 -5
  45. package/dist/internal/BoundVectorQuery.js.map +1 -1
  46. package/dist/internal/EntityCombinators.d.ts +8 -5
  47. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  48. package/dist/internal/EntityCombinators.js +8 -5
  49. package/dist/internal/EntityCombinators.js.map +1 -1
  50. package/dist/internal/EntityOps.d.ts +1 -1
  51. package/dist/internal/Expr.d.ts +4 -0
  52. package/dist/internal/Expr.d.ts.map +1 -1
  53. package/dist/internal/Expr.js +6 -4
  54. package/dist/internal/Expr.js.map +1 -1
  55. package/dist/internal/ExpressionLimits.d.ts +45 -0
  56. package/dist/internal/ExpressionLimits.d.ts.map +1 -0
  57. package/dist/internal/ExpressionLimits.js +89 -0
  58. package/dist/internal/ExpressionLimits.js.map +1 -0
  59. package/dist/internal/Hydrate.d.ts +62 -0
  60. package/dist/internal/Hydrate.d.ts.map +1 -0
  61. package/dist/internal/Hydrate.js +191 -0
  62. package/dist/internal/Hydrate.js.map +1 -0
  63. package/dist/internal/ItemSize.d.ts +60 -24
  64. package/dist/internal/ItemSize.d.ts.map +1 -1
  65. package/dist/internal/ItemSize.js +122 -39
  66. package/dist/internal/ItemSize.js.map +1 -1
  67. package/dist/internal/TransactWriteOps.d.ts +22 -46
  68. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  69. package/dist/internal/TransactWriteOps.js +26 -95
  70. package/dist/internal/TransactWriteOps.js.map +1 -1
  71. package/dist/internal/WriteDiagnosis.d.ts +353 -0
  72. package/dist/internal/WriteDiagnosis.d.ts.map +1 -0
  73. package/dist/internal/WriteDiagnosis.js +1028 -0
  74. package/dist/internal/WriteDiagnosis.js.map +1 -0
  75. package/dist/internal/sparse_check.js +43 -79
  76. package/dist/internal/sparse_check.js.map +1 -1
  77. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"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"}
package/dist/Table.js CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Use `DynamoClient.make()` to get a typed client with bound entity operations.
9
9
  */
10
- import { MAX_INLINE_FILTERS, MAX_VECTOR_INDEXES_PER_TABLE, toWireDistanceFunction, } from "@effect-dynamodb/schema/VectorIndex.js";
10
+ import { toWireDistanceFunction } from "@effect-dynamodb/schema/VectorIndex.js";
11
11
  import { Context, Effect, Layer } from "effect";
12
12
  /** Default attribute name used for DynamoDB TTL when {@link TableConfig.ttlAttributeName} is unset. */
13
13
  export const DEFAULT_TTL_ATTRIBUTE_NAME = "_ttl";
@@ -26,6 +26,12 @@ let tableCounter = 0;
26
26
  *
27
27
  * Entities are automatically configured with the table's schema and tag.
28
28
  *
29
+ * Members are checked against each other at definition time: entities sharing a
30
+ * physical vector index must agree on its settings (EDD-9035), every member
31
+ * declaring one physical secondary index must agree on its key attributes and
32
+ * GSI/LSI classification, and every entity must declare the same primary-key
33
+ * fields (EDD-9069).
34
+ *
29
35
  * @example
30
36
  * ```typescript
31
37
  * const MainTable = Table.make({
@@ -57,6 +63,11 @@ export const make = (config) => {
57
63
  // index cannot disagree — catch it at definition time rather than on the
58
64
  // CreateTable round trip.
59
65
  validateSharedVectorIndexes(entities);
66
+ // One physical secondary index has one key schema, and every entity on one
67
+ // table shares its primary key. Refuse members that disagree (EDD-9069) here,
68
+ // so tables deployed with CDK or Terraform — which never call
69
+ // `Table.definition` — fail at definition time too.
70
+ mergeSecondaryIndexes(entities, aggregates, resolvePrimaryKey(entities));
60
71
  return {
61
72
  _tag: "Table",
62
73
  schema: config.schema,
@@ -84,13 +95,12 @@ export const make = (config) => {
84
95
  * by physical index name, validating that all sharers agree.
85
96
  *
86
97
  * Sharing a physical vector index across entities is the norm in single-table
87
- * designs — the quota is 5 per table — and it is safe precisely because the
98
+ * designs — the default quota is 5 per table — and it is safe precisely because the
88
99
  * composed `__edd_vp_<name>__` partition value carries the entity type, so a
89
100
  * search never crosses entity boundaries (see `DESIGN.md §14`).
90
101
  *
91
102
  * @throws when two entities disagree on `dimensions` or `distance` (EDD-9035),
92
- * or when more than {@link MAX_VECTOR_INDEXES_PER_TABLE} distinct physical
93
- * indexes are declared (EDD-9034).
103
+ * or on a shared filter attribute's type (EDD-9040).
94
104
  */
95
105
  export const mergeVectorIndexes = (entities) => {
96
106
  const merged = new Map();
@@ -106,6 +116,7 @@ export const mergeVectorIndexes = (entities) => {
106
116
  merged.set(definition.index, {
107
117
  definition,
108
118
  owner,
119
+ sharers: [owner],
109
120
  filters: [...definition.filters],
110
121
  resolveDbName,
111
122
  filterStoredTypes: Object.fromEntries(definition.filters.map((f) => [resolveDbName(f), definition.filterTypes[f] ?? "S"])),
@@ -120,6 +131,8 @@ export const mergeVectorIndexes = (entities) => {
120
131
  `${definition.dimensions}/${definition.distance}. Dimensions and distance function are ` +
121
132
  `immutable on a DynamoDB vector index — every entity sharing one must agree.`);
122
133
  }
134
+ if (!existing.sharers.includes(owner))
135
+ existing.sharers.push(owner);
123
136
  // Filters, unlike dimensions/distance, are per-entity access patterns
124
137
  // rather than a shared physical property — one index can serve several
125
138
  // entities filtering on different attributes. Union them; keeping only
@@ -142,19 +155,10 @@ export const mergeVectorIndexes = (entities) => {
142
155
  }
143
156
  }
144
157
  }
145
- for (const [indexName, entry] of merged) {
146
- if (entry.filters.length > MAX_INLINE_FILTERS) {
147
- throw new Error(`[EDD-9032] Vector index "${indexName}" resolves to ${entry.filters.length} INLINE_FILTER ` +
148
- `attributes once unioned across the entities sharing it ` +
149
- `(${[...entry.filters].sort().join(", ")}). DynamoDB allows at most ` +
150
- `${MAX_INLINE_FILTERS} per vector index.`);
151
- }
152
- }
153
- if (merged.size > MAX_VECTOR_INDEXES_PER_TABLE) {
154
- throw new Error(`[EDD-9034] Table declares ${merged.size} vector indexes ` +
155
- `(${[...merged.keys()].sort().join(", ")}). DynamoDB allows at most ` +
156
- `${MAX_VECTOR_INDEXES_PER_TABLE} per table.`);
157
- }
158
+ // DynamoDB's own vector-index limits — inline filters per index (after the
159
+ // union above), vector indexes per table (an adjustable quota) — are not
160
+ // pre-checked: `db.tables.*.create()` / `addVectorIndex` diagnose DynamoDB's
161
+ // rejection, naming the index and the entities sharing it (#144).
158
162
  return merged;
159
163
  };
160
164
  /** @internal Run {@link mergeVectorIndexes} purely for its validation effect. */
@@ -193,22 +197,114 @@ export const toVectorIndexSpec = (definition, options) => {
193
197
  };
194
198
  };
195
199
  /**
196
- * Resolve the table's primary PK/SK field names from the first entity carrying a
197
- * primary index. Aggregates are skipped — they borrow the table's primary key
198
- * rather than declaring one.
200
+ * Resolve the table's primary PK/SK field names from the entities' primary
201
+ * indexes. Aggregates are skipped — they borrow the table's primary key rather
202
+ * than declaring one.
199
203
  *
200
204
  * Returns `undefined` when no entity declares a primary index (a table registering
201
205
  * only aggregates). Callers that require the primary key must treat that as an error;
202
206
  * callers performing best-effort validation should skip their check instead.
207
+ *
208
+ * @throws when two entities declare different primary-key fields (EDD-9069). A
209
+ * table has one key schema; an entity keyed by other attributes would write
210
+ * items lacking the table's key attributes.
203
211
  */
204
212
  export const resolvePrimaryKey = (entities) => {
205
- for (const entity of Object.values(entities)) {
213
+ let resolved;
214
+ let owner = "";
215
+ for (const [entityKey, entity] of Object.entries(entities)) {
206
216
  const primary = entity.indexes.primary;
207
- if (primary) {
208
- return { pk: primary.pk.field, sk: primary.sk.field };
217
+ if (!primary)
218
+ continue;
219
+ const current = { pk: primary.pk.field, sk: primary.sk.field };
220
+ const name = entity.entityType ?? entityKey;
221
+ if (resolved === undefined) {
222
+ resolved = current;
223
+ owner = name;
224
+ continue;
225
+ }
226
+ if (resolved.pk !== current.pk || resolved.sk !== current.sk) {
227
+ throw new Error(`[EDD-9069] The table's primary key is declared as (${keyList(resolved)}) by entity ` +
228
+ `"${owner}" and as (${keyList(current)}) by entity "${name}". One table has one key ` +
229
+ `schema: every entity registered on it must declare the same primary-key fields.`);
209
230
  }
210
231
  }
211
- return undefined;
232
+ return resolved;
233
+ };
234
+ const keyList = (keys) => keys.sk === undefined ? keys.pk : `${keys.pk}, ${keys.sk}`;
235
+ const describeIndexKind = (kind) => kind === "gsi" ? "a GSI" : kind === "lsi" ? "an LSI" : "an index";
236
+ /**
237
+ * Merge every member's secondary index declarations into one map keyed by
238
+ * physical index name, refusing members that disagree on its key schema.
239
+ *
240
+ * Declarers:
241
+ * - every non-primary entity index (the auto-generated `_cascade_<field>`
242
+ * indexes included) — always a GSI;
243
+ * - an aggregate's `collection.index` — an LSI when the aggregate's `pkField` is
244
+ * the table's primary partition key, a GSI otherwise (unknown when `primary`
245
+ * is `undefined`);
246
+ * - an aggregate's list index — always a GSI.
247
+ *
248
+ * Several members sharing one physical index is the norm in single-table
249
+ * designs (index overloading). They must agree on its key attributes and its
250
+ * GSI/LSI classification: DynamoDB keys a physical index one way, and a member
251
+ * writing other attributes would never appear in it.
252
+ *
253
+ * @throws on a disagreement (EDD-9069), naming both declarers and both shapes.
254
+ */
255
+ export const mergeSecondaryIndexes = (entities, aggregates, primary) => {
256
+ const merged = new Map();
257
+ const declare = (indexName, declared) => {
258
+ const existing = merged.get(indexName);
259
+ if (existing === undefined) {
260
+ merged.set(indexName, declared);
261
+ return;
262
+ }
263
+ const kindsDisagree = existing.kind !== undefined && declared.kind !== undefined && existing.kind !== declared.kind;
264
+ if (existing.pk !== declared.pk || existing.sk !== declared.sk || kindsDisagree) {
265
+ throw new Error(`[EDD-9069] Secondary index "${indexName}" is declared as ` +
266
+ `${describeIndexKind(existing.kind)} keyed (${existing.pk}, ${existing.sk}) by ` +
267
+ `${existing.owner} and as ${describeIndexKind(declared.kind)} keyed ` +
268
+ `(${declared.pk}, ${declared.sk}) by ${declared.owner}. One physical index has one ` +
269
+ `key schema: every member declaring it must agree.`);
270
+ }
271
+ // A declarer whose classification was unknown takes the known one.
272
+ if (existing.kind === undefined && declared.kind !== undefined) {
273
+ merged.set(indexName, { ...existing, kind: declared.kind });
274
+ }
275
+ };
276
+ for (const [entityKey, entity] of Object.entries(entities)) {
277
+ const owner = `entity "${entity.entityType ?? entityKey}"`;
278
+ for (const [name, index] of Object.entries(entity.indexes)) {
279
+ if (!index || name === "primary" || !index.index)
280
+ continue;
281
+ // Entity index definitions carry no LSI semantics: always a GSI.
282
+ declare(index.index, { kind: "gsi", pk: index.pk.field, sk: index.sk.field, owner });
283
+ }
284
+ }
285
+ for (const [aggregateKey, agg] of Object.entries(aggregates)) {
286
+ const collectionIndex = agg.collection.index;
287
+ const collectionSk = agg.collection.sk;
288
+ if (collectionIndex !== undefined && collectionSk !== undefined) {
289
+ declare(collectionIndex, {
290
+ // DynamoDB LSIs share the base table's partition key; any index that
291
+ // does IS an LSI.
292
+ kind: primary === undefined ? undefined : agg.pkField === primary.pk ? "lsi" : "gsi",
293
+ pk: agg.pkField,
294
+ sk: collectionSk.field,
295
+ owner: `aggregate "${aggregateKey}" (collection index)`,
296
+ });
297
+ }
298
+ if (agg.listIndex) {
299
+ declare(agg.listIndex.index, {
300
+ kind: "gsi",
301
+ pk: agg.listIndex.pk.field,
302
+ sk: agg.listIndex.sk.field,
303
+ owner: `aggregate "${aggregateKey}" (list index)`,
304
+ });
305
+ }
306
+ }
307
+ return merged;
212
308
  };
213
309
  /**
214
310
  * Derive CreateTable input from a table's registered members.
@@ -229,6 +325,10 @@ export const resolvePrimaryKey = (entities) => {
229
325
  * entity's primary index). This matches DynamoDB semantics — any index that shares
230
326
  * the base table's partition key IS an LSI — and makes `lsi1`..`lsi5`-style indexes
231
327
  * on aggregates work transparently with `db.tables.*.create()`.
328
+ *
329
+ * @throws when members disagree on one physical secondary index's key attributes or
330
+ * GSI/LSI classification, or entities disagree on the primary-key fields (EDD-9069,
331
+ * see {@link mergeSecondaryIndexes}). {@link make} refuses the same tables.
232
332
  */
233
333
  export const definition = (table) => {
234
334
  const members = [
@@ -246,10 +346,17 @@ export const definition = (table) => {
246
346
  }
247
347
  const primaryPk = primary.pk;
248
348
  const primarySk = primary.sk;
249
- // Pass 2: collect attribute names and classify indexes (GSI vs LSI).
250
- const attributeNames = new Set();
349
+ // Pass 2: classify secondary indexes (GSI vs LSI), refusing members that
350
+ // disagree on one physical index's key schema (EDD-9069).
351
+ const secondaryIndexes = mergeSecondaryIndexes(table.entities, table.aggregates, primary);
251
352
  const gsiMap = new Map();
252
353
  const lsiMap = new Map();
354
+ for (const [indexName, index] of secondaryIndexes) {
355
+ const target = index.kind === "lsi" ? lsiMap : gsiMap;
356
+ target.set(indexName, { pk: index.pk, sk: index.sk });
357
+ }
358
+ // Pass 3: collect attribute names.
359
+ const attributeNames = new Set();
253
360
  // Always include the primary key fields in attribute definitions.
254
361
  attributeNames.add(primaryPk);
255
362
  if (primarySk !== undefined && primarySk !== primaryPk) {
@@ -273,48 +380,21 @@ export const definition = (table) => {
273
380
  attributeNames.add(agg.pkField);
274
381
  if (collectionIndex !== undefined && collectionSk !== undefined) {
275
382
  attributeNames.add(collectionSk.field);
276
- if (agg.pkField === primaryPk) {
277
- if (!lsiMap.has(collectionIndex) && !gsiMap.has(collectionIndex)) {
278
- lsiMap.set(collectionIndex, { pk: agg.pkField, sk: collectionSk.field });
279
- }
280
- }
281
- else {
282
- if (!gsiMap.has(collectionIndex) && !lsiMap.has(collectionIndex)) {
283
- gsiMap.set(collectionIndex, { pk: agg.pkField, sk: collectionSk.field });
284
- }
285
- }
286
383
  }
287
384
  // List GSI (if configured) — always a GSI; has its own PK attribute.
288
385
  if (agg.listIndex) {
289
386
  attributeNames.add(agg.listIndex.pk.field);
290
387
  attributeNames.add(agg.listIndex.sk.field);
291
- if (!gsiMap.has(agg.listIndex.index) && !lsiMap.has(agg.listIndex.index)) {
292
- gsiMap.set(agg.listIndex.index, {
293
- pk: agg.listIndex.pk.field,
294
- sk: agg.listIndex.sk.field,
295
- });
296
- }
297
388
  }
298
389
  }
299
390
  else {
300
391
  // Entity — scan index definitions
301
392
  const entity = member;
302
- for (const [indexName, index] of Object.entries(entity.indexes)) {
393
+ for (const index of Object.values(entity.indexes)) {
303
394
  if (!index)
304
395
  continue;
305
396
  attributeNames.add(index.pk.field);
306
397
  attributeNames.add(index.sk.field);
307
- if (indexName === "primary") {
308
- // Primary key already captured in pass 1.
309
- continue;
310
- }
311
- if (index.index) {
312
- // Entity-declared secondary index — always a GSI. Entity index definitions
313
- // don't carry LSI semantics; LSIs are only introduced via aggregate collections.
314
- if (!gsiMap.has(index.index) && !lsiMap.has(index.index)) {
315
- gsiMap.set(index.index, { pk: index.pk.field, sk: index.sk.field });
316
- }
317
- }
318
398
  }
319
399
  }
320
400
  }
package/dist/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAe,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAmB5D,uGAAuG;AACvG,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAe,EAAU,EAAE,CACjE,EAAE,CAAC,gBAAgB,IAAI,0BAA0B,CAAA;AAEnD;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,CAAA;AAwEpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAGlB,MAID,EAAiC,EAAE;IAClC,MAAM,EAAE,GAAG,YAAY,EAAE,CAAA;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAc,0BAA0B,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IAE9F,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAc,CAAA;IACrD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAgB,CAAA;IAE3D,0DAA0D;IAC1D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,yEAAyE;IACzE,0BAA0B;IAC1B,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IAErC,OAAO;QACL,IAAI,EAAE,OAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ;QACR,UAAU;QACV,GAAG;QACH,KAAK,EAAE,CAAC,WAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC;QACpE,WAAW,EAAE,CAAC,SAGb,EAAE,EAAE,CACH,KAAK,CAAC,MAAM,CACV,GAAG,EACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAA;YACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB;gBACjD,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,gBAAgB;gBACnC,CAAC,CAAC,SAAS,CAAA;YACb,MAAM,MAAM,GACV,gBAAgB,KAAK,SAAS;gBAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACvC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YACzB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CACH;KACJ,CAAA;AACH,CAAC,CAAA;AAED,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,QAAoC,EACJ,EAAE;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EASnB,CAAA;IAEH,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAA;QACtC,IAAI,CAAC,QAAQ;YAAE,SAAQ;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAA;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;QACnF,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;oBAC3B,UAAU;oBACV,KAAK;oBACL,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;oBAChC,aAAa;oBACb,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CACpF;iBACF,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YACD,IACE,QAAQ,CAAC,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU;gBACxD,QAAQ,CAAC,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,EACpD,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,CAAC,KAAK,4BAA4B,QAAQ,CAAC,KAAK,IAAI;oBACxF,QAAQ,KAAK,+BAA+B;oBAC5C,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,MAAM;oBACvE,GAAG,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,yCAAyC;oBACxF,6EAA6E,CAChF,CAAA;YACH,CAAC;YACD,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,qEAAqE;YACrE,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;gBACpC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;gBACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;gBACvD,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,CAAC,KAAK,uBAAuB,MAAM,OAAO;wBAC9E,4CAA4C,YAAY,cAAc;wBACtE,IAAI,QAAQ,CAAC,KAAK,UAAU,UAAU,gBAAgB,KAAK,cAAc;wBACzE,mDAAmD,CACtD,CAAA;gBACH,CAAC;gBACD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,UAAU,CAAA;gBAC/C,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;oBAAE,SAAQ;gBAChF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,iBAAiB,KAAK,CAAC,OAAO,CAAC,MAAM,iBAAiB;gBACzF,yDAAyD;gBACzD,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B;gBACrE,GAAG,kBAAkB,oBAAoB,CAC5C,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,GAAG,4BAA4B,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,CAAC,IAAI,kBAAkB;YACxD,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B;YACrE,GAAG,4BAA4B,aAAa,CAC/C,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAoBD,iFAAiF;AACjF,MAAM,2BAA2B,GAAG,CAAC,QAAoC,EAAQ,EAAE;IACjF,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC,CAAA;AAiBD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAAiC,EACjC,OAGC,EACgB,EAAE;IACnB,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;IACpF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,CAAA;IACtD,MAAM,YAAY,GAGb,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,cAAc,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,CAAA;IACpF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC;YAChB,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC;YACpC,uBAAuB,EAAE,eAAe;SACzC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,KAAK;QAC3B,eAAe,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,WAAW,EAAE;QAC1D,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,gBAAgB,EAAE,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7D,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;QACrC,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAqDD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAoC,EACkC,EAAE;IACxE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAA;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACvD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAY,EAAmB,EAAE;IAC1D,MAAM,OAAO,GAA8C;QACzD,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;KACnC,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IAED,qFAAqF;IACrF,oFAAoF;IACpF,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE5B,qEAAqE;IACrE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAA;IAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAA;IAE5D,kEAAkE;IAClE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACvD,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpD,wDAAwD;YACxD,MAAM,GAAG,GAAG,MAAuB,CAAA;YAEnC,wEAAwE;YACxE,+EAA+E;YAC/E,8EAA8E;YAC9E,kFAAkF;YAClF,EAAE;YACF,kFAAkF;YAClF,+EAA+E;YAC/E,mFAAmF;YACnF,0EAA0E;YAC1E,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAA;YAC5C,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,CAAA;YACtC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,eAAe,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAChE,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;wBACjE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;oBAC1E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;wBACjE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;gBAC1C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;gBAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;wBAC9B,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK;wBAC1B,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK;qBAC3B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,MAAM,MAAM,GAAG,MAAoB,CAAA;YACnC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,KAAK;oBAAE,SAAQ;gBAEpB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;gBAClC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;gBAElC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,0CAA0C;oBAC1C,SAAQ;gBACV,CAAC;gBACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,2EAA2E;oBAC3E,iFAAiF;oBACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAA4B,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1F,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACvD,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,oBAAoB,GAA+B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;SAChF,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAY,EAAE,CAAC,CAAC,CAAA;IAExE,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,mBAAmB,GAAG,CAC1B,MAAsC,EACV,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAA;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;YAChD,CAAC;YACD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;IAChF,CAAC,CAAA;IAED,MAAM,sBAAsB,GAC1B,MAAM,CAAC,IAAI,GAAG,CAAC;QACb,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE;gBACT,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAe,EAAE;gBACpD,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAgB,EAAE;aACtD;YACD,UAAU,EAAE,EAAE,cAAc,EAAE,KAAc,EAAE;SAC/C,CAAC,CAAC;QACP,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,qBAAqB,GACzB,MAAM,CAAC,IAAI,GAAG,CAAC;QACb,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE;gBACT,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAe,EAAE;gBACpD,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAgB,EAAE;aACtD;YACD,UAAU,EAAE,EAAE,cAAc,EAAE,KAAc,EAAE;SAC/C,CAAC,CAAC;QACP,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC9D,MAAM,aAAa,GACjB,mBAAmB,CAAC,IAAI,GAAG,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aACtC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CACjB,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CACH;QACL,CAAC,CAAC,SAAS,CAAA;IACf,oBAAoB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEtE,MAAM,MAAM,GAMR,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAA;IACvC,IAAI,sBAAsB;QAAE,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;IAClF,IAAI,qBAAqB;QAAE,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;IAC/E,IAAI,aAAa;QAAE,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;IACvD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,14 @@ export declare const transactGet: <const T extends ReadonlyArray<AnyGet>>(items:
73
73
  * `ConcurrentModification`. A caller's own condition failing is
74
74
  * `TransactionCancelled`; a taken unique value is `UniqueConstraintViolation`.
75
75
  *
76
+ * DynamoDB's rules are not pre-checked (#144): a transaction breaking one is
77
+ * sent, rejected whole, and reported naming the culprit — over 100 items
78
+ * (counted after expansion) as `DynamoError`; two ops touching one item, an
79
+ * oversized item, a payload over 4 MB, a sort key over 1024 bytes or a
80
+ * condition over DynamoDB's expression limits as `ValidationError` — with
81
+ * DynamoDB's error as the cause. Nothing is written, and a repeated item is
82
+ * never retried as a lost race.
83
+ *
76
84
  * ```typescript
77
85
  * yield* Transaction.transactWrite([
78
86
  * Users.put({ userId: "u-1", ... }),
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,sBAAsB,EAG3B,KAAK,mBAAmB,EACxB,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,EAGpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AASvC,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,CA+GxB,CAAA;AAMJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;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,CAyExB,CAAA"}
@@ -8,12 +8,13 @@
8
8
  * EntityDelete) instead of manual { entity, key/item } objects.
9
9
  * transactGet returns a typed tuple inferred per-position.
10
10
  */
11
- import { DynamoError, isAwsTransactionCancelled, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, ValidationError, } from "@effect-dynamodb/schema/Errors.js";
11
+ import { DynamoError, isAwsTransactionCancelled, TransactionCancelled, ValidationError, } from "@effect-dynamodb/schema/Errors.js";
12
12
  import { Effect, Function as Fn } from "effect";
13
13
  import { DynamoClient } from "./DynamoClient.js";
14
14
  import { extractTransactable } from "./Entity.js";
15
15
  import { composePrimaryKey, getRejectReason, resolveTableNames, } from "./internal/TransactableOps.js";
16
- import { buildTransactWriteItems, ConditionCheckTypeId, GUARDED_TRANSACTION_ATTEMPTS, judgeCancellation, refuseOversizedTransaction, } from "./internal/TransactWriteOps.js";
16
+ import { buildTransactWriteItems, ConditionCheckTypeId, GUARDED_TRANSACTION_ATTEMPTS, judgeCancellation, } from "./internal/TransactWriteOps.js";
17
+ import { diagnosedValidationError, diagnoseFailure, transactItemTarget, withCause, } from "./internal/WriteDiagnosis.js";
17
18
  import { fromAttributeMap, toAttributeMap } from "./Marshaller.js";
18
19
  // ---------------------------------------------------------------------------
19
20
  // ConditionCheck — composable from EntityGet + condition expression
@@ -69,12 +70,6 @@ export const transactGet = (items) => Effect.gen(function* () {
69
70
  // Cast rationale: same as Batch.get — empty array satisfies any mapped tuple type
70
71
  if (items.length === 0)
71
72
  return [];
72
- if (items.length > 100) {
73
- return yield* Effect.fail(new DynamoError({
74
- operation: "TransactGetItems",
75
- cause: new Error("TransactGetItems supports a maximum of 100 items"),
76
- }));
77
- }
78
73
  const client = yield* DynamoClient;
79
74
  // Unwrap each position to its get descriptor. A rejection belongs on the
80
75
  // error channel, not as a defect — the caller can neither catch nor
@@ -110,6 +105,34 @@ export const transactGet = (items) => Effect.gen(function* () {
110
105
  });
111
106
  }
112
107
  return error;
108
+ }),
109
+ // Over DynamoDB's 100 items, or one item read twice: rejected by
110
+ // DynamoDB, confirmed against the request (#144).
111
+ diagnoseFailure({
112
+ sent: () => ({
113
+ _tag: "TransactGet",
114
+ count: transactItems.length,
115
+ targets: () => transactItems.map((item, index) => {
116
+ const entity = infos[index].entity;
117
+ const primary = entity.indexes.primary;
118
+ return transactItemTarget(item, item.Get.TableName, [primary.pk.field, primary.sk.field], entity.entityType, `get ${index} (${entity.entityType})`);
119
+ }),
120
+ }),
121
+ rewrite: (diagnosis, original) => diagnosis._tag === "TooManyItems"
122
+ ? new DynamoError({
123
+ operation: "TransactGetItems",
124
+ cause: withCause(`TransactGetItems supports a maximum of ${diagnosis.limit} items; ` +
125
+ `the request holds ${diagnosis.count}`, original),
126
+ })
127
+ : diagnosis._tag === "RepeatedItem"
128
+ ? new DynamoError({
129
+ operation: "TransactGetItems",
130
+ cause: withCause(`TransactGetItems reads one item more than once — ${diagnosis.first.source} ` +
131
+ `and ${diagnosis.second.source} both read the item at ` +
132
+ `${diagnosis.second.key}. DynamoDB allows one operation per item in a ` +
133
+ "transaction, and rejected it. Read the item once.", original),
134
+ })
135
+ : original,
113
136
  }));
114
137
  const responses = result.Responses ?? [];
115
138
  const decoded = [];
@@ -147,6 +170,14 @@ export const transactGet = (items) => Effect.gen(function* () {
147
170
  * `ConcurrentModification`. A caller's own condition failing is
148
171
  * `TransactionCancelled`; a taken unique value is `UniqueConstraintViolation`.
149
172
  *
173
+ * DynamoDB's rules are not pre-checked (#144): a transaction breaking one is
174
+ * sent, rejected whole, and reported naming the culprit — over 100 items
175
+ * (counted after expansion) as `DynamoError`; two ops touching one item, an
176
+ * oversized item, a payload over 4 MB, a sort key over 1024 bytes or a
177
+ * condition over DynamoDB's expression limits as `ValidationError` — with
178
+ * DynamoDB's error as the cause. Nothing is written, and a repeated item is
179
+ * never retried as a lost race.
180
+ *
150
181
  * ```typescript
151
182
  * yield* Transaction.transactWrite([
152
183
  * Users.put({ userId: "u-1", ... }),
@@ -163,20 +194,29 @@ export const transactWrite = (operations) => Effect.gen(function* () {
163
194
  for (let attempt = 0; attempt < GUARDED_TRANSACTION_ATTEMPTS; attempt++) {
164
195
  const built = yield* buildTransactWriteItems(operations, "transactWrite");
165
196
  const transactItems = built.items;
166
- // Counted AFTER expansion: one op can emit several items (a guarded put
167
- // emits the item, its sentinel reservations and releases, and its
168
- // snapshot), so `operations.length` would understate the request and let
169
- // DynamoDB reject it with a far less useful message (#113).
170
- if (transactItems.length > TRANSACT_WRITE_ITEMS_LIMIT) {
171
- return yield* Effect.fail(new DynamoError({
197
+ // Named once, for both diagnoses below.
198
+ const sent = () => ({
199
+ _tag: "Transaction",
200
+ items: transactItems,
201
+ targets: built.targets,
202
+ });
203
+ const diagnosed = (diagnosis, original) => diagnosis._tag === "TooManyItems"
204
+ ? new DynamoError({
172
205
  operation: "TransactWriteItems",
173
- cause: new Error(`TransactWriteItems supports a maximum of ${TRANSACT_WRITE_ITEMS_LIMIT} items; ` +
174
- `${operations.length} operation(s) expanded to ${transactItems.length} items ` +
175
- "(uniqueness sentinels and version snapshots each occupy one)"),
176
- }));
177
- }
178
- yield* refuseOversizedTransaction(transactItems, built.targets, "transactWrite");
179
- const outcome = yield* client.transactWriteItems({ TransactItems: transactItems }).pipe(Effect.as(undefined), Effect.catch((error) => {
206
+ cause: withCause(`TransactWriteItems supports a maximum of ${diagnosis.limit} items; ` +
207
+ `${operations.length} operation(s) expanded to ${diagnosis.count} items ` +
208
+ "(uniqueness sentinels and version snapshots each occupy one)", original),
209
+ })
210
+ : diagnosedValidationError(diagnosis, original, {
211
+ operation: "transactWrite",
212
+ entityType: "unknown",
213
+ });
214
+ const outcome = yield* client.transactWriteItems({ TransactItems: transactItems }).pipe(Effect.as(undefined),
215
+ // One operation per item (#133, #144): a transaction that touches one
216
+ // item twice is DynamoDB's to reject, and is diagnosed BEFORE the
217
+ // conditional mapping — DynamoDB can report a repeat as a conditional
218
+ // failure, which would read as a lost race and be retried.
219
+ diagnoseFailure({ sent, only: ["RepeatedItem"], rewrite: diagnosed }), Effect.catch((error) => {
180
220
  if (!isAwsTransactionCancelled(error.cause))
181
221
  return Effect.fail(error);
182
222
  const rawReasons = error.cause.CancellationReasons ?? [];
@@ -192,7 +232,12 @@ export const transactWrite = (operations) => Effect.gen(function* () {
192
232
  reasons: rawReasons.map((r) => ({ code: r?.Code, message: r?.Message })),
193
233
  cause: error.cause,
194
234
  }));
195
- }));
235
+ }),
236
+ // DynamoDB's limits are not pre-checked: a rejection is diagnosed
237
+ // here, after the conditional mapping, naming the item at fault. The
238
+ // 100-item limit counts the EXPANDED items — one op can emit several
239
+ // (uniqueness sentinels, version snapshots) — and keeps its #113 tag.
240
+ diagnoseFailure({ sent, keys: built.keys, rewrite: diagnosed }));
196
241
  if (outcome === undefined)
197
242
  return;
198
243
  lost = outcome;
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,9 @@
16
16
  * Fidelity is deliberate, not approximate: all three distance functions are
17
17
  * computed exactly as the developer guide documents them (including the score
18
18
  * DIRECTIONS, which differ), the HASH/INLINE_FILTER equality predicates are
19
- * evaluated, `ProjectionExpression` is honoured, and results are truncated to
20
- * `TopK`. The ranking output is unit-tested against the developer guide's
19
+ * evaluated, `ProjectionExpression` is honoured, results are truncated to
20
+ * `TopK`, and a `TopK` outside 1..100 is rejected as DynamoDB rejects it. The
21
+ * ranking output is unit-tested against the developer guide's
21
22
  * reference table.
22
23
  *
23
24
  * What it does NOT emulate: approximate (as opposed to exact) nearest-neighbour
@@ -1 +1 @@
1
- {"version":3,"file":"VectorSearchEmulation.d.ts","sourceRoot":"","sources":["../src/VectorSearchEmulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,wCAAwC,CAAA;AAE/C,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,YAAY,EAA0B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAOlG,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC9D;AAED,8EAA8E;AAC9E,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAA;CACnE;AAkCD,sEAAsE;AACtE,eAAO,MAAM,UAAU,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAI/E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAKnF,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAOtF,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,GACtB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,WAAW,aAAa,CAAC,MAAM,CAAC,EAChC,UAAU,gBAAgB,KACzB,MASF,CAAA;AA8ED;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,mBAAmB,EAC5B,UAAU,gBAAgB,KACzB,mBAmHF,CAAA;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EACxB,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,EACtC,UAAU,gBAAgB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAIgC,CAAA"}
1
+ {"version":3,"file":"VectorSearchEmulation.d.ts","sourceRoot":"","sources":["../src/VectorSearchEmulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAWH,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,wCAAwC,CAAA;AAE/C,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,YAAY,EAA0B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAOlG,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC9D;AAED,8EAA8E;AAC9E,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAA;CACnE;AAkCD,sEAAsE;AACtE,eAAO,MAAM,UAAU,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAI/E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAKnF,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAOtF,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,GACtB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,WAAW,aAAa,CAAC,MAAM,CAAC,EAChC,UAAU,gBAAgB,KACzB,MASF,CAAA;AA8ED;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,mBAAmB,EAC5B,UAAU,gBAAgB,KACzB,mBAqIF,CAAA;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EACxB,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,EACtC,UAAU,gBAAgB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAIgC,CAAA"}