@effect-dynamodb/schema 1.9.5 → 1.11.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.
- package/dist/DynamoModel.d.ts +3 -3
- package/dist/DynamoModel.d.ts.map +1 -1
- package/dist/DynamoModel.js +8 -8
- package/dist/DynamoModel.js.map +1 -1
- package/dist/Embedder.d.ts +76 -0
- package/dist/Embedder.d.ts.map +1 -0
- package/dist/Embedder.js +101 -0
- package/dist/Embedder.js.map +1 -0
- package/dist/Entity.d.ts +18 -3
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +55 -1
- package/dist/Entity.js.map +1 -1
- package/dist/Errors.d.ts +35 -0
- package/dist/Errors.d.ts.map +1 -1
- package/dist/Errors.js +20 -0
- package/dist/Errors.js.map +1 -1
- package/dist/KeyComposer.d.ts +27 -0
- package/dist/KeyComposer.d.ts.map +1 -1
- package/dist/KeyComposer.js +38 -0
- package/dist/KeyComposer.js.map +1 -1
- package/dist/VectorIndex.d.ts +206 -0
- package/dist/VectorIndex.d.ts.map +1 -0
- package/dist/VectorIndex.js +240 -0
- package/dist/VectorIndex.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/EntitySchemas.d.ts +8 -1
- package/dist/internal/EntitySchemas.d.ts.map +1 -1
- package/dist/internal/EntitySchemas.js +34 -23
- package/dist/internal/EntitySchemas.js.map +1 -1
- package/dist/internal/EntityTypes.d.ts +10 -1
- package/dist/internal/EntityTypes.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/DynamoModel.d.ts
CHANGED
|
@@ -146,19 +146,19 @@ export declare const DateTimeZoned: Schema.decodeTo<Schema.DateTimeZoned, Schema
|
|
|
146
146
|
* Default storage: ISO string (`S`).
|
|
147
147
|
* For interop with non-Effect code that expects native JS Date objects.
|
|
148
148
|
*/
|
|
149
|
-
export declare const UnsafeDateString: Schema.decodeTo<Schema.
|
|
149
|
+
export declare const UnsafeDateString: Schema.decodeTo<Schema.Date, Schema.String, never, never>;
|
|
150
150
|
/**
|
|
151
151
|
* Wire: epoch milliseconds (number) ↔ Domain: native Date (mutable)
|
|
152
152
|
*
|
|
153
153
|
* Default storage: epoch ms (`N`).
|
|
154
154
|
*/
|
|
155
|
-
export declare const UnsafeDateEpochMs: Schema.decodeTo<Schema.
|
|
155
|
+
export declare const UnsafeDateEpochMs: Schema.decodeTo<Schema.Date, Schema.Number, never, never>;
|
|
156
156
|
/**
|
|
157
157
|
* Wire: epoch seconds (number) ↔ Domain: native Date (mutable)
|
|
158
158
|
*
|
|
159
159
|
* Default storage: epoch seconds (`N`).
|
|
160
160
|
*/
|
|
161
|
-
export declare const UnsafeDateEpochSeconds: Schema.decodeTo<Schema.
|
|
161
|
+
export declare const UnsafeDateEpochSeconds: Schema.decodeTo<Schema.Date, Schema.Number, never, never>;
|
|
162
162
|
/**
|
|
163
163
|
* Alias for `DateEpochSeconds`. DynamoDB TTL requires epoch seconds.
|
|
164
164
|
* A named alias makes intent clear at the call site.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoModel.d.ts","sourceRoot":"","sources":["../src/DynamoModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"DynamoModel.d.ts","sourceRoot":"","sources":["../src/DynamoModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAU,MAAM,EAAwC,MAAM,QAAQ,CAAA;AAcvF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAG,CACA,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,OAG1B,CAAA;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,CAAC,GAAG,KAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAA;CAAE,GAAG,SAyB3D,CAAA;AASD,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAG,CAarD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,OAK1C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,EAAE,OAAO,MAAM,CAAC,GAAG,KAAG,OAejE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,aAAa,GAAG,SAQrE,CAAA;AASD;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAG,CACA,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,OAGtB,CAAA;AAMxB,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,EAAE,OAAO,MAAqD,CAAA;AAE5F;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAA;IACvD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,GAAG,MAAM,CAAA;CAC5D;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,cAAc,GAAG,SAGjC,CAAA;AAMjC;;;;;GAKG;AACH,eAAO,MAAM,UAAU,8BAItB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,kEAQvB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,kEAW5B,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAA;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,WAAW,GAAG,OAAO,gBAAgB,CAAA;CAC/D,qEA0CA,CAAA;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,oEA4BzB,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,2DAQ5B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,2DAQ7B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2DAWlC,CAAA;AAMD;;;GAGG;AACH,eAAO,MAAM,GAAG,kEAAmB,CAAA;AAMnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EACxB,eAAe,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAC9B,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAgBpD,CAAA;AAMD,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAsD,CAAA;AAE9F;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wFAAwF;AACxF,QAAA,MAAM,YAAY,EAAE,OAAO,MAAgD,CAAA;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAAG,eAM9E,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAGU,CAAA;AAEtE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAEzD,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACjB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CACpC,MAAM,EACN;QACE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;QAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;QAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;QAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAC/B,CACF,CAAA;CACF;AAED,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,CAAC,KAAK,IACjC,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GACvC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,GACzF,MAAM,CAAC,GACT,SAAS,CAAA;AAEf;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAGf,CAAA;AAE5E;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,CAAC,GAAG,KAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAOzF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,SAIpF,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,OAA+C,CAAA;AAE7F,yFAAyF;AACzF,eAAO,MAAM,WAAW,GAAI,UAAU,OAAO,KAAG,OAC4B,CAAA;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAA;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,IAAI;IAC/C,QAAQ,EAAE,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxF,CAAA;AAED;;;;GAIG;AACH,KAAK,oBAAoB,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,IAAI;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;KAAE,GACnE,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,GACnC;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,sCAAsC,CAAC,CAAA;KAAE,GAAG,IAAI,CAChF,CAAC,CAAC,CAAC,CAAC,EACJ,OAAO,CACR,GACD,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,CAAC,CAAC,CAAC;CACT,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,EACpF,OAAO,CAAC,EACR,YAAY,CAAC,GAAG,oBAAoB,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,KAC5E,eAAe,CAAC,CAAC,EAAE,CAAC,CAkFtB,CAAA"}
|
package/dist/DynamoModel.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* See docs/design-dynamo-model.md for the three-layer model (wire → domain → storage).
|
|
14
14
|
*/
|
|
15
|
-
import { DateTime, Effect,
|
|
15
|
+
import { DateTime, Effect, Schema, SchemaAST, SchemaGetter, SchemaIssue } from "effect";
|
|
16
16
|
import { getSchemaFields, recordValueAst, recordValueAstFromAst, } from "./internal/SchemaAccessors.js";
|
|
17
17
|
// ---------------------------------------------------------------------------
|
|
18
18
|
// Identifier annotation
|
|
@@ -193,7 +193,7 @@ export const DateEpochMs = Schema.Number.pipe(Schema.decodeTo(Schema.DateTimeUtc
|
|
|
193
193
|
*/
|
|
194
194
|
export const DateEpochSeconds = Schema.Number.pipe(Schema.decodeTo(Schema.DateTimeUtc, {
|
|
195
195
|
decode: SchemaGetter.transform((n) => DateTime.makeUnsafe(n * 1000)),
|
|
196
|
-
encode: SchemaGetter.transform((dt) =>
|
|
196
|
+
encode: SchemaGetter.transform((dt) => DateTime.toEpochSeconds(dt)),
|
|
197
197
|
}), Schema.annotate({
|
|
198
198
|
[DynamoEncodingKey]: {
|
|
199
199
|
storage: "epochSeconds",
|
|
@@ -237,7 +237,7 @@ export const DateEpoch = (options) => {
|
|
|
237
237
|
catch {
|
|
238
238
|
// fall through
|
|
239
239
|
}
|
|
240
|
-
return Effect.fail(new SchemaIssue.InvalidType(Schema.Number.ast,
|
|
240
|
+
return Effect.fail(new SchemaIssue.InvalidType(Schema.Number.ast, n));
|
|
241
241
|
}),
|
|
242
242
|
encode: SchemaGetter.transform((dt) => Schema.encodeSync(encodeSchema)(dt)),
|
|
243
243
|
}), Schema.annotate({
|
|
@@ -270,7 +270,7 @@ export const DateTimeZoned = Schema.String.pipe(Schema.decodeTo(Schema.DateTimeZ
|
|
|
270
270
|
return Effect.succeed(DateTime.makeZonedUnsafe(utc, { timeZone: tzName }));
|
|
271
271
|
}
|
|
272
272
|
catch {
|
|
273
|
-
return Effect.fail(new SchemaIssue.InvalidType(Schema.String.ast,
|
|
273
|
+
return Effect.fail(new SchemaIssue.InvalidType(Schema.String.ast, s));
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
// Try parsing as offset-only: "2024-01-01T15:00:00+09:00"
|
|
@@ -279,7 +279,7 @@ export const DateTimeZoned = Schema.String.pipe(Schema.decodeTo(Schema.DateTimeZ
|
|
|
279
279
|
return Effect.succeed(DateTime.makeZonedUnsafe(utc, { timeZone: "UTC" }));
|
|
280
280
|
}
|
|
281
281
|
catch {
|
|
282
|
-
return Effect.fail(new SchemaIssue.InvalidType(Schema.String.ast,
|
|
282
|
+
return Effect.fail(new SchemaIssue.InvalidType(Schema.String.ast, s));
|
|
283
283
|
}
|
|
284
284
|
}),
|
|
285
285
|
encode: SchemaGetter.transform((dt) => DateTime.formatIsoZoned(dt)),
|
|
@@ -295,7 +295,7 @@ export const DateTimeZoned = Schema.String.pipe(Schema.decodeTo(Schema.DateTimeZ
|
|
|
295
295
|
* Default storage: ISO string (`S`).
|
|
296
296
|
* For interop with non-Effect code that expects native JS Date objects.
|
|
297
297
|
*/
|
|
298
|
-
export const UnsafeDateString = Schema.String.pipe(Schema.decodeTo(Schema.
|
|
298
|
+
export const UnsafeDateString = Schema.String.pipe(Schema.decodeTo(Schema.Date, {
|
|
299
299
|
decode: SchemaGetter.transform((s) => new Date(s)),
|
|
300
300
|
encode: SchemaGetter.transform((d) => d.toISOString()),
|
|
301
301
|
}), Schema.annotate({
|
|
@@ -306,7 +306,7 @@ export const UnsafeDateString = Schema.String.pipe(Schema.decodeTo(Schema.DateVa
|
|
|
306
306
|
*
|
|
307
307
|
* Default storage: epoch ms (`N`).
|
|
308
308
|
*/
|
|
309
|
-
export const UnsafeDateEpochMs = Schema.Number.pipe(Schema.decodeTo(Schema.
|
|
309
|
+
export const UnsafeDateEpochMs = Schema.Number.pipe(Schema.decodeTo(Schema.Date, {
|
|
310
310
|
decode: SchemaGetter.transform((ms) => new Date(ms)),
|
|
311
311
|
encode: SchemaGetter.transform((d) => d.getTime()),
|
|
312
312
|
}), Schema.annotate({
|
|
@@ -317,7 +317,7 @@ export const UnsafeDateEpochMs = Schema.Number.pipe(Schema.decodeTo(Schema.DateV
|
|
|
317
317
|
*
|
|
318
318
|
* Default storage: epoch seconds (`N`).
|
|
319
319
|
*/
|
|
320
|
-
export const UnsafeDateEpochSeconds = Schema.Number.pipe(Schema.decodeTo(Schema.
|
|
320
|
+
export const UnsafeDateEpochSeconds = Schema.Number.pipe(Schema.decodeTo(Schema.Date, {
|
|
321
321
|
decode: SchemaGetter.transform((s) => new Date(s * 1000)),
|
|
322
322
|
encode: SchemaGetter.transform((d) => Math.floor(d.getTime() / 1000)),
|
|
323
323
|
}), Schema.annotate({
|
package/dist/DynamoModel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoModel.js","sourceRoot":"","sources":["../src/DynamoModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DynamoModel.js","sourceRoot":"","sources":["../src/DynamoModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedder — the pluggable text→vector service used by the vector-search write
|
|
3
|
+
* path.
|
|
4
|
+
*
|
|
5
|
+
* DynamoDB never computes or refreshes an embedding; producing one is entirely
|
|
6
|
+
* the application's job. The library models that job as an Effect service so it
|
|
7
|
+
* can be swapped per environment (a real model in production, a deterministic
|
|
8
|
+
* stub in tests) without touching entity definitions.
|
|
9
|
+
*
|
|
10
|
+
* A Bedrock-backed implementation is documented as an example rather than
|
|
11
|
+
* shipped — bundling one would drag the Bedrock Runtime client into every
|
|
12
|
+
* consumer's runtime graph, and this package is AWS-free by contract.
|
|
13
|
+
*
|
|
14
|
+
* See `DESIGN.md §14 Vector Search`.
|
|
15
|
+
*/
|
|
16
|
+
import { Context, Effect, Layer } from "effect";
|
|
17
|
+
import { EmbeddingError } from "./Errors.js";
|
|
18
|
+
/**
|
|
19
|
+
* Service interface for embedding generation.
|
|
20
|
+
*
|
|
21
|
+
* `dimensions` is declared rather than inferred so `DynamoClient.make` can
|
|
22
|
+
* validate agreement with every bound vector index at construction time — a
|
|
23
|
+
* mismatch then fails once, at wiring, instead of on the thousandth write.
|
|
24
|
+
*/
|
|
25
|
+
export interface EmbedderService {
|
|
26
|
+
/** Produce an embedding for the given text. */
|
|
27
|
+
readonly embed: (text: string) => Effect.Effect<ReadonlyArray<number>, EmbeddingError>;
|
|
28
|
+
/** Dimensionality of every vector this embedder produces. */
|
|
29
|
+
readonly dimensions: number;
|
|
30
|
+
}
|
|
31
|
+
declare const Embedder_base: Context.ServiceClass<Embedder, "@effect-dynamodb/Embedder", EmbedderService>;
|
|
32
|
+
/**
|
|
33
|
+
* Effect `Context.Service` tag for the embedding generator.
|
|
34
|
+
*
|
|
35
|
+
* Provide it in the environment (or pass `embedder` to `DynamoClient.make`) for
|
|
36
|
+
* any entity that declares `vectorIndexes`. Bound entity operations resolve it
|
|
37
|
+
* from the captured context, so they stay `R = never`.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const program = Effect.gen(function* () {
|
|
42
|
+
* const db = yield* DynamoClient.make({ entities: { Products }, tables: { MainTable } })
|
|
43
|
+
* yield* db.entities.Products.put(input)
|
|
44
|
+
* }).pipe(Effect.provide(Embedder.layerTest({ dimensions: 8 })))
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare class Embedder extends Embedder_base {
|
|
48
|
+
/**
|
|
49
|
+
* A deterministic, dependency-free embedder for tests, examples, and the
|
|
50
|
+
* connected suite.
|
|
51
|
+
*
|
|
52
|
+
* The same text always produces the same unit vector, and lexically similar
|
|
53
|
+
* text produces nearby vectors — enough structure to make ranking assertions
|
|
54
|
+
* meaningful without calling a real model. NOT suitable for production
|
|
55
|
+
* semantic search.
|
|
56
|
+
*/
|
|
57
|
+
static readonly layerTest: (config: {
|
|
58
|
+
readonly dimensions: number;
|
|
59
|
+
}) => Layer.Layer<Embedder>;
|
|
60
|
+
/**
|
|
61
|
+
* Build an {@link EmbedderService} from a plain (possibly async) function.
|
|
62
|
+
* Failures are wrapped as {@link EmbeddingError}.
|
|
63
|
+
*/
|
|
64
|
+
static readonly fromEffect: (config: {
|
|
65
|
+
readonly dimensions: number;
|
|
66
|
+
readonly embed: (text: string) => Effect.Effect<ReadonlyArray<number>, unknown>;
|
|
67
|
+
}) => EmbedderService;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @internal Deterministic hash-based embedder. Each token contributes to a
|
|
71
|
+
* fixed set of dimensions derived from its hash; the result is L2-normalized so
|
|
72
|
+
* cosine and dot-product scores stay in a sane range.
|
|
73
|
+
*/
|
|
74
|
+
export declare const makeTestEmbedder: (dimensions: number) => EmbedderService;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=Embedder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Embedder.d.ts","sourceRoot":"","sources":["../src/Embedder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAA;IACtF,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAS,SAAQ,aAE7B;IACC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAI,QAAQ;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9B;IAE9D;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAI,QAAQ;QACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;KAChF,KAAG,eAAe,CAcjB;CACH;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,KAAG,eAGpD,CAAA"}
|
package/dist/Embedder.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedder — the pluggable text→vector service used by the vector-search write
|
|
3
|
+
* path.
|
|
4
|
+
*
|
|
5
|
+
* DynamoDB never computes or refreshes an embedding; producing one is entirely
|
|
6
|
+
* the application's job. The library models that job as an Effect service so it
|
|
7
|
+
* can be swapped per environment (a real model in production, a deterministic
|
|
8
|
+
* stub in tests) without touching entity definitions.
|
|
9
|
+
*
|
|
10
|
+
* A Bedrock-backed implementation is documented as an example rather than
|
|
11
|
+
* shipped — bundling one would drag the Bedrock Runtime client into every
|
|
12
|
+
* consumer's runtime graph, and this package is AWS-free by contract.
|
|
13
|
+
*
|
|
14
|
+
* See `DESIGN.md §14 Vector Search`.
|
|
15
|
+
*/
|
|
16
|
+
import { Context, Effect, Layer } from "effect";
|
|
17
|
+
import { EmbeddingError } from "./Errors.js";
|
|
18
|
+
/**
|
|
19
|
+
* Effect `Context.Service` tag for the embedding generator.
|
|
20
|
+
*
|
|
21
|
+
* Provide it in the environment (or pass `embedder` to `DynamoClient.make`) for
|
|
22
|
+
* any entity that declares `vectorIndexes`. Bound entity operations resolve it
|
|
23
|
+
* from the captured context, so they stay `R = never`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const program = Effect.gen(function* () {
|
|
28
|
+
* const db = yield* DynamoClient.make({ entities: { Products }, tables: { MainTable } })
|
|
29
|
+
* yield* db.entities.Products.put(input)
|
|
30
|
+
* }).pipe(Effect.provide(Embedder.layerTest({ dimensions: 8 })))
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class Embedder extends Context.Service()("@effect-dynamodb/Embedder") {
|
|
34
|
+
/**
|
|
35
|
+
* A deterministic, dependency-free embedder for tests, examples, and the
|
|
36
|
+
* connected suite.
|
|
37
|
+
*
|
|
38
|
+
* The same text always produces the same unit vector, and lexically similar
|
|
39
|
+
* text produces nearby vectors — enough structure to make ranking assertions
|
|
40
|
+
* meaningful without calling a real model. NOT suitable for production
|
|
41
|
+
* semantic search.
|
|
42
|
+
*/
|
|
43
|
+
static layerTest = (config) => Layer.succeed(Embedder, makeTestEmbedder(config.dimensions));
|
|
44
|
+
/**
|
|
45
|
+
* Build an {@link EmbedderService} from a plain (possibly async) function.
|
|
46
|
+
* Failures are wrapped as {@link EmbeddingError}.
|
|
47
|
+
*/
|
|
48
|
+
static fromEffect = (config) => ({
|
|
49
|
+
dimensions: config.dimensions,
|
|
50
|
+
embed: (text) => config.embed(text).pipe(Effect.mapError((cause) => new EmbeddingError({
|
|
51
|
+
entityType: "<unknown>",
|
|
52
|
+
index: "<unknown>",
|
|
53
|
+
reason: "Embedder.embed failed",
|
|
54
|
+
cause,
|
|
55
|
+
}))),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @internal Deterministic hash-based embedder. Each token contributes to a
|
|
60
|
+
* fixed set of dimensions derived from its hash; the result is L2-normalized so
|
|
61
|
+
* cosine and dot-product scores stay in a sane range.
|
|
62
|
+
*/
|
|
63
|
+
export const makeTestEmbedder = (dimensions) => ({
|
|
64
|
+
dimensions,
|
|
65
|
+
embed: (text) => Effect.succeed(hashEmbed(text, dimensions)),
|
|
66
|
+
});
|
|
67
|
+
/** @internal FNV-1a — small, fast, dependency-free, and stable across runs. */
|
|
68
|
+
const fnv1a = (value) => {
|
|
69
|
+
let hash = 0x811c9dc5;
|
|
70
|
+
for (let i = 0; i < value.length; i++) {
|
|
71
|
+
hash ^= value.charCodeAt(i);
|
|
72
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
73
|
+
}
|
|
74
|
+
return hash >>> 0;
|
|
75
|
+
};
|
|
76
|
+
/** @internal Token-hash bag-of-words embedding, L2-normalized. */
|
|
77
|
+
const hashEmbed = (text, dimensions) => {
|
|
78
|
+
const vector = new Array(dimensions).fill(0);
|
|
79
|
+
const tokens = text
|
|
80
|
+
.toLowerCase()
|
|
81
|
+
.split(/[^a-z0-9]+/)
|
|
82
|
+
.filter((t) => t.length > 0);
|
|
83
|
+
for (const token of tokens) {
|
|
84
|
+
const hash = fnv1a(token);
|
|
85
|
+
const slot = hash % dimensions;
|
|
86
|
+
// Sign derived from a second, independent hash so tokens do not all push in
|
|
87
|
+
// the same direction (which would make every vector nearly parallel).
|
|
88
|
+
const sign = fnv1a(`${token}#sign`) % 2 === 0 ? 1 : -1;
|
|
89
|
+
vector[slot] = (vector[slot] ?? 0) + sign;
|
|
90
|
+
}
|
|
91
|
+
const magnitude = Math.sqrt(vector.reduce((sum, v) => sum + v * v, 0));
|
|
92
|
+
if (magnitude === 0) {
|
|
93
|
+
// Empty/unhashable text — return a stable unit vector rather than zeros, so
|
|
94
|
+
// cosine distance stays defined.
|
|
95
|
+
const fallback = new Array(dimensions).fill(0);
|
|
96
|
+
fallback[0] = 1;
|
|
97
|
+
return fallback;
|
|
98
|
+
}
|
|
99
|
+
return vector.map((v) => v / magnitude);
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=Embedder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Embedder.js","sourceRoot":"","sources":["../src/Embedder.ts"],"names":[],"mappings":"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"}
|
package/dist/Entity.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ import type { CascadeIndexConfig, GeneratedIdConfig, SoftDeleteConfig, TimeSerie
|
|
|
23
23
|
import { type DerivedSchemas, type ResolvedSystemFields } from "./internal/EntitySchemas.js";
|
|
24
24
|
import type { EntityRefCreateType, EntityRefInputType, EntityRefUpdateType } from "./internal/EntityTypes.js";
|
|
25
25
|
import type { GsiConfig, IndexDefinition, KeyPart } from "./KeyComposer.js";
|
|
26
|
+
import type { VectorIndexConfig, VectorIndexDefinition } from "./VectorIndex.js";
|
|
26
27
|
export type { IndexDefinition, KeyPart };
|
|
27
28
|
/**
|
|
28
29
|
* A ref config object: the entity and optional cascade index config.
|
|
@@ -128,6 +129,9 @@ export interface EntityDefinitionData {
|
|
|
128
129
|
readonly resolveDbName: (domainName: string) => string;
|
|
129
130
|
readonly generatedIdField: string | undefined;
|
|
130
131
|
readonly generatedIdVersion: string | undefined;
|
|
132
|
+
/** Normalized vector index declarations, keyed by logical name. */
|
|
133
|
+
readonly vectorIndexes: globalThis.Record<string, VectorIndexDefinition>;
|
|
134
|
+
readonly hasVectorIndexes: boolean;
|
|
131
135
|
}
|
|
132
136
|
/**
|
|
133
137
|
* @internal The normalized config a definition was built from — model, entity
|
|
@@ -149,6 +153,7 @@ export interface EntityDefinitionConfig {
|
|
|
149
153
|
readonly refs?: globalThis.Record<string, AnyRefValue> | undefined;
|
|
150
154
|
readonly timeSeries?: TimeSeriesConfig<any> | undefined;
|
|
151
155
|
readonly generatedId?: GeneratedIdConfig | undefined;
|
|
156
|
+
readonly vectorIndexes?: globalThis.Record<string, VectorIndexConfig> | undefined;
|
|
152
157
|
}
|
|
153
158
|
/**
|
|
154
159
|
* The pure definition produced by {@link make}. Carries the model binding,
|
|
@@ -157,7 +162,7 @@ export interface EntityDefinitionConfig {
|
|
|
157
162
|
* NOT carry AWS-coupled CRUD/query operations — those live on the runtime
|
|
158
163
|
* `effect-dynamodb` `Entity` type, which extends this.
|
|
159
164
|
*/
|
|
160
|
-
export interface EntityDefinition<TModel extends Schema.Top = Schema.Top, TEntityType extends string = string, TIndexes extends globalThis.Record<string, IndexDefinition> = globalThis.Record<string, IndexDefinition>, TTimestamps extends TimestampsConfig | undefined = TimestampsConfig | undefined, TVersioned extends VersionedConfig | undefined = VersionedConfig | undefined, TSoftDelete extends SoftDeleteConfig | undefined = SoftDeleteConfig | undefined, TUnique extends UniqueConfig | undefined = UniqueConfig | undefined, TRefs extends globalThis.Record<string, AnyRefValue> | undefined = undefined, TIdentifier extends string | undefined = undefined, TTimeSeries extends TimeSeriesConfig<any> | undefined = undefined, TGeneratedId extends GeneratedIdConfig | undefined = undefined> {
|
|
165
|
+
export interface EntityDefinition<TModel extends Schema.Top = Schema.Top, TEntityType extends string = string, TIndexes extends globalThis.Record<string, IndexDefinition> = globalThis.Record<string, IndexDefinition>, TTimestamps extends TimestampsConfig | undefined = TimestampsConfig | undefined, TVersioned extends VersionedConfig | undefined = VersionedConfig | undefined, TSoftDelete extends SoftDeleteConfig | undefined = SoftDeleteConfig | undefined, TUnique extends UniqueConfig | undefined = UniqueConfig | undefined, TRefs extends globalThis.Record<string, AnyRefValue> | undefined = undefined, TIdentifier extends string | undefined = undefined, TTimeSeries extends TimeSeriesConfig<any> | undefined = undefined, TGeneratedId extends GeneratedIdConfig | undefined = undefined, TVectorIndexes extends globalThis.Record<string, VectorIndexConfig> | undefined = undefined> {
|
|
161
166
|
readonly _tag: "Entity";
|
|
162
167
|
readonly model: TModel;
|
|
163
168
|
readonly entityType: TEntityType;
|
|
@@ -169,6 +174,14 @@ export interface EntityDefinition<TModel extends Schema.Top = Schema.Top, TEntit
|
|
|
169
174
|
readonly identifier: TIdentifier;
|
|
170
175
|
readonly timeSeries: TTimeSeries;
|
|
171
176
|
readonly generatedId: TGeneratedId;
|
|
177
|
+
/** Vector index declarations as authored (see `DESIGN.md §14`). */
|
|
178
|
+
readonly vectorIndexes: TVectorIndexes;
|
|
179
|
+
/**
|
|
180
|
+
* @internal Normalized vector index definitions keyed by logical name. The
|
|
181
|
+
* runtime package reads these to emit `CreateTable.VectorIndexes`, compose
|
|
182
|
+
* partition attributes on writes, and build search accessors.
|
|
183
|
+
*/
|
|
184
|
+
readonly _vectorIndexes: globalThis.Record<string, VectorIndexDefinition>;
|
|
172
185
|
/** @internal Resolved ref metadata — used by cascade to inspect target entities */
|
|
173
186
|
readonly _resolvedRefs: ReadonlyArray<{
|
|
174
187
|
readonly fieldName: string;
|
|
@@ -244,6 +257,7 @@ export declare const buildEntityDefinition: (config: {
|
|
|
244
257
|
readonly refs?: globalThis.Record<string, AnyRefValue> | undefined;
|
|
245
258
|
readonly timeSeries?: TimeSeriesConfig<any> | undefined;
|
|
246
259
|
readonly generatedId?: GeneratedIdConfig | undefined;
|
|
260
|
+
readonly vectorIndexes?: globalThis.Record<string, VectorIndexConfig> | undefined;
|
|
247
261
|
}) => EntityDefinitionData;
|
|
248
262
|
/**
|
|
249
263
|
* Create a pure Entity definition.
|
|
@@ -267,7 +281,7 @@ export declare const buildEntityDefinition: (config: {
|
|
|
267
281
|
* // typeof Tasks.inputSchema.Type → the typed input payload
|
|
268
282
|
* ```
|
|
269
283
|
*/
|
|
270
|
-
export declare const make: <TModel extends Schema.Top, const TEntityType extends string, const TPrimaryKey extends PrimaryKeyDef, const TGsiIndexes extends globalThis.Record<string, GsiConfig> = {}, const TTimestamps extends TimestampsConfig | undefined = undefined, const TVersioned extends VersionedConfig | undefined = undefined, const TSoftDelete extends SoftDeleteConfig | undefined = undefined, const TUnique extends UniqueConfig | undefined = undefined, const TRefs extends globalThis.Record<string, AnyRefValue> | undefined = undefined, const TTimeSeries extends TimeSeriesConfig<any> | undefined = undefined, const TGeneratedId extends GeneratedIdConfig | undefined = undefined, const TAttrs extends {} = {}>(config: {
|
|
284
|
+
export declare const make: <TModel extends Schema.Top, const TEntityType extends string, const TPrimaryKey extends PrimaryKeyDef, const TGsiIndexes extends globalThis.Record<string, GsiConfig> = {}, const TTimestamps extends TimestampsConfig | undefined = undefined, const TVersioned extends VersionedConfig | undefined = undefined, const TSoftDelete extends SoftDeleteConfig | undefined = undefined, const TUnique extends UniqueConfig | undefined = undefined, const TRefs extends globalThis.Record<string, AnyRefValue> | undefined = undefined, const TTimeSeries extends TimeSeriesConfig<any> | undefined = undefined, const TGeneratedId extends GeneratedIdConfig | undefined = undefined, const TVectorIndexes extends globalThis.Record<string, VectorIndexConfig<any>> | undefined = undefined, const TAttrs extends {} = {}>(config: {
|
|
271
285
|
readonly model: TModel | ConfiguredModel<TModel, TAttrs>;
|
|
272
286
|
readonly entityType: TEntityType;
|
|
273
287
|
readonly primaryKey: TPrimaryKey;
|
|
@@ -279,5 +293,6 @@ export declare const make: <TModel extends Schema.Top, const TEntityType extends
|
|
|
279
293
|
readonly refs?: TRefs;
|
|
280
294
|
readonly timeSeries?: TTimeSeries;
|
|
281
295
|
readonly generatedId?: TGeneratedId;
|
|
282
|
-
|
|
296
|
+
readonly vectorIndexes?: TVectorIndexes;
|
|
297
|
+
}) => EntityDefinition<TModel, TEntityType, NormalizedIndexes<TPrimaryKey, TGsiIndexes>, TTimestamps, TVersioned, TSoftDelete, TUnique, TRefs, ExtractIdentifier<ConfiguredModel<TModel, TAttrs>>, TTimeSeries, TGeneratedId, TVectorIndexes>;
|
|
283
298
|
//# sourceMappingURL=Entity.d.ts.map
|
package/dist/Entity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAU,KAAK,MAAM,EAAa,MAAM,QAAQ,CAAA;AACjE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAStB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAIL,KAAK,cAAc,EAGnB,KAAK,oBAAoB,EAI1B,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|
package/dist/Entity.js
CHANGED
|
@@ -20,6 +20,7 @@ import { getIdentifierField, getSparseFields, isConfiguredModel, isHidden, isRec
|
|
|
20
20
|
import { makeCompositeNullableError } from "./Errors.js";
|
|
21
21
|
import { allCompositeAttributes, buildDerivedSchemas, buildFieldEncodings, getFields, getSchemaFields, resolveSystemFields, resolveUniqueFields, validateNoTransformOverride, } from "./internal/EntitySchemas.js";
|
|
22
22
|
import { normalizeGsiConfig } from "./KeyComposer.js";
|
|
23
|
+
import { deriveVectorFilterTypes, normalizeVectorIndexConfig, validateVectorIndexes, } from "./VectorIndex.js";
|
|
23
24
|
// ---------------------------------------------------------------------------
|
|
24
25
|
// TTL helpers (pure — Duration parsing only)
|
|
25
26
|
// ---------------------------------------------------------------------------
|
|
@@ -78,7 +79,13 @@ export const buildEntityDefinition = (config) => {
|
|
|
78
79
|
const configured = isConfiguredModel(config.model) ? config.model : undefined;
|
|
79
80
|
const rawModel = configured ? configured.model : config.model;
|
|
80
81
|
const configuredAttributes = configured?.attributes ?? {};
|
|
81
|
-
|
|
82
|
+
// Schema.Class is a constructable function whose AST is a `Declaration`.
|
|
83
|
+
// The `typeof` check alone is not enough: since Effect 4.0.0-rc,
|
|
84
|
+
// `Schema.Struct(...)` is also a function (callable make), but its AST is
|
|
85
|
+
// `Objects` — treating it as a class would run `new Struct(decoded)` on the
|
|
86
|
+
// decode path and silently produce empty objects.
|
|
87
|
+
const isSchemaClass = typeof rawModel === "function" &&
|
|
88
|
+
rawModel.ast._tag === "Declaration";
|
|
82
89
|
const modelFields = getFields(rawModel);
|
|
83
90
|
const hasHiddenFields = Object.values(modelFields).some(isHidden);
|
|
84
91
|
const systemFields = resolveSystemFields(config.timestamps, config.versioned, config.timeSeries, modelFields, configuredAttributes);
|
|
@@ -260,6 +267,49 @@ export const buildEntityDefinition = (config) => {
|
|
|
260
267
|
}
|
|
261
268
|
}
|
|
262
269
|
// ---------------------------------------------------------------------------
|
|
270
|
+
// Validate + normalize vector indexes (EDD-903x)
|
|
271
|
+
// ---------------------------------------------------------------------------
|
|
272
|
+
const vectorIndexes = {};
|
|
273
|
+
if (config.vectorIndexes) {
|
|
274
|
+
// Encoded-type tag for a model field, resolving homogeneous literal unions
|
|
275
|
+
// (e.g. Schema.Literals(["a", "b"]) → "String") so they qualify as filters.
|
|
276
|
+
const fieldEncodedTag = (field) => {
|
|
277
|
+
const fieldSchema = getSchemaFields(rawModel)?.[field];
|
|
278
|
+
if (fieldSchema?.ast === undefined)
|
|
279
|
+
return undefined;
|
|
280
|
+
const resolveTag = (ast) => {
|
|
281
|
+
const encoded = SchemaAST.toEncoded(ast);
|
|
282
|
+
if (SchemaAST.isUnion(encoded)) {
|
|
283
|
+
const memberTags = new Set(encoded.types.map((member) => resolveTag(member)));
|
|
284
|
+
return (memberTags.size === 1 ? [...memberTags][0] : undefined) ?? "Union";
|
|
285
|
+
}
|
|
286
|
+
if (encoded._tag === "Literal") {
|
|
287
|
+
const literal = encoded.literal;
|
|
288
|
+
return typeof literal === "number" ? "Number" : "String";
|
|
289
|
+
}
|
|
290
|
+
return encoded._tag;
|
|
291
|
+
};
|
|
292
|
+
return resolveTag(fieldSchema.ast);
|
|
293
|
+
};
|
|
294
|
+
for (const [logicalName, vectorConfig] of Object.entries(config.vectorIndexes)) {
|
|
295
|
+
vectorIndexes[logicalName] = normalizeVectorIndexConfig(vectorConfig);
|
|
296
|
+
}
|
|
297
|
+
// Field-existence validation (EDD-9030..9034) runs before type derivation
|
|
298
|
+
// so an unknown filter field reports EDD-9031, not a derivation failure.
|
|
299
|
+
validateVectorIndexes({
|
|
300
|
+
entityType: config.entityType,
|
|
301
|
+
definitions: vectorIndexes,
|
|
302
|
+
validFields: validCompositeFields,
|
|
303
|
+
});
|
|
304
|
+
for (const [logicalName, definition] of Object.entries(vectorIndexes)) {
|
|
305
|
+
vectorIndexes[logicalName] = {
|
|
306
|
+
...definition,
|
|
307
|
+
filterTypes: deriveVectorFilterTypes(config.entityType, logicalName, definition.filters, fieldEncodedTag),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
const hasVectorIndexes = Object.keys(vectorIndexes).length > 0;
|
|
312
|
+
// ---------------------------------------------------------------------------
|
|
263
313
|
// Resolve refs at make() time
|
|
264
314
|
// ---------------------------------------------------------------------------
|
|
265
315
|
const resolvedRefs = config.refs
|
|
@@ -459,6 +509,8 @@ export const buildEntityDefinition = (config) => {
|
|
|
459
509
|
resolveDbName,
|
|
460
510
|
generatedIdField,
|
|
461
511
|
generatedIdVersion,
|
|
512
|
+
vectorIndexes,
|
|
513
|
+
hasVectorIndexes,
|
|
462
514
|
};
|
|
463
515
|
};
|
|
464
516
|
// ---------------------------------------------------------------------------
|
|
@@ -527,6 +579,8 @@ const makeDefinitionImpl = (config) => {
|
|
|
527
579
|
identifier: data.resolvedIdentifier,
|
|
528
580
|
timeSeries: config.timeSeries,
|
|
529
581
|
generatedId: config.generatedId,
|
|
582
|
+
vectorIndexes: config.vectorIndexes,
|
|
583
|
+
_vectorIndexes: data.vectorIndexes,
|
|
530
584
|
_resolvedRefs: data.resolvedRefs.map((r) => ({
|
|
531
585
|
fieldName: r.fieldName,
|
|
532
586
|
idFieldName: r.idFieldName,
|