effect-dynamodb 0.1.0 → 1.1.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 (66) hide show
  1. package/dist/DynamoClient.d.ts +3 -3
  2. package/dist/DynamoClient.d.ts.map +1 -1
  3. package/dist/DynamoClient.js +1 -3
  4. package/dist/DynamoClient.js.map +1 -1
  5. package/dist/Entity.d.ts +69 -10
  6. package/dist/Entity.d.ts.map +1 -1
  7. package/dist/Entity.js +383 -2
  8. package/dist/Entity.js.map +1 -1
  9. package/dist/KeyComposer.d.ts +14 -0
  10. package/dist/KeyComposer.d.ts.map +1 -1
  11. package/dist/KeyComposer.js +22 -1
  12. package/dist/KeyComposer.js.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/internal/EntityConfig.d.ts +33 -0
  17. package/dist/internal/EntityConfig.d.ts.map +1 -1
  18. package/dist/internal/EntitySchemas.d.ts +14 -3
  19. package/dist/internal/EntitySchemas.d.ts.map +1 -1
  20. package/dist/internal/EntitySchemas.js +41 -2
  21. package/dist/internal/EntitySchemas.js.map +1 -1
  22. package/dist/internal/EntityTypes.d.ts +35 -3
  23. package/dist/internal/EntityTypes.d.ts.map +1 -1
  24. package/dist/internal/TransactableOps.d.ts +1 -1
  25. package/dist/internal/TransactableOps.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/_AggregateCursor.d.ts +0 -44
  28. package/dist/_AggregateCursor.d.ts.map +0 -1
  29. package/dist/_AggregateCursor.js +0 -18
  30. package/dist/_AggregateCursor.js.map +0 -1
  31. package/dist/_AggregateEdges.d.ts +0 -77
  32. package/dist/_AggregateEdges.d.ts.map +0 -1
  33. package/dist/_AggregateEdges.js +0 -41
  34. package/dist/_AggregateEdges.js.map +0 -1
  35. package/dist/_AggregateSchemas.d.ts +0 -69
  36. package/dist/_AggregateSchemas.d.ts.map +0 -1
  37. package/dist/_AggregateSchemas.js +0 -194
  38. package/dist/_AggregateSchemas.js.map +0 -1
  39. package/dist/_AggregateTypes.d.ts +0 -94
  40. package/dist/_AggregateTypes.d.ts.map +0 -1
  41. package/dist/_AggregateTypes.js +0 -7
  42. package/dist/_AggregateTypes.js.map +0 -1
  43. package/dist/_EntityCombinators.d.ts +0 -155
  44. package/dist/_EntityCombinators.d.ts.map +0 -1
  45. package/dist/_EntityCombinators.js +0 -158
  46. package/dist/_EntityCombinators.js.map +0 -1
  47. package/dist/_EntityConfig.d.ts +0 -100
  48. package/dist/_EntityConfig.d.ts.map +0 -1
  49. package/dist/_EntityConfig.js +0 -7
  50. package/dist/_EntityConfig.js.map +0 -1
  51. package/dist/_EntityOps.d.ts +0 -205
  52. package/dist/_EntityOps.d.ts.map +0 -1
  53. package/dist/_EntityOps.js +0 -137
  54. package/dist/_EntityOps.js.map +0 -1
  55. package/dist/_EntitySchemas.d.ts +0 -57
  56. package/dist/_EntitySchemas.d.ts.map +0 -1
  57. package/dist/_EntitySchemas.js +0 -298
  58. package/dist/_EntitySchemas.js.map +0 -1
  59. package/dist/_EntityTypes.d.ts +0 -81
  60. package/dist/_EntityTypes.d.ts.map +0 -1
  61. package/dist/_EntityTypes.js +0 -7
  62. package/dist/_EntityTypes.js.map +0 -1
  63. package/dist/_sparse_check.d.ts +0 -2
  64. package/dist/_sparse_check.d.ts.map +0 -1
  65. package/dist/_sparse_check.js +0 -193
  66. package/dist/_sparse_check.js.map +0 -1
@@ -1,69 +0,0 @@
1
- /**
2
- * @internal Aggregate schema derivation — input and update schema building.
3
- *
4
- * Extracted from Aggregate.ts for decomposition. Not part of the public API.
5
- */
6
- import { Schema } from "effect";
7
- import type { AggregateEdge, RefEntity } from "./_AggregateEdges.js";
8
- import type { BoundSubAggregate } from "./_AggregateTypes.js";
9
- /**
10
- * Derive an input schema from an aggregate definition.
11
- *
12
- * Edge-driven: walks edges to determine field transformations.
13
- * - OneEdge / RefEdge fields → `${field}Id: Schema.String`
14
- * - Sub-aggregate edges are recursed
15
- * - Many-edge array elements are recursed for ref replacement
16
- * - PK composite fields are omitted (auto-generated)
17
- * - `Schema.toCodecJson` is applied at the end so Date fields accept ISO strings
18
- */
19
- export interface DerivedAggregateSchemas {
20
- readonly inputSchema: Schema.Top;
21
- readonly updateSchema: Schema.Top;
22
- }
23
- export declare const deriveAggregateSchemas: (schema: Schema.Top, edges: Record<string, AggregateEdge | BoundSubAggregate<any>>, pkComposites: ReadonlyArray<string>) => DerivedAggregateSchemas;
24
- /**
25
- * Check if a field schema represents an optional field.
26
- * In Effect v4, Schema.optionalKey(X) sets `ast.context.isOptional = true`.
27
- */
28
- export declare const isFieldOptional: (fieldSchema: Schema.Top) => boolean;
29
- /**
30
- * Derive a field name from an entity's model identifier.
31
- * E.g., entity with model identifier "Umpire" → "umpire" (lowercase first letter).
32
- */
33
- export declare const deriveEntityFieldName: (entity: RefEntity) => string;
34
- /**
35
- * Derive input schema for a many-edge array element.
36
- * Extracts the element type from the field schema (which may be an Array
37
- * or optional(Array)). If the element IS the entity (matches the entity model),
38
- * transforms to Schema.String. Otherwise, finds the entity-derived field within
39
- * the element and transforms it.
40
- */
41
- export declare const deriveElementInputSchema: (arrayFieldSchema: Schema.Top, entity?: RefEntity) => Schema.Top | undefined;
42
- /**
43
- * Unwrap a ConfiguredModel to get the raw Schema.Class model.
44
- * ConfiguredModel wraps the original model with DynamoDB-specific overrides
45
- * (field renaming, storage encoding) and has shape { model: M, attributes: ... }.
46
- */
47
- export declare const unwrapModel: (model: Schema.Top) => Schema.Top;
48
- /**
49
- * Check if a schema matches an entity model (same Schema.Class identifier).
50
- * This is used to detect when an array element IS the entity (e.g., Array<Umpire>),
51
- * as opposed to wrapping the entity (e.g., Array<{ umpire: Umpire, role: string }>).
52
- * Unwraps ConfiguredModel if the entity uses DynamoModel.configure.
53
- */
54
- export declare const isSchemaMatchingEntity: (schema: Schema.Top, entity: RefEntity) => boolean;
55
- /**
56
- * Extract the element schema from a field that is Schema.Array(T) or
57
- * Schema.optionalKey(Schema.Array(T)). Returns T.
58
- *
59
- * In Effect v4:
60
- * - Schema.Array(T) has `ast._tag === "Arrays"`, `.schema === T`
61
- * - Schema.optionalKey(Schema.Array(T)) inherits "Arrays" AST but `.schema === Array(T)`
62
- * (the inner array, not the element). Its AST has `context.isOptional === true`.
63
- */
64
- export declare const extractArrayElement: (fieldSchema: Schema.Top) => Schema.Top | undefined;
65
- /**
66
- * Access .fields on a Schema.Class or Schema.Struct.
67
- */
68
- export declare const getSchemaFields: (schema: Schema.Top) => Record<string, Schema.Top> | undefined;
69
- //# sourceMappingURL=_AggregateSchemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_AggregateSchemas.d.ts","sourceRoot":"","sources":["../src/_AggregateSchemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAY,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAM7D;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAA;CAClC;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,CAAC,GAAG,EAClB,OAAO,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAC7D,cAAc,aAAa,CAAC,MAAM,CAAC,KAClC,uBAsDF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,CAAC,GAAG,KAAG,OAKzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,KAAG,MAKzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,kBAAkB,MAAM,CAAC,GAAG,EAC5B,SAAS,SAAS,KACjB,MAAM,CAAC,GAAG,GAAG,SAkCf,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,CAAC,GAAG,KAAG,MAAM,CAAC,GAQtD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,CAAC,GAAG,EAAE,QAAQ,SAAS,KAAG,OAQ9E,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,aAAa,MAAM,CAAC,GAAG,KAAG,MAAM,CAAC,GAAG,GAAG,SA+B1E,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAKjF,CAAA"}
@@ -1,194 +0,0 @@
1
- /**
2
- * @internal Aggregate schema derivation — input and update schema building.
3
- *
4
- * Extracted from Aggregate.ts for decomposition. Not part of the public API.
5
- */
6
- import { Schema } from "effect";
7
- export const deriveAggregateSchemas = (schema, edges, pkComposites) => {
8
- const fields = getSchemaFields(schema);
9
- if (!fields)
10
- return { inputSchema: schema, updateSchema: schema };
11
- const omit = new Set(pkComposites);
12
- const newFields = {};
13
- for (const [name, fieldSchema] of Object.entries(fields)) {
14
- if (omit.has(name))
15
- continue;
16
- const edge = edges[name];
17
- if (edge && "_tag" in edge) {
18
- const isOpt = isFieldOptional(fieldSchema);
19
- if (edge._tag === "RefEdge" || edge._tag === "OneEdge") {
20
- // RefEdge / OneEdge → ${name}Id: Schema.String
21
- newFields[`${name}Id`] = isOpt ? Schema.optionalKey(Schema.String) : Schema.String;
22
- }
23
- else if (edge._tag === "BoundSubAggregate") {
24
- const sub = edge.aggregate;
25
- const subSchemas = deriveAggregateSchemas(sub.schema, sub.edges, []);
26
- newFields[name] = isOpt
27
- ? Schema.optionalKey(subSchemas.inputSchema)
28
- : subSchemas.inputSchema;
29
- }
30
- else if (edge._tag === "ManyEdge") {
31
- const manyEdge = edge;
32
- const fieldKey = manyEdge.inputField ?? name;
33
- const elemSchema = deriveElementInputSchema(fieldSchema, manyEdge.entity);
34
- if (elemSchema) {
35
- newFields[fieldKey] = isOpt
36
- ? Schema.optionalKey(Schema.Array(elemSchema))
37
- : Schema.Array(elemSchema);
38
- }
39
- else {
40
- newFields[fieldKey] = fieldSchema;
41
- }
42
- }
43
- continue;
44
- }
45
- // Regular field → keep as-is (toCodecJson applied at the end handles Date)
46
- newFields[name] = fieldSchema;
47
- }
48
- const inputSchema = Schema.toCodecJson(Schema.Struct(newFields));
49
- // Update schema: all fields optional
50
- const optionalFields = {};
51
- for (const [name, fieldSchema] of Object.entries(newFields)) {
52
- optionalFields[name] = isFieldOptional(fieldSchema)
53
- ? fieldSchema
54
- : Schema.optional(fieldSchema);
55
- }
56
- const updateSchema = Schema.toCodecJson(Schema.Struct(optionalFields));
57
- return { inputSchema, updateSchema };
58
- };
59
- /**
60
- * Check if a field schema represents an optional field.
61
- * In Effect v4, Schema.optionalKey(X) sets `ast.context.isOptional = true`.
62
- */
63
- export const isFieldOptional = (fieldSchema) => {
64
- const ast = fieldSchema.ast;
65
- return ast?.context?.isOptional === true;
66
- };
67
- /**
68
- * Derive a field name from an entity's model identifier.
69
- * E.g., entity with model identifier "Umpire" → "umpire" (lowercase first letter).
70
- */
71
- export const deriveEntityFieldName = (entity) => {
72
- const s = entity.model;
73
- const identifier = "identifier" in s && typeof s.identifier === "string" ? s.identifier : entity.entityType;
74
- return identifier.charAt(0).toLowerCase() + identifier.slice(1);
75
- };
76
- /**
77
- * Derive input schema for a many-edge array element.
78
- * Extracts the element type from the field schema (which may be an Array
79
- * or optional(Array)). If the element IS the entity (matches the entity model),
80
- * transforms to Schema.String. Otherwise, finds the entity-derived field within
81
- * the element and transforms it.
82
- */
83
- export const deriveElementInputSchema = (arrayFieldSchema, entity) => {
84
- const elemSchema = extractArrayElement(arrayFieldSchema);
85
- if (!elemSchema)
86
- return undefined;
87
- const elemFields = getSchemaFields(elemSchema);
88
- // Check if the element itself IS the entity model (e.g., Array<Umpire>)
89
- if (entity && elemFields && isSchemaMatchingEntity(elemSchema, entity)) {
90
- // Element IS the entity → array of IDs (Schema.String)
91
- return Schema.String;
92
- }
93
- if (!elemFields)
94
- return elemSchema;
95
- // Element wraps entity + attributes — find the entity-derived field and transform it
96
- if (entity) {
97
- const entityFieldName = deriveEntityFieldName(entity);
98
- let hasChanges = false;
99
- const newFields = {};
100
- for (const [name, fSchema] of Object.entries(elemFields)) {
101
- if (name === entityFieldName) {
102
- // This field references the entity — transform to ${name}Id: Schema.String
103
- const isOpt = isFieldOptional(fSchema);
104
- newFields[`${name}Id`] = isOpt ? Schema.optionalKey(Schema.String) : Schema.String;
105
- hasChanges = true;
106
- }
107
- else {
108
- newFields[name] = fSchema;
109
- }
110
- }
111
- if (!hasChanges)
112
- return elemSchema;
113
- return Schema.Struct(newFields);
114
- }
115
- return elemSchema;
116
- };
117
- /**
118
- * Unwrap a ConfiguredModel to get the raw Schema.Class model.
119
- * ConfiguredModel wraps the original model with DynamoDB-specific overrides
120
- * (field renaming, storage encoding) and has shape { model: M, attributes: ... }.
121
- */
122
- export const unwrapModel = (model) => {
123
- const m = model;
124
- // Check for ConfiguredModel tag (Symbol.for("effect-dynamodb/ConfiguredModel"))
125
- const tag = Symbol.for("effect-dynamodb/ConfiguredModel");
126
- if (m[tag] === true && "model" in m) {
127
- return m.model;
128
- }
129
- return model;
130
- };
131
- /**
132
- * Check if a schema matches an entity model (same Schema.Class identifier).
133
- * This is used to detect when an array element IS the entity (e.g., Array<Umpire>),
134
- * as opposed to wrapping the entity (e.g., Array<{ umpire: Umpire, role: string }>).
135
- * Unwraps ConfiguredModel if the entity uses DynamoModel.configure.
136
- */
137
- export const isSchemaMatchingEntity = (schema, entity) => {
138
- const s = schema;
139
- const entityModel = unwrapModel(entity.model);
140
- // Compare Schema.Class identifiers
141
- if ("identifier" in s && "identifier" in entityModel) {
142
- return s.identifier === entityModel.identifier;
143
- }
144
- return false;
145
- };
146
- /**
147
- * Extract the element schema from a field that is Schema.Array(T) or
148
- * Schema.optionalKey(Schema.Array(T)). Returns T.
149
- *
150
- * In Effect v4:
151
- * - Schema.Array(T) has `ast._tag === "Arrays"`, `.schema === T`
152
- * - Schema.optionalKey(Schema.Array(T)) inherits "Arrays" AST but `.schema === Array(T)`
153
- * (the inner array, not the element). Its AST has `context.isOptional === true`.
154
- */
155
- export const extractArrayElement = (fieldSchema) => {
156
- const s = fieldSchema;
157
- const ast = s.ast;
158
- if (ast?._tag === "Arrays" && "schema" in s) {
159
- if (ast.context?.isOptional === true) {
160
- // optionalKey(Array(T)): s.schema is Array(T), s.schema.schema is T
161
- const inner = s.schema;
162
- if ("schema" in inner)
163
- return inner.schema;
164
- }
165
- // Direct Array(T): s.schema is T (the element)
166
- return s.schema;
167
- }
168
- // Schema.optional(Array(T)): ast._tag is "Union" with context.isOptional,
169
- // .schema is Union with .members[0] being Schema.Array(T)
170
- if (ast?._tag === "Union" && ast.context?.isOptional === true && "schema" in s) {
171
- const unionSchema = s.schema;
172
- const members = unionSchema?.members;
173
- if (Array.isArray(members)) {
174
- for (const member of members) {
175
- const m = member;
176
- const mAst = m.ast;
177
- if (mAst?._tag === "Arrays" && "schema" in m) {
178
- return m.schema;
179
- }
180
- }
181
- }
182
- }
183
- return undefined;
184
- };
185
- /**
186
- * Access .fields on a Schema.Class or Schema.Struct.
187
- */
188
- export const getSchemaFields = (schema) => {
189
- if ("fields" in schema && typeof schema.fields === "object") {
190
- return schema.fields;
191
- }
192
- return undefined;
193
- };
194
- //# sourceMappingURL=_AggregateSchemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_AggregateSchemas.js","sourceRoot":"","sources":["../src/_AggregateSchemas.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- /**
2
- * @internal Aggregate type-level computations — derived types for Aggregate operations.
3
- *
4
- * Extracted from Aggregate.ts for decomposition. Not part of the public API.
5
- */
6
- import type { Schema } from "effect";
7
- import type { DiscriminatorConfig, UpdateContext } from "./_AggregateCursor.js";
8
- import type { AggregateEdge, ManyEdge, OneEdge, RefEdge } from "./_AggregateEdges.js";
9
- /**
10
- * A composable sub-aggregate definition — a graph shape that can be embedded
11
- * in a parent aggregate via `.with()`.
12
- */
13
- export interface SubAggregate<TSchema extends Schema.Top, TEdges extends Record<string, AggregateEdge | BoundSubAggregate<any, any>> = Record<string, AggregateEdge | BoundSubAggregate<any, any>>> {
14
- readonly _tag: "SubAggregate";
15
- readonly schema: TSchema;
16
- readonly root: {
17
- readonly entityType: string;
18
- };
19
- readonly edges: TEdges;
20
- /** Bind with discriminator values to distinguish multiple embeddings */
21
- readonly with: (config: DiscriminatorConfig) => BoundSubAggregate<TSchema, TEdges>;
22
- }
23
- /**
24
- * A sub-aggregate bound with discriminator values, ready to embed in a parent.
25
- */
26
- export interface BoundSubAggregate<TSchema extends Schema.Top, TEdges extends Record<string, AggregateEdge | BoundSubAggregate<any, any>> = Record<string, AggregateEdge | BoundSubAggregate<any, any>>> {
27
- readonly _tag: "BoundSubAggregate";
28
- readonly aggregate: SubAggregate<TSchema, TEdges>;
29
- readonly discriminator: Record<string, unknown>;
30
- }
31
- /** Extract the domain type from an Aggregate */
32
- export type Type<T> = T extends {
33
- readonly schema: infer S extends Schema.Top;
34
- } ? Schema.Schema.Type<S> : never;
35
- /** Extract the key type from an Aggregate */
36
- export type Key<T> = T extends {
37
- readonly get: (key: infer K) => any;
38
- } ? K : never;
39
- /** Extract the input type from an Aggregate */
40
- export type Input<T> = T extends {
41
- readonly inputSchema: Schema.Codec<infer I>;
42
- } ? I : never;
43
- /** Extract the update mutation function type from an Aggregate */
44
- export type UpdateFn<T> = T extends {
45
- readonly schema: infer S extends Schema.Top;
46
- } ? (context: UpdateContext<S["Iso"], Schema.Schema.Type<S>>) => Schema.Schema.Type<S> | S["Iso"] : never;
47
- /**
48
- * Compute the aggregate input type from the domain model, edges, and PK composites.
49
- *
50
- * - OneEdge / RefEdge fields → `${field}Id: string`
51
- * - BoundSubAggregate fields → recursed
52
- * - ManyEdge fields → array elements recursed for ref replacement
53
- * - PK composites → omitted
54
- * - Everything else → kept as-is
55
- */
56
- export type AggregateInputType<TModel, TEdges extends Record<string, AggregateEdge | BoundSubAggregate<any, any>>, TPK extends ReadonlyArray<string>> = _Simplify<{
57
- readonly [K in keyof TModel as K extends keyof TEdges ? never : K extends TPK[number] ? never : K]: _StripUndefined<TModel[K]>;
58
- } & {
59
- readonly [K in keyof TEdges as TEdges[K] extends OneEdge | RefEdge ? _IsOptionalIn<TModel, K> extends true ? never : `${K & string}Id` : never]: string;
60
- } & {
61
- readonly [K in keyof TEdges as TEdges[K] extends OneEdge | RefEdge ? _IsOptionalIn<TModel, K> extends true ? `${K & string}Id` : never : never]?: string;
62
- } & {
63
- readonly [K in keyof TEdges as TEdges[K] extends BoundSubAggregate<any, any> ? _IsOptionalIn<TModel, K> extends true ? never : K : never]: TEdges[K] extends BoundSubAggregate<infer S, infer E> ? AggregateInputType<Schema.Schema.Type<S>, E, []> : never;
64
- } & {
65
- readonly [K in keyof TEdges as TEdges[K] extends BoundSubAggregate<any, any> ? _IsOptionalIn<TModel, K> extends true ? K : never : never]?: TEdges[K] extends BoundSubAggregate<infer S, infer E> ? AggregateInputType<Schema.Schema.Type<S>, E, []> : never;
66
- } & {
67
- readonly [K in keyof TEdges as TEdges[K] extends ManyEdge ? _IsOptionalIn<TModel, K> extends true ? never : TEdges[K] extends {
68
- readonly inputField: infer IF extends string;
69
- } ? IF : K : never]: K extends keyof TModel ? _TransformManyEdge<TModel[K]> : never;
70
- } & {
71
- readonly [K in keyof TEdges as TEdges[K] extends ManyEdge ? _IsOptionalIn<TModel, K> extends true ? TEdges[K] extends {
72
- readonly inputField: infer IF extends string;
73
- } ? IF : K : never : never]?: K extends keyof TModel ? _TransformManyEdge<TModel[K]> : never;
74
- }>;
75
- /** Detect ref-like types: objects with an `id: string` property (Schema.Class entities) */
76
- type _IsRefLike<T> = T extends {
77
- readonly id: string;
78
- } ? string extends keyof T ? false : true : false;
79
- /** Transform an object's ref-like fields to `${field}Id: string` */
80
- type _RefFieldsToIds<T> = _Simplify<{
81
- readonly [K in keyof T as _IsRefLike<T[K]> extends true ? `${K & string}Id` : K]: _IsRefLike<T[K]> extends true ? string : T[K];
82
- }>;
83
- /** Distribute over unions (e.g., ReadonlyArray<T> | undefined) to transform array elements */
84
- type _TransformManyEdge<T> = T extends ReadonlyArray<infer E> ? _IsRefLike<E> extends true ? ReadonlyArray<string> : ReadonlyArray<_RefFieldsToIds<E>> : T;
85
- /** Check if key K is an optional property of T */
86
- type _IsOptionalIn<T, K> = K extends keyof T ? ({} extends Pick<T, K> ? true : false) : false;
87
- /** Strip `undefined` from optional field value types — the `?` modifier already expresses optionality */
88
- type _StripUndefined<T> = undefined extends T ? Exclude<T, undefined> : T;
89
- /** Flatten intersection types — `extends infer O` breaks the alias chain for eager IDE expansion */
90
- type _Simplify<T> = T extends infer O ? {
91
- [K in keyof O]: O[K];
92
- } : never;
93
- export {};
94
- //# sourceMappingURL=_AggregateTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_AggregateTypes.d.ts","sourceRoot":"","sources":["../src/_AggregateTypes.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * @internal Aggregate type-level computations — derived types for Aggregate operations.
3
- *
4
- * Extracted from Aggregate.ts for decomposition. Not part of the public API.
5
- */
6
- export {};
7
- //# sourceMappingURL=_AggregateTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_AggregateTypes.js","sourceRoot":"","sources":["../src/_AggregateTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,155 +0,0 @@
1
- /**
2
- * @internal Entity operation combinators — terminal functions and update combinators.
3
- *
4
- * Extracted from Entity.ts for decomposition. Not part of the public API.
5
- */
6
- import type { AttributeValue } from "@aws-sdk/client-dynamodb";
7
- import { type Effect } from "effect";
8
- import { type CascadeTarget, type EntityDelete, type EntityGet, type EntityOp, type EntityPut, type EntityUpdate, type ReturnValuesMode } from "./_EntityOps.js";
9
- import type { CascadePartialFailure } from "./Errors.js";
10
- import type { ConditionInput } from "./Expression.js";
11
- /** Helper: extract Rec phantom type */
12
- type ExtractRec<T> = T extends EntityOp<any, infer Rec, any, any> ? Rec : never;
13
- /** Helper: extract E type */
14
- type ExtractE<T> = T extends EntityOp<any, any, infer E, any> ? E : never;
15
- /** Helper: extract R type */
16
- type ExtractR<T> = T extends EntityOp<any, any, any, infer R> ? R : never;
17
- /** Decode through model schema (default for yield*). Returns clean model class instance. */
18
- export declare const asModel: <Self extends EntityOp<any, any, any, any>>(self: Self) => Effect.Effect<Self extends EntityOp<infer A, any, any, any> ? A : never, ExtractE<Self>, ExtractR<Self>>;
19
- /** Decode through record schema (model + system fields). */
20
- export declare const asRecord: <Self extends EntityOp<any, any, any, any>>(self: Self) => Effect.Effect<ExtractRec<Self>, ExtractE<Self>, ExtractR<Self>>;
21
- /** Decode through item schema (model + system + keys + `__edd_e__`). Returns `Record<string, unknown>`. */
22
- export declare const asItem: <Self extends EntityOp<any, any, any, any>>(self: Self) => Effect.Effect<globalThis.Record<string, unknown>, ExtractE<Self>, ExtractR<Self>>;
23
- /** Return raw marshalled DynamoDB format (`Record<string, AttributeValue>`). No decode. */
24
- export declare const asNative: <Self extends EntityOp<any, any, any, any>>(self: Self) => Effect.Effect<globalThis.Record<string, AttributeValue>, ExtractE<Self>, ExtractR<Self>>;
25
- /**
26
- * Set the fields to update.
27
- *
28
- * When updating GSI composite fields, the consumer is responsible for providing ALL
29
- * composites for that GSI (fetch-merge pattern). If only some composites are provided,
30
- * `extractComposites` in KeyComposer will throw during GSI key recomposition.
31
- *
32
- * When using `Entity.remove()` on a GSI composite attribute, the corresponding GSI
33
- * key fields (pk/sk) are automatically removed so the item drops out of the sparse index.
34
- */
35
- export declare const set: {
36
- <Updates extends globalThis.Record<string, unknown>>(updates: Updates): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
37
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, updates: NoInfer<U>): EntityUpdate<A, Rec, U, E, R>;
38
- };
39
- /** Set the expected version for optimistic locking. */
40
- export declare const expectedVersion: {
41
- (version: number): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
42
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, version: number): EntityUpdate<A, Rec, U, E, R>;
43
- };
44
- /**
45
- * Enable consistent reads on an EntityGet operation.
46
- * Call with no arguments to enable (defaults to true).
47
- */
48
- export declare const consistentRead: {
49
- (): <A, Rec, E, R>(self: EntityGet<A, Rec, E, R>) => EntityGet<A, Rec, E, R>;
50
- <A, Rec, E, R>(self: EntityGet<A, Rec, E, R>): EntityGet<A, Rec, E, R>;
51
- };
52
- /**
53
- * Select specific attributes to return (ProjectionExpression) on an EntityGet.
54
- * When projection is active, the result is a raw `Record<string, unknown>`
55
- * instead of a decoded schema instance, since projected items may be partial.
56
- */
57
- export declare const project: {
58
- (attributes: ReadonlyArray<string>): <A, Rec, E, R>(self: EntityGet<A, Rec, E, R>) => EntityGet<globalThis.Record<string, unknown>, globalThis.Record<string, unknown>, E, R>;
59
- <A, Rec, E, R>(self: EntityGet<A, Rec, E, R>, attributes: ReadonlyArray<string>): EntityGet<globalThis.Record<string, unknown>, globalThis.Record<string, unknown>, E, R>;
60
- };
61
- /** @internal Helper type for condition-compatible operations */
62
- type ConditionTarget = EntityPut<any, any, any, any> | EntityUpdate<any, any, any, any, any> | EntityDelete<any, any>;
63
- /**
64
- * Add a condition expression to a put, update, or delete operation.
65
- * The condition is evaluated server-side by DynamoDB. If it fails,
66
- * the operation returns a `ConditionalCheckFailed` error.
67
- *
68
- * For updates, the user condition is ANDed with any optimistic lock condition.
69
- */
70
- export declare const condition: {
71
- (cond: ConditionInput): <T extends ConditionTarget>(self: T) => T;
72
- <T extends ConditionTarget>(self: T, cond: ConditionInput): T;
73
- };
74
- /** @internal Helper type for returnValues-compatible operations */
75
- type ReturnValuesTarget = EntityUpdate<any, any, any, any, any> | EntityDelete<any, any>;
76
- /**
77
- * Set the DynamoDB `ReturnValues` mode on an update or delete operation.
78
- *
79
- * Modes:
80
- * - `"none"` — return nothing (default for delete)
81
- * - `"allOld"` — return the item as it was before the operation
82
- * - `"allNew"` — return the item as it is after the operation (default for update)
83
- * - `"updatedOld"` — return only the updated attributes, with old values
84
- * - `"updatedNew"` — return only the updated attributes, with new values
85
- *
86
- * For deletes, only `"none"` and `"allOld"` are valid DynamoDB modes.
87
- */
88
- export declare const returnValues: {
89
- (mode: ReturnValuesMode): <T extends ReturnValuesTarget>(self: T) => T;
90
- <T extends ReturnValuesTarget>(self: T, mode: ReturnValuesMode): T;
91
- };
92
- /**
93
- * Remove one or more attributes from the item.
94
- * Produces a DynamoDB `REMOVE` clause.
95
- */
96
- export declare const remove: {
97
- (fields: ReadonlyArray<string>): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
98
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, fields: ReadonlyArray<string>): EntityUpdate<A, Rec, U, E, R>;
99
- };
100
- /**
101
- * Atomically add numeric values to attributes.
102
- * Produces a DynamoDB `ADD` clause. If the attribute doesn't exist,
103
- * it is initialized to the provided value.
104
- */
105
- export declare const add: {
106
- (values: globalThis.Record<string, number>): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
107
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, values: globalThis.Record<string, number>): EntityUpdate<A, Rec, U, E, R>;
108
- };
109
- /**
110
- * Subtract numeric values from attributes.
111
- * Synthesizes `SET #field = #field - :val` (DynamoDB has no native SUBTRACT).
112
- */
113
- export declare const subtract: {
114
- (values: globalThis.Record<string, number>): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
115
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, values: globalThis.Record<string, number>): EntityUpdate<A, Rec, U, E, R>;
116
- };
117
- /**
118
- * Append elements to list attributes.
119
- * Synthesizes `SET #field = list_append(#field, :val)`.
120
- */
121
- export declare const append: {
122
- (values: globalThis.Record<string, ReadonlyArray<unknown>>): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
123
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, values: globalThis.Record<string, ReadonlyArray<unknown>>): EntityUpdate<A, Rec, U, E, R>;
124
- };
125
- /**
126
- * Delete elements from a set attribute.
127
- * Produces a DynamoDB `DELETE` clause.
128
- * The value should be a set (e.g., `{ tags: new Set(["old"]) }`).
129
- */
130
- export declare const deleteFromSet: {
131
- (values: globalThis.Record<string, unknown>): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>) => EntityUpdate<A, Rec, U, E, R>;
132
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, values: globalThis.Record<string, unknown>): EntityUpdate<A, Rec, U, E, R>;
133
- };
134
- /**
135
- * Configure cascade updates to propagate source entity changes to target entities
136
- * that embed it via `DynamoModel.ref`. After the source update completes, all matching
137
- * target items are queried via their cascade GSI and updated with the new domain data.
138
- *
139
- * Default mode is "eventual" (batch updates, no item limit).
140
- * Use `mode: "transactional"` for atomic cascade (max 100 items).
141
- */
142
- export declare const cascade: {
143
- (config: {
144
- readonly targets: ReadonlyArray<CascadeTarget>;
145
- readonly filter?: globalThis.Record<string, unknown> | undefined;
146
- readonly mode?: "eventual" | "transactional" | undefined;
147
- }): <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E | CascadePartialFailure, R>) => EntityUpdate<A, Rec, U, E | CascadePartialFailure, R>;
148
- <A, Rec, U, E, R>(self: EntityUpdate<A, Rec, U, E, R>, config: {
149
- readonly targets: ReadonlyArray<CascadeTarget>;
150
- readonly filter?: globalThis.Record<string, unknown> | undefined;
151
- readonly mode?: "eventual" | "transactional" | undefined;
152
- }): EntityUpdate<A, Rec, U, E | CascadePartialFailure, R>;
153
- };
154
- export {};
155
- //# sourceMappingURL=_EntityCombinators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_EntityCombinators.d.ts","sourceRoot":"","sources":["../src/_EntityCombinators.ts"],"names":[],"mappings":"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"}