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
@@ -8,9 +8,10 @@
8
8
  * @module
9
9
  */
10
10
  import type { BatchGetItemCommandInput, BatchGetItemCommandOutput, BatchWriteItemCommandInput, BatchWriteItemCommandOutput, CreateBackupCommandInput, CreateBackupCommandOutput, CreateTableCommandInput, CreateTableCommandOutput, DeleteBackupCommandInput, DeleteBackupCommandOutput, DeleteItemCommandInput, DeleteItemCommandOutput, DeleteTableCommandInput, DeleteTableCommandOutput, DescribeContinuousBackupsCommandInput, DescribeContinuousBackupsCommandOutput, DescribeExportCommandInput, DescribeExportCommandOutput, DescribeTableCommandInput, DescribeTableCommandOutput, DescribeTimeToLiveCommandInput, DescribeTimeToLiveCommandOutput, ExportTableToPointInTimeCommandInput, ExportTableToPointInTimeCommandOutput, GetItemCommandInput, GetItemCommandOutput, ListBackupsCommandInput, ListBackupsCommandOutput, ListTablesCommandInput, ListTablesCommandOutput, ListTagsOfResourceCommandInput, ListTagsOfResourceCommandOutput, PutItemCommandInput, PutItemCommandOutput, QueryCommandInput, QueryCommandOutput, RestoreTableFromBackupCommandInput, RestoreTableFromBackupCommandOutput, RestoreTableToPointInTimeCommandInput, RestoreTableToPointInTimeCommandOutput, ScanCommandInput, ScanCommandOutput, SearchVectorsCommandInput, SearchVectorsCommandOutput, TagResourceCommandInput, TagResourceCommandOutput, TransactGetItemsCommandInput, TransactGetItemsCommandOutput, TransactWriteItemsCommandInput, TransactWriteItemsCommandOutput, UntagResourceCommandInput, UntagResourceCommandOutput, UpdateContinuousBackupsCommandInput, UpdateContinuousBackupsCommandOutput, UpdateItemCommandInput, UpdateItemCommandOutput, UpdateTableCommandInput, UpdateTableCommandOutput, UpdateTimeToLiveCommandInput, UpdateTimeToLiveCommandOutput } from "@aws-sdk/client-dynamodb";
11
+ import { Compression, type Compressor } from "@effect-dynamodb/schema/Compression.js";
11
12
  import type { EmbedderService } from "@effect-dynamodb/schema/Embedder.js";
12
13
  import type { EntityDefinition } from "@effect-dynamodb/schema/Entity.js";
13
- import { DynamoError, DynamoValidationError, InternalServerError, ResourceNotFoundError, ThrottlingError } from "@effect-dynamodb/schema/Errors.js";
14
+ import { DynamoError, DynamoValidationError, InternalServerError, ResourceNotFoundError, ThrottlingError, ValidationError } from "@effect-dynamodb/schema/Errors.js";
14
15
  import type { EntityKeyType, IndexPkInput, IndexSkFields } from "@effect-dynamodb/schema/internal/EntityTypes.js";
15
16
  import type { IndexDefinition } from "@effect-dynamodb/schema/KeyComposer.js";
16
17
  import type { VectorIndexConfig } from "@effect-dynamodb/schema/VectorIndex.js";
@@ -18,6 +19,7 @@ import { Config, Context, Crypto, Duration, Effect, Layer, type Schema, type Str
18
19
  import type { Aggregate as AggregateType, BoundAggregate } from "./Aggregate.js";
19
20
  import type { BoundEntity, Entity as EntityType } from "./Entity.js";
20
21
  import { type BoundVectorQuery } from "./internal/BoundVectorQuery.js";
22
+ import { type PathModel } from "./internal/PathBuilder.js";
21
23
  import type { CreateTableOptions, TableConfig } from "./Table.js";
22
24
  /** Union of all DynamoDB client error types */
23
25
  export type DynamoClientError = DynamoError | ThrottlingError | DynamoValidationError | InternalServerError | ResourceNotFoundError;
@@ -97,6 +99,24 @@ export interface DynamoClientService {
97
99
  /** List tags on a DynamoDB resource. */
98
100
  readonly listTagsOfResource: (input: ListTagsOfResourceCommandInput) => Effect.Effect<ListTagsOfResourceCommandOutput, DynamoClientError>;
99
101
  }
102
+ /** Static client configuration accepted by {@link DynamoClient.layer}. */
103
+ type ClientConfig = {
104
+ readonly region: string;
105
+ readonly endpoint?: string | undefined;
106
+ readonly credentials?: {
107
+ readonly accessKeyId: string;
108
+ readonly secretAccessKey: string;
109
+ } | undefined;
110
+ };
111
+ /** Config-provider client configuration accepted by {@link DynamoClient.layerConfig}. */
112
+ type ClientConfigFromConfig = {
113
+ readonly region: Config.Config<string>;
114
+ readonly endpoint?: Config.Config<string> | undefined;
115
+ readonly credentials?: Config.Config<{
116
+ readonly accessKeyId: string;
117
+ readonly secretAccessKey: string;
118
+ }> | undefined;
119
+ };
100
120
  declare const DynamoClient_base: Context.ServiceClass<DynamoClient, "@effect-dynamodb/DynamoClient", DynamoClientService>;
101
121
  /**
102
122
  * Effect Context.Service for the DynamoDB client service.
@@ -117,15 +137,37 @@ export declare class DynamoClient extends DynamoClient_base {
117
137
  * @param config.region - AWS region
118
138
  * @param config.endpoint - Optional endpoint override (e.g., for DynamoDB Local)
119
139
  * @param config.credentials - Optional static credentials
140
+ * @param config.compressors - Optional compressors for packed storage
141
+ * (`DynamoModel.Packed` with `compression`). When given, the layer also
142
+ * provides the `Compression` service built from them. That reaches whatever
143
+ * this layer is merged with — but not past a wrapper that consumes it
144
+ * through `Layer.provide` (a decorated client, say), whose output is only
145
+ * `DynamoClient`. Prefer a separate `Compression.layer([...])` merged into
146
+ * the application layer, which works however the client is composed.
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * import * as ZlibCompression from "effect-dynamodb/compression/zlib"
151
+ * // Recommended: the compressors as their own layer, beside the client
152
+ * const AppLayer = Layer.mergeAll(
153
+ * DynamoClient.layer({ region: "us-east-1" }),
154
+ * Compression.layer([ZlibCompression.zstd()]),
155
+ * )
156
+ * // Also works, when this layer is used directly:
157
+ * const live = DynamoClient.layer({ region: "us-east-1", compressors: [ZlibCompression.zstd()] })
158
+ * ```
120
159
  */
121
- static readonly layer: (config: {
122
- readonly region: string;
123
- readonly endpoint?: string | undefined;
124
- readonly credentials?: {
125
- readonly accessKeyId: string;
126
- readonly secretAccessKey: string;
127
- } | undefined;
128
- }) => Layer.Layer<DynamoClient>;
160
+ static readonly layer: {
161
+ (config: ClientConfig & {
162
+ readonly compressors: ReadonlyArray<Compressor>;
163
+ }): Layer.Layer<DynamoClient | Compression>;
164
+ (config: ClientConfig & {
165
+ readonly compressors?: undefined;
166
+ }): Layer.Layer<DynamoClient>;
167
+ (config: ClientConfig & {
168
+ readonly compressors?: ReadonlyArray<Compressor> | undefined;
169
+ }): Layer.Layer<DynamoClient>;
170
+ };
129
171
  /**
130
172
  * Create a live Layer that reads configuration from Effect Config providers
131
173
  * (e.g., environment variables, config files).
@@ -133,15 +175,21 @@ export declare class DynamoClient extends DynamoClient_base {
133
175
  * @param config.region - Config for AWS region
134
176
  * @param config.endpoint - Optional Config for endpoint override
135
177
  * @param config.credentials - Optional Config for static credentials
178
+ * @param config.compressors - Optional compressors for packed storage; when
179
+ * given, the layer also provides the `Compression` service (see {@link layer}
180
+ * for why a separate `Compression.layer([...])` is the recommended form).
136
181
  */
137
- static readonly layerConfig: (config: {
138
- readonly region: Config.Config<string>;
139
- readonly endpoint?: Config.Config<string> | undefined;
140
- readonly credentials?: Config.Config<{
141
- readonly accessKeyId: string;
142
- readonly secretAccessKey: string;
143
- }> | undefined;
144
- }) => Layer.Layer<DynamoClient, Config.ConfigError>;
182
+ static readonly layerConfig: {
183
+ (config: ClientConfigFromConfig & {
184
+ readonly compressors: ReadonlyArray<Compressor>;
185
+ }): Layer.Layer<DynamoClient | Compression, Config.ConfigError>;
186
+ (config: ClientConfigFromConfig & {
187
+ readonly compressors?: undefined;
188
+ }): Layer.Layer<DynamoClient, Config.ConfigError>;
189
+ (config: ClientConfigFromConfig & {
190
+ readonly compressors?: ReadonlyArray<Compressor> | undefined;
191
+ }): Layer.Layer<DynamoClient, Config.ConfigError>;
192
+ };
145
193
  /**
146
194
  * Create a typed client gateway from entities, aggregates, and (optionally) tables.
147
195
  *
@@ -172,6 +220,7 @@ export declare class DynamoClient extends DynamoClient_base {
172
220
  readonly tables: TTables;
173
221
  readonly crypto?: Crypto.Crypto;
174
222
  readonly embedder?: EmbedderService;
223
+ readonly compressors?: ReadonlyArray<Compressor>;
175
224
  }): Effect.Effect<TypedClient<TEntities, TAggregates, TTables>, never, DynamoClient | TableConfig>;
176
225
  <TEntities extends Record<string, {
177
226
  readonly _tag: "Entity";
@@ -180,6 +229,7 @@ export declare class DynamoClient extends DynamoClient_base {
180
229
  readonly aggregates: TAggregates;
181
230
  readonly crypto?: Crypto.Crypto;
182
231
  readonly embedder?: EmbedderService;
232
+ readonly compressors?: ReadonlyArray<Compressor>;
183
233
  }): Effect.Effect<TypedClient<TEntities, TAggregates, Record<string, TableLike>>, never, DynamoClient | TableConfig>;
184
234
  <TEntities extends Record<string, {
185
235
  readonly _tag: "Entity";
@@ -188,6 +238,7 @@ export declare class DynamoClient extends DynamoClient_base {
188
238
  readonly tables: TTables;
189
239
  readonly crypto?: Crypto.Crypto;
190
240
  readonly embedder?: EmbedderService;
241
+ readonly compressors?: ReadonlyArray<Compressor>;
191
242
  }): Effect.Effect<TypedClient<TEntities, Record<string, never>, TTables>, never, DynamoClient | TableConfig>;
192
243
  <TEntities extends Record<string, {
193
244
  readonly _tag: "Entity";
@@ -195,6 +246,7 @@ export declare class DynamoClient extends DynamoClient_base {
195
246
  readonly entities: TEntities;
196
247
  readonly crypto?: Crypto.Crypto;
197
248
  readonly embedder?: EmbedderService;
249
+ readonly compressors?: ReadonlyArray<Compressor>;
198
250
  }): Effect.Effect<TypedClient<TEntities, Record<string, never>, Record<string, TableLike>>, never, DynamoClient | TableConfig>;
199
251
  };
200
252
  }
@@ -229,16 +281,16 @@ export type CollectionSelected<TResult> = {
229
281
  */
230
282
  export interface CollectionQuery<TResult> {
231
283
  /** Execute and collect all pages into a grouped result. */
232
- readonly collect: () => Effect.Effect<TResult, DynamoClientError | import("@effect-dynamodb/schema/Errors.js").ValidationError, never>;
284
+ readonly collect: () => Effect.Effect<TResult, DynamoClientError | ValidationError, never>;
233
285
  /** Execute a single page, grouped like `collect()`. */
234
286
  readonly fetch: () => Effect.Effect<{
235
287
  items: TResult;
236
288
  cursor: string | null;
237
- }, DynamoClientError | import("@effect-dynamodb/schema/Errors.js").ValidationError, never>;
289
+ }, DynamoClientError | ValidationError, never>;
238
290
  /** Stream every item, page by page, each tagged with its member. */
239
- readonly paginate: () => Stream.Stream<CollectionStreamItem<TResult>, DynamoClientError | import("@effect-dynamodb/schema/Errors.js").ValidationError, never>;
291
+ readonly paginate: () => Stream.Stream<CollectionStreamItem<TResult>, DynamoClientError | ValidationError, never>;
240
292
  /** Count the members' items (every member's, together). */
241
- readonly count: () => Effect.Effect<number, DynamoClientError | import("@effect-dynamodb/schema/Errors.js").ValidationError, never>;
293
+ readonly count: () => Effect.Effect<number, DynamoClientError | ValidationError, never>;
242
294
  /**
243
295
  * Project attributes — by domain name, per member: each member's items come
244
296
  * back as partial records under its key.
@@ -293,13 +345,13 @@ export type TypedClient<TEntities extends Record<string, {
293
345
  * entities at bind time, so the type and runtime agree.
294
346
  */
295
347
  readonly entities: {
296
- readonly [K in keyof TEntities]: TEntities[K] extends EntityType<infer M, any, infer I, infer Ts, infer V, any, any, infer R, any, infer TS, infer GenId, infer VI> ? Resolve<BoundEntity<M, I, R, ResolveKey<M, I>, TS, Ts, V, GenId, VI> & {
348
+ readonly [K in keyof TEntities]: TEntities[K] extends EntityType<infer M, any, infer I, infer Ts, infer V, any, any, infer R, any, infer TS, infer GenId, infer VI, infer P> ? Resolve<BoundEntity<M, I, R, ResolveKey<M, I>, TS, Ts, V, GenId, VI, P> & {
297
349
  /** Scan this entity. Returns a BoundQuery for building scan queries. */
298
- readonly scan: () => import("./internal/BoundQuery.js").BoundQuery<Schema.Schema.Type<M>, never, Schema.Schema.Type<M>>;
299
- } & EntityIndexAccessors<M, I, R> & EntityVectorAccessors<M, VI>> : TEntities[K] extends EntityDefinition<infer M, any, infer I, infer Ts, infer V, any, any, infer R, any, infer TS, infer GenId, infer VI> ? Resolve<BoundEntity<M, I, R, ResolveKey<M, I>, TS, Ts, V, GenId, VI> & {
350
+ readonly scan: () => import("./internal/BoundQuery.js").BoundQuery<PathModel<Schema.Schema.Type<M>, P>, never, Schema.Schema.Type<M>>;
351
+ } & EntityIndexAccessors<M, I, R, P> & EntityVectorAccessors<M, VI>> : TEntities[K] extends EntityDefinition<infer M, any, infer I, infer Ts, infer V, any, any, infer R, any, infer TS, infer GenId, infer VI, infer P> ? Resolve<BoundEntity<M, I, R, ResolveKey<M, I>, TS, Ts, V, GenId, VI, P> & {
300
352
  /** Scan this entity. Returns a BoundQuery for building scan queries. */
301
- readonly scan: () => import("./internal/BoundQuery.js").BoundQuery<Schema.Schema.Type<M>, never, Schema.Schema.Type<M>>;
302
- } & EntityIndexAccessors<M, I, R> & EntityVectorAccessors<M, VI>> : never;
353
+ readonly scan: () => import("./internal/BoundQuery.js").BoundQuery<PathModel<Schema.Schema.Type<M>, P>, never, Schema.Schema.Type<M>>;
354
+ } & EntityIndexAccessors<M, I, R, P> & EntityVectorAccessors<M, VI>> : never;
303
355
  };
304
356
  /** Bound aggregates with CRUD + list operations (R = never). */
305
357
  readonly aggregates: {
@@ -357,8 +409,8 @@ type ResolveSkFields<M extends Schema.Top, I, K extends keyof I, Provided, R = u
357
409
  * Generic over provided input — `.where()` only exposes SK composites NOT already provided.
358
410
  * `R` (refs) lets ref-derived composite names (e.g. `playerId`) resolve to their
359
411
  * branded identifier types instead of being silently dropped. */
360
- type EntityIndexAccessors<M extends Schema.Top, I extends Record<string, IndexDefinition>, R = undefined> = {
361
- readonly [K in keyof I & string]: <Provided extends IndexPkInput<M, I, K, R>>(composites: Provided) => import("./internal/BoundQuery.js").BoundQuery<Schema.Schema.Type<M>, ResolveSkFields<M, I, K, Provided, R>, Schema.Schema.Type<M>>;
412
+ type EntityIndexAccessors<M extends Schema.Top, I extends Record<string, IndexDefinition>, R = undefined, P extends string = never> = {
413
+ readonly [K in keyof I & string]: <Provided extends IndexPkInput<M, I, K, R>>(composites: Provided) => import("./internal/BoundQuery.js").BoundQuery<PathModel<Schema.Schema.Type<M>, P>, ResolveSkFields<M, I, K, Provided, R>, Schema.Schema.Type<M>>;
362
414
  };
363
415
  /**
364
416
  * Partition composites a vector index accessor requires.
@@ -1 +1 @@
1
- {"version":3,"file":"DynamoClient.d.ts","sourceRoot":"","sources":["../src/DynamoClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,qCAAqC,EACrC,sCAAsC,EACtC,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,qCAAqC,EACrC,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kCAAkC,EAClC,mCAAmC,EACnC,qCAAqC,EACrC,sCAAsC,EACtC,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,mCAAmC,EACnC,oCAAoC,EACpC,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,0BAA0B,CAAA;AAmCjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAE1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EAKnB,qBAAqB,EACrB,eAAe,EAEhB,MAAM,mCAAmC,CAAA;AAO1C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,iDAAiD,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAE7E,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EAEL,KAAK,MAAM,EACX,KAAK,MAAM,EACZ,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AASpE,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,gCAAgC,CAAA;AAIvC,OAAO,KAAK,EAAE,kBAAkB,EAAS,WAAW,EAAE,MAAM,YAAY,CAAA;AAyExE,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,CAAA;AAEzB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAE/D,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAE/D,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,yBAAyB,KAC7B,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAA;IAEjE,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,CAChB,KAAK,EAAE,mBAAmB,KACvB,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAE3D,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,CAChB,KAAK,EAAE,mBAAmB,KACvB,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAE3D,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,sBAAsB,KAC1B,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAA;IAE9D,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,sBAAsB,KAC1B,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAA;IAE9D,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;IAElG,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;IAE/F;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,yBAAyB,KAC7B,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAA;IAEjE,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,wBAAwB,KAC5B,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAA;IAEhE,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,0BAA0B,KAC9B,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,CAAA;IAElE,oDAAoD;IACpD,QAAQ,CAAC,gBAAgB,EAAE,CACzB,KAAK,EAAE,4BAA4B,KAChC,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAA;IAEpE,oEAAoE;IACpE,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,KAAK,EAAE,8BAA8B,KAClC,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,CAAA;IAItE,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAE/D,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,sBAAsB,KAC1B,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAA;IAI9D,kCAAkC;IAClC,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,wBAAwB,KAC5B,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAA;IAEhE,uBAAuB;IACvB,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,wBAAwB,KAC5B,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAA;IAEhE,oBAAoB;IACpB,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAE/D,qCAAqC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,CAC/B,KAAK,EAAE,kCAAkC,KACtC,MAAM,CAAC,MAAM,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,CAAA;IAI1E,mDAAmD;IACnD,QAAQ,CAAC,yBAAyB,EAAE,CAClC,KAAK,EAAE,qCAAqC,KACzC,MAAM,CAAC,MAAM,CAAC,sCAAsC,EAAE,iBAAiB,CAAC,CAAA;IAE7E,8BAA8B;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,CAChC,KAAK,EAAE,mCAAmC,KACvC,MAAM,CAAC,MAAM,CAAC,oCAAoC,EAAE,iBAAiB,CAAC,CAAA;IAE3E,0CAA0C;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,CAClC,KAAK,EAAE,qCAAqC,KACzC,MAAM,CAAC,MAAM,CAAC,sCAAsC,EAAE,iBAAiB,CAAC,CAAA;IAI7E,mDAAmD;IACnD,QAAQ,CAAC,wBAAwB,EAAE,CACjC,KAAK,EAAE,oCAAoC,KACxC,MAAM,CAAC,MAAM,CAAC,qCAAqC,EAAE,iBAAiB,CAAC,CAAA;IAE5E,0BAA0B;IAC1B,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,0BAA0B,KAC9B,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,CAAA;IAIlE,uCAAuC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,CACzB,KAAK,EAAE,4BAA4B,KAChC,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAA;IAEpE,yCAAyC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,KAAK,EAAE,8BAA8B,KAClC,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,CAAA;IAItE,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAE/D,4CAA4C;IAC5C,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,yBAAyB,KAC7B,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAA;IAEjE,wCAAwC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,KAAK,EAAE,8BAA8B,KAClC,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,CAAA;CACvE;;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,iBAEjC;IACC;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAI,QAAQ;QAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACtC,QAAQ,CAAC,WAAW,CAAC,EACjB;YAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;SAAE,GAClE,SAAS,CAAA;KACd,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CACiE;IAE9F;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAI,QAAQ;QACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;QACrD,QAAQ,CAAC,WAAW,CAAC,EACjB,MAAM,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC,GACjF,SAAS,CAAA;KACd,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAe9C;IAEH;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,CACE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAC,EAC7D,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAChE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACzC,MAAM,EAAE;YACR,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;YAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;YAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;YACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;SACpC,GAAG,MAAM,CAAC,MAAM,CACf,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAC5C,KAAK,EACL,YAAY,GAAG,WAAW,CAC3B,CAAA;QAED,CACE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAC,EAC7D,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAChE,MAAM,EAAE;YACR,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;YAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;YAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;SACpC,GAAG,MAAM,CAAC,MAAM,CACf,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAC9D,KAAK,EACL,YAAY,GAAG,WAAW,CAC3B,CAAA;QAED,CACE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAC,EAC7D,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACzC,MAAM,EAAE;YACR,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;YAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;YACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;SACpC,GAAG,MAAM,CAAC,MAAM,CACf,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EACtD,KAAK,EACL,YAAY,GAAG,WAAW,CAC3B,CAAA;QAED,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAC,EAAE,MAAM,EAAE;YACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;YAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;SACpC,GAAG,MAAM,CAAC,MAAM,CACf,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,KAAK,EACL,YAAY,GAAG,WAAW,CAC3B,CAAA;KACF,CAA+C;CACjD;AAMD,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,yCAAyC,EAAE,YAAY,CAAA;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;CACxD;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI;IAC1C,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG;QAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QAClB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;KACvE;CACF,CAAC,MAAM,OAAO,CAAC,CAAA;AAEhB,gFAAgF;AAChF,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI;IACxC,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9D,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO;IACtC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CACnC,OAAO,EACP,iBAAiB,GAAG,OAAO,mCAAmC,EAAE,eAAe,EAC/E,KAAK,CACN,CAAA;IACD,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,CACjC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EACzC,iBAAiB,GAAG,OAAO,mCAAmC,EAAE,eAAe,EAC/E,KAAK,CACN,CAAA;IACD,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CACpC,oBAAoB,CAAC,OAAO,CAAC,EAC7B,iBAAiB,GAAG,OAAO,mCAAmC,EAAE,eAAe,EAC/E,KAAK,CACN,CAAA;IACD,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,CACjC,MAAM,EACN,iBAAiB,GAAG,OAAO,mCAAmC,EAAE,eAAe,EAC/E,KAAK,CACN,CAAA;IACD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CACf,UAAU,EACN,aAAa,CAAC,MAAM,CAAC,GACrB,CAAC,CACC,CAAC,EAAE,OAAO,2BAA2B,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KACxE,aAAa,CAAC,OAAO,2BAA2B,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KACjF,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;IACjD,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE;QACf,CACE,EAAE,EAAE,CACF,CAAC,EAAE,OAAO,2BAA2B,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAC3E,GAAG,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAC,OAAO,CAAC,KACpD,OAAO,oBAAoB,EAAE,IAAI,GACrC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC,SAAS,EAAE,OAAO,oBAAoB,EAAE,kBAAkB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;KACvF,CAAA;IACD,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC,OAAO,CAAC,CAAA;IACvD,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC,OAAO,CAAC,CAAA;IAC1D,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;IAChD,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,eAAe,CAAC,OAAO,CAAC,CAAA;IAChE,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC,OAAO,CAAC,CAAA;IAC1D;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;IACvD;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;CACzD;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,CACrB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EAC7D,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxF,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IACnE;IACF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,EAAE,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,UAAU,CAC9D,MAAM,CAAC,EACP,GAAG,EACH,MAAM,CAAC,EACP,MAAM,EAAE,EACR,MAAM,CAAC,EACP,GAAG,EACH,GAAG,EACH,MAAM,CAAC,EACP,GAAG,EACH,MAAM,EAAE,EACR,MAAM,KAAK,EACX,MAAM,EAAE,CACT,GACG,OAAO,CACL,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG;YAC7D,wEAAwE;YACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,0BAA0B,EAAE,UAAU,CAChE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,CAAA;SACF,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC/B,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAC/B,GACD,SAAS,CAAC,CAAC,CAAC,SAAS,gBAAgB,CACjC,MAAM,CAAC,EACP,GAAG,EACH,MAAM,CAAC,EACP,MAAM,EAAE,EACR,MAAM,CAAC,EACP,GAAG,EACH,GAAG,EACH,MAAM,CAAC,EACP,GAAG,EACH,MAAM,EAAE,EACR,MAAM,KAAK,EACX,MAAM,EAAE,CACT,GACD,OAAO,CACL,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG;YAC7D,wEAAwE;YACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,0BAA0B,EAAE,UAAU,CAChE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,CAAA;SACF,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC/B,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAC/B,GACD,KAAK;KACZ,CAAA;IAED,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,EAAE,CAAC,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,aAAa,CACrE,MAAM,CAAC,EACP,MAAM,IAAI,EACV,MAAM,MAAM,CACb,GACG,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAC/B,KAAK;KACV,CAAA;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,eAAe,CAAC,GAAG,CAAC,CAAA;KACpF,CAAA;IAED,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,eAAe;KAC/C,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,cAAc,EAAE,MAAM,GAAG,CACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;CAChD;AAED,wGAAwG;AACxG,KAAK,OAAO,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAE1C;oEACoE;AACpE,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,IACrC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAA;AAExE;;;;;;;;;;;GAWG;AACH,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,IACtF,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,QAAQ,CAAC,SAAS,MAAM,EAAE,GAC5D,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GACxB,KAAK,GACL;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAAE,GACrC,KAAK,CAAA;AAEX;;;iEAGiE;AACjE,KAAK,oBAAoB,CACvB,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,CAAC,GAAG,SAAS,IACX;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1E,UAAU,EAAE,QAAQ,KACjB,OAAO,0BAA0B,EAAE,UAAU,CAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB;CACF,CAAA;AAED;;;;;;;GAOG;AACH,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;IAC7D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CAC3C,GACG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACjB,KAAK,GACL;IAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC/E,KAAK,CAAA;AAET;;;;;;GAMG;AACH,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,CAAA;CAAE,GAC7F,CAAC,GACD,KAAK,CAAA;AAET;;;;GAIG;AACH,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,EAAE,IACjD,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GACxC;IACE,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG,CACjC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,KAClC,gBAAgB,CACnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,oBAAoB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAC9B,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB;CACF,GAAG;IACF;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE;QAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1C,KAAK,MAAM,CAAC,MAAM,CACjB,MAAM,EACJ,iBAAiB,GACjB,OAAO,mCAAmC,EAAE,eAAe,GAC3D,OAAO,mCAAmC,EAAE,cAAc,EAC5D,KAAK,CACN,CAAA;CACF,GACD,EAAE,CAAA;AAER;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACzF,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAC7D,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAA;IACrF,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,KAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAC3C,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAA;IAC9F,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IACtF,6BAA6B;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,CAAA;IAC1E,qCAAqC;IACrC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAChF,sCAAsC;IACtC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACjF,kCAAkC;IAClC,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,SAAS,EAAE,IAAI,KACZ,MAAM,CAAC,MAAM,CAAC,sCAAsC,EAAE,iBAAiB,CAAC,CAAA;IAC7E,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,KAAK,CAAA;KAAE,KACtF,MAAM,CAAC,MAAM,CAAC,qCAAqC,EAAE,iBAAiB,CAAC,CAAA;IAC5E,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACrF,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACtF,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,CAAA;IAC7F,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACtF,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAC1F,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,CAAA;IAItF;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAEtF,8DAA8D;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAEzF;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;QAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;KAC9C,KACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;CAC5C"}
1
+ {"version":3,"file":"DynamoClient.d.ts","sourceRoot":"","sources":["../src/DynamoClient.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  * @module
9
9
  */
10
10
  import { BatchGetItemCommand, BatchWriteItemCommand, CreateBackupCommand, CreateTableCommand, DeleteBackupCommand, DeleteItemCommand, DeleteTableCommand, DescribeContinuousBackupsCommand, DescribeExportCommand, DescribeTableCommand, DescribeTimeToLiveCommand, DynamoDBClient, ExportTableToPointInTimeCommand, GetItemCommand, ListBackupsCommand, ListTablesCommand, ListTagsOfResourceCommand, PutItemCommand, QueryCommand, RestoreTableFromBackupCommand, RestoreTableToPointInTimeCommand, ScanCommand, SearchVectorsCommand, TagResourceCommand, TransactGetItemsCommand, TransactWriteItemsCommand, UntagResourceCommand, UpdateContinuousBackupsCommand, UpdateItemCommand, UpdateTableCommand, UpdateTimeToLiveCommand, } from "@aws-sdk/client-dynamodb";
11
+ import { Compression, make as makeCompressionRegistry, } from "@effect-dynamodb/schema/Compression.js";
11
12
  import * as DynamoSchema from "@effect-dynamodb/schema/DynamoSchema.js";
12
13
  import { Embedder } from "@effect-dynamodb/schema/Embedder.js";
13
14
  import { DynamoError, DynamoValidationError, InternalServerError, isAwsInternalServerError, isAwsResourceNotFound, isAwsThrottling, isAwsValidationError, ResourceNotFoundError, ThrottlingError, ValidationError, } from "@effect-dynamodb/schema/Errors.js";
@@ -20,7 +21,9 @@ import { bind as entityBind, fromDefinition as entityFromDefinition } from "./En
20
21
  import { BoundQueryImpl, collectionNaming, entityNaming, } from "./internal/BoundQuery.js";
21
22
  import { makeBoundVectorQuery, } from "./internal/BoundVectorQuery.js";
22
23
  import { createConditionOps } from "./internal/Expr.js";
24
+ import { codecRequirements, collectionPackedQueryOptions, entityPackedQueryOptions, unregisteredCodecError, } from "./internal/Packed.js";
23
25
  import { createPathBuilder } from "./internal/PathBuilder.js";
26
+ import { diagnoseFailure, explainDiagnosis, withCause, } from "./internal/WriteDiagnosis.js";
24
27
  import * as Query from "./Query.js";
25
28
  import { mergeVectorIndexes, definition as tableDefinition, toVectorIndexSpec } from "./Table.js";
26
29
  /**
@@ -81,6 +84,13 @@ const assertCollectionKeyFormAgreement = (collName, members) => {
81
84
  }
82
85
  }
83
86
  };
87
+ /**
88
+ * Add the `Compression` service built from `compressors` beside a client
89
+ * layer. The registry is validated (EDD-9078) when the layer is constructed.
90
+ */
91
+ const withCompressors = (client, compressors) => compressors === undefined
92
+ ? client
93
+ : Layer.merge(client, Layer.succeed(Compression, makeCompressionRegistry(compressors)));
84
94
  /**
85
95
  * Effect Context.Service for the DynamoDB client service.
86
96
  *
@@ -100,8 +110,27 @@ export class DynamoClient extends Context.Service()("@effect-dynamodb/DynamoClie
100
110
  * @param config.region - AWS region
101
111
  * @param config.endpoint - Optional endpoint override (e.g., for DynamoDB Local)
102
112
  * @param config.credentials - Optional static credentials
113
+ * @param config.compressors - Optional compressors for packed storage
114
+ * (`DynamoModel.Packed` with `compression`). When given, the layer also
115
+ * provides the `Compression` service built from them. That reaches whatever
116
+ * this layer is merged with — but not past a wrapper that consumes it
117
+ * through `Layer.provide` (a decorated client, say), whose output is only
118
+ * `DynamoClient`. Prefer a separate `Compression.layer([...])` merged into
119
+ * the application layer, which works however the client is composed.
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * import * as ZlibCompression from "effect-dynamodb/compression/zlib"
124
+ * // Recommended: the compressors as their own layer, beside the client
125
+ * const AppLayer = Layer.mergeAll(
126
+ * DynamoClient.layer({ region: "us-east-1" }),
127
+ * Compression.layer([ZlibCompression.zstd()]),
128
+ * )
129
+ * // Also works, when this layer is used directly:
130
+ * const live = DynamoClient.layer({ region: "us-east-1", compressors: [ZlibCompression.zstd()] })
131
+ * ```
103
132
  */
104
- static layer = (config) => Layer.effect(DynamoClient, buildService(config.region, config.endpoint, config.credentials));
133
+ static layer = (config) => withCompressors(Layer.effect(DynamoClient, buildService(config.region, config.endpoint, config.credentials)), config.compressors);
105
134
  /**
106
135
  * Create a live Layer that reads configuration from Effect Config providers
107
136
  * (e.g., environment variables, config files).
@@ -109,15 +138,18 @@ export class DynamoClient extends Context.Service()("@effect-dynamodb/DynamoClie
109
138
  * @param config.region - Config for AWS region
110
139
  * @param config.endpoint - Optional Config for endpoint override
111
140
  * @param config.credentials - Optional Config for static credentials
141
+ * @param config.compressors - Optional compressors for packed storage; when
142
+ * given, the layer also provides the `Compression` service (see {@link layer}
143
+ * for why a separate `Compression.layer([...])` is the recommended form).
112
144
  */
113
- static layerConfig = (config) => Layer.effect(DynamoClient, Effect.gen(function* () {
145
+ static layerConfig = (config) => withCompressors(Layer.effect(DynamoClient, Effect.gen(function* () {
114
146
  const region = yield* config.region;
115
147
  const endpoint = config.endpoint ? yield* Config.option(config.endpoint) : undefined;
116
148
  const credentials = config.credentials
117
149
  ? yield* Config.option(config.credentials)
118
150
  : undefined;
119
151
  return yield* buildService(region, endpoint && endpoint._tag === "Some" ? endpoint.value : undefined, credentials && credentials._tag === "Some" ? credentials.value : undefined);
120
- }));
152
+ })), config.compressors);
121
153
  /**
122
154
  * Create a typed client gateway from entities, aggregates, and (optionally) tables.
123
155
  *
@@ -173,6 +205,14 @@ const collectionLiveRows = (members) => {
173
205
  reads: [...new Set(["__edd_e__", ...[...byType.values()].flatMap((live) => live.reads)])],
174
206
  };
175
207
  };
208
+ /**
209
+ * Each packed field of an entity once, by its domain name, with its config: a
210
+ * renamed field has a guard per name (domain and stored), both carrying it.
211
+ */
212
+ const packedFieldConfigs = (entity) => (entity._packedFields ?? []).map((field) => [
213
+ field,
214
+ entity._packedGuards?.find((guard) => guard.attribute === field)?.storedAs,
215
+ ]);
176
216
  const makeFromConfig = (config) => Effect.gen(function* () {
177
217
  // 1. Resolve the provide function from context.
178
218
  //
@@ -193,9 +233,34 @@ const makeFromConfig = (config) => Effect.gen(function* () {
193
233
  // (rather than forcing the service on every consumer's type).
194
234
  const ambientEmbedder = Context.getOption(baseCtx, Embedder);
195
235
  const embedderService = config.embedder ?? (Option.isSome(ambientEmbedder) ? ambientEmbedder.value : undefined);
196
- const ctx = embedderService !== undefined
236
+ const withEmbedder = embedderService !== undefined
197
237
  ? Context.add(withCrypto, Embedder, embedderService)
198
238
  : withCrypto;
239
+ // Bundle the compressor registry for packed storage the same way: explicit
240
+ // `compressors` win, then an ambient `Compression` at bind time. Without
241
+ // either nothing is added. A `Compression` provided only at run time then
242
+ // reaches bound operations (they read it with `Effect.serviceOption`), but
243
+ // only when no bound member's `Packed` config names a codec: such a member
244
+ // fails the bind-time [EDD-9078] check below before any operation runs.
245
+ const ambientCompression = Context.getOption(baseCtx, Compression);
246
+ const compressionRegistry = config.compressors !== undefined
247
+ ? makeCompressionRegistry(config.compressors)
248
+ : Option.isSome(ambientCompression)
249
+ ? ambientCompression.value
250
+ : undefined;
251
+ // A bound member whose packed config names a codec meets values
252
+ // compressed with it on every read and write, so the codec must be
253
+ // registered here — a configuration defect (`[EDD-9078]`) at bind, not a
254
+ // ValidationError on the first compressed value (#147).
255
+ const codecError = unregisteredCodecError("DynamoClient.make", [
256
+ ...Object.entries(config.entities).flatMap(([key, entity]) => codecRequirements(`entity "${key}"`, packedFieldConfigs(entity))),
257
+ ...Object.entries(config.aggregates ?? {}).flatMap(([key, aggregate]) => [...(aggregate._packedByType ?? new Map())].flatMap(([edgeType, packed]) => codecRequirements(`aggregate "${key}" (edge "${edgeType}")`, Object.entries(packed)))),
258
+ ], compressionRegistry);
259
+ if (codecError !== undefined)
260
+ throw codecError;
261
+ const ctx = compressionRegistry !== undefined
262
+ ? Context.add(withEmbedder, Compression, compressionRegistry)
263
+ : withEmbedder;
199
264
  const provide = (effect) => Effect.provide(effect, ctx);
200
265
  // Dimension agreement between the Embedder and every bound vector index is
201
266
  // a construction-time invariant — a mismatch would otherwise surface as a
@@ -270,13 +335,12 @@ const makeFromConfig = (config) => Effect.gen(function* () {
270
335
  const query = Query.make({
271
336
  tableName: "",
272
337
  indexName: indexDef.index,
273
- // An entity's indexes are GSIs (`Table.definition`).
274
- globalIndex: indexDef.index !== undefined,
275
338
  pkField: indexDef.pk.field,
276
339
  pkValue,
277
340
  skField: indexDef.sk.field,
278
341
  entityTypes: [entityLike.entityType],
279
342
  decoder: (raw) => entityLike._decodeRecord(raw),
343
+ ...entityPackedQueryOptions(entityLike),
280
344
  resolveTableName: entityLike._tableTag.useSync((tc) => tc.name),
281
345
  keyFields: [
282
346
  indexDef.pk.field,
@@ -287,6 +351,11 @@ const makeFromConfig = (config) => Effect.gen(function* () {
287
351
  // The primary key also holds the entity's history rows; an index
288
352
  // never does (they carry no index keys).
289
353
  liveRows: indexDef.index === undefined ? entityLike._liveRows?.() : undefined,
354
+ // DynamoDB's rejection of the key condition (#144) names the accessor.
355
+ keyConditionDiagnosis: {
356
+ operation: "query",
357
+ label: `${entityLike.entityType}.${_indexName}`,
358
+ },
290
359
  });
291
360
  // Apply SK prefix from provided compositesKeyForm.
292
361
  // `composeSortKeyBeginsWith`, not `composeSortKeyPrefix` — the operand
@@ -514,12 +583,13 @@ const makeFromConfig = (config) => Effect.gen(function* () {
514
583
  const entity = typeof rawEntity.get === "function"
515
584
  ? rawEntity
516
585
  : entityFromDefinition(rawEntity);
517
- // Provide the resolved Crypto service into the bind so the bound `put`
518
- // (which yields `Crypto.Crypto` when `generatedId` is configured) resolves
519
- // it from context — keeping the bound method at `R = never`. `bind`
520
- // respects an already-present Crypto and only fills its own default when
521
- // absent, so this override is honored.
522
- const bound = yield* Effect.provideService(entityBind(entity), Crypto.Crypto, cryptoService);
586
+ // Provide the resolved services (Crypto, Embedder, Compression) into the
587
+ // bind: `bind` captures its context at bind time, so the bound CRUD
588
+ // methods resolve the explicit `crypto`, `embedder` and `compressors`
589
+ // given here — keeping them at `R = never`. `bind` respects an
590
+ // already-present Crypto and only fills its own default when absent, so
591
+ // the override is honored.
592
+ const bound = yield* provide(entityBind(entity));
523
593
  const entityLike = entity;
524
594
  const accessors = {};
525
595
  // Add query accessor for each index — including `primary`.
@@ -559,6 +629,8 @@ const makeFromConfig = (config) => Effect.gen(function* () {
559
629
  schema: entityLike._schema,
560
630
  tableTag: entityLike._tableTag,
561
631
  decode: (raw) => entityLike._decodeRecord(raw),
632
+ unpackRaw: entityLike._unpackFields,
633
+ unpackAttributes: entityLike._dispatchAttributes,
562
634
  provide,
563
635
  resolveDbName: entityLike._resolveDbName ?? ((domainName) => domainName),
564
636
  };
@@ -571,6 +643,7 @@ const makeFromConfig = (config) => Effect.gen(function* () {
571
643
  indexName: undefined,
572
644
  entityTypes: [entityLike.entityType],
573
645
  decoder: (raw) => entityLike._decodeRecord(raw),
646
+ ...entityPackedQueryOptions(entityLike),
574
647
  resolveTableName: entityLike._tableTag.useSync((tc) => tc.name),
575
648
  keyFields: [entityLike.indexes.primary?.pk.field, entityLike.indexes.primary?.sk.field],
576
649
  liveRows: entityLike._liveRows?.(),
@@ -641,13 +714,12 @@ const makeFromConfig = (config) => Effect.gen(function* () {
641
714
  let query = Query.make({
642
715
  tableName: "",
643
716
  indexName: indexDef.index,
644
- // An entity's indexes are GSIs (`Table.definition`).
645
- globalIndex: indexDef.index !== undefined,
646
717
  pkField: indexDef.pk.field,
647
718
  pkValue,
648
719
  skField: indexDef.sk.field,
649
720
  entityTypes,
650
721
  decoder: collDecoder,
722
+ ...collectionPackedQueryOptions(members.map((m) => m.entityLike)),
651
723
  resolveTableName: firstMember.entityLike._tableTag.useSync((tc) => tc.name),
652
724
  keyFields: [
653
725
  indexDef.pk.field,
@@ -657,6 +729,7 @@ const makeFromConfig = (config) => Effect.gen(function* () {
657
729
  ],
658
730
  // A collection on the primary key also meets its members' history.
659
731
  liveRows: indexDef.index === undefined ? collectionLiveRows(members) : undefined,
732
+ keyConditionDiagnosis: { operation: "query", label: `collection "${collName}"` },
660
733
  });
661
734
  // Add begins_with on collection SK prefix for clustered collections.
662
735
  // For isolated collections (default), each entity has its own entity-type
@@ -719,7 +792,9 @@ const makeFromConfig = (config) => Effect.gen(function* () {
719
792
  const boundAggregates = {};
720
793
  if (config.aggregates) {
721
794
  for (const [key, aggregate] of Object.entries(config.aggregates)) {
722
- boundAggregates[key] = yield* aggregateBind(aggregate);
795
+ // Same as entities: the aggregate captures the resolved services
796
+ // (notably `Compression`, for packed edge entity fields) at bind time.
797
+ boundAggregates[key] = yield* provide(aggregateBind(aggregate));
723
798
  }
724
799
  }
725
800
  // 5. Build table operations
@@ -818,11 +893,31 @@ const isResourceInUse = (err) => err._tag === "DynamoError" &&
818
893
  typeof err.cause === "object" &&
819
894
  "name" in err.cause &&
820
895
  err.cause.name === "ResourceInUseException";
896
+ /**
897
+ * DynamoDB's vector-index limits — dimensions in 1..4096, inline filters per
898
+ * index, vector indexes per table (an adjustable quota) — are not pre-checked
899
+ * (#144): a rejected `CreateTable` / `UpdateTable` is diagnosed against the
900
+ * vector indexes it sent, naming the index and the entities sharing it, and
901
+ * fails with the error DynamoDB's would have been (same tag), its message
902
+ * explained and DynamoDB's error kept as the cause. Anything else passes
903
+ * through.
904
+ */
905
+ const diagnoseVectorLimits = (operation, label, sent) => diagnoseFailure({
906
+ sent: () => ({ _tag: "Table", operation, ...sent }),
907
+ only: ["VectorIndexDimensions", "VectorIndexFilters", "VectorIndexCount"],
908
+ rewrite: (diagnosis, original) => {
909
+ const cause = withCause(explainDiagnosis(diagnosis, label), original);
910
+ return original._tag === "DynamoValidationError"
911
+ ? new DynamoValidationError({ operation, cause })
912
+ : new DynamoError({ operation, cause });
913
+ },
914
+ });
821
915
  /** Make createTable idempotent — ignore if table already exists. */
822
916
  const idempotentCreate = (effect) => Effect.catchIf(effect, isResourceInUse, () => Effect.void);
823
917
  const buildTableOperationsFromTable = (tableName, table, client) => {
824
918
  const def = tableDefinition(table);
825
919
  const vectorIndexes = mergeVectorIndexes(table.entities);
920
+ const sharers = (indexName) => vectorIndexes.get(indexName)?.sharers ?? [];
826
921
  return {
827
922
  ...buildTableOperations(tableName, client),
828
923
  create: (options) => idempotentCreate(client
@@ -831,7 +926,11 @@ const buildTableOperationsFromTable = (tableName, table, client) => {
831
926
  BillingMode: options?.billingMode ?? "PAY_PER_REQUEST",
832
927
  ...def,
833
928
  })
834
- .pipe(Effect.asVoid)),
929
+ .pipe(Effect.asVoid, diagnoseVectorLimits("CreateTable", `db.tables create of "${tableName}"`, {
930
+ vectorIndexes: def.VectorIndexes ?? [],
931
+ sharers,
932
+ declared: vectorIndexes.size,
933
+ }))),
835
934
  addVectorIndex: (indexName) => {
836
935
  const entry = vectorIndexes.get(indexName);
837
936
  if (entry === undefined) {
@@ -851,20 +950,21 @@ const buildTableOperationsFromTable = (tableName, table, client) => {
851
950
  AttributeType,
852
951
  })),
853
952
  ];
953
+ const spec = toVectorIndexSpec(entry.definition, {
954
+ filters: entry.filters,
955
+ resolveDbName: entry.resolveDbName,
956
+ });
854
957
  return client
855
958
  .updateTable({
856
959
  TableName: tableName,
857
960
  AttributeDefinitions: attributeDefinitions,
858
- VectorIndexUpdates: [
859
- {
860
- Create: toVectorIndexSpec(entry.definition, {
861
- filters: entry.filters,
862
- resolveDbName: entry.resolveDbName,
863
- }),
864
- },
865
- ],
961
+ VectorIndexUpdates: [{ Create: spec }],
866
962
  })
867
- .pipe(Effect.asVoid);
963
+ .pipe(Effect.asVoid,
964
+ // The request shows only the index it adds: a count rejection is
965
+ // confirmed against the indexes the table already has, read back
966
+ // after the rejection (unknown if that read fails: passed through).
967
+ Effect.catch((error) => client.describeTable({ TableName: tableName }).pipe(Effect.map((described) => described.Table?.VectorIndexes?.length ?? 0), Effect.orElseSucceed(() => undefined), Effect.flatMap((existing) => Effect.fail(error).pipe(diagnoseVectorLimits("UpdateTable", `addVectorIndex("${indexName}") on "${tableName}"`, { vectorIndexes: [spec], sharers, declared: vectorIndexes.size, existing }))))));
868
968
  },
869
969
  };
870
970
  };