@effect-dynamodb/schema 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.
@@ -13,19 +13,34 @@
13
13
  * See `DESIGN.md §14 Vector Search`.
14
14
  */
15
15
  import type * as DynamoSchema from "./DynamoSchema.js";
16
- /** Minimum vector dimensionality accepted by DynamoDB. */
16
+ /**
17
+ * Minimum vector dimensionality accepted by DynamoDB. Not pre-checked: DynamoDB
18
+ * rejects an index outside 1..4096, and the rejection is diagnosed against the
19
+ * request (#144).
20
+ */
17
21
  export declare const MIN_DIMENSIONS = 1;
18
- /** Maximum vector dimensionality accepted by DynamoDB. */
22
+ /** Maximum vector dimensionality accepted by DynamoDB (not pre-checked; see {@link MIN_DIMENSIONS}). */
19
23
  export declare const MAX_DIMENSIONS = 4096;
20
- /** Minimum `TopK` accepted by `SearchVectors`. */
24
+ /**
25
+ * Minimum `TopK` accepted by `SearchVectors`. Not pre-checked: `.topK()` sends
26
+ * what it is given, and DynamoDB's rejection is diagnosed (#144).
27
+ */
21
28
  export declare const MIN_TOP_K = 1;
22
- /** Maximum `TopK` accepted by `SearchVectors` (hard limit — there is no pagination). */
29
+ /** Maximum `TopK` accepted by `SearchVectors` (hard limit — there is no pagination; not pre-checked). */
23
30
  export declare const MAX_TOP_K = 100;
24
31
  /** Default `TopK` applied when `.topK()` is not called. */
25
32
  export declare const DEFAULT_TOP_K = 10;
26
- /** Maximum `INLINE_FILTER` attributes per vector index. */
33
+ /**
34
+ * Maximum `INLINE_FILTER` attributes per vector index (AWS quota, not
35
+ * adjustable). Not pre-checked: DynamoDB rejects an index over it, and the
36
+ * rejection is diagnosed against the request (#144).
37
+ */
27
38
  export declare const MAX_INLINE_FILTERS = 18;
28
- /** Maximum vector indexes per physical table. */
39
+ /**
40
+ * Vector indexes per physical table — AWS's DEFAULT quota, which AWS Support
41
+ * can raise. Not pre-checked: DynamoDB rejects a table over the account's
42
+ * quota, and the rejection is diagnosed against the request (#144).
43
+ */
29
44
  export declare const MAX_VECTOR_INDEXES_PER_TABLE = 5;
30
45
  /**
31
46
  * Name of the stored embedding attribute for a physical vector index.
@@ -187,7 +202,14 @@ export type VectorFilterInput<TField extends string = string> = {
187
202
  /**
188
203
  * Validate an entity's vector index declarations at `Entity.make()` time.
189
204
  *
190
- * @throws on invalid configuration (EDD-903x).
205
+ * DynamoDB's own limits are not checked here (#144): dimensions outside
206
+ * 1..4096, too many `INLINE_FILTER` attributes or vector indexes are sent, and
207
+ * DynamoDB's rejection of the `CreateTable` / `UpdateTable` is diagnosed. A
208
+ * non-integer `dimensions` stays refused: DynamoDB reads an integer member
209
+ * leniently (DynamoDB Local truncates `2.9` to `2`), so it could be accepted as
210
+ * a different, immutable dimensionality.
211
+ *
212
+ * @throws on invalid configuration (EDD-903x, EDD-9070).
191
213
  */
192
214
  export declare const validateVectorIndexes: (params: {
193
215
  readonly entityType: string;
@@ -197,9 +219,9 @@ export declare const validateVectorIndexes: (params: {
197
219
  /**
198
220
  * Clamp a caller-supplied `TopK` into DynamoDB's accepted range.
199
221
  *
200
- * Clamping (rather than failing) mirrors how `.limit()` behaves elsewhere in the
201
- * library — an out-of-range K is a caller mistake with an obvious correct
202
- * interpretation, not a data-integrity problem.
222
+ * @deprecated No longer used by the library (#144): `.topK()` sends the value
223
+ * it is given, and DynamoDB's rejection of one outside 1..100 is diagnosed as
224
+ * a `ValidationError` naming it. Kept so existing imports compile.
203
225
  */
204
226
  export declare const clampTopK: (topK: number) => number;
205
227
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"VectorIndex.d.ts","sourceRoot":"","sources":["../src/VectorIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorIndex.d.ts","sourceRoot":"","sources":["../src/VectorIndex.ts"],"names":[],"mappings":"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"}
@@ -15,19 +15,34 @@
15
15
  // ---------------------------------------------------------------------------
16
16
  // Limits (DynamoDB service quotas)
17
17
  // ---------------------------------------------------------------------------
18
- /** Minimum vector dimensionality accepted by DynamoDB. */
18
+ /**
19
+ * Minimum vector dimensionality accepted by DynamoDB. Not pre-checked: DynamoDB
20
+ * rejects an index outside 1..4096, and the rejection is diagnosed against the
21
+ * request (#144).
22
+ */
19
23
  export const MIN_DIMENSIONS = 1;
20
- /** Maximum vector dimensionality accepted by DynamoDB. */
24
+ /** Maximum vector dimensionality accepted by DynamoDB (not pre-checked; see {@link MIN_DIMENSIONS}). */
21
25
  export const MAX_DIMENSIONS = 4096;
22
- /** Minimum `TopK` accepted by `SearchVectors`. */
26
+ /**
27
+ * Minimum `TopK` accepted by `SearchVectors`. Not pre-checked: `.topK()` sends
28
+ * what it is given, and DynamoDB's rejection is diagnosed (#144).
29
+ */
23
30
  export const MIN_TOP_K = 1;
24
- /** Maximum `TopK` accepted by `SearchVectors` (hard limit — there is no pagination). */
31
+ /** Maximum `TopK` accepted by `SearchVectors` (hard limit — there is no pagination; not pre-checked). */
25
32
  export const MAX_TOP_K = 100;
26
33
  /** Default `TopK` applied when `.topK()` is not called. */
27
34
  export const DEFAULT_TOP_K = 10;
28
- /** Maximum `INLINE_FILTER` attributes per vector index. */
35
+ /**
36
+ * Maximum `INLINE_FILTER` attributes per vector index (AWS quota, not
37
+ * adjustable). Not pre-checked: DynamoDB rejects an index over it, and the
38
+ * rejection is diagnosed against the request (#144).
39
+ */
29
40
  export const MAX_INLINE_FILTERS = 18;
30
- /** Maximum vector indexes per physical table. */
41
+ /**
42
+ * Vector indexes per physical table — AWS's DEFAULT quota, which AWS Support
43
+ * can raise. Not pre-checked: DynamoDB rejects a table over the account's
44
+ * quota, and the rejection is diagnosed against the request (#144).
45
+ */
31
46
  export const MAX_VECTOR_INDEXES_PER_TABLE = 5;
32
47
  // ---------------------------------------------------------------------------
33
48
  // Attribute naming — library-managed, mirrors the `__edd_e__` convention
@@ -173,23 +188,29 @@ export const deriveSourceText = (definition, record) => {
173
188
  */
174
189
  export const touchesSource = (definition, updatePayload) => definition.sourceFields.some((field) => field in updatePayload);
175
190
  // ---------------------------------------------------------------------------
176
- // Validation (EDD-903x)
191
+ // Validation (EDD-903x, EDD-9070)
177
192
  // ---------------------------------------------------------------------------
178
193
  /**
179
194
  * Validate an entity's vector index declarations at `Entity.make()` time.
180
195
  *
181
- * @throws on invalid configuration (EDD-903x).
196
+ * DynamoDB's own limits are not checked here (#144): dimensions outside
197
+ * 1..4096, too many `INLINE_FILTER` attributes or vector indexes are sent, and
198
+ * DynamoDB's rejection of the `CreateTable` / `UpdateTable` is diagnosed. A
199
+ * non-integer `dimensions` stays refused: DynamoDB reads an integer member
200
+ * leniently (DynamoDB Local truncates `2.9` to `2`), so it could be accepted as
201
+ * a different, immutable dimensionality.
202
+ *
203
+ * @throws on invalid configuration (EDD-903x, EDD-9070).
182
204
  */
183
205
  export const validateVectorIndexes = (params) => {
184
206
  const { entityType, definitions, validFields } = params;
185
207
  const sortedFields = () => [...validFields].sort().join(", ");
186
208
  const seenPhysical = new Map();
187
209
  for (const [logicalName, definition] of Object.entries(definitions)) {
188
- if (!Number.isInteger(definition.dimensions) ||
189
- definition.dimensions < MIN_DIMENSIONS ||
190
- definition.dimensions > MAX_DIMENSIONS) {
191
- throw new Error(`[EDD-9030] Entity "${entityType}": vector index "${logicalName}" has dimensions ` +
192
- `${definition.dimensions}. DynamoDB accepts an integer in ${MIN_DIMENSIONS}..${MAX_DIMENSIONS}.`);
210
+ if (!Number.isInteger(definition.dimensions)) {
211
+ throw new Error(`[EDD-9070] Entity "${entityType}": vector index "${logicalName}" has dimensions ` +
212
+ `${definition.dimensions}, which is not an integer. Declare the embedding's exact ` +
213
+ `dimensionality.`);
193
214
  }
194
215
  if (definition.sourceFields.length === 0) {
195
216
  throw new Error(`[EDD-9031] Entity "${entityType}": vector index "${logicalName}" declares no source.fields. ` +
@@ -206,11 +227,6 @@ export const validateVectorIndexes = (params) => {
206
227
  checkFields("source.fields", definition.sourceFields);
207
228
  checkFields("partition", definition.partition);
208
229
  checkFields("filters", definition.filters);
209
- if (definition.filters.length > MAX_INLINE_FILTERS) {
210
- throw new Error(`[EDD-9032] Entity "${entityType}": vector index "${logicalName}" declares ` +
211
- `${definition.filters.length} filters. DynamoDB allows at most ${MAX_INLINE_FILTERS} ` +
212
- `INLINE_FILTER attributes per vector index.`);
213
- }
214
230
  const duplicateFilter = definition.filters.find((field, i) => definition.filters.indexOf(field) !== i);
215
231
  if (duplicateFilter !== undefined) {
216
232
  throw new Error(`[EDD-9032] Entity "${entityType}": vector index "${logicalName}" lists filter ` +
@@ -224,17 +240,13 @@ export const validateVectorIndexes = (params) => {
224
240
  }
225
241
  seenPhysical.set(definition.index, logicalName);
226
242
  }
227
- if (seenPhysical.size > MAX_VECTOR_INDEXES_PER_TABLE) {
228
- throw new Error(`[EDD-9034] Entity "${entityType}" declares ${seenPhysical.size} vector indexes. ` +
229
- `DynamoDB allows at most ${MAX_VECTOR_INDEXES_PER_TABLE} per table.`);
230
- }
231
243
  };
232
244
  /**
233
245
  * Clamp a caller-supplied `TopK` into DynamoDB's accepted range.
234
246
  *
235
- * Clamping (rather than failing) mirrors how `.limit()` behaves elsewhere in the
236
- * library — an out-of-range K is a caller mistake with an obvious correct
237
- * interpretation, not a data-integrity problem.
247
+ * @deprecated No longer used by the library (#144): `.topK()` sends the value
248
+ * it is given, and DynamoDB's rejection of one outside 1..100 is diagnosed as
249
+ * a `ValidationError` naming it. Kept so existing imports compile.
238
250
  */
239
251
  export const clampTopK = (topK) => Math.min(MAX_TOP_K, Math.max(MIN_TOP_K, Math.floor(topK)));
240
252
  //# sourceMappingURL=VectorIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorIndex.js","sourceRoot":"","sources":["../src/VectorIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorIndex.js","sourceRoot":"","sources":["../src/VectorIndex.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,8 @@
18
18
  */
19
19
  export type { AggregateDefinition, BoundAggregate } from "./Aggregate.js";
20
20
  export * as Aggregate from "./Aggregate.js";
21
+ export type { CompressionCodec, CompressionRegistry, Compressor } from "./Compression.js";
22
+ export { Compression } from "./Compression.js";
21
23
  export * as DynamoModel from "./DynamoModel.js";
22
24
  export type { Casing, DynamoSchema as DynamoSchemaType } from "./DynamoSchema.js";
23
25
  export * as DynamoSchema from "./DynamoSchema.js";
@@ -25,7 +27,7 @@ export type { EmbedderService } from "./Embedder.js";
25
27
  export { Embedder } from "./Embedder.js";
26
28
  export type { AnyRefValue, EntityDefinition, EntityDefinition as EntityType, } from "./Entity.js";
27
29
  export * as Entity from "./Entity.js";
28
- export { AdditionalItemConditionFailed, AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, AppendTooLarge, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, ConcurrentModification, ConditionalCheckFailed, DeleteAppliedButUnreadable, DuplicateCommand, DynamoError, DynamoValidationError, EmbeddingError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, UpdateAppliedButUnreadable, ValidationError, VectorIndexBackfilling, VersionConflict, } from "./Errors.js";
30
+ export { AdditionalItemConditionFailed, AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, AppendTooLarge, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, CompressorNotRegistered, ConcurrentModification, ConditionalCheckFailed, DeleteAppliedButUnreadable, DuplicateCommand, DynamoError, DynamoValidationError, EmbeddingError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, UpdateAppliedButUnreadable, ValidationError, VectorIndexBackfilling, VersionConflict, } from "./Errors.js";
29
31
  export type { AppendInputType, AppendSuccess, EntityInputType, EntityKeyType, EntityRecordType, EntityRefInputType, EntityRefUpdateType, EntityUpdateType, IndexPkComposites, IndexPkInput, IndexSkComposites, ModelType, PrimaryKeyComposites, RefErrors, SystemFieldsType, VectorErrors, } from "./internal/EntityTypes.js";
30
32
  export type { GsiConfig, IndexDefinition, KeyPart } from "./KeyComposer.js";
31
33
  export * as KeyComposer from "./KeyComposer.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,IAAI,UAAU,GAC/B,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,YAAY,GACb,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,IAAI,UAAU,GAC/B,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,YAAY,GACb,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -17,11 +17,12 @@
17
17
  * Collection, Marshaller).
18
18
  */
19
19
  export * as Aggregate from "./Aggregate.js";
20
+ export { Compression } from "./Compression.js";
20
21
  export * as DynamoModel from "./DynamoModel.js";
21
22
  export * as DynamoSchema from "./DynamoSchema.js";
22
23
  export { Embedder } from "./Embedder.js";
23
24
  export * as Entity from "./Entity.js";
24
- export { AdditionalItemConditionFailed, AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, AppendTooLarge, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, ConcurrentModification, ConditionalCheckFailed, DeleteAppliedButUnreadable, DuplicateCommand, DynamoError, DynamoValidationError, EmbeddingError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, UpdateAppliedButUnreadable, ValidationError, VectorIndexBackfilling, VersionConflict, } from "./Errors.js";
25
+ export { AdditionalItemConditionFailed, AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, AppendTooLarge, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, CompressorNotRegistered, ConcurrentModification, ConditionalCheckFailed, DeleteAppliedButUnreadable, DuplicateCommand, DynamoError, DynamoValidationError, EmbeddingError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, UpdateAppliedButUnreadable, ValidationError, VectorIndexBackfilling, VersionConflict, } from "./Errors.js";
25
26
  export * as KeyComposer from "./KeyComposer.js";
26
27
  export * as Projection from "./Projection.js";
27
28
  export * as VectorIndex from "./VectorIndex.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,aAAa,CAAA;AAoBpB,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAU7C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,aAAa,CAAA;AAoBpB,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAU7C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
@@ -9,10 +9,10 @@
9
9
  * surfaced as a requirement.
10
10
  *
11
11
  * The implementation is a thin wrapper over the global Web Crypto API
12
- * (`globalThis.crypto`), available on Node 18+ and all modern browsers/edge
13
- * runtimes — NO new dependency. Consumers needing a platform-specific source
14
- * (e.g. `@effect/platform-node`) may override it via
15
- * `DynamoClient.make({ crypto })`.
12
+ * (`globalThis.crypto`), available on Node 19+ (Node 18 only with
13
+ * `--experimental-global-webcrypto`) and all modern browsers/edge runtimes —
14
+ * NO new dependency. Consumers needing a platform-specific source (e.g.
15
+ * `@effect/platform-node`) may override it via `DynamoClient.make({ crypto })`.
16
16
  */
17
17
  import { Crypto } from "effect";
18
18
  /**
@@ -9,10 +9,10 @@
9
9
  * surfaced as a requirement.
10
10
  *
11
11
  * The implementation is a thin wrapper over the global Web Crypto API
12
- * (`globalThis.crypto`), available on Node 18+ and all modern browsers/edge
13
- * runtimes — NO new dependency. Consumers needing a platform-specific source
14
- * (e.g. `@effect/platform-node`) may override it via
15
- * `DynamoClient.make({ crypto })`.
12
+ * (`globalThis.crypto`), available on Node 19+ (Node 18 only with
13
+ * `--experimental-global-webcrypto`) and all modern browsers/edge runtimes —
14
+ * NO new dependency. Consumers needing a platform-specific source (e.g.
15
+ * `@effect/platform-node`) may override it via `DynamoClient.make({ crypto })`.
16
16
  */
17
17
  import { Crypto, Effect, PlatformError } from "effect";
18
18
  /**
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @internal Packed entity fields (`storedAs: DynamoModel.Packed(...)`) —
3
+ * definition-time guards and the derived storage plan.
4
+ *
5
+ * Shared by the pure `Entity.make` (this package) and the runtime one
6
+ * (`effect-dynamodb`), through `buildEntityDefinition`. See
7
+ * `docs/designs/storage-encoding.md` §6.1 and `DESIGN.md §7 "Packed Storage"`.
8
+ *
9
+ * Guards (thrown as plain `Error`s at `Entity.make()`, like the sparse ones):
10
+ *
11
+ * - `[EDD-9073]` the packed field does not exist on the model, or its encoded
12
+ * side is not object- or array-shaped (a scalar, a date — so never a TTL
13
+ * attribute — binary, a set, or a union with such a member).
14
+ * - `[EDD-9072]` the packed field feeds a key or index attribute: a primary-key
15
+ * or secondary-index composite (collection-injected indexes are checked again
16
+ * when injected — {@link packedIndexRefusal}), `timeSeries.orderBy`, or a
17
+ * vector index partition / filter field.
18
+ * - `[EDD-9074]` a unique constraint names the packed field.
19
+ * - `[EDD-9075]` the packed field is a `DynamoModel.ref` field.
20
+ *
21
+ * Sparse + packed is impossible by construction: a field has one `storedAs`.
22
+ */
23
+ import type { Schema } from "effect";
24
+ import { type PackedConfig } from "../DynamoModel.js";
25
+ import type { IndexDefinition } from "../KeyComposer.js";
26
+ import type { VectorIndexConfig } from "../VectorIndex.js";
27
+ import type { TimeSeriesConfig, UniqueConfig } from "./EntityConfig.js";
28
+ /** The storage plan of an entity's packed fields. */
29
+ export interface PackedPlan {
30
+ /** Domain field name → config, for every field configured packed. */
31
+ readonly packedFields: Readonly<Record<string, PackedConfig>>;
32
+ /** Stored attribute name (after `field` renames) → config. */
33
+ readonly packedAttributes: Readonly<Record<string, PackedConfig>>;
34
+ /**
35
+ * Stored attribute names a reader dispatches on by stored form: every packed
36
+ * attribute, plus every non-sparse model field whose encoded side is
37
+ * object- or array-shaped (a native value of it is never `S` or `B`, so a
38
+ * value written while the field was packed still reads after it is not).
39
+ */
40
+ readonly dispatchAttributes: ReadonlyArray<string>;
41
+ readonly hasPackedFields: boolean;
42
+ }
43
+ /**
44
+ * Why a (possibly injected) index cannot be added to an entity with these
45
+ * packed fields, or `undefined`: one of its composites is packed (`[EDD-9072]`).
46
+ */
47
+ export declare const packedIndexRefusal: (entityType: string, packedFields: Readonly<Record<string, PackedConfig>>, indexName: string, def: IndexDefinition) => string | undefined;
48
+ /**
49
+ * Validate the packed fields of an entity definition and derive its
50
+ * {@link PackedPlan}. Throws on the first refusal (see the module header).
51
+ */
52
+ export declare const resolvePackedPlan: (args: {
53
+ readonly entityType: string;
54
+ readonly model: Schema.Top;
55
+ readonly packedFields: Readonly<Record<string, PackedConfig>>;
56
+ readonly sparseFields: Readonly<Record<string, unknown>>;
57
+ readonly modelFields: Readonly<Record<string, Schema.Top>>;
58
+ readonly indexes: Readonly<Record<string, IndexDefinition>>;
59
+ readonly unique: UniqueConfig | undefined;
60
+ readonly timeSeries: TimeSeriesConfig<any> | undefined;
61
+ readonly vectorIndexes: Readonly<Record<string, VectorIndexConfig>> | undefined;
62
+ readonly resolveDbName: (domainName: string) => string;
63
+ }) => PackedPlan;
64
+ //# sourceMappingURL=EntityPacked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityPacked.d.ts","sourceRoot":"","sources":["../../src/internal/EntityPacked.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIvE,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC7D,8DAA8D;IAC9D,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IACjE;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAClD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAClC;AAKD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,cAAc,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EACpD,WAAW,MAAM,EACjB,KAAK,eAAe,KACnB,MAAM,GAAG,SAYX,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC7D,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,GAAG,SAAS,CAAA;IAC/E,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;CACvD,KAAG,UA4FH,CAAA"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @internal Packed entity fields (`storedAs: DynamoModel.Packed(...)`) —
3
+ * definition-time guards and the derived storage plan.
4
+ *
5
+ * Shared by the pure `Entity.make` (this package) and the runtime one
6
+ * (`effect-dynamodb`), through `buildEntityDefinition`. See
7
+ * `docs/designs/storage-encoding.md` §6.1 and `DESIGN.md §7 "Packed Storage"`.
8
+ *
9
+ * Guards (thrown as plain `Error`s at `Entity.make()`, like the sparse ones):
10
+ *
11
+ * - `[EDD-9073]` the packed field does not exist on the model, or its encoded
12
+ * side is not object- or array-shaped (a scalar, a date — so never a TTL
13
+ * attribute — binary, a set, or a union with such a member).
14
+ * - `[EDD-9072]` the packed field feeds a key or index attribute: a primary-key
15
+ * or secondary-index composite (collection-injected indexes are checked again
16
+ * when injected — {@link packedIndexRefusal}), `timeSeries.orderBy`, or a
17
+ * vector index partition / filter field.
18
+ * - `[EDD-9074]` a unique constraint names the packed field.
19
+ * - `[EDD-9075]` the packed field is a `DynamoModel.ref` field.
20
+ *
21
+ * Sparse + packed is impossible by construction: a field has one `storedAs`.
22
+ */
23
+ import { isRefField } from "../DynamoModel.js";
24
+ import { resolveUniqueFields } from "./EntitySchemas.js";
25
+ import { isDispatchEligible, packedShape } from "./PackedCodec.js";
26
+ const refusal = (code, entityType, field, message) => new Error(`[${code}] Entity "${entityType}": packed field "${field}" ${message}`);
27
+ /**
28
+ * Why a (possibly injected) index cannot be added to an entity with these
29
+ * packed fields, or `undefined`: one of its composites is packed (`[EDD-9072]`).
30
+ */
31
+ export const packedIndexRefusal = (entityType, packedFields, indexName, def) => {
32
+ for (const attr of [...def.pk.composite, ...def.sk.composite]) {
33
+ if (attr in packedFields) {
34
+ return (`[EDD-9072] Entity "${entityType}": packed field "${attr}" cannot be a composite of ` +
35
+ `${indexName === "primary" ? "the primary key" : `index "${indexName}"`}. A packed value ` +
36
+ "is one opaque JSON string or compressed binary attribute; key composites must be " +
37
+ "scalar model values.");
38
+ }
39
+ }
40
+ return undefined;
41
+ };
42
+ /**
43
+ * Validate the packed fields of an entity definition and derive its
44
+ * {@link PackedPlan}. Throws on the first refusal (see the module header).
45
+ */
46
+ export const resolvePackedPlan = (args) => {
47
+ const { entityType, packedFields, modelFields } = args;
48
+ for (const [field] of Object.entries(packedFields)) {
49
+ const schema = modelFields[field];
50
+ if (schema === undefined) {
51
+ throw refusal("EDD-9073", entityType, field, `does not exist on the model. Valid model fields: ${Object.keys(modelFields).sort().join(", ")}`);
52
+ }
53
+ const shape = packedShape(schema);
54
+ if (shape._tag === "Refused") {
55
+ throw refusal("EDD-9073", entityType, field, `cannot be packed: ${shape.reason}. Packed storage holds object- or array-shaped JSON ` +
56
+ "(a scalar or date — including a TTL attribute — stays native).");
57
+ }
58
+ if (isRefField(field, args.model)) {
59
+ throw refusal("EDD-9075", entityType, field, "is a DynamoModel.ref field. A ref is a denormalised copy the library writes and " +
60
+ "cascades into; it stays a native map.");
61
+ }
62
+ for (const [indexName, def] of Object.entries(args.indexes)) {
63
+ const refused = packedIndexRefusal(entityType, packedFields, indexName, def);
64
+ if (refused !== undefined && [...def.pk.composite, ...def.sk.composite].includes(field)) {
65
+ throw new Error(refused);
66
+ }
67
+ }
68
+ if (args.timeSeries?.orderBy === field) {
69
+ throw refusal("EDD-9072", entityType, field, "cannot be timeSeries.orderBy: the event clock is compared by DynamoDB (CAS) and " +
70
+ "composed into the event sort key.");
71
+ }
72
+ for (const [name, vector] of Object.entries(args.vectorIndexes ?? {})) {
73
+ if ((vector.partition ?? []).includes(field)) {
74
+ throw refusal("EDD-9072", entityType, field, `cannot be a partition composite of vector index "${name}".`);
75
+ }
76
+ if ((vector.filters ?? []).includes(field)) {
77
+ throw refusal("EDD-9072", entityType, field, `cannot be a filter field of vector index "${name}": DynamoDB filters on the stored value.`);
78
+ }
79
+ }
80
+ for (const [constraint, def] of Object.entries(args.unique ?? {})) {
81
+ if (resolveUniqueFields(def).includes(field)) {
82
+ throw refusal("EDD-9074", entityType, field, `cannot be named by unique constraint "${constraint}": its sentinel is composed from ` +
83
+ "scalar field values.");
84
+ }
85
+ }
86
+ }
87
+ const packedAttributes = {};
88
+ for (const [field, config] of Object.entries(packedFields)) {
89
+ packedAttributes[args.resolveDbName(field)] = config;
90
+ }
91
+ const dispatch = new Set(Object.keys(packedAttributes));
92
+ for (const [field, schema] of Object.entries(modelFields)) {
93
+ if (field in args.sparseFields)
94
+ continue;
95
+ if (isDispatchEligible(schema))
96
+ dispatch.add(args.resolveDbName(field));
97
+ }
98
+ return {
99
+ packedFields,
100
+ packedAttributes,
101
+ dispatchAttributes: [...dispatch],
102
+ hasPackedFields: Object.keys(packedFields).length > 0,
103
+ };
104
+ };
105
+ //# sourceMappingURL=EntityPacked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityPacked.js","sourceRoot":"","sources":["../../src/internal/EntityPacked.ts"],"names":[],"mappings":"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"}