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,77 @@
1
+ /**
2
+ * @internal Aggregate edge descriptor types and builders.
3
+ *
4
+ * Extracted from Aggregate.ts for decomposition. Not part of the public API.
5
+ */
6
+ import type { Schema } from "effect";
7
+ /** Structural entity type for refs — avoids import of Entity */
8
+ export interface RefEntity {
9
+ readonly _tag: "Entity";
10
+ readonly entityType: string;
11
+ readonly model: Schema.Top;
12
+ readonly schemas: {
13
+ readonly recordSchema: Schema.Codec<any>;
14
+ };
15
+ /** Get an entity by key — uses `any` for structural compatibility with Entity's narrower key type */
16
+ readonly get: (key: any) => any;
17
+ }
18
+ /** A one-to-one edge: one member item per aggregate instance */
19
+ export interface OneEdge {
20
+ readonly _tag: "OneEdge";
21
+ readonly name: string;
22
+ readonly entityType: string;
23
+ readonly entity?: RefEntity | undefined;
24
+ readonly discriminator?: Record<string, unknown> | undefined;
25
+ }
26
+ /** Configuration for a many edge */
27
+ export interface ManyEdgeConfig {
28
+ readonly entityType: string;
29
+ readonly entity?: RefEntity | undefined;
30
+ readonly inputField?: string | undefined;
31
+ readonly edgeAttributes?: ReadonlyArray<string> | undefined;
32
+ readonly sk?: {
33
+ readonly composite: ReadonlyArray<string>;
34
+ } | undefined;
35
+ readonly assemble?: ((items: ReadonlyArray<unknown>) => unknown) | undefined;
36
+ readonly decompose?: ((value: unknown) => ReadonlyArray<unknown>) | undefined;
37
+ }
38
+ /** A one-to-many edge: multiple member items per aggregate instance */
39
+ export interface ManyEdge {
40
+ readonly _tag: "ManyEdge";
41
+ readonly name: string;
42
+ readonly entityType: string;
43
+ readonly entity?: RefEntity | undefined;
44
+ readonly inputField?: string | undefined;
45
+ readonly edgeAttributes?: ReadonlyArray<string> | undefined;
46
+ readonly sk?: {
47
+ readonly composite: ReadonlyArray<string>;
48
+ } | undefined;
49
+ readonly assemble?: ((items: ReadonlyArray<unknown>) => unknown) | undefined;
50
+ readonly decompose?: ((value: unknown) => ReadonlyArray<unknown>) | undefined;
51
+ }
52
+ /** A ref edge: no decomposition, hydrates via entity, data stays inline */
53
+ export interface RefEdge {
54
+ readonly _tag: "RefEdge";
55
+ readonly entity: RefEntity;
56
+ }
57
+ /** Union of edge types */
58
+ export type AggregateEdge = OneEdge | ManyEdge | RefEdge;
59
+ /** Create a one-to-one edge descriptor */
60
+ export declare const one: (name: string, config: {
61
+ readonly entityType: string;
62
+ readonly entity?: RefEntity;
63
+ readonly discriminator?: Record<string, unknown>;
64
+ }) => OneEdge;
65
+ /** Create a one-to-many edge descriptor */
66
+ export declare function many<const IF extends string>(name: string, config: ManyEdgeConfig & {
67
+ readonly inputField: IF;
68
+ }): ManyEdge & {
69
+ readonly inputField: IF;
70
+ };
71
+ export declare function many(name: string, config: ManyEdgeConfig): ManyEdge;
72
+ /** Create a ref edge descriptor — no decomposition, hydrates via entity, data stays inline */
73
+ export declare const ref: (entity: RefEntity) => RefEdge;
74
+ export declare const isOneEdge: (edge: AggregateEdge) => edge is OneEdge;
75
+ export declare const isManyEdge: (edge: AggregateEdge) => edge is ManyEdge;
76
+ export declare const isRefEdge: (edge: AggregateEdge) => edge is RefEdge;
77
+ //# sourceMappingURL=_AggregateEdges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_AggregateEdges.d.ts","sourceRoot":"","sources":["../src/_AggregateEdges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @internal Aggregate edge descriptor types and builders.
3
+ *
4
+ * Extracted from Aggregate.ts for decomposition. Not part of the public API.
5
+ */
6
+ // ---------------------------------------------------------------------------
7
+ // Edge builders
8
+ // ---------------------------------------------------------------------------
9
+ /** Create a one-to-one edge descriptor */
10
+ export const one = (name, config) => ({
11
+ _tag: "OneEdge",
12
+ name,
13
+ entityType: config.entityType,
14
+ entity: config.entity,
15
+ discriminator: config.discriminator,
16
+ });
17
+ export function many(name, config) {
18
+ return {
19
+ _tag: "ManyEdge",
20
+ name,
21
+ entityType: config.entityType,
22
+ entity: config.entity,
23
+ inputField: config.inputField,
24
+ edgeAttributes: config.edgeAttributes,
25
+ sk: config.sk,
26
+ assemble: config.assemble,
27
+ decompose: config.decompose,
28
+ };
29
+ }
30
+ /** Create a ref edge descriptor — no decomposition, hydrates via entity, data stays inline */
31
+ export const ref = (entity) => ({
32
+ _tag: "RefEdge",
33
+ entity,
34
+ });
35
+ // ---------------------------------------------------------------------------
36
+ // Type guards
37
+ // ---------------------------------------------------------------------------
38
+ export const isOneEdge = (edge) => edge._tag === "OneEdge";
39
+ export const isManyEdge = (edge) => edge._tag === "ManyEdge";
40
+ export const isRefEdge = (edge) => edge._tag === "RefEdge";
41
+ //# sourceMappingURL=_AggregateEdges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_AggregateEdges.js","sourceRoot":"","sources":["../src/_AggregateEdges.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkEH,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,IAAY,EACZ,MAIC,EACQ,EAAE,CAAC,CAAC;IACb,IAAI,EAAE,SAAS;IACf,IAAI;IACJ,UAAU,EAAE,MAAM,CAAC,UAAU;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,aAAa,EAAE,MAAM,CAAC,aAAa;CACpC,CAAC,CAAA;AAQF,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,MAAsB;IACvD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAiB,EAAW,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE,SAAS;IACf,MAAM;CACP,CAAC,CAAA;AAEF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAmB,EAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA;AAC1F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAA;AAC7F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAmB,EAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA"}
@@ -0,0 +1,69 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,194 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_AggregateSchemas.js","sourceRoot":"","sources":["../src/_AggregateSchemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_AggregateTypes.d.ts","sourceRoot":"","sources":["../src/_AggregateTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_AggregateTypes.js","sourceRoot":"","sources":["../src/_AggregateTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}