effect-dynamodb 1.24.0 → 1.26.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 (106) hide show
  1. package/dist/Aggregate.d.ts +12 -2
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +284 -55
  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 +9 -1
  10. package/dist/Collection.d.ts.map +1 -1
  11. package/dist/Collection.js +5 -4
  12. package/dist/Collection.js.map +1 -1
  13. package/dist/DynamoClient.d.ts +80 -28
  14. package/dist/DynamoClient.d.ts.map +1 -1
  15. package/dist/DynamoClient.js +125 -25
  16. package/dist/DynamoClient.js.map +1 -1
  17. package/dist/Entity.d.ts +99 -40
  18. package/dist/Entity.d.ts.map +1 -1
  19. package/dist/Entity.js +693 -302
  20. package/dist/Entity.js.map +1 -1
  21. package/dist/EventStore.d.ts +598 -75
  22. package/dist/EventStore.d.ts.map +1 -1
  23. package/dist/EventStore.js +852 -221
  24. package/dist/EventStore.js.map +1 -1
  25. package/dist/Query.d.ts +100 -14
  26. package/dist/Query.d.ts.map +1 -1
  27. package/dist/Query.js +275 -71
  28. package/dist/Query.js.map +1 -1
  29. package/dist/StorageEncoding.d.ts +160 -0
  30. package/dist/StorageEncoding.d.ts.map +1 -0
  31. package/dist/StorageEncoding.js +258 -0
  32. package/dist/StorageEncoding.js.map +1 -0
  33. package/dist/Table.d.ts +56 -6
  34. package/dist/Table.d.ts.map +1 -1
  35. package/dist/Table.js +142 -60
  36. package/dist/Table.js.map +1 -1
  37. package/dist/Transaction.d.ts +8 -0
  38. package/dist/Transaction.d.ts.map +1 -1
  39. package/dist/Transaction.js +72 -22
  40. package/dist/Transaction.js.map +1 -1
  41. package/dist/VectorSearchEmulation.d.ts +3 -2
  42. package/dist/VectorSearchEmulation.d.ts.map +1 -1
  43. package/dist/VectorSearchEmulation.js +14 -2
  44. package/dist/VectorSearchEmulation.js.map +1 -1
  45. package/dist/compression/zlib.d.ts +75 -0
  46. package/dist/compression/zlib.d.ts.map +1 -0
  47. package/dist/compression/zlib.js +109 -0
  48. package/dist/compression/zlib.js.map +1 -0
  49. package/dist/index.d.ts +4 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +3 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/internal/BoundCrud.d.ts +39 -35
  54. package/dist/internal/BoundCrud.d.ts.map +1 -1
  55. package/dist/internal/BoundCrud.js.map +1 -1
  56. package/dist/internal/BoundQuery.d.ts +6 -5
  57. package/dist/internal/BoundQuery.d.ts.map +1 -1
  58. package/dist/internal/BoundQuery.js.map +1 -1
  59. package/dist/internal/BoundVectorQuery.d.ts +17 -1
  60. package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
  61. package/dist/internal/BoundVectorQuery.js +31 -6
  62. package/dist/internal/BoundVectorQuery.js.map +1 -1
  63. package/dist/internal/EntityCombinators.d.ts +8 -5
  64. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  65. package/dist/internal/EntityCombinators.js +24 -6
  66. package/dist/internal/EntityCombinators.js.map +1 -1
  67. package/dist/internal/EntityOps.d.ts +1 -1
  68. package/dist/internal/Expr.d.ts +9 -3
  69. package/dist/internal/Expr.d.ts.map +1 -1
  70. package/dist/internal/Expr.js +7 -5
  71. package/dist/internal/Expr.js.map +1 -1
  72. package/dist/internal/ExpressionLimits.d.ts +45 -0
  73. package/dist/internal/ExpressionLimits.d.ts.map +1 -0
  74. package/dist/internal/ExpressionLimits.js +89 -0
  75. package/dist/internal/ExpressionLimits.js.map +1 -0
  76. package/dist/internal/Hydrate.d.ts +62 -0
  77. package/dist/internal/Hydrate.d.ts.map +1 -0
  78. package/dist/internal/Hydrate.js +191 -0
  79. package/dist/internal/Hydrate.js.map +1 -0
  80. package/dist/internal/ItemSize.d.ts +60 -24
  81. package/dist/internal/ItemSize.d.ts.map +1 -1
  82. package/dist/internal/ItemSize.js +122 -39
  83. package/dist/internal/ItemSize.js.map +1 -1
  84. package/dist/internal/Packed.d.ts +289 -0
  85. package/dist/internal/Packed.d.ts.map +1 -0
  86. package/dist/internal/Packed.js +654 -0
  87. package/dist/internal/Packed.js.map +1 -0
  88. package/dist/internal/PathBuilder.d.ts +45 -2
  89. package/dist/internal/PathBuilder.d.ts.map +1 -1
  90. package/dist/internal/PathBuilder.js +4 -0
  91. package/dist/internal/PathBuilder.js.map +1 -1
  92. package/dist/internal/TransactWriteOps.d.ts +22 -46
  93. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  94. package/dist/internal/TransactWriteOps.js +26 -95
  95. package/dist/internal/TransactWriteOps.js.map +1 -1
  96. package/dist/internal/TransactableOps.d.ts +1 -1
  97. package/dist/internal/TransactableOps.d.ts.map +1 -1
  98. package/dist/internal/TransactableOps.js +2 -0
  99. package/dist/internal/TransactableOps.js.map +1 -1
  100. package/dist/internal/WriteDiagnosis.d.ts +353 -0
  101. package/dist/internal/WriteDiagnosis.d.ts.map +1 -0
  102. package/dist/internal/WriteDiagnosis.js +1028 -0
  103. package/dist/internal/WriteDiagnosis.js.map +1 -0
  104. package/dist/internal/sparse_check.js +43 -79
  105. package/dist/internal/sparse_check.js.map +1 -1
  106. package/package.json +6 -2
package/dist/Table.d.ts CHANGED
@@ -105,6 +105,12 @@ export interface Table<TEntities extends Record<string, EntityLike> = Record<str
105
105
  *
106
106
  * Entities are automatically configured with the table's schema and tag.
107
107
  *
108
+ * Members are checked against each other at definition time: entities sharing a
109
+ * physical vector index must agree on its settings (EDD-9035), every member
110
+ * declaring one physical secondary index must agree on its key attributes and
111
+ * GSI/LSI classification, and every entity must declare the same primary-key
112
+ * fields (EDD-9069).
113
+ *
108
114
  * @example
109
115
  * ```typescript
110
116
  * const MainTable = Table.make({
@@ -130,13 +136,12 @@ export declare const make: <const TEntities extends Record<string, EntityLike> =
130
136
  * by physical index name, validating that all sharers agree.
131
137
  *
132
138
  * Sharing a physical vector index across entities is the norm in single-table
133
- * designs — the quota is 5 per table — and it is safe precisely because the
139
+ * designs — the default quota is 5 per table — and it is safe precisely because the
134
140
  * composed `__edd_vp_<name>__` partition value carries the entity type, so a
135
141
  * search never crosses entity boundaries (see `DESIGN.md §14`).
136
142
  *
137
143
  * @throws when two entities disagree on `dimensions` or `distance` (EDD-9035),
138
- * or when more than {@link MAX_VECTOR_INDEXES_PER_TABLE} distinct physical
139
- * indexes are declared (EDD-9034).
144
+ * or on a shared filter attribute's type (EDD-9040).
140
145
  */
141
146
  export declare const mergeVectorIndexes: (entities: Record<string, EntityLike>) => Map<string, MergedVectorIndex>;
142
147
  /** A physical vector index resolved across every entity that declares it. */
@@ -145,6 +150,8 @@ export interface MergedVectorIndex {
145
150
  readonly definition: VectorIndexDefinition;
146
151
  /** Entity type of the first declarer, used in conflict messages. */
147
152
  readonly owner: string;
153
+ /** Entity type of every entity declaring the index, in registration order. */
154
+ readonly sharers: ReadonlyArray<string>;
148
155
  /** Union of every sharer's declared `filters` (domain names). */
149
156
  readonly filters: ReadonlyArray<string>;
150
157
  /** Stored-name resolver for the first declarer's `storedAs` renames. */
@@ -235,18 +242,57 @@ export interface TableDefinition {
235
242
  readonly VectorIndexes?: Array<VectorIndexSpec> | undefined;
236
243
  }
237
244
  /**
238
- * Resolve the table's primary PK/SK field names from the first entity carrying a
239
- * primary index. Aggregates are skipped — they borrow the table's primary key
240
- * rather than declaring one.
245
+ * Resolve the table's primary PK/SK field names from the entities' primary
246
+ * indexes. Aggregates are skipped — they borrow the table's primary key rather
247
+ * than declaring one.
241
248
  *
242
249
  * Returns `undefined` when no entity declares a primary index (a table registering
243
250
  * only aggregates). Callers that require the primary key must treat that as an error;
244
251
  * callers performing best-effort validation should skip their check instead.
252
+ *
253
+ * @throws when two entities declare different primary-key fields (EDD-9069). A
254
+ * table has one key schema; an entity keyed by other attributes would write
255
+ * items lacking the table's key attributes.
245
256
  */
246
257
  export declare const resolvePrimaryKey: (entities: Record<string, EntityLike>) => {
247
258
  readonly pk: string;
248
259
  readonly sk: string | undefined;
249
260
  } | undefined;
261
+ /** A physical secondary index resolved across every member that declares it. */
262
+ export interface MergedSecondaryIndex {
263
+ /**
264
+ * `"gsi"` or `"lsi"`; `undefined` only for an aggregate collection index on a
265
+ * table with no entity primary key, where the classification is unknown.
266
+ */
267
+ readonly kind: "gsi" | "lsi" | undefined;
268
+ readonly pk: string;
269
+ readonly sk: string;
270
+ /** The first declarer, as named in conflict messages. */
271
+ readonly owner: string;
272
+ }
273
+ /**
274
+ * Merge every member's secondary index declarations into one map keyed by
275
+ * physical index name, refusing members that disagree on its key schema.
276
+ *
277
+ * Declarers:
278
+ * - every non-primary entity index (the auto-generated `_cascade_<field>`
279
+ * indexes included) — always a GSI;
280
+ * - an aggregate's `collection.index` — an LSI when the aggregate's `pkField` is
281
+ * the table's primary partition key, a GSI otherwise (unknown when `primary`
282
+ * is `undefined`);
283
+ * - an aggregate's list index — always a GSI.
284
+ *
285
+ * Several members sharing one physical index is the norm in single-table
286
+ * designs (index overloading). They must agree on its key attributes and its
287
+ * GSI/LSI classification: DynamoDB keys a physical index one way, and a member
288
+ * writing other attributes would never appear in it.
289
+ *
290
+ * @throws on a disagreement (EDD-9069), naming both declarers and both shapes.
291
+ */
292
+ export declare const mergeSecondaryIndexes: (entities: Record<string, EntityLike>, aggregates: Record<string, AggregateLike>, primary: {
293
+ readonly pk: string;
294
+ readonly sk: string | undefined;
295
+ } | undefined) => Map<string, MergedSecondaryIndex>;
250
296
  /**
251
297
  * Derive CreateTable input from a table's registered members.
252
298
  *
@@ -266,6 +312,10 @@ export declare const resolvePrimaryKey: (entities: Record<string, EntityLike>) =
266
312
  * entity's primary index). This matches DynamoDB semantics — any index that shares
267
313
  * the base table's partition key IS an LSI — and makes `lsi1`..`lsi5`-style indexes
268
314
  * on aggregates work transparently with `db.tables.*.create()`.
315
+ *
316
+ * @throws when members disagree on one physical secondary index's key attributes or
317
+ * GSI/LSI classification, or entities disagree on the primary-key fields (EDD-9069,
318
+ * see {@link mergeSecondaryIndexes}). {@link make} refuses the same tables.
269
319
  */
270
320
  export declare const definition: (table: Table) => TableDefinition;
271
321
  /** Options for table creation. */
@@ -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({
@@ -46,17 +52,24 @@ export const make = (config) => {
46
52
  const Tag = Context.Service(`@effect-dynamodb/Table/${config.schema.name}/${id}`);
47
53
  const entities = (config.entities ?? {});
48
54
  const aggregates = (config.aggregates ?? {});
49
- // Configure all entities with this table's schema and tag
50
- for (const entity of Object.values(entities)) {
51
- if (typeof entity._configure === "function") {
52
- entity._configure(config.schema, Tag);
53
- }
54
- }
55
55
  // Cross-entity vector index agreement. `Dimensions` and `DistanceFunction` are
56
56
  // immutable at the DynamoDB level, so two entities sharing a physical vector
57
57
  // index cannot disagree — catch it at definition time rather than on the
58
58
  // CreateTable round trip.
59
59
  validateSharedVectorIndexes(entities);
60
+ // One physical secondary index has one key schema, and every entity on one
61
+ // table shares its primary key. Refuse members that disagree (EDD-9069) here,
62
+ // so tables deployed with CDK or Terraform — which never call
63
+ // `Table.definition` — fail at definition time too.
64
+ mergeSecondaryIndexes(entities, aggregates, resolvePrimaryKey(entities));
65
+ // Configure all entities with this table's schema and tag — only once the
66
+ // table is valid, so a rejected `Table.make` leaves its members bound to
67
+ // whatever table they were registered on before.
68
+ for (const entity of Object.values(entities)) {
69
+ if (typeof entity._configure === "function") {
70
+ entity._configure(config.schema, Tag);
71
+ }
72
+ }
60
73
  return {
61
74
  _tag: "Table",
62
75
  schema: config.schema,
@@ -84,13 +97,12 @@ export const make = (config) => {
84
97
  * by physical index name, validating that all sharers agree.
85
98
  *
86
99
  * 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
100
+ * designs — the default quota is 5 per table — and it is safe precisely because the
88
101
  * composed `__edd_vp_<name>__` partition value carries the entity type, so a
89
102
  * search never crosses entity boundaries (see `DESIGN.md §14`).
90
103
  *
91
104
  * @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).
105
+ * or on a shared filter attribute's type (EDD-9040).
94
106
  */
95
107
  export const mergeVectorIndexes = (entities) => {
96
108
  const merged = new Map();
@@ -106,6 +118,7 @@ export const mergeVectorIndexes = (entities) => {
106
118
  merged.set(definition.index, {
107
119
  definition,
108
120
  owner,
121
+ sharers: [owner],
109
122
  filters: [...definition.filters],
110
123
  resolveDbName,
111
124
  filterStoredTypes: Object.fromEntries(definition.filters.map((f) => [resolveDbName(f), definition.filterTypes[f] ?? "S"])),
@@ -120,6 +133,8 @@ export const mergeVectorIndexes = (entities) => {
120
133
  `${definition.dimensions}/${definition.distance}. Dimensions and distance function are ` +
121
134
  `immutable on a DynamoDB vector index — every entity sharing one must agree.`);
122
135
  }
136
+ if (!existing.sharers.includes(owner))
137
+ existing.sharers.push(owner);
123
138
  // Filters, unlike dimensions/distance, are per-entity access patterns
124
139
  // rather than a shared physical property — one index can serve several
125
140
  // entities filtering on different attributes. Union them; keeping only
@@ -142,19 +157,10 @@ export const mergeVectorIndexes = (entities) => {
142
157
  }
143
158
  }
144
159
  }
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
- }
160
+ // DynamoDB's own vector-index limits — inline filters per index (after the
161
+ // union above), vector indexes per table (an adjustable quota) — are not
162
+ // pre-checked: `db.tables.*.create()` / `addVectorIndex` diagnose DynamoDB's
163
+ // rejection, naming the index and the entities sharing it (#144).
158
164
  return merged;
159
165
  };
160
166
  /** @internal Run {@link mergeVectorIndexes} purely for its validation effect. */
@@ -193,22 +199,114 @@ export const toVectorIndexSpec = (definition, options) => {
193
199
  };
194
200
  };
195
201
  /**
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.
202
+ * Resolve the table's primary PK/SK field names from the entities' primary
203
+ * indexes. Aggregates are skipped — they borrow the table's primary key rather
204
+ * than declaring one.
199
205
  *
200
206
  * Returns `undefined` when no entity declares a primary index (a table registering
201
207
  * only aggregates). Callers that require the primary key must treat that as an error;
202
208
  * callers performing best-effort validation should skip their check instead.
209
+ *
210
+ * @throws when two entities declare different primary-key fields (EDD-9069). A
211
+ * table has one key schema; an entity keyed by other attributes would write
212
+ * items lacking the table's key attributes.
203
213
  */
204
214
  export const resolvePrimaryKey = (entities) => {
205
- for (const entity of Object.values(entities)) {
215
+ let resolved;
216
+ let owner = "";
217
+ for (const [entityKey, entity] of Object.entries(entities)) {
206
218
  const primary = entity.indexes.primary;
207
- if (primary) {
208
- return { pk: primary.pk.field, sk: primary.sk.field };
219
+ if (!primary)
220
+ continue;
221
+ const current = { pk: primary.pk.field, sk: primary.sk.field };
222
+ const name = entity.entityType ?? entityKey;
223
+ if (resolved === undefined) {
224
+ resolved = current;
225
+ owner = name;
226
+ continue;
227
+ }
228
+ if (resolved.pk !== current.pk || resolved.sk !== current.sk) {
229
+ throw new Error(`[EDD-9069] The table's primary key is declared as (${keyList(resolved)}) by entity ` +
230
+ `"${owner}" and as (${keyList(current)}) by entity "${name}". One table has one key ` +
231
+ `schema: every entity registered on it must declare the same primary-key fields.`);
209
232
  }
210
233
  }
211
- return undefined;
234
+ return resolved;
235
+ };
236
+ const keyList = (keys) => keys.sk === undefined ? keys.pk : `${keys.pk}, ${keys.sk}`;
237
+ const describeIndexKind = (kind) => kind === "gsi" ? "a GSI" : kind === "lsi" ? "an LSI" : "an index";
238
+ /**
239
+ * Merge every member's secondary index declarations into one map keyed by
240
+ * physical index name, refusing members that disagree on its key schema.
241
+ *
242
+ * Declarers:
243
+ * - every non-primary entity index (the auto-generated `_cascade_<field>`
244
+ * indexes included) — always a GSI;
245
+ * - an aggregate's `collection.index` — an LSI when the aggregate's `pkField` is
246
+ * the table's primary partition key, a GSI otherwise (unknown when `primary`
247
+ * is `undefined`);
248
+ * - an aggregate's list index — always a GSI.
249
+ *
250
+ * Several members sharing one physical index is the norm in single-table
251
+ * designs (index overloading). They must agree on its key attributes and its
252
+ * GSI/LSI classification: DynamoDB keys a physical index one way, and a member
253
+ * writing other attributes would never appear in it.
254
+ *
255
+ * @throws on a disagreement (EDD-9069), naming both declarers and both shapes.
256
+ */
257
+ export const mergeSecondaryIndexes = (entities, aggregates, primary) => {
258
+ const merged = new Map();
259
+ const declare = (indexName, declared) => {
260
+ const existing = merged.get(indexName);
261
+ if (existing === undefined) {
262
+ merged.set(indexName, declared);
263
+ return;
264
+ }
265
+ const kindsDisagree = existing.kind !== undefined && declared.kind !== undefined && existing.kind !== declared.kind;
266
+ if (existing.pk !== declared.pk || existing.sk !== declared.sk || kindsDisagree) {
267
+ throw new Error(`[EDD-9069] Secondary index "${indexName}" is declared as ` +
268
+ `${describeIndexKind(existing.kind)} keyed (${existing.pk}, ${existing.sk}) by ` +
269
+ `${existing.owner} and as ${describeIndexKind(declared.kind)} keyed ` +
270
+ `(${declared.pk}, ${declared.sk}) by ${declared.owner}. One physical index has one ` +
271
+ `key schema: every member declaring it must agree.`);
272
+ }
273
+ // A declarer whose classification was unknown takes the known one.
274
+ if (existing.kind === undefined && declared.kind !== undefined) {
275
+ merged.set(indexName, { ...existing, kind: declared.kind });
276
+ }
277
+ };
278
+ for (const [entityKey, entity] of Object.entries(entities)) {
279
+ const owner = `entity "${entity.entityType ?? entityKey}"`;
280
+ for (const [name, index] of Object.entries(entity.indexes)) {
281
+ if (!index || name === "primary" || !index.index)
282
+ continue;
283
+ // Entity index definitions carry no LSI semantics: always a GSI.
284
+ declare(index.index, { kind: "gsi", pk: index.pk.field, sk: index.sk.field, owner });
285
+ }
286
+ }
287
+ for (const [aggregateKey, agg] of Object.entries(aggregates)) {
288
+ const collectionIndex = agg.collection.index;
289
+ const collectionSk = agg.collection.sk;
290
+ if (collectionIndex !== undefined && collectionSk !== undefined) {
291
+ declare(collectionIndex, {
292
+ // DynamoDB LSIs share the base table's partition key; any index that
293
+ // does IS an LSI.
294
+ kind: primary === undefined ? undefined : agg.pkField === primary.pk ? "lsi" : "gsi",
295
+ pk: agg.pkField,
296
+ sk: collectionSk.field,
297
+ owner: `aggregate "${aggregateKey}" (collection index)`,
298
+ });
299
+ }
300
+ if (agg.listIndex) {
301
+ declare(agg.listIndex.index, {
302
+ kind: "gsi",
303
+ pk: agg.listIndex.pk.field,
304
+ sk: agg.listIndex.sk.field,
305
+ owner: `aggregate "${aggregateKey}" (list index)`,
306
+ });
307
+ }
308
+ }
309
+ return merged;
212
310
  };
213
311
  /**
214
312
  * Derive CreateTable input from a table's registered members.
@@ -229,6 +327,10 @@ export const resolvePrimaryKey = (entities) => {
229
327
  * entity's primary index). This matches DynamoDB semantics — any index that shares
230
328
  * the base table's partition key IS an LSI — and makes `lsi1`..`lsi5`-style indexes
231
329
  * on aggregates work transparently with `db.tables.*.create()`.
330
+ *
331
+ * @throws when members disagree on one physical secondary index's key attributes or
332
+ * GSI/LSI classification, or entities disagree on the primary-key fields (EDD-9069,
333
+ * see {@link mergeSecondaryIndexes}). {@link make} refuses the same tables.
232
334
  */
233
335
  export const definition = (table) => {
234
336
  const members = [
@@ -246,10 +348,17 @@ export const definition = (table) => {
246
348
  }
247
349
  const primaryPk = primary.pk;
248
350
  const primarySk = primary.sk;
249
- // Pass 2: collect attribute names and classify indexes (GSI vs LSI).
250
- const attributeNames = new Set();
351
+ // Pass 2: classify secondary indexes (GSI vs LSI), refusing members that
352
+ // disagree on one physical index's key schema (EDD-9069).
353
+ const secondaryIndexes = mergeSecondaryIndexes(table.entities, table.aggregates, primary);
251
354
  const gsiMap = new Map();
252
355
  const lsiMap = new Map();
356
+ for (const [indexName, index] of secondaryIndexes) {
357
+ const target = index.kind === "lsi" ? lsiMap : gsiMap;
358
+ target.set(indexName, { pk: index.pk, sk: index.sk });
359
+ }
360
+ // Pass 3: collect attribute names.
361
+ const attributeNames = new Set();
253
362
  // Always include the primary key fields in attribute definitions.
254
363
  attributeNames.add(primaryPk);
255
364
  if (primarySk !== undefined && primarySk !== primaryPk) {
@@ -273,48 +382,21 @@ export const definition = (table) => {
273
382
  attributeNames.add(agg.pkField);
274
383
  if (collectionIndex !== undefined && collectionSk !== undefined) {
275
384
  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
385
  }
287
386
  // List GSI (if configured) — always a GSI; has its own PK attribute.
288
387
  if (agg.listIndex) {
289
388
  attributeNames.add(agg.listIndex.pk.field);
290
389
  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
390
  }
298
391
  }
299
392
  else {
300
393
  // Entity — scan index definitions
301
394
  const entity = member;
302
- for (const [indexName, index] of Object.entries(entity.indexes)) {
395
+ for (const index of Object.values(entity.indexes)) {
303
396
  if (!index)
304
397
  continue;
305
398
  attributeNames.add(index.pk.field);
306
399
  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
400
  }
319
401
  }
320
402
  }
package/dist/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"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"}
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;AAOjE,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;CAqB7D,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"}