@effect-dynamodb/schema 1.9.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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +53 -0
  3. package/dist/Aggregate.d.ts +128 -0
  4. package/dist/Aggregate.d.ts.map +1 -0
  5. package/dist/Aggregate.js +69 -0
  6. package/dist/Aggregate.js.map +1 -0
  7. package/dist/DynamoModel.d.ts +370 -0
  8. package/dist/DynamoModel.d.ts.map +1 -0
  9. package/dist/DynamoModel.js +541 -0
  10. package/dist/DynamoModel.js.map +1 -0
  11. package/dist/DynamoSchema.d.ts +137 -0
  12. package/dist/DynamoSchema.d.ts.map +1 -0
  13. package/dist/DynamoSchema.js +188 -0
  14. package/dist/DynamoSchema.js.map +1 -0
  15. package/dist/Entity.d.ts +239 -0
  16. package/dist/Entity.d.ts.map +1 -0
  17. package/dist/Entity.js +558 -0
  18. package/dist/Entity.js.map +1 -0
  19. package/dist/Errors.d.ts +387 -0
  20. package/dist/Errors.d.ts.map +1 -0
  21. package/dist/Errors.js +218 -0
  22. package/dist/Errors.js.map +1 -0
  23. package/dist/KeyComposer.d.ts +264 -0
  24. package/dist/KeyComposer.d.ts.map +1 -0
  25. package/dist/KeyComposer.js +516 -0
  26. package/dist/KeyComposer.js.map +1 -0
  27. package/dist/Projection.d.ts +28 -0
  28. package/dist/Projection.d.ts.map +1 -0
  29. package/dist/Projection.js +39 -0
  30. package/dist/Projection.js.map +1 -0
  31. package/dist/index.d.ts +32 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +26 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/internal/AggregateCursor.d.ts +44 -0
  36. package/dist/internal/AggregateCursor.d.ts.map +1 -0
  37. package/dist/internal/AggregateCursor.js +18 -0
  38. package/dist/internal/AggregateCursor.js.map +1 -0
  39. package/dist/internal/AggregateEdges.d.ts +117 -0
  40. package/dist/internal/AggregateEdges.d.ts.map +1 -0
  41. package/dist/internal/AggregateEdges.js +51 -0
  42. package/dist/internal/AggregateEdges.js.map +1 -0
  43. package/dist/internal/AggregateSchemas.d.ts +76 -0
  44. package/dist/internal/AggregateSchemas.d.ts.map +1 -0
  45. package/dist/internal/AggregateSchemas.js +164 -0
  46. package/dist/internal/AggregateSchemas.js.map +1 -0
  47. package/dist/internal/AggregateTypes.d.ts +132 -0
  48. package/dist/internal/AggregateTypes.d.ts.map +1 -0
  49. package/dist/internal/AggregateTypes.js +7 -0
  50. package/dist/internal/AggregateTypes.js.map +1 -0
  51. package/dist/internal/DefaultCrypto.d.ts +26 -0
  52. package/dist/internal/DefaultCrypto.d.ts.map +1 -0
  53. package/dist/internal/DefaultCrypto.js +40 -0
  54. package/dist/internal/DefaultCrypto.js.map +1 -0
  55. package/dist/internal/EntityConfig.d.ts +152 -0
  56. package/dist/internal/EntityConfig.d.ts.map +1 -0
  57. package/dist/internal/EntityConfig.js +7 -0
  58. package/dist/internal/EntityConfig.js.map +1 -0
  59. package/dist/internal/EntitySchemas.d.ts +198 -0
  60. package/dist/internal/EntitySchemas.d.ts.map +1 -0
  61. package/dist/internal/EntitySchemas.js +798 -0
  62. package/dist/internal/EntitySchemas.js.map +1 -0
  63. package/dist/internal/EntityTypes.d.ts +233 -0
  64. package/dist/internal/EntityTypes.d.ts.map +1 -0
  65. package/dist/internal/EntityTypes.js +7 -0
  66. package/dist/internal/EntityTypes.js.map +1 -0
  67. package/dist/internal/SchemaAccessors.d.ts +90 -0
  68. package/dist/internal/SchemaAccessors.d.ts.map +1 -0
  69. package/dist/internal/SchemaAccessors.js +171 -0
  70. package/dist/internal/SchemaAccessors.js.map +1 -0
  71. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitySchemas.js","sourceRoot":"","sources":["../../src/internal/EntitySchemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * @internal Entity type-level computations — derived types for Entity operations.
3
+ *
4
+ * Extracted from Entity.ts for decomposition. Not part of the public API.
5
+ */
6
+ import type { DateTime, Schema } from "effect";
7
+ import type { RefNotFound } from "../Errors.js";
8
+ /** Extract the model's Type directly — preserves Schema.Class name (e.g. `User`) */
9
+ export type ModelType<TModel extends Schema.Top> = Schema.Schema.Type<TModel>;
10
+ /**
11
+ * Flatten an intersection of object types into a single object literal for
12
+ * cleaner hover/IntelliSense display. Pure identity at the type level —
13
+ * `Simplify<A & B>` is assignable to `A & B` and vice versa.
14
+ */
15
+ export type Simplify<T> = {
16
+ [K in keyof T]: T[K];
17
+ } & {};
18
+ /** Detect the `any` type — needed to short-circuit conditional type computations
19
+ * that would otherwise distribute over `any` and produce nonsense shapes. */
20
+ type IsAny<T> = 0 extends 1 & T ? true : false;
21
+ type TimestampFieldName<C, Default extends string> = [C] extends [undefined] ? Default : C extends string ? C : C extends {
22
+ readonly field: infer F extends string;
23
+ } ? F : Default;
24
+ type CreatedAtFieldName<TTimestamps> = [TTimestamps] extends [undefined | false] ? never : TTimestamps extends true ? "createdAt" : TTimestamps extends {
25
+ readonly created?: infer C;
26
+ } ? TimestampFieldName<C, "createdAt"> : "createdAt";
27
+ type UpdatedAtFieldName<TTimestamps, TTimeSeries = undefined> = [TTimeSeries] extends [
28
+ undefined | false
29
+ ] ? [TTimestamps] extends [undefined | false] ? never : TTimestamps extends true ? "updatedAt" : TTimestamps extends {
30
+ readonly updated?: infer U;
31
+ } ? TimestampFieldName<U, "updatedAt"> : "updatedAt" : never;
32
+ type VersionFieldName<TVersioned> = [TVersioned] extends [undefined | false] ? never : TVersioned extends true ? "version" : TVersioned extends {
33
+ readonly field: infer F extends string;
34
+ } ? F : "version";
35
+ /**
36
+ * Apply system-field collision adjustments to an input/create type:
37
+ * - Colliding `createdAt`/`updatedAt` become optional (caller may supply or
38
+ * let the library auto-generate).
39
+ * - Colliding `version` is stripped entirely (optimistic locking requires
40
+ * library-managed increment).
41
+ */
42
+ export type WithSystemCollisions<T, TTimestamps, TVersioned, TTimeSeries = undefined> = IsAny<T> extends true ? T : IsAny<TTimestamps> extends true ? T : IsAny<TVersioned> extends true ? T : Simplify<Omit<T, (CreatedAtFieldName<TTimestamps> & keyof T) | (UpdatedAtFieldName<TTimestamps, TTimeSeries> & keyof T) | (VersionFieldName<TVersioned> & keyof T)> & Partial<Pick<T, (CreatedAtFieldName<TTimestamps> & keyof T) | (UpdatedAtFieldName<TTimestamps, TTimeSeries> & keyof T)>>>;
43
+ /**
44
+ * Apply system-field collision adjustments to an update type. `createdAt` is
45
+ * treated as immutable (stripped entirely); `updatedAt` stays optional (it
46
+ * already is, via `Partial`); `version` is stripped.
47
+ */
48
+ export type WithSystemCollisionsForUpdate<T, TTimestamps, TVersioned> = IsAny<T> extends true ? T : IsAny<TTimestamps> extends true ? T : IsAny<TVersioned> extends true ? T : Simplify<Omit<T, (CreatedAtFieldName<TTimestamps> & keyof T) | (VersionFieldName<TVersioned> & keyof T)>>;
49
+ /** Extract primary key composite attribute names as a string union */
50
+ export type PrimaryKeyComposites<TIndexes> = TIndexes extends {
51
+ readonly primary: {
52
+ readonly pk: {
53
+ readonly composite: infer PKC extends ReadonlyArray<string>;
54
+ };
55
+ readonly sk: {
56
+ readonly composite: infer SKC extends ReadonlyArray<string>;
57
+ };
58
+ };
59
+ } ? PKC[number] | SKC[number] : string;
60
+ /** Compute system fields added by timestamps and versioned config.
61
+ *
62
+ * Time-series entities auto-suppress `updatedAt` — the `orderBy` attribute IS
63
+ * the update clock. `createdAt` is preserved and set via `if_not_exists`.
64
+ */
65
+ export type SystemFieldsType<TTimestamps, TVersioned, TTimeSeries = undefined> = ([
66
+ TTimestamps
67
+ ] extends [undefined] ? {} : [TTimestamps] extends [false] ? {} : [TTimeSeries] extends [undefined | false] ? {
68
+ readonly createdAt: DateTime.Utc;
69
+ readonly updatedAt: DateTime.Utc;
70
+ } : {
71
+ readonly createdAt: DateTime.Utc;
72
+ }) & ([TVersioned] extends [undefined] ? {} : [TVersioned] extends [false] ? {} : {
73
+ readonly version: number;
74
+ });
75
+ /**
76
+ * Make the auto-generated id field optional on an input type.
77
+ *
78
+ * When an entity declares `generatedId: { field: "id" }`, the `id` field is
79
+ * filled by the library at write time when the caller omits it. The input type
80
+ * therefore marks the field optional (caller MAY supply it to override). The
81
+ * record/return type keeps it required — a decoded record always carries it.
82
+ *
83
+ * `TGeneratedId` is the `generatedId` config (or `undefined`). When absent the
84
+ * input type is returned unchanged.
85
+ */
86
+ export type WithGeneratedId<T, TGeneratedId> = [TGeneratedId] extends [undefined] ? T : TGeneratedId extends {
87
+ readonly field: infer F extends string;
88
+ } ? F extends keyof T ? Simplify<Omit<T, F> & Partial<Pick<T, F>>> : T : T;
89
+ /** Entity key type: Pick model fields by primary key composites */
90
+ export type EntityKeyType<TModel extends Schema.Top, TIndexes> = Pick<ModelType<TModel>, PrimaryKeyComposites<TIndexes> & keyof ModelType<TModel>>;
91
+ /** Entity record type: model fields + system fields */
92
+ export type EntityRecordType<TModel extends Schema.Top, TTimestamps, TVersioned, TTimeSeries = undefined> = ModelType<TModel> & SystemFieldsType<TTimestamps, TVersioned, TTimeSeries>;
93
+ /** Entity input type: model fields with system-colliding fields adjusted. */
94
+ export type EntityInputType<TModel extends Schema.Top, TTimestamps = undefined, TVersioned = undefined, TTimeSeries = undefined> = WithSystemCollisions<ModelType<TModel>, TTimestamps, TVersioned, TTimeSeries>;
95
+ /** Entity create type: input fields minus identifier (or PK composites as fallback) */
96
+ export type EntityCreateType<TModel extends Schema.Top, TIndexes, TIdentifier extends string | undefined, TTimestamps = undefined, TVersioned = undefined, TTimeSeries = undefined> = WithSystemCollisions<[
97
+ TIdentifier
98
+ ] extends [string] ? Omit<ModelType<TModel>, TIdentifier> : Omit<ModelType<TModel>, PrimaryKeyComposites<TIndexes>>, TTimestamps, TVersioned, TTimeSeries>;
99
+ /**
100
+ * Entity update type: partial model fields minus primary key composites.
101
+ *
102
+ * Each field's value type matches the model declaration exactly — under v3
103
+ * there is no `null` widening. The v1.6 widening to `T | null | undefined`
104
+ * existed to support the v1.6 three-way payload classification, which is
105
+ * collapsed in v3 to two-way (null = undefined = absent). Combined with the
106
+ * EDD-9025 make-time check (composite attribute schemas must not include
107
+ * `null`), `set({ composite: null })` no longer compiles and the stale-GSI
108
+ * footgun is closed at the type level. See `DESIGN.md §7`.
109
+ */
110
+ export type EntityUpdateType<TModel extends Schema.Top, TIndexes, TTimestamps = undefined, TVersioned = undefined> = WithSystemCollisionsForUpdate<{
111
+ [K in keyof Omit<ModelType<TModel>, PrimaryKeyComposites<TIndexes>>]?: Omit<ModelType<TModel>, PrimaryKeyComposites<TIndexes>>[K];
112
+ }, TTimestamps, TVersioned>;
113
+ /**
114
+ * Input type for `.append()` on a time-series entity.
115
+ *
116
+ * Derived from the required `appendInput` schema. Always includes `orderBy`
117
+ * plus all PK/SK composite fields (enforced at `Entity.make()` time).
118
+ */
119
+ export type AppendInputType<TAppendInput> = [TAppendInput] extends [Schema.Top] ? Schema.Schema.Type<TAppendInput> : never;
120
+ /**
121
+ * Success type of `.append()` (default path) — `{ current: Model }`.
122
+ *
123
+ * Stale outcomes are surfaced on the Effect ERROR channel as
124
+ * `StaleAppend` (CAS rejected) or `ConditionalCheckFailed` (user-supplied
125
+ * `.condition()` rejected while CAS held). `.skipFollowUp()` narrows the
126
+ * success channel to `void` and collapses both error modes into
127
+ * `StaleAppend` (cannot disambiguate without the follow-up GetItem).
128
+ */
129
+ export type AppendSuccess<TModel extends Schema.Top> = {
130
+ readonly current: ModelType<TModel>;
131
+ };
132
+ /** Extract PK-only composite attribute names (excludes SK) */
133
+ type PrimaryPkOnlyComposites<TIndexes> = TIndexes extends {
134
+ readonly primary: {
135
+ readonly pk: {
136
+ readonly composite: infer PKC extends ReadonlyArray<string>;
137
+ };
138
+ };
139
+ } ? PKC[number] : never;
140
+ /** Extract the Entity from a ref value `{ entity: Entity, cascade?: ... }`. */
141
+ export type ExtractRefEntity<R> = R extends {
142
+ readonly entity: infer E;
143
+ } ? E : never;
144
+ /**
145
+ * Resolve a branded identifier value type directly from an entity-shaped type
146
+ * carrying `{ model, indexes }`. For an entity with `pk: { composite: ["id"] }`
147
+ * and `id: TeamId`, yields `TeamId`; falls back to `string` when the entity
148
+ * type does not expose enough information to recover the brand.
149
+ *
150
+ * This is the shared core used by both the Entity ref path
151
+ * ({@link EntityIdentifierValue}, which unwraps `{ entity }` first) and the
152
+ * Aggregate edge path, where the entity is referenced directly on the edge.
153
+ */
154
+ export type RefEntityIdentifierValue<E> = E extends {
155
+ readonly model: infer M extends Schema.Top;
156
+ readonly indexes: infer I;
157
+ } ? ModelType<M>[PrimaryPkOnlyComposites<I> & keyof ModelType<M>] : string;
158
+ /** Extract the identifier value type from a ref Entity's PK composites.
159
+ * For an entity with `pk: { composite: ["id"] }` and `id: TeamId`, yields `TeamId`. */
160
+ type EntityIdentifierValue<E> = RefEntityIdentifierValue<ExtractRefEntity<E>>;
161
+ /** Entity ref input type: when refs present, replace ref fields with branded ID fields */
162
+ export type EntityRefInputType<TModel extends Schema.Top, TRefs, TTimestamps = undefined, TVersioned = undefined, TTimeSeries = undefined> = [TRefs] extends [undefined] ? EntityInputType<TModel, TTimestamps, TVersioned, TTimeSeries> : WithSystemCollisions<Omit<ModelType<TModel>, keyof TRefs & string> & {
163
+ readonly [K in keyof TRefs & string as `${K}Id`]: EntityIdentifierValue<TRefs[K]>;
164
+ }, TTimestamps, TVersioned, TTimeSeries>;
165
+ /** Entity ref create type: input minus identifier (or PK composites), ref-aware */
166
+ export type EntityRefCreateType<TModel extends Schema.Top, TIndexes, TRefs, TIdentifier extends string | undefined, TTimestamps = undefined, TVersioned = undefined, TTimeSeries = undefined> = [TRefs] extends [undefined] ? EntityCreateType<TModel, TIndexes, TIdentifier, TTimestamps, TVersioned, TTimeSeries> : WithSystemCollisions<[
167
+ TIdentifier
168
+ ] extends [string] ? Omit<Omit<ModelType<TModel>, keyof TRefs & string> & {
169
+ readonly [K in keyof TRefs & string as `${K}Id`]: EntityIdentifierValue<TRefs[K]>;
170
+ }, TIdentifier> : Omit<Omit<ModelType<TModel>, keyof TRefs & string> & {
171
+ readonly [K in keyof TRefs & string as `${K}Id`]: EntityIdentifierValue<TRefs[K]>;
172
+ }, PrimaryKeyComposites<TIndexes>>, TTimestamps, TVersioned, TTimeSeries>;
173
+ /** Entity ref update type: when refs present, swap ref fields for optional branded ID fields */
174
+ export type EntityRefUpdateType<TModel extends Schema.Top, TIndexes, TRefs, TTimestamps = undefined, TVersioned = undefined> = [TRefs] extends [undefined] ? EntityUpdateType<TModel, TIndexes, TTimestamps, TVersioned> : WithSystemCollisionsForUpdate<Partial<Omit<ModelType<TModel>, PrimaryKeyComposites<TIndexes> | (keyof TRefs & string)>> & {
175
+ readonly [K in keyof TRefs & string as `${K}Id`]?: EntityIdentifierValue<TRefs[K]>;
176
+ }, TTimestamps, TVersioned>;
177
+ /** Error type contribution from refs — never when no refs, RefNotFound when refs present */
178
+ export type RefErrors<TRefs> = [TRefs] extends [undefined] ? never : RefNotFound;
179
+ /** Extract pk composite names for a specific index */
180
+ export type IndexPkComposites<TIndexes, K extends keyof TIndexes> = TIndexes[K] extends {
181
+ readonly pk: {
182
+ readonly composite: infer PKC extends ReadonlyArray<string>;
183
+ };
184
+ } ? PKC[number] : never;
185
+ /** Extract sk composite names (union) for a specific index */
186
+ export type IndexSkComposites<TIndexes, K extends keyof TIndexes> = TIndexes[K] extends {
187
+ readonly sk: {
188
+ readonly composite: infer SKC extends ReadonlyArray<string>;
189
+ };
190
+ } ? SKC[number] : never;
191
+ /**
192
+ * Map a refs config object to its derived `${ref}Id` field map.
193
+ *
194
+ * For `{ team: { entity: TeamEntity }, player: { entity: PlayerEntity } }` this yields
195
+ * `{ teamId: TeamId, playerId: PlayerId }`, using each referenced entity's identifier
196
+ * value type (branded when available, falling back to `string`).
197
+ */
198
+ type RefIdFields<TRefs> = [TRefs] extends [undefined] ? {} : {
199
+ readonly [K in keyof TRefs & string as `${K}Id`]: EntityIdentifierValue<TRefs[K]>;
200
+ };
201
+ /**
202
+ * Composite-resolvable fields for an entity: model fields plus the derived ref-id
203
+ * fields. This is the canonical lookup table for resolving the value type of a
204
+ * composite key name like `playerId` (which lives on the ref, not on the model).
205
+ */
206
+ type CompositeFields<TModel extends Schema.Top, TRefs> = ModelType<TModel> & RefIdFields<TRefs>;
207
+ /** Pick SK composite fields from the model (or refs) with their actual types. */
208
+ export type IndexSkFields<TModel extends Schema.Top, TIndexes, K extends keyof TIndexes, TRefs = undefined> = Pick<CompositeFields<TModel, TRefs>, IndexSkComposites<TIndexes, K> & keyof CompositeFields<TModel, TRefs>>;
209
+ /**
210
+ * Widen string literal types to include their lowercase variants.
211
+ * Since the key composer applies casing (default: lowercase) to composite values,
212
+ * queries should accept both `"Male"` and `"male"` for indexed attributes.
213
+ * Non-string types pass through unchanged.
214
+ */
215
+ type CaseInsensitive<T> = T extends string ? T | Lowercase<T> : T;
216
+ /** Apply CaseInsensitive to all properties of an object type */
217
+ type CaseInsensitiveProps<T> = {
218
+ [K in keyof T]: CaseInsensitive<T[K]>;
219
+ };
220
+ /**
221
+ * Compute the typed query input for a specific index.
222
+ * PK composites are required. SK composites are optional.
223
+ * SK prefix ordering is enforced at runtime.
224
+ * String literal types are widened to include lowercase variants.
225
+ *
226
+ * When `TRefs` is provided, ref-derived composite names (e.g. `teamId` for a
227
+ * `team: Team.pipe(DynamoModel.ref)` field) resolve to the referenced entity's
228
+ * branded identifier type. Without this, an index whose pk composite references
229
+ * a renamed ref field would silently collapse to `Pick<Model, never>`.
230
+ */
231
+ export type IndexPkInput<TModel extends Schema.Top, TIndexes, K extends keyof TIndexes, TRefs = undefined> = Simplify<CaseInsensitiveProps<Pick<CompositeFields<TModel, TRefs>, IndexPkComposites<TIndexes, K> & keyof CompositeFields<TModel, TRefs>>> & Partial<CaseInsensitiveProps<Pick<CompositeFields<TModel, TRefs>, IndexSkComposites<TIndexes, K> & keyof CompositeFields<TModel, TRefs>>>>>;
232
+ export {};
233
+ //# sourceMappingURL=EntityTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityTypes.d.ts","sourceRoot":"","sources":["../../src/internal/EntityTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAM/C,oFAAoF;AACpF,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAE7E;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAA;AAEvD;8EAC8E;AAC9E,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAU9C,KAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GACxE,OAAO,GACP,CAAC,SAAS,MAAM,GACd,CAAC,GACD,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAClD,CAAC,GACD,OAAO,CAAA;AAEf,KAAK,kBAAkB,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,GAC5E,KAAK,GACL,WAAW,SAAS,IAAI,GACtB,WAAW,GACX,WAAW,SAAS;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAChD,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,GAClC,WAAW,CAAA;AAEnB,KAAK,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS;IACpF,SAAS,GAAG,KAAK;CAClB,GACG,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,GACvC,KAAK,GACL,WAAW,SAAS,IAAI,GACtB,WAAW,GACX,WAAW,SAAS;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAChD,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,GAClC,WAAW,GACjB,KAAK,CAAA;AAET,KAAK,gBAAgB,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,GACxE,KAAK,GACL,UAAU,SAAS,IAAI,GACrB,SAAS,GACT,UAAU,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAC3D,CAAC,GACD,SAAS,CAAA;AAEjB;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,GAAG,SAAS,IAClF,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,GACjB,CAAC,GACD,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,GAC7B,CAAC,GACD,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,GAC5B,CAAC,GACD,QAAQ,CACN,IAAI,CACF,CAAC,EACC,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,GAC3C,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,GACxD,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAC3C,GACC,OAAO,CACL,IAAI,CACF,CAAC,EACC,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,GAC3C,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,CAC3D,CACF,CACJ,CAAA;AAEX;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,IAClE,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,GACjB,CAAC,GACD,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,GAC7B,CAAC,GACD,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,GAC5B,CAAC,GACD,QAAQ,CACN,IAAI,CACF,CAAC,EACD,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CACvF,CACF,CAAA;AAEX,sEAAsE;AACtE,MAAM,MAAM,oBAAoB,CAAC,QAAQ,IAAI,QAAQ,SAAS;IAC5D,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE;YAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAA;SAAE,CAAA;QAC5E,QAAQ,CAAC,EAAE,EAAE;YAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAA;SAAE,CAAA;KAC7E,CAAA;CACF,GACG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GACzB,MAAM,CAAA;AAEV;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,GAAG,SAAS,IAAI,CAAC;IAChF,WAAW;CACZ,SAAS,CAAC,SAAS,CAAC,GACjB,EAAE,GACF,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAC3B,EAAE,GACF,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,GACvC;IAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAA;CAAE,GACtE;IAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAA;CAAE,CAAC,GAC3C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAC7B,EAAE,GACF,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAC1B,EAAE,GACF;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAErC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,GAC7E,CAAC,GACD,YAAY,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAC7D,CAAC,SAAS,MAAM,CAAC,GACf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAC1C,CAAC,GACH,CAAC,CAAA;AAEP,mEAAmE;AACnE,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,IAAI,CACnE,SAAS,CAAC,MAAM,CAAC,EACjB,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CACzD,CAAA;AAED,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,WAAW,EACX,UAAU,EACV,WAAW,GAAG,SAAS,IACrB,SAAS,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;AAE9E,6EAA6E;AAC7E,MAAM,MAAM,eAAe,CACzB,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,EACtB,WAAW,GAAG,SAAS,IACrB,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;AAEjF,uFAAuF;AACvF,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,QAAQ,EACR,WAAW,SAAS,MAAM,GAAG,SAAS,EACtC,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,EACtB,WAAW,GAAG,SAAS,IACrB,oBAAoB,CACtB;IAAC,WAAW;CAAC,SAAS,CAAC,MAAM,CAAC,GAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,GACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAC3D,WAAW,EACX,UAAU,EACV,WAAW,CACZ,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,QAAQ,EACR,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,IACpB,6BAA6B,CAC/B;KACG,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CACzE,SAAS,CAAC,MAAM,CAAC,EACjB,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,CAAC,CAAC,CAAC;CACL,EACD,WAAW,EACX,UAAU,CACX,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAChC,KAAK,CAAA;AAET;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,MAAM,CAAC,GAAG,IAAI;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;CACpC,CAAA;AAMD,8DAA8D;AAC9D,KAAK,uBAAuB,CAAC,QAAQ,IAAI,QAAQ,SAAS;IACxD,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE;YAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAA;SAAE,CAAA;KAC7E,CAAA;CACF,GACG,GAAG,CAAC,MAAM,CAAC,GACX,KAAK,CAAA;AAET,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAEpF;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,GAAG,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CAC1B,GACG,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,GAC7D,MAAM,CAAA;AAEV;wFACwF;AACxF,KAAK,qBAAqB,CAAC,CAAC,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7E,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,CAC5B,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,KAAK,EACL,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,EACtB,WAAW,GAAG,SAAS,IACrB,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAC3B,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,GAC7D,oBAAoB,CAClB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG;IAC9C,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAClF,EACD,WAAW,EACX,UAAU,EACV,WAAW,CACZ,CAAA;AAEL,mFAAmF;AACnF,MAAM,MAAM,mBAAmB,CAC7B,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,QAAQ,EACR,KAAK,EACL,WAAW,SAAS,MAAM,GAAG,SAAS,EACtC,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,EACtB,WAAW,GAAG,SAAS,IACrB,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAC3B,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,GACrF,oBAAoB,CAClB;IAAC,WAAW;CAAC,SAAS,CAAC,MAAM,CAAC,GAC1B,IAAI,CACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG;IAC9C,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAClF,EACD,WAAW,CACZ,GACD,IAAI,CACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG;IAC9C,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAClF,EACD,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,EACL,WAAW,EACX,UAAU,EACV,WAAW,CACZ,CAAA;AAEL,gGAAgG;AAChG,MAAM,MAAM,mBAAmB,CAC7B,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,QAAQ,EACR,KAAK,EACL,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,IACpB,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAC3B,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,GAC3D,6BAA6B,CAC3B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;IAC1F,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACnF,EACD,WAAW,EACX,UAAU,CACX,CAAA;AAEL,4FAA4F;AAC5F,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,WAAW,CAAA;AAEhF,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS;IACtF,QAAQ,CAAC,EAAE,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;CAC7E,GACG,GAAG,CAAC,MAAM,CAAC,GACX,KAAK,CAAA;AAET,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS;IACtF,QAAQ,CAAC,EAAE,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;CAC7E,GACG,GAAG,CAAC,MAAM,CAAC,GACX,KAAK,CAAA;AAET;;;;;;GAMG;AACH,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GACjD,EAAE,GACF;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAEzF;;;;GAIG;AACH,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAE/F,iFAAiF;AACjF,MAAM,MAAM,aAAa,CACvB,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,QAAQ,EACR,CAAC,SAAS,MAAM,QAAQ,EACxB,KAAK,GAAG,SAAS,IACf,IAAI,CACN,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CACtE,CAAA;AAED;;;;;GAKG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAEjE,gEAAgE;AAChE,KAAK,oBAAoB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAExE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,MAAM,CAAC,GAAG,EACzB,QAAQ,EACR,CAAC,SAAS,MAAM,QAAQ,EACxB,KAAK,GAAG,SAAS,IACf,QAAQ,CACV,oBAAoB,CAClB,IAAI,CACF,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CACtE,CACF,GACC,OAAO,CACL,oBAAoB,CAClB,IAAI,CACF,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CACtE,CACF,CACF,CACJ,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @internal Entity type-level computations — derived types for Entity operations.
3
+ *
4
+ * Extracted from Entity.ts for decomposition. Not part of the public API.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=EntityTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityTypes.js","sourceRoot":"","sources":["../../src/internal/EntityTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @internal Stable, typed accessors over Effect Schema / SchemaAST internals.
3
+ *
4
+ * Effect's beta releases periodically reshape the Schema AST (e.g. beta.71
5
+ * moved the array element off `.schema` onto `.value`, silently breaking
6
+ * `extractArrayElement` — shipped as regression #53). This module centralises
7
+ * the few AST/Schema introspections the entity & aggregate derivation layers
8
+ * need, routing each through Effect's stable typed accessors and `SchemaAST`
9
+ * type guards instead of ad-hoc `as any` poking. A single canary test
10
+ * (`SchemaAST.test.ts`) probes the runtime shapes so a future beta break
11
+ * surfaces loudly in one place rather than as silent mis-derivation.
12
+ *
13
+ * Not part of the public API.
14
+ */
15
+ import { type Schema, SchemaAST } from "effect";
16
+ /**
17
+ * Read `.fields` from a `Schema.Struct` or `Schema.Class`.
18
+ *
19
+ * Both `Struct<Fields>` and `Class<...>` expose a typed public `fields`
20
+ * property in Effect v4 (`Struct.fields`, `Class.fields`). Returns `undefined`
21
+ * for any schema that does not carry a `fields` record (e.g. `Schema.String`,
22
+ * `Schema.Array`).
23
+ */
24
+ export declare const getSchemaFields: (schema: Schema.Top) => Record<string, Schema.Top> | undefined;
25
+ /** Type guard: schema carries a typed `.fields` record (Struct / Class). */
26
+ export declare const hasFields: (schema: Schema.Top) => schema is Schema.Top & {
27
+ readonly fields: Record<string, Schema.Top>;
28
+ };
29
+ /**
30
+ * Whether a struct-field schema is optional.
31
+ *
32
+ * `Schema.optionalKey(X)` / `Schema.optional(X)` both flip the field's AST
33
+ * context to optional. `SchemaAST.isOptional(ast)` is the stable public guard
34
+ * for this — it works regardless of whether the optional wrapper produced an
35
+ * `Arrays`, `Union`, or other node tag.
36
+ */
37
+ export declare const isFieldOptional: (fieldSchema: Schema.Top) => boolean;
38
+ /**
39
+ * Extract the element schema from a field that is `Schema.Array(T)`,
40
+ * `Schema.NonEmptyArray(T)`, `Schema.optionalKey(Schema.Array(T))`, or
41
+ * `Schema.optional(Schema.Array(T))`. Returns `T`, or `undefined` when the
42
+ * field is not array-shaped.
43
+ *
44
+ * Routing (verified runtime shape on Effect beta.85):
45
+ * - `Array(T)` / `NonEmptyArray(T)` → AST is `Arrays`; the element is the
46
+ * typed `.value` property on the schema.
47
+ * - `optionalKey(Array(T))` → AST is still `Arrays` (`isOptional` true); the
48
+ * inner array is the typed `.schema` property, whose element is `.value`.
49
+ * - `optional(Array(T))` → AST is a `Union` (`Array | undefined`); the inner
50
+ * union is the typed `.schema` property, and its typed `.members` contains
51
+ * the `Arrays` member whose element is `.value`.
52
+ */
53
+ export declare const extractArrayElement: (fieldSchema: Schema.Top) => Schema.Top | undefined;
54
+ /**
55
+ * Inspect a schema's AST as a `Record`-shaped `Objects` node:
56
+ * no property signatures + exactly one (string-keyed) index signature.
57
+ *
58
+ * Returns the index-signature value AST on match, otherwise `undefined`.
59
+ * Effect v4 `Schema.Record(K, V)` produces an `Objects` AST node with an empty
60
+ * `propertySignatures` and a single `indexSignatures` entry.
61
+ */
62
+ export declare const recordValueAst: (schema: Schema.Top) => SchemaAST.AST | undefined;
63
+ /**
64
+ * As {@link recordValueAst}, but operating directly on a raw AST (e.g. the
65
+ * value AST of an outer `Record`, for nested-sparse detection).
66
+ */
67
+ export declare const recordValueAstFromAst: (ast: SchemaAST.AST | undefined) => SchemaAST.AST | undefined;
68
+ /**
69
+ * Read the wire form (`"string"` or `"number"`) a transform schema encodes to,
70
+ * by walking its encoding chain (`Base.encoding`, a non-empty tuple of `Link`s)
71
+ * to the final leaf and matching the leaf's `to` AST with `SchemaAST.isString`
72
+ * / `isNumber`. Returns `undefined` when there is no encoding or the leaf is
73
+ * neither a string nor a number node.
74
+ */
75
+ export declare const transformWireKind: (schema: Schema.Top) => "string" | "number" | undefined;
76
+ /**
77
+ * Read the first type-parameter AST off a declaration AST (e.g. the inner type
78
+ * of `Redacted<T>`).
79
+ *
80
+ * UNSTABLE: `ast.typeParameters` has no public typed accessor on Effect v4 —
81
+ * the property exists at runtime on `Declaration` nodes but is not surfaced on
82
+ * the typed `AST` union. This helper isolates that single untyped read so a
83
+ * future beta break surfaces in exactly one place (and is covered by the
84
+ * `SchemaAST.test.ts` canary). Returns `undefined` when no type parameters are
85
+ * present.
86
+ *
87
+ * @see https://github.com/Effect-TS/effect-smol — `Declaration` AST node
88
+ */
89
+ export declare const firstTypeParameterAst: (ast: SchemaAST.AST) => SchemaAST.AST | undefined;
90
+ //# sourceMappingURL=SchemaAccessors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAccessors.d.ts","sourceRoot":"","sources":["../../src/internal/SchemaAccessors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAGjF,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,CAAC,GAAG,KACjB,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CAGZ,CAAA;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,CAAC,GAAG,KAAG,OACnB,CAAA;AAEvC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAAI,aAAa,MAAM,CAAC,GAAG,KAAG,MAAM,CAAC,GAAG,GAAG,SA4B1E,CAAA;AAgCD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,SAAS,CAAC,GAAG,GAAG,SACjC,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,KAAK,SAAS,CAAC,GAAG,GAAG,SAAS,KAC7B,SAAS,CAAC,GAAG,GAAG,SAIlB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,QAAQ,GAAG,QAAQ,GAAG,SAS5E,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,SAAS,CAAC,GAAG,KAAG,SAAS,CAAC,GAAG,GAAG,SAK1E,CAAA"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * @internal Stable, typed accessors over Effect Schema / SchemaAST internals.
3
+ *
4
+ * Effect's beta releases periodically reshape the Schema AST (e.g. beta.71
5
+ * moved the array element off `.schema` onto `.value`, silently breaking
6
+ * `extractArrayElement` — shipped as regression #53). This module centralises
7
+ * the few AST/Schema introspections the entity & aggregate derivation layers
8
+ * need, routing each through Effect's stable typed accessors and `SchemaAST`
9
+ * type guards instead of ad-hoc `as any` poking. A single canary test
10
+ * (`SchemaAST.test.ts`) probes the runtime shapes so a future beta break
11
+ * surfaces loudly in one place rather than as silent mis-derivation.
12
+ *
13
+ * Not part of the public API.
14
+ */
15
+ import { SchemaAST } from "effect";
16
+ /**
17
+ * Read `.fields` from a `Schema.Struct` or `Schema.Class`.
18
+ *
19
+ * Both `Struct<Fields>` and `Class<...>` expose a typed public `fields`
20
+ * property in Effect v4 (`Struct.fields`, `Class.fields`). Returns `undefined`
21
+ * for any schema that does not carry a `fields` record (e.g. `Schema.String`,
22
+ * `Schema.Array`).
23
+ */
24
+ export const getSchemaFields = (schema) => {
25
+ if (hasFields(schema))
26
+ return schema.fields;
27
+ return undefined;
28
+ };
29
+ /** Type guard: schema carries a typed `.fields` record (Struct / Class). */
30
+ export const hasFields = (schema) => "fields" in schema &&
31
+ typeof schema.fields === "object" &&
32
+ schema.fields !== null;
33
+ /**
34
+ * Whether a struct-field schema is optional.
35
+ *
36
+ * `Schema.optionalKey(X)` / `Schema.optional(X)` both flip the field's AST
37
+ * context to optional. `SchemaAST.isOptional(ast)` is the stable public guard
38
+ * for this — it works regardless of whether the optional wrapper produced an
39
+ * `Arrays`, `Union`, or other node tag.
40
+ */
41
+ export const isFieldOptional = (fieldSchema) => SchemaAST.isOptional(fieldSchema.ast);
42
+ /**
43
+ * Extract the element schema from a field that is `Schema.Array(T)`,
44
+ * `Schema.NonEmptyArray(T)`, `Schema.optionalKey(Schema.Array(T))`, or
45
+ * `Schema.optional(Schema.Array(T))`. Returns `T`, or `undefined` when the
46
+ * field is not array-shaped.
47
+ *
48
+ * Routing (verified runtime shape on Effect beta.85):
49
+ * - `Array(T)` / `NonEmptyArray(T)` → AST is `Arrays`; the element is the
50
+ * typed `.value` property on the schema.
51
+ * - `optionalKey(Array(T))` → AST is still `Arrays` (`isOptional` true); the
52
+ * inner array is the typed `.schema` property, whose element is `.value`.
53
+ * - `optional(Array(T))` → AST is a `Union` (`Array | undefined`); the inner
54
+ * union is the typed `.schema` property, and its typed `.members` contains
55
+ * the `Arrays` member whose element is `.value`.
56
+ */
57
+ export const extractArrayElement = (fieldSchema) => {
58
+ const ast = fieldSchema.ast;
59
+ // Array(T) / NonEmptyArray(T) — including optionalKey(Array(T)), whose AST is
60
+ // still an `Arrays` node with `isOptional` set.
61
+ if (SchemaAST.isArrays(ast)) {
62
+ if (SchemaAST.isOptional(ast)) {
63
+ // optionalKey(Array(T)): the inner Array(T) is the typed `.schema`.
64
+ const inner = getSchemaProp(fieldSchema, "schema");
65
+ return inner ? arrayValue(inner) : undefined;
66
+ }
67
+ // Direct Array(T) / NonEmptyArray(T): the element is the typed `.value`.
68
+ return arrayValue(fieldSchema);
69
+ }
70
+ // optional(Array(T)): AST is a Union (Array | undefined). The inner union is
71
+ // the typed `.schema`; its typed `.members` holds the `Arrays` member.
72
+ if (SchemaAST.isUnion(ast) && SchemaAST.isOptional(ast)) {
73
+ const inner = getSchemaProp(fieldSchema, "schema");
74
+ const members = inner ? getSchemaMembers(inner) : undefined;
75
+ if (members) {
76
+ for (const member of members) {
77
+ if (SchemaAST.isArrays(member.ast))
78
+ return arrayValue(member);
79
+ }
80
+ }
81
+ }
82
+ return undefined;
83
+ };
84
+ /** Read the typed `.value` element schema off an `Array`/`NonEmptyArray` schema. */
85
+ const arrayValue = (schema) => getSchemaProp(schema, "value");
86
+ /** Read the typed `.members` array off a `Union` schema, if present. */
87
+ const getSchemaMembers = (schema) => {
88
+ const members = schema.members;
89
+ return Array.isArray(members) ? members : undefined;
90
+ };
91
+ /**
92
+ * Read a typed nested-schema property (`schema` / `value`) that Effect exposes
93
+ * on wrapper schemas (`optionalKey.schema`, `$Array.value`, …). Validates the
94
+ * value is itself a schema (carries `.ast`) before returning it.
95
+ *
96
+ * Note: a schema may be either an object (`Schema.Struct`, `Schema.String`) or
97
+ * a function (a `Schema.Class` is its constructor) — both carry `.ast`, so we
98
+ * accept either `typeof`.
99
+ */
100
+ const getSchemaProp = (schema, prop) => {
101
+ const value = schema[prop];
102
+ if (isSchemaLike(value))
103
+ return value;
104
+ return undefined;
105
+ };
106
+ /** A schema is any object or function (class constructor) carrying `.ast`. */
107
+ const isSchemaLike = (value) => value != null &&
108
+ (typeof value === "object" || typeof value === "function") &&
109
+ "ast" in value;
110
+ /**
111
+ * Inspect a schema's AST as a `Record`-shaped `Objects` node:
112
+ * no property signatures + exactly one (string-keyed) index signature.
113
+ *
114
+ * Returns the index-signature value AST on match, otherwise `undefined`.
115
+ * Effect v4 `Schema.Record(K, V)` produces an `Objects` AST node with an empty
116
+ * `propertySignatures` and a single `indexSignatures` entry.
117
+ */
118
+ export const recordValueAst = (schema) => recordValueAstFromAst(schema.ast);
119
+ /**
120
+ * As {@link recordValueAst}, but operating directly on a raw AST (e.g. the
121
+ * value AST of an outer `Record`, for nested-sparse detection).
122
+ */
123
+ export const recordValueAstFromAst = (ast) => {
124
+ if (!ast || !SchemaAST.isObjects(ast))
125
+ return undefined;
126
+ if (ast.propertySignatures.length !== 0 || ast.indexSignatures.length !== 1)
127
+ return undefined;
128
+ return ast.indexSignatures[0].type;
129
+ };
130
+ /**
131
+ * Read the wire form (`"string"` or `"number"`) a transform schema encodes to,
132
+ * by walking its encoding chain (`Base.encoding`, a non-empty tuple of `Link`s)
133
+ * to the final leaf and matching the leaf's `to` AST with `SchemaAST.isString`
134
+ * / `isNumber`. Returns `undefined` when there is no encoding or the leaf is
135
+ * neither a string nor a number node.
136
+ */
137
+ export const transformWireKind = (schema) => {
138
+ const encoding = schema.ast.encoding;
139
+ if (!encoding || encoding.length === 0)
140
+ return undefined;
141
+ const leaf = encoding[encoding.length - 1];
142
+ if (!leaf)
143
+ return undefined;
144
+ const to = leaf.to;
145
+ if (SchemaAST.isString(to))
146
+ return "string";
147
+ if (SchemaAST.isNumber(to))
148
+ return "number";
149
+ return undefined;
150
+ };
151
+ /**
152
+ * Read the first type-parameter AST off a declaration AST (e.g. the inner type
153
+ * of `Redacted<T>`).
154
+ *
155
+ * UNSTABLE: `ast.typeParameters` has no public typed accessor on Effect v4 —
156
+ * the property exists at runtime on `Declaration` nodes but is not surfaced on
157
+ * the typed `AST` union. This helper isolates that single untyped read so a
158
+ * future beta break surfaces in exactly one place (and is covered by the
159
+ * `SchemaAST.test.ts` canary). Returns `undefined` when no type parameters are
160
+ * present.
161
+ *
162
+ * @see https://github.com/Effect-TS/effect-smol — `Declaration` AST node
163
+ */
164
+ export const firstTypeParameterAst = (ast) => {
165
+ const params = ast
166
+ .typeParameters;
167
+ if (!params || params.length === 0)
168
+ return undefined;
169
+ return params[0];
170
+ };
171
+ //# sourceMappingURL=SchemaAccessors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAccessors.js","sourceRoot":"","sources":["../../src/internal/SchemaAccessors.ts"],"names":[],"mappings":"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"}