effect-dynamodb 0.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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/Aggregate.d.ts +210 -0
  4. package/dist/Aggregate.d.ts.map +1 -0
  5. package/dist/Aggregate.js +1169 -0
  6. package/dist/Aggregate.js.map +1 -0
  7. package/dist/Batch.d.ts +62 -0
  8. package/dist/Batch.d.ts.map +1 -0
  9. package/dist/Batch.js +218 -0
  10. package/dist/Batch.js.map +1 -0
  11. package/dist/Collection.d.ts +58 -0
  12. package/dist/Collection.d.ts.map +1 -0
  13. package/dist/Collection.js +195 -0
  14. package/dist/Collection.js.map +1 -0
  15. package/dist/Collections.d.ts +121 -0
  16. package/dist/Collections.d.ts.map +1 -0
  17. package/dist/Collections.js +121 -0
  18. package/dist/Collections.js.map +1 -0
  19. package/dist/DynamoClient.d.ts +317 -0
  20. package/dist/DynamoClient.d.ts.map +1 -0
  21. package/dist/DynamoClient.js +653 -0
  22. package/dist/DynamoClient.js.map +1 -0
  23. package/dist/DynamoModel.d.ts +278 -0
  24. package/dist/DynamoModel.d.ts.map +1 -0
  25. package/dist/DynamoModel.js +453 -0
  26. package/dist/DynamoModel.js.map +1 -0
  27. package/dist/DynamoSchema.d.ts +137 -0
  28. package/dist/DynamoSchema.d.ts.map +1 -0
  29. package/dist/DynamoSchema.js +188 -0
  30. package/dist/DynamoSchema.js.map +1 -0
  31. package/dist/Entity.d.ts +628 -0
  32. package/dist/Entity.d.ts.map +1 -0
  33. package/dist/Entity.js +2371 -0
  34. package/dist/Entity.js.map +1 -0
  35. package/dist/Errors.d.ts +227 -0
  36. package/dist/Errors.d.ts.map +1 -0
  37. package/dist/Errors.js +93 -0
  38. package/dist/Errors.js.map +1 -0
  39. package/dist/EventStore.d.ts +208 -0
  40. package/dist/EventStore.d.ts.map +1 -0
  41. package/dist/EventStore.js +333 -0
  42. package/dist/EventStore.js.map +1 -0
  43. package/dist/Expression.d.ts +50 -0
  44. package/dist/Expression.d.ts.map +1 -0
  45. package/dist/Expression.js +170 -0
  46. package/dist/Expression.js.map +1 -0
  47. package/dist/KeyComposer.d.ts +125 -0
  48. package/dist/KeyComposer.d.ts.map +1 -0
  49. package/dist/KeyComposer.js +257 -0
  50. package/dist/KeyComposer.js.map +1 -0
  51. package/dist/Marshaller.d.ts +30 -0
  52. package/dist/Marshaller.d.ts.map +1 -0
  53. package/dist/Marshaller.js +115 -0
  54. package/dist/Marshaller.js.map +1 -0
  55. package/dist/Projection.d.ts +28 -0
  56. package/dist/Projection.d.ts.map +1 -0
  57. package/dist/Projection.js +39 -0
  58. package/dist/Projection.js.map +1 -0
  59. package/dist/Query.d.ts +214 -0
  60. package/dist/Query.d.ts.map +1 -0
  61. package/dist/Query.js +397 -0
  62. package/dist/Query.js.map +1 -0
  63. package/dist/Table.d.ts +178 -0
  64. package/dist/Table.d.ts.map +1 -0
  65. package/dist/Table.js +211 -0
  66. package/dist/Table.js.map +1 -0
  67. package/dist/Transaction.d.ts +79 -0
  68. package/dist/Transaction.d.ts.map +1 -0
  69. package/dist/Transaction.js +215 -0
  70. package/dist/Transaction.js.map +1 -0
  71. package/dist/_AggregateCursor.d.ts +44 -0
  72. package/dist/_AggregateCursor.d.ts.map +1 -0
  73. package/dist/_AggregateCursor.js +18 -0
  74. package/dist/_AggregateCursor.js.map +1 -0
  75. package/dist/_AggregateEdges.d.ts +77 -0
  76. package/dist/_AggregateEdges.d.ts.map +1 -0
  77. package/dist/_AggregateEdges.js +41 -0
  78. package/dist/_AggregateEdges.js.map +1 -0
  79. package/dist/_AggregateSchemas.d.ts +69 -0
  80. package/dist/_AggregateSchemas.d.ts.map +1 -0
  81. package/dist/_AggregateSchemas.js +194 -0
  82. package/dist/_AggregateSchemas.js.map +1 -0
  83. package/dist/_AggregateTypes.d.ts +94 -0
  84. package/dist/_AggregateTypes.d.ts.map +1 -0
  85. package/dist/_AggregateTypes.js +7 -0
  86. package/dist/_AggregateTypes.js.map +1 -0
  87. package/dist/_EntityCombinators.d.ts +155 -0
  88. package/dist/_EntityCombinators.d.ts.map +1 -0
  89. package/dist/_EntityCombinators.js +158 -0
  90. package/dist/_EntityCombinators.js.map +1 -0
  91. package/dist/_EntityConfig.d.ts +100 -0
  92. package/dist/_EntityConfig.d.ts.map +1 -0
  93. package/dist/_EntityConfig.js +7 -0
  94. package/dist/_EntityConfig.js.map +1 -0
  95. package/dist/_EntityOps.d.ts +205 -0
  96. package/dist/_EntityOps.d.ts.map +1 -0
  97. package/dist/_EntityOps.js +137 -0
  98. package/dist/_EntityOps.js.map +1 -0
  99. package/dist/_EntitySchemas.d.ts +57 -0
  100. package/dist/_EntitySchemas.d.ts.map +1 -0
  101. package/dist/_EntitySchemas.js +298 -0
  102. package/dist/_EntitySchemas.js.map +1 -0
  103. package/dist/_EntityTypes.d.ts +81 -0
  104. package/dist/_EntityTypes.d.ts.map +1 -0
  105. package/dist/_EntityTypes.js +7 -0
  106. package/dist/_EntityTypes.js.map +1 -0
  107. package/dist/_sparse_check.d.ts +2 -0
  108. package/dist/_sparse_check.d.ts.map +1 -0
  109. package/dist/_sparse_check.js +193 -0
  110. package/dist/_sparse_check.js.map +1 -0
  111. package/dist/index.d.ts +35 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +20 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/internal/AggregateCursor.d.ts +44 -0
  116. package/dist/internal/AggregateCursor.d.ts.map +1 -0
  117. package/dist/internal/AggregateCursor.js +18 -0
  118. package/dist/internal/AggregateCursor.js.map +1 -0
  119. package/dist/internal/AggregateEdges.d.ts +77 -0
  120. package/dist/internal/AggregateEdges.d.ts.map +1 -0
  121. package/dist/internal/AggregateEdges.js +41 -0
  122. package/dist/internal/AggregateEdges.js.map +1 -0
  123. package/dist/internal/AggregateSchemas.d.ts +69 -0
  124. package/dist/internal/AggregateSchemas.d.ts.map +1 -0
  125. package/dist/internal/AggregateSchemas.js +193 -0
  126. package/dist/internal/AggregateSchemas.js.map +1 -0
  127. package/dist/internal/AggregateTypes.d.ts +94 -0
  128. package/dist/internal/AggregateTypes.d.ts.map +1 -0
  129. package/dist/internal/AggregateTypes.js +7 -0
  130. package/dist/internal/AggregateTypes.js.map +1 -0
  131. package/dist/internal/BoundQuery.d.ts +107 -0
  132. package/dist/internal/BoundQuery.d.ts.map +1 -0
  133. package/dist/internal/BoundQuery.js +111 -0
  134. package/dist/internal/BoundQuery.js.map +1 -0
  135. package/dist/internal/EntityCombinators.d.ts +173 -0
  136. package/dist/internal/EntityCombinators.d.ts.map +1 -0
  137. package/dist/internal/EntityCombinators.js +183 -0
  138. package/dist/internal/EntityCombinators.js.map +1 -0
  139. package/dist/internal/EntityConfig.d.ts +100 -0
  140. package/dist/internal/EntityConfig.d.ts.map +1 -0
  141. package/dist/internal/EntityConfig.js +7 -0
  142. package/dist/internal/EntityConfig.js.map +1 -0
  143. package/dist/internal/EntityOps.d.ts +268 -0
  144. package/dist/internal/EntityOps.d.ts.map +1 -0
  145. package/dist/internal/EntityOps.js +153 -0
  146. package/dist/internal/EntityOps.js.map +1 -0
  147. package/dist/internal/EntitySchemas.d.ts +57 -0
  148. package/dist/internal/EntitySchemas.d.ts.map +1 -0
  149. package/dist/internal/EntitySchemas.js +299 -0
  150. package/dist/internal/EntitySchemas.js.map +1 -0
  151. package/dist/internal/EntityTypes.d.ts +128 -0
  152. package/dist/internal/EntityTypes.d.ts.map +1 -0
  153. package/dist/internal/EntityTypes.js +7 -0
  154. package/dist/internal/EntityTypes.js.map +1 -0
  155. package/dist/internal/Expr.d.ts +141 -0
  156. package/dist/internal/Expr.d.ts.map +1 -0
  157. package/dist/internal/Expr.js +332 -0
  158. package/dist/internal/Expr.js.map +1 -0
  159. package/dist/internal/PathBuilder.d.ts +88 -0
  160. package/dist/internal/PathBuilder.d.ts.map +1 -0
  161. package/dist/internal/PathBuilder.js +100 -0
  162. package/dist/internal/PathBuilder.js.map +1 -0
  163. package/dist/internal/TransactableOps.d.ts +25 -0
  164. package/dist/internal/TransactableOps.d.ts.map +1 -0
  165. package/dist/internal/TransactableOps.js +58 -0
  166. package/dist/internal/TransactableOps.js.map +1 -0
  167. package/dist/internal/sparse_check.d.ts +2 -0
  168. package/dist/internal/sparse_check.d.ts.map +1 -0
  169. package/dist/internal/sparse_check.js +196 -0
  170. package/dist/internal/sparse_check.js.map +1 -0
  171. package/package.json +71 -0
@@ -0,0 +1,205 @@
1
+ /**
2
+ * @internal Entity operation intermediates — lazy, pipeable, effectable.
3
+ *
4
+ * Extracted from Entity.ts for decomposition. Not part of the public API.
5
+ */
6
+ import type { ReturnValue } from "@aws-sdk/client-dynamodb";
7
+ import { Effect, Pipeable } from "effect";
8
+ import type { ConditionInput } from "./Expression.js";
9
+ import type { IndexDefinition } from "./KeyComposer.js";
10
+ import type { Table } from "./Table.js";
11
+ /** @internal */
12
+ export declare const EntityOpTypeId: unique symbol;
13
+ export type EntityOpTypeId = typeof EntityOpTypeId;
14
+ /** @internal */
15
+ export declare const EntityUpdateTypeId: unique symbol;
16
+ export type EntityUpdateTypeId = typeof EntityUpdateTypeId;
17
+ /** @internal */
18
+ export declare const EntityDeleteTypeId: unique symbol;
19
+ export type EntityDeleteTypeId = typeof EntityDeleteTypeId;
20
+ export type DecodeMode = "model" | "record" | "item" | "native" | "raw";
21
+ /** DynamoDB ReturnValues modes */
22
+ export type ReturnValuesMode = "none" | "allOld" | "allNew" | "updatedOld" | "updatedNew";
23
+ /** @internal Map from our mode names to DynamoDB ReturnValues strings */
24
+ export declare const returnValuesMap: globalThis.Record<ReturnValuesMode, ReturnValue>;
25
+ /** @internal Minimal shape needed from cascade target entities */
26
+ export interface CascadeTarget {
27
+ readonly entityType: string;
28
+ readonly indexes: globalThis.Record<string, IndexDefinition>;
29
+ readonly table: Table;
30
+ readonly _resolvedRefs: ReadonlyArray<{
31
+ readonly fieldName: string;
32
+ readonly idFieldName: string;
33
+ readonly identifierField: string;
34
+ readonly refEntityType: string;
35
+ }>;
36
+ }
37
+ /** @internal */
38
+ export interface CascadeConfig {
39
+ readonly targets: ReadonlyArray<CascadeTarget>;
40
+ readonly filter?: globalThis.Record<string, unknown> | undefined;
41
+ readonly mode?: "eventual" | "transactional" | undefined;
42
+ }
43
+ /** @internal */
44
+ export interface UpdateState {
45
+ readonly updates: unknown;
46
+ readonly expectedVersion: number | undefined;
47
+ readonly condition: ConditionInput | undefined;
48
+ readonly remove: ReadonlyArray<string> | undefined;
49
+ readonly add: globalThis.Record<string, number> | undefined;
50
+ readonly subtract: globalThis.Record<string, number> | undefined;
51
+ readonly append: globalThis.Record<string, ReadonlyArray<unknown>> | undefined;
52
+ readonly deleteFromSet: globalThis.Record<string, unknown> | undefined;
53
+ readonly returnValues: ReturnValuesMode | undefined;
54
+ readonly cascade: CascadeConfig | undefined;
55
+ }
56
+ export declare const emptyUpdateState: UpdateState;
57
+ /**
58
+ * Base interface for lazy Entity operation intermediates.
59
+ * Yieldable (`yield*` defaults to model decode mode) and Pipeable.
60
+ * NOT assignable to `Effect` — call `.asEffect()` to cross the boundary.
61
+ *
62
+ * @typeParam A - Decoded model type (e.g., `User`)
63
+ * @typeParam Rec - Record type — model fields plus system fields (timestamps, version)
64
+ * @typeParam E - Error channel
65
+ * @typeParam R - Required services
66
+ */
67
+ export interface EntityOp<A, Rec, E, R> extends Effect.Yieldable<EntityOp<A, Rec, E, R>, A, E, R>, Pipeable.Pipeable {
68
+ readonly [EntityOpTypeId]: EntityOpTypeId;
69
+ /** @internal */
70
+ readonly _run: (mode: DecodeMode) => Effect.Effect<any, E, R>;
71
+ /** @internal */ readonly _Rec: (_: never) => Rec;
72
+ }
73
+ /**
74
+ * Lazy intermediate returned by `Entity.get()`.
75
+ * `yield*` returns the model type. Pipe to {@link asRecord}, {@link asItem}, or {@link asNative} for alternate decode modes.
76
+ *
77
+ * @typeParam A - Decoded model type
78
+ * @typeParam Rec - Record type (model + system fields)
79
+ * @typeParam E - Error channel
80
+ * @typeParam R - Required services
81
+ */
82
+ export interface EntityGet<A, Rec, E, R> extends EntityOp<A, Rec, E, R> {
83
+ }
84
+ /**
85
+ * Lazy intermediate returned by `Entity.put()`.
86
+ * `yield*` returns the model type. Pipe to {@link asRecord}, {@link asItem}, or {@link asNative} for alternate decode modes.
87
+ *
88
+ * @typeParam A - Decoded model type
89
+ * @typeParam Rec - Record type (model + system fields)
90
+ * @typeParam E - Error channel
91
+ * @typeParam R - Required services
92
+ */
93
+ export interface EntityPut<A, Rec, E, R> extends EntityOp<A, Rec, E, R> {
94
+ }
95
+ /**
96
+ * Lazy intermediate returned by `Entity.update()`.
97
+ * `yield*` returns the model type. Pipe to {@link asRecord}, {@link asItem}, or {@link asNative} for alternate decode modes.
98
+ * Supports {@link set} and {@link expectedVersion} combinators via pipe.
99
+ *
100
+ * @typeParam A - Decoded model type
101
+ * @typeParam Rec - Record type (model + system fields)
102
+ * @typeParam U - Update payload type (partial model minus keys, with GSI all-or-none constraints)
103
+ * @typeParam E - Error channel
104
+ * @typeParam R - Required services
105
+ */
106
+ export interface EntityUpdate<A, Rec, U, E, R> extends EntityOp<A, Rec, E, R> {
107
+ readonly [EntityUpdateTypeId]: EntityUpdateTypeId;
108
+ /** @internal phantom */ readonly _U: (_: never) => U;
109
+ /** @internal */
110
+ readonly _updateState: UpdateState;
111
+ /** @internal */
112
+ readonly _builder: (mode: DecodeMode, state: UpdateState) => Effect.Effect<any, E, R>;
113
+ /** @internal */
114
+ readonly _entity: EntityBase;
115
+ /** @internal */
116
+ readonly _key: globalThis.Record<string, unknown>;
117
+ }
118
+ /**
119
+ * Lazy intermediate returned by Entity.delete().
120
+ * yield* returns void. Carries entity + key for Transaction/Batch extraction.
121
+ * Does NOT extend EntityOp (no decode mode — delete returns void).
122
+ * NOT assignable to `Effect` — call `.asEffect()` to cross the boundary.
123
+ */
124
+ export interface EntityDelete<E, R> extends Effect.Yieldable<EntityDelete<E, R>, void, E, R>, Pipeable.Pipeable {
125
+ readonly [EntityDeleteTypeId]: EntityDeleteTypeId;
126
+ /** @internal */ readonly _opType: "delete";
127
+ /** @internal */ readonly _entity: EntityBase;
128
+ /** @internal */ readonly _key: globalThis.Record<string, unknown>;
129
+ }
130
+ /**
131
+ * @internal Minimal entity shape used by operation intermediates.
132
+ * Avoids circular dependency with the full Entity interface.
133
+ */
134
+ export interface EntityBase {
135
+ readonly _tag: "Entity";
136
+ }
137
+ export interface EntityGetOpts {
138
+ readonly consistentRead: boolean;
139
+ readonly projection: ReadonlyArray<string> | undefined;
140
+ }
141
+ export declare class EntityGetImpl<A, Rec, E, R> extends Effect.YieldableClass<A, E, R> {
142
+ readonly _builder: (mode: DecodeMode, opts: EntityGetOpts) => Effect.Effect<any, E, R>;
143
+ readonly [EntityOpTypeId]: EntityOpTypeId;
144
+ readonly _opType: "get";
145
+ readonly _Rec: (_: never) => Rec;
146
+ readonly _entity: EntityBase;
147
+ readonly _key: globalThis.Record<string, unknown>;
148
+ readonly _consistentRead: boolean;
149
+ readonly _projection: ReadonlyArray<string> | undefined;
150
+ constructor(_builder: (mode: DecodeMode, opts: EntityGetOpts) => Effect.Effect<any, E, R>, entity: EntityBase, key: globalThis.Record<string, unknown>, consistentRead?: boolean, projection?: ReadonlyArray<string>);
151
+ get _run(): (mode: DecodeMode) => Effect.Effect<any, E, R>;
152
+ asEffect(): Effect.Effect<A, E, R>;
153
+ pipe(): unknown;
154
+ }
155
+ export declare class EntityPutImpl<A, Rec, E, R> extends Effect.YieldableClass<A, E, R> {
156
+ readonly _builder: (mode: DecodeMode, opts: {
157
+ readonly condition: ConditionInput | undefined;
158
+ }) => Effect.Effect<any, E, R>;
159
+ readonly [EntityOpTypeId]: EntityOpTypeId;
160
+ readonly _opType: "put";
161
+ readonly _Rec: (_: never) => Rec;
162
+ readonly _entity: EntityBase;
163
+ readonly _input: globalThis.Record<string, unknown>;
164
+ readonly _condition: ConditionInput | undefined;
165
+ constructor(_builder: (mode: DecodeMode, opts: {
166
+ readonly condition: ConditionInput | undefined;
167
+ }) => Effect.Effect<any, E, R>, entity: EntityBase, input: globalThis.Record<string, unknown>, condition?: ConditionInput | undefined);
168
+ get _run(): (mode: DecodeMode) => Effect.Effect<any, E, R>;
169
+ asEffect(): Effect.Effect<A, E, R>;
170
+ pipe(): unknown;
171
+ }
172
+ export declare class EntityUpdateImpl<A, Rec, U, E, R> extends Effect.YieldableClass<A, E, R> {
173
+ readonly _builder: (mode: DecodeMode, state: UpdateState) => Effect.Effect<any, E, R>;
174
+ readonly _updateState: UpdateState;
175
+ readonly [EntityOpTypeId]: EntityOpTypeId;
176
+ readonly [EntityUpdateTypeId]: EntityUpdateTypeId;
177
+ readonly _opType: "update";
178
+ readonly _Rec: (_: never) => Rec;
179
+ readonly _U: (_: never) => U;
180
+ readonly _entity: EntityBase;
181
+ readonly _key: globalThis.Record<string, unknown>;
182
+ constructor(_builder: (mode: DecodeMode, state: UpdateState) => Effect.Effect<any, E, R>, _updateState: UpdateState, entity: EntityBase, key: globalThis.Record<string, unknown>);
183
+ get _run(): (mode: DecodeMode) => Effect.Effect<any, E, R>;
184
+ asEffect(): Effect.Effect<A, E, R>;
185
+ pipe(): unknown;
186
+ }
187
+ export declare class EntityDeleteImpl<E, R> extends Effect.YieldableClass<void, E, R> {
188
+ readonly _builder: (opts: {
189
+ readonly condition: ConditionInput | undefined;
190
+ readonly returnValues: ReturnValuesMode | undefined;
191
+ }) => Effect.Effect<void, E, R>;
192
+ readonly [EntityDeleteTypeId]: EntityDeleteTypeId;
193
+ readonly _opType: "delete";
194
+ readonly _entity: EntityBase;
195
+ readonly _key: globalThis.Record<string, unknown>;
196
+ readonly _condition: ConditionInput | undefined;
197
+ readonly _returnValues: ReturnValuesMode | undefined;
198
+ constructor(_builder: (opts: {
199
+ readonly condition: ConditionInput | undefined;
200
+ readonly returnValues: ReturnValuesMode | undefined;
201
+ }) => Effect.Effect<void, E, R>, entity: EntityBase, key: globalThis.Record<string, unknown>, condition?: ConditionInput | undefined, returnValues?: ReturnValuesMode | undefined);
202
+ asEffect(): Effect.Effect<void, E, R>;
203
+ pipe(): unknown;
204
+ }
205
+ //# sourceMappingURL=_EntityOps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_EntityOps.d.ts","sourceRoot":"","sources":["../src/_EntityOps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * @internal Entity operation intermediates — lazy, pipeable, effectable.
3
+ *
4
+ * Extracted from Entity.ts for decomposition. Not part of the public API.
5
+ */
6
+ import { Effect, Pipeable } from "effect";
7
+ // ---------------------------------------------------------------------------
8
+ // TypeId symbols
9
+ // ---------------------------------------------------------------------------
10
+ /** @internal */
11
+ export const EntityOpTypeId = Symbol.for("effect-dynamodb/EntityOp");
12
+ /** @internal */
13
+ export const EntityUpdateTypeId = Symbol.for("effect-dynamodb/EntityUpdate");
14
+ /** @internal */
15
+ export const EntityDeleteTypeId = Symbol.for("effect-dynamodb/EntityDelete");
16
+ /** @internal Map from our mode names to DynamoDB ReturnValues strings */
17
+ export const returnValuesMap = {
18
+ none: "NONE",
19
+ allOld: "ALL_OLD",
20
+ allNew: "ALL_NEW",
21
+ updatedOld: "UPDATED_OLD",
22
+ updatedNew: "UPDATED_NEW",
23
+ };
24
+ export const emptyUpdateState = {
25
+ updates: undefined,
26
+ expectedVersion: undefined,
27
+ condition: undefined,
28
+ remove: undefined,
29
+ add: undefined,
30
+ subtract: undefined,
31
+ append: undefined,
32
+ deleteFromSet: undefined,
33
+ returnValues: undefined,
34
+ cascade: undefined,
35
+ };
36
+ export class EntityGetImpl extends Effect.YieldableClass {
37
+ _builder;
38
+ [EntityOpTypeId] = EntityOpTypeId;
39
+ _opType = "get";
40
+ _entity;
41
+ _key;
42
+ _consistentRead;
43
+ _projection;
44
+ constructor(_builder, entity, key, consistentRead, projection) {
45
+ super();
46
+ this._builder = _builder;
47
+ this._entity = entity;
48
+ this._key = key;
49
+ this._consistentRead = consistentRead ?? false;
50
+ this._projection = projection;
51
+ }
52
+ get _run() {
53
+ return (mode) => this._builder(this._projection ? "raw" : mode, {
54
+ consistentRead: this._consistentRead,
55
+ projection: this._projection,
56
+ });
57
+ }
58
+ asEffect() {
59
+ return this._run("model");
60
+ }
61
+ pipe() {
62
+ return Pipeable.pipeArguments(this, arguments);
63
+ }
64
+ }
65
+ export class EntityPutImpl extends Effect.YieldableClass {
66
+ _builder;
67
+ [EntityOpTypeId] = EntityOpTypeId;
68
+ _opType = "put";
69
+ _entity;
70
+ _input;
71
+ _condition;
72
+ constructor(_builder, entity, input, condition) {
73
+ super();
74
+ this._builder = _builder;
75
+ this._entity = entity;
76
+ this._input = input;
77
+ this._condition = condition;
78
+ }
79
+ get _run() {
80
+ return (mode) => this._builder(mode, { condition: this._condition });
81
+ }
82
+ asEffect() {
83
+ return this._run("model");
84
+ }
85
+ pipe() {
86
+ return Pipeable.pipeArguments(this, arguments);
87
+ }
88
+ }
89
+ export class EntityUpdateImpl extends Effect.YieldableClass {
90
+ _builder;
91
+ _updateState;
92
+ [EntityOpTypeId] = EntityOpTypeId;
93
+ [EntityUpdateTypeId] = EntityUpdateTypeId;
94
+ _opType = "update";
95
+ _entity;
96
+ _key;
97
+ constructor(_builder, _updateState, entity, key) {
98
+ super();
99
+ this._builder = _builder;
100
+ this._updateState = _updateState;
101
+ this._entity = entity;
102
+ this._key = key;
103
+ }
104
+ get _run() {
105
+ return (mode) => this._builder(mode, this._updateState);
106
+ }
107
+ asEffect() {
108
+ return this._run("model");
109
+ }
110
+ pipe() {
111
+ return Pipeable.pipeArguments(this, arguments);
112
+ }
113
+ }
114
+ export class EntityDeleteImpl extends Effect.YieldableClass {
115
+ _builder;
116
+ [EntityDeleteTypeId] = EntityDeleteTypeId;
117
+ _opType = "delete";
118
+ _entity;
119
+ _key;
120
+ _condition;
121
+ _returnValues;
122
+ constructor(_builder, entity, key, condition, returnValues) {
123
+ super();
124
+ this._builder = _builder;
125
+ this._entity = entity;
126
+ this._key = key;
127
+ this._condition = condition;
128
+ this._returnValues = returnValues;
129
+ }
130
+ asEffect() {
131
+ return this._builder({ condition: this._condition, returnValues: this._returnValues });
132
+ }
133
+ pipe() {
134
+ return Pipeable.pipeArguments(this, arguments);
135
+ }
136
+ }
137
+ //# sourceMappingURL=_EntityOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_EntityOps.js","sourceRoot":"","sources":["../src/_EntityOps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @internal Entity schema building — derived schemas and system field resolution.
3
+ *
4
+ * Extracted from Entity.ts for decomposition. Not part of the public API.
5
+ */
6
+ import { Schema } from "effect";
7
+ import type { TimestampsConfig, UniqueConstraintDef, VersionedConfig } from "./_EntityConfig.js";
8
+ import { type DynamoEncoding } from "./DynamoModel.js";
9
+ import type { IndexDefinition } from "./KeyComposer.js";
10
+ export interface ResolvedSystemFields {
11
+ readonly createdAt: string | null;
12
+ readonly createdAtEncoding: DynamoEncoding | null;
13
+ readonly updatedAt: string | null;
14
+ readonly updatedAtEncoding: DynamoEncoding | null;
15
+ readonly version: string | null;
16
+ }
17
+ export declare const resolveSystemFields: (timestamps?: TimestampsConfig | undefined, versioned?: VersionedConfig | undefined) => ResolvedSystemFields;
18
+ export declare const primaryKeyComposites: (indexes: globalThis.Record<string, IndexDefinition>) => ReadonlyArray<string>;
19
+ export declare const allKeyFieldNames: (indexes: globalThis.Record<string, IndexDefinition>) => ReadonlyArray<string>;
20
+ export declare const allCompositeAttributes: (indexes: globalThis.Record<string, IndexDefinition>) => ReadonlyArray<string>;
21
+ export type SchemaFields = globalThis.Record<string, Schema.Top>;
22
+ export declare const getFields: (model: Schema.Top) => SchemaFields;
23
+ /**
24
+ * Infer a default DynamoEncoding for standard Effect date schemas that lack
25
+ * an explicit DynamoEncoding annotation. This enables Pattern B (pure model
26
+ * with Schema.DateTimeUtcFromString etc.) to work without explicit storedAs.
27
+ *
28
+ * Detection uses the typeConstructor annotation from Effect's schema AST.
29
+ */
30
+ export declare const inferDefaultEncoding: (schema: Schema.Top) => DynamoEncoding | undefined;
31
+ export interface DerivedSchemas {
32
+ /** Pure model fields schema (wire format — for input validation) */
33
+ readonly modelSchema: Schema.Codec<any>;
34
+ /** Model fields with fromSelf for date-annotated fields (for decode after deserialization) */
35
+ readonly modelDecodeSchema: Schema.Codec<any>;
36
+ /** Model + system fields schema */
37
+ readonly recordSchema: Schema.Codec<any>;
38
+ /** Same as model (system fields auto-managed) */
39
+ readonly inputSchema: Schema.Codec<any>;
40
+ /** Input fields minus primary key composites — the common "create" payload */
41
+ readonly createSchema: Schema.Codec<any>;
42
+ /** Optional model fields minus keys and immutable */
43
+ readonly updateSchema: Schema.Codec<any>;
44
+ /** Primary key composites only */
45
+ readonly keySchema: Schema.Codec<any>;
46
+ /** Record + key attrs + __edd_e__ */
47
+ readonly itemSchema: Schema.Codec<any>;
48
+ /** Record fields + deletedAt for soft-deleted items */
49
+ readonly deletedRecordSchema: Schema.Codec<any>;
50
+ }
51
+ export declare const buildDerivedSchemas: (modelFields: SchemaFields, indexes: globalThis.Record<string, IndexDefinition>, systemFields: ResolvedSystemFields, resolvedRefs?: ReadonlyArray<{
52
+ readonly fieldName: string;
53
+ readonly idFieldName: string;
54
+ readonly identifierSchema: Schema.Top;
55
+ }>) => DerivedSchemas;
56
+ export declare const resolveUniqueFields: (def: UniqueConstraintDef) => ReadonlyArray<string>;
57
+ //# sourceMappingURL=_EntitySchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_EntitySchemas.d.ts","sourceRoot":"","sources":["../src/_EntitySchemas.ts"],"names":[],"mappings":"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"}