effect-dynamodb 1.10.0 → 1.12.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 (51) hide show
  1. package/dist/DynamoClient.d.ts +88 -5
  2. package/dist/DynamoClient.d.ts.map +1 -1
  3. package/dist/DynamoClient.js +158 -4
  4. package/dist/DynamoClient.js.map +1 -1
  5. package/dist/Entity.d.ts +35 -17
  6. package/dist/Entity.d.ts.map +1 -1
  7. package/dist/Entity.js +499 -9
  8. package/dist/Entity.js.map +1 -1
  9. package/dist/EventStore.d.ts +242 -35
  10. package/dist/EventStore.d.ts.map +1 -1
  11. package/dist/EventStore.js +516 -72
  12. package/dist/EventStore.js.map +1 -1
  13. package/dist/Table.d.ts +78 -0
  14. package/dist/Table.d.ts.map +1 -1
  15. package/dist/Table.js +153 -0
  16. package/dist/Table.js.map +1 -1
  17. package/dist/Transaction.d.ts +3 -18
  18. package/dist/Transaction.d.ts.map +1 -1
  19. package/dist/Transaction.js +13 -74
  20. package/dist/Transaction.js.map +1 -1
  21. package/dist/VectorSearchEmulation.d.ts +101 -0
  22. package/dist/VectorSearchEmulation.d.ts.map +1 -0
  23. package/dist/VectorSearchEmulation.js +290 -0
  24. package/dist/VectorSearchEmulation.js.map +1 -0
  25. package/dist/index.d.ts +9 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/internal/BoundCrud.d.ts +62 -48
  30. package/dist/internal/BoundCrud.d.ts.map +1 -1
  31. package/dist/internal/BoundCrud.js +7 -1
  32. package/dist/internal/BoundCrud.js.map +1 -1
  33. package/dist/internal/BoundVectorQuery.d.ts +130 -0
  34. package/dist/internal/BoundVectorQuery.d.ts.map +1 -0
  35. package/dist/internal/BoundVectorQuery.js +257 -0
  36. package/dist/internal/BoundVectorQuery.js.map +1 -0
  37. package/dist/internal/EntityCombinators.d.ts +16 -0
  38. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  39. package/dist/internal/EntityCombinators.js +25 -1
  40. package/dist/internal/EntityCombinators.js.map +1 -1
  41. package/dist/internal/EntityOps.d.ts +19 -6
  42. package/dist/internal/EntityOps.d.ts.map +1 -1
  43. package/dist/internal/EntityOps.js +5 -2
  44. package/dist/internal/EntityOps.js.map +1 -1
  45. package/dist/internal/TransactWriteOps.d.ts +50 -0
  46. package/dist/internal/TransactWriteOps.d.ts.map +1 -0
  47. package/dist/internal/TransactWriteOps.js +102 -0
  48. package/dist/internal/TransactWriteOps.js.map +1 -0
  49. package/dist/internal/TransactableOps.d.ts +1 -1
  50. package/dist/internal/TransactableOps.d.ts.map +1 -1
  51. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * VectorSearchEmulation — a local stand-in for DynamoDB `SearchVectors`.
3
+ *
4
+ * DynamoDB Local does not implement vector search: `CreateTable` silently
5
+ * accepts and discards `VectorIndexes`, and `SearchVectors` fails with
6
+ * `UnknownOperationException`. LocalStack wraps DynamoDB Local and inherits the
7
+ * gap. Without an emulation layer there is no way to exercise the full
8
+ * write → search round trip without an AWS account, which would leave the most
9
+ * interesting half of the feature untested.
10
+ *
11
+ * This layer wraps a `DynamoClient` layer and replaces `searchVectors` with a
12
+ * Scan + brute-force implementation. Every other operation passes through
13
+ * untouched, so the same layer stack serves the connected suite and the
14
+ * runnable example.
15
+ *
16
+ * Fidelity is deliberate, not approximate: all three distance functions are
17
+ * computed exactly as the developer guide documents them (including the score
18
+ * DIRECTIONS, which differ), the HASH/INLINE_FILTER equality predicates are
19
+ * evaluated, `ProjectionExpression` is honoured, and results are truncated to
20
+ * `TopK`. The ranking output is unit-tested against the developer guide's
21
+ * reference table.
22
+ *
23
+ * What it does NOT emulate: approximate (as opposed to exact) nearest-neighbour
24
+ * behaviour, backfill states, or consumed-capacity reporting. An emulated search
25
+ * is an exhaustive scan, so it is exact and slow — correct for tests, useless
26
+ * for load.
27
+ *
28
+ * See `DESIGN.md §14 Vector Search`.
29
+ */
30
+ import type { DistanceFunction } from "@effect-dynamodb/schema/VectorIndex.js";
31
+ import { Layer } from "effect";
32
+ import { DynamoClient, type DynamoClientService } from "./DynamoClient.js";
33
+ /** What the emulator needs to know about a physical vector index. */
34
+ export interface EmulatedVectorIndex {
35
+ /** Attribute holding the stored embedding (`L` of `N`). */
36
+ readonly vectorAttribute: string;
37
+ /** Distance function used to score candidates. */
38
+ readonly distance: DistanceFunction;
39
+ /**
40
+ * The composed HASH attribute. Always a legal `SearchConditionExpression`
41
+ * operand.
42
+ */
43
+ readonly partitionAttribute?: string | undefined;
44
+ /**
45
+ * `INLINE_FILTER` attributes (STORED names). A condition on anything else is
46
+ * a `ValidationException` on real DynamoDB, so the emulator rejects it too —
47
+ * otherwise an undeclared filter would pass every local test and only fail
48
+ * in production.
49
+ */
50
+ readonly filterAttributes?: ReadonlyArray<string> | undefined;
51
+ }
52
+ /** Minimal structural shape of a `Table` — avoids importing the full type. */
53
+ interface TableLikeForEmulation {
54
+ readonly entities: Record<string, {
55
+ readonly _tag: "Entity";
56
+ }>;
57
+ }
58
+ /**
59
+ * Options for {@link layer}.
60
+ *
61
+ * `tables` is the ergonomic form: every registered entity's vector index
62
+ * declarations are read straight off the table, so the emulator always agrees
63
+ * with the definitions the writes used. `indexes` is the escape hatch for
64
+ * hand-rolled setups.
65
+ *
66
+ * An index that appears in neither falls back to the library naming convention
67
+ * (`__edd_v_<IndexName>__`) with cosine distance — enough for a smoke test, but
68
+ * a declared table is what you want.
69
+ */
70
+ export interface EmulationOptions {
71
+ readonly tables?: Record<string, TableLikeForEmulation> | undefined;
72
+ readonly indexes?: Record<string, EmulatedVectorIndex> | undefined;
73
+ }
74
+ /** @internal Dot product. Higher is more similar; may be negative. */
75
+ export declare const dotProduct: (a: ReadonlyArray<number>, b: ReadonlyArray<number>) => number;
76
+ /**
77
+ * @internal Cosine DISTANCE (`1 - cosine similarity`), range 0…2.
78
+ * Lower is more similar — the same direction DynamoDB reports.
79
+ */
80
+ export declare const cosineDistance: (a: ReadonlyArray<number>, b: ReadonlyArray<number>) => number;
81
+ /** @internal Euclidean (L2) distance, range 0…∞. Lower is more similar. */
82
+ export declare const euclideanDistance: (a: ReadonlyArray<number>, b: ReadonlyArray<number>) => number;
83
+ /** @internal Score a candidate exactly as DynamoDB would report it. */
84
+ export declare const scoreVector: (query: ReadonlyArray<number>, candidate: ReadonlyArray<number>, distance: DistanceFunction) => number;
85
+ /**
86
+ * Wrap a {@link DynamoClientService} so `searchVectors` is emulated locally.
87
+ * Every other operation delegates to the wrapped service unchanged.
88
+ */
89
+ export declare const wrap: (service: DynamoClientService, options?: EmulationOptions) => DynamoClientService;
90
+ /**
91
+ * Wrap a `DynamoClient` layer so `searchVectors` is emulated locally.
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const DdbLocal = DynamoClient.layer({ region: "us-east-1", endpoint: "http://localhost:8000" })
96
+ * const Emulated = VectorSearchEmulation.layer(DdbLocal, { tables: { MainTable } })
97
+ * ```
98
+ */
99
+ export declare const layer: <E, R>(inner: Layer.Layer<DynamoClient, E, R>, options?: EmulationOptions) => Layer.Layer<DynamoClient, E, R>;
100
+ export {};
101
+ //# sourceMappingURL=VectorSearchEmulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorSearchEmulation.d.ts","sourceRoot":"","sources":["../src/VectorSearchEmulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,wCAAwC,CAAA;AAE/C,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,YAAY,EAA0B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAOlG,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC9D;AAED,8EAA8E;AAC9E,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAA;CACnE;AAkCD,sEAAsE;AACtE,eAAO,MAAM,UAAU,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAI/E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAKnF,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAAI,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,MAOtF,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,GACtB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,WAAW,aAAa,CAAC,MAAM,CAAC,EAChC,UAAU,gBAAgB,KACzB,MASF,CAAA;AA8ED;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,mBAAmB,EAC5B,UAAU,gBAAgB,KACzB,mBAmHF,CAAA;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EACxB,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,EACtC,UAAU,gBAAgB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAIgC,CAAA"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * VectorSearchEmulation — a local stand-in for DynamoDB `SearchVectors`.
3
+ *
4
+ * DynamoDB Local does not implement vector search: `CreateTable` silently
5
+ * accepts and discards `VectorIndexes`, and `SearchVectors` fails with
6
+ * `UnknownOperationException`. LocalStack wraps DynamoDB Local and inherits the
7
+ * gap. Without an emulation layer there is no way to exercise the full
8
+ * write → search round trip without an AWS account, which would leave the most
9
+ * interesting half of the feature untested.
10
+ *
11
+ * This layer wraps a `DynamoClient` layer and replaces `searchVectors` with a
12
+ * Scan + brute-force implementation. Every other operation passes through
13
+ * untouched, so the same layer stack serves the connected suite and the
14
+ * runnable example.
15
+ *
16
+ * Fidelity is deliberate, not approximate: all three distance functions are
17
+ * computed exactly as the developer guide documents them (including the score
18
+ * DIRECTIONS, which differ), the HASH/INLINE_FILTER equality predicates are
19
+ * evaluated, `ProjectionExpression` is honoured, and results are truncated to
20
+ * `TopK`. The ranking output is unit-tested against the developer guide's
21
+ * reference table.
22
+ *
23
+ * What it does NOT emulate: approximate (as opposed to exact) nearest-neighbour
24
+ * behaviour, backfill states, or consumed-capacity reporting. An emulated search
25
+ * is an exhaustive scan, so it is exact and slow — correct for tests, useless
26
+ * for load.
27
+ *
28
+ * See `DESIGN.md §14 Vector Search`.
29
+ */
30
+ import { DynamoValidationError } from "@effect-dynamodb/schema/Errors.js";
31
+ import { vectorAttributeName } from "@effect-dynamodb/schema/VectorIndex.js";
32
+ import { Effect, Layer } from "effect";
33
+ import { DynamoClient } from "./DynamoClient.js";
34
+ import { mergeVectorIndexes } from "./Table.js";
35
+ /** @internal Build the IndexName → {vectorAttribute, distance} registry. */
36
+ const buildRegistry = (options) => {
37
+ const registry = new Map();
38
+ for (const table of Object.values(options?.tables ?? {})) {
39
+ const merged = mergeVectorIndexes(table.entities);
40
+ for (const [indexName, entry] of merged) {
41
+ registry.set(indexName, toEmulated(entry.definition, entry.filters.map(entry.resolveDbName)));
42
+ }
43
+ }
44
+ for (const [indexName, entry] of Object.entries(options?.indexes ?? {})) {
45
+ registry.set(indexName, entry);
46
+ }
47
+ return registry;
48
+ };
49
+ /** @internal */
50
+ const toEmulated = (definition, filterAttributes) => ({
51
+ vectorAttribute: definition.vectorField,
52
+ distance: definition.distance,
53
+ partitionAttribute: definition.partitionField,
54
+ filterAttributes,
55
+ });
56
+ // ---------------------------------------------------------------------------
57
+ // Distance functions — see the reference table in DESIGN.md §14
58
+ // ---------------------------------------------------------------------------
59
+ /** @internal Dot product. Higher is more similar; may be negative. */
60
+ export const dotProduct = (a, b) => {
61
+ let sum = 0;
62
+ for (let i = 0; i < a.length; i++)
63
+ sum += (a[i] ?? 0) * (b[i] ?? 0);
64
+ return sum;
65
+ };
66
+ /**
67
+ * @internal Cosine DISTANCE (`1 - cosine similarity`), range 0…2.
68
+ * Lower is more similar — the same direction DynamoDB reports.
69
+ */
70
+ export const cosineDistance = (a, b) => {
71
+ const magnitudeA = Math.sqrt(dotProduct(a, a));
72
+ const magnitudeB = Math.sqrt(dotProduct(b, b));
73
+ if (magnitudeA === 0 || magnitudeB === 0)
74
+ return 1;
75
+ return 1 - dotProduct(a, b) / (magnitudeA * magnitudeB);
76
+ };
77
+ /** @internal Euclidean (L2) distance, range 0…∞. Lower is more similar. */
78
+ export const euclideanDistance = (a, b) => {
79
+ let sum = 0;
80
+ for (let i = 0; i < Math.max(a.length, b.length); i++) {
81
+ const delta = (a[i] ?? 0) - (b[i] ?? 0);
82
+ sum += delta * delta;
83
+ }
84
+ return Math.sqrt(sum);
85
+ };
86
+ /** @internal Score a candidate exactly as DynamoDB would report it. */
87
+ export const scoreVector = (query, candidate, distance) => {
88
+ switch (distance) {
89
+ case "cosine":
90
+ return cosineDistance(query, candidate);
91
+ case "euclidean":
92
+ return euclideanDistance(query, candidate);
93
+ case "dotProduct":
94
+ return dotProduct(query, candidate);
95
+ }
96
+ };
97
+ /**
98
+ * @internal Is a LOWER raw score more similar for this distance function?
99
+ * COSINE and EUCLIDEAN report distances; DOT_PRODUCT reports a similarity.
100
+ */
101
+ const lowerIsCloser = (distance) => distance !== "dotProduct";
102
+ // ---------------------------------------------------------------------------
103
+ // AttributeValue helpers
104
+ // ---------------------------------------------------------------------------
105
+ /** @internal Read a stored embedding (`L` of `N`) out of an item. */
106
+ const readVector = (value) => {
107
+ if (value === undefined)
108
+ return undefined;
109
+ if (value.L !== undefined) {
110
+ const numbers = value.L.map((element) => Number(element.N));
111
+ return numbers.some((n) => Number.isNaN(n)) ? undefined : numbers;
112
+ }
113
+ if (value.NS !== undefined)
114
+ return value.NS.map((n) => Number(n));
115
+ return undefined;
116
+ };
117
+ /** @internal Structural equality over the scalar AttributeValue shapes. */
118
+ const attributeEquals = (a, b) => {
119
+ if (a === undefined || b === undefined)
120
+ return false;
121
+ if (a.S !== undefined || b.S !== undefined)
122
+ return a.S === b.S;
123
+ if (a.N !== undefined || b.N !== undefined)
124
+ return Number(a.N) === Number(b.N);
125
+ if (a.BOOL !== undefined || b.BOOL !== undefined)
126
+ return a.BOOL === b.BOOL;
127
+ return JSON.stringify(a) === JSON.stringify(b);
128
+ };
129
+ /**
130
+ * @internal Parse the equality-only `SearchConditionExpression`.
131
+ *
132
+ * The expression grammar the library emits (and the only one the API supports)
133
+ * is a conjunction of `#name = :value` terms, so a split is a complete parser
134
+ * rather than a shortcut. Anything unrecognised is skipped rather than throwing:
135
+ * an over-permissive emulator surfaces as a failed assertion in the test that
136
+ * cares, which is easier to debug than a parse error from a layer.
137
+ */
138
+ const parseEqualityConditions = (expression, names, values) => {
139
+ if (!expression)
140
+ return [];
141
+ const conditions = [];
142
+ for (const term of expression.split(/\s+AND\s+/i)) {
143
+ const match = term.trim().match(/^([#\w.]+)\s*=\s*(:[\w]+)$/);
144
+ if (!match)
145
+ continue;
146
+ const rawName = match[1];
147
+ const rawValue = match[2];
148
+ const attribute = rawName.startsWith("#") ? (names?.[rawName] ?? rawName) : rawName;
149
+ const value = values?.[rawValue];
150
+ if (value === undefined)
151
+ continue;
152
+ conditions.push({ attribute, value });
153
+ }
154
+ return conditions;
155
+ };
156
+ /** @internal Resolve a `ProjectionExpression` into concrete attribute names. */
157
+ const parseProjection = (expression, names) => {
158
+ if (!expression)
159
+ return undefined;
160
+ return expression
161
+ .split(",")
162
+ .map((part) => part.trim())
163
+ .filter((part) => part.length > 0)
164
+ .map((part) => (part.startsWith("#") ? (names?.[part] ?? part) : part));
165
+ };
166
+ // ---------------------------------------------------------------------------
167
+ // Emulated searchVectors
168
+ // ---------------------------------------------------------------------------
169
+ /**
170
+ * Wrap a {@link DynamoClientService} so `searchVectors` is emulated locally.
171
+ * Every other operation delegates to the wrapped service unchanged.
172
+ */
173
+ export const wrap = (service, options) => {
174
+ const registry = buildRegistry(options);
175
+ return {
176
+ ...service,
177
+ // Real DynamoDB REQUIRES every vector SearchSchema element in
178
+ // AttributeDefinitions; DynamoDB Local discards `VectorIndexes`, sees those
179
+ // definitions as unreferenced, and rejects the table ("The number of
180
+ // attributes in key schema must match..."). The two backends demand
181
+ // incompatible inputs, so the emulation strips the vector-only parts down
182
+ // to what DynamoDB Local understands.
183
+ createTable: (input) => {
184
+ if (input.VectorIndexes === undefined)
185
+ return service.createTable(input);
186
+ const referenced = new Set([
187
+ ...(input.KeySchema ?? []),
188
+ ...(input.GlobalSecondaryIndexes ?? []).flatMap((gsi) => gsi.KeySchema ?? []),
189
+ ...(input.LocalSecondaryIndexes ?? []).flatMap((lsi) => lsi.KeySchema ?? []),
190
+ ].flatMap((element) => (element.AttributeName ? [element.AttributeName] : [])));
191
+ const { VectorIndexes: _dropped, ...rest } = input;
192
+ return service.createTable({
193
+ ...rest,
194
+ AttributeDefinitions: (input.AttributeDefinitions ?? []).filter((definition) => definition.AttributeName !== undefined && referenced.has(definition.AttributeName)),
195
+ });
196
+ },
197
+ updateTable: (input) => {
198
+ if (input.VectorIndexUpdates === undefined)
199
+ return service.updateTable(input);
200
+ const { AttributeDefinitions: _defs, VectorIndexUpdates: _updates, ...rest } = input;
201
+ const hasOtherUpdates = Object.keys(rest).some((key) => key !== "TableName");
202
+ // A pure vector-index update has nothing DynamoDB Local can apply —
203
+ // succeed as a no-op so `addVectorIndex` stays usable in local stacks.
204
+ return hasOtherUpdates
205
+ ? service.updateTable(rest)
206
+ : Effect.succeed({ $metadata: {} });
207
+ },
208
+ searchVectors: (input) => Effect.gen(function* () {
209
+ const indexName = input.IndexName ?? "";
210
+ const index = registry.get(indexName) ?? {
211
+ vectorAttribute: vectorAttributeName(indexName),
212
+ distance: "cosine",
213
+ };
214
+ const queryVector = (input.SearchVector ?? []).map((element) => Number(element.N));
215
+ const conditions = parseEqualityConditions(input.SearchConditionExpression, input.ExpressionAttributeNames, input.ExpressionAttributeValues);
216
+ const projection = parseProjection(input.ProjectionExpression, input.ExpressionAttributeNames);
217
+ const topK = input.TopK ?? 10;
218
+ // Real DynamoDB rejects a SearchConditionExpression that names an
219
+ // attribute which is not the HASH element or a declared INLINE_FILTER.
220
+ // Reproduce that here — an over-permissive emulator would let an
221
+ // undeclared filter pass every local test and fail only in production.
222
+ if (index.filterAttributes !== undefined) {
223
+ const allowed = new Set(index.filterAttributes);
224
+ if (index.partitionAttribute !== undefined)
225
+ allowed.add(index.partitionAttribute);
226
+ for (const condition of conditions) {
227
+ if (allowed.has(condition.attribute))
228
+ continue;
229
+ return yield* new DynamoValidationError({
230
+ operation: "SearchVectors",
231
+ cause: `Attribute "${condition.attribute}" is not a HASH or INLINE_FILTER element of ` +
232
+ `vector index "${indexName}". Declared: ${[...allowed].sort().join(", ")}.`,
233
+ });
234
+ }
235
+ }
236
+ // Exhaustive scan — the emulator trades speed for exactness.
237
+ const candidates = [];
238
+ let exclusiveStartKey;
239
+ do {
240
+ const page = yield* service.scan({
241
+ TableName: input.TableName,
242
+ ExclusiveStartKey: exclusiveStartKey,
243
+ });
244
+ for (const item of page.Items ?? []) {
245
+ const record = item;
246
+ // Sparse index semantics: no embedding ⇒ not in the index.
247
+ const stored = readVector(record[index.vectorAttribute]);
248
+ if (stored === undefined)
249
+ continue;
250
+ if (!conditions.every((c) => attributeEquals(record[c.attribute], c.value)))
251
+ continue;
252
+ candidates.push({
253
+ item: record,
254
+ score: scoreVector(queryVector, stored, index.distance),
255
+ });
256
+ }
257
+ exclusiveStartKey = page.LastEvaluatedKey;
258
+ } while (exclusiveStartKey !== undefined);
259
+ candidates.sort((a, b) => lowerIsCloser(index.distance) ? a.score - b.score : b.score - a.score);
260
+ return {
261
+ $metadata: {},
262
+ SearchResults: candidates.slice(0, topK).map(({ item, score }) => ({
263
+ Item: projection === undefined ? item : project(item, projection),
264
+ Score: score,
265
+ })),
266
+ };
267
+ }),
268
+ };
269
+ };
270
+ /** @internal Reduce an item to the projected attributes. */
271
+ const project = (item, attributes) => {
272
+ const projected = {};
273
+ for (const attribute of attributes) {
274
+ const value = item[attribute];
275
+ if (value !== undefined)
276
+ projected[attribute] = value;
277
+ }
278
+ return projected;
279
+ };
280
+ /**
281
+ * Wrap a `DynamoClient` layer so `searchVectors` is emulated locally.
282
+ *
283
+ * @example
284
+ * ```typescript
285
+ * const DdbLocal = DynamoClient.layer({ region: "us-east-1", endpoint: "http://localhost:8000" })
286
+ * const Emulated = VectorSearchEmulation.layer(DdbLocal, { tables: { MainTable } })
287
+ * ```
288
+ */
289
+ export const layer = (inner, options) => Layer.effect(DynamoClient, Effect.map(DynamoClient, (service) => wrap(service, options))).pipe(Layer.provide(inner));
290
+ //# sourceMappingURL=VectorSearchEmulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorSearchEmulation.js","sourceRoot":"","sources":["../src/VectorSearchEmulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAUH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAKzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,YAAY,EAAoD,MAAM,mBAAmB,CAAA;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAgD/C,4EAA4E;AAC5E,MAAM,aAAa,GAAG,CAAC,OAAqC,EAAoC,EAAE;IAChG,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;IACvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAC/B,KAAK,CAAC,QAA+D,CACtE,CAAA;QACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACxC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,gBAAgB;AAChB,MAAM,UAAU,GAAG,CACjB,UAAiC,EACjC,gBAAuC,EAClB,EAAE,CAAC,CAAC;IACzB,eAAe,EAAE,UAAU,CAAC,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ;IAC7B,kBAAkB,EAAE,UAAU,CAAC,cAAc;IAC7C,gBAAgB;CACjB,CAAC,CAAA;AAEF,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAU,EAAE;IACvF,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACnE,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAU,EAAE;IAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,CAAA;AACzD,CAAC,CAAA;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAU,EAAE;IAC9F,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,GAAG,IAAI,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAA4B,EAC5B,SAAgC,EAChC,QAA0B,EAClB,EAAE;IACV,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACzC,KAAK,WAAW;YACd,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAC5C,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,QAA0B,EAAW,EAAE,CAAC,QAAQ,KAAK,YAAY,CAAA;AAExF,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,qEAAqE;AACrE,MAAM,UAAU,GAAG,CAAC,KAAiC,EAAqC,EAAE;IAC1F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,2EAA2E;AAC3E,MAAM,eAAe,GAAG,CAAC,CAA6B,EAAE,CAA6B,EAAW,EAAE;IAChG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpD,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9D,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAA;IAC1E,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAAG,CAC9B,UAA8B,EAC9B,KAAyC,EACzC,MAAkD,EAC6B,EAAE;IACjF,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAA;IAC1B,MAAM,UAAU,GAAwD,EAAE,CAAA;IAC1E,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC7D,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACnF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,gFAAgF;AAChF,MAAM,eAAe,GAAG,CACtB,UAA8B,EAC9B,KAAyC,EACN,EAAE;IACrC,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,OAAO,UAAU;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3E,CAAC,CAAA;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,OAA4B,EAC5B,OAA0B,EACL,EAAE;IACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACvC,OAAO;QACL,GAAG,OAAO;QACV,8DAA8D;QAC9D,4EAA4E;QAC5E,qEAAqE;QACrE,oEAAoE;QACpE,0EAA0E;QAC1E,sCAAsC;QACtC,WAAW,EAAE,CAAC,KAA8B,EAAE,EAAE;YAC9C,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB;gBACE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;gBAC1B,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;gBAC7E,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;aAC7E,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/E,CAAA;YACD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;YAClD,OAAO,OAAO,CAAC,WAAW,CAAC;gBACzB,GAAG,IAAI;gBACP,oBAAoB,EAAE,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAC7D,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CACrF;aACF,CAAC,CAAA;QACJ,CAAC;QACD,WAAW,EAAE,CAAC,KAA8B,EAAE,EAAE;YAC9C,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAC7E,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;YACpF,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC,CAAA;YAC5E,oEAAoE;YACpE,uEAAuE;YACvE,OAAO,eAAe;gBACpB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAG/B,CAAA;QACR,CAAC;QACD,aAAa,EAAE,CACb,KAAgC,EAC8B,EAAE,CAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;gBACvC,eAAe,EAAE,mBAAmB,CAAC,SAAS,CAAC;gBAC/C,QAAQ,EAAE,QAAiB;aAC5B,CAAA;YACD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAClF,MAAM,UAAU,GAAG,uBAAuB,CACxC,KAAK,CAAC,yBAAyB,EAC/B,KAAK,CAAC,wBAAwB,EAC9B,KAAK,CAAC,yBAAyB,CAChC,CAAA;YACD,MAAM,UAAU,GAAG,eAAe,CAChC,KAAK,CAAC,oBAAoB,EAC1B,KAAK,CAAC,wBAAwB,CAC/B,CAAA;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;YAE7B,kEAAkE;YAClE,uEAAuE;YACvE,iEAAiE;YACjE,uEAAuE;YACvE,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBACvD,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;gBACjF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;wBAAE,SAAQ;oBAC9C,OAAO,KAAK,CAAC,CAAC,IAAI,qBAAqB,CAAC;wBACtC,SAAS,EAAE,eAAe;wBAC1B,KAAK,EACH,cAAc,SAAS,CAAC,SAAS,8CAA8C;4BAC/E,iBAAiB,SAAS,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBAC9E,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,MAAM,UAAU,GAAmE,EAAE,CAAA;YACrF,IAAI,iBAA6D,CAAA;YACjE,GAAG,CAAC;gBACF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC,CAAA;gBACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,IAAsC,CAAA;oBACrD,2DAA2D;oBAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;oBACxD,IAAI,MAAM,KAAK,SAAS;wBAAE,SAAQ;oBAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBAAE,SAAQ;oBACrF,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;qBACxD,CAAC,CAAA;gBACJ,CAAC;gBACD,iBAAiB,GAAG,IAAI,CAAC,gBAA8D,CAAA;YACzF,CAAC,QAAQ,iBAAiB,KAAK,SAAS,EAAC;YAEzC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACvB,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CACtE,CAAA;YAED,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACjE,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;oBACjE,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;aACiC,CAAA;QACxC,CAAC,CAAC;KACL,CAAA;AACH,CAAC,CAAA;AAED,4DAA4D;AAC5D,MAAM,OAAO,GAAG,CACd,IAAoC,EACpC,UAAiC,EACD,EAAE;IAClC,MAAM,SAAS,GAAmC,EAAE,CAAA;IACpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;IACvD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,KAAsC,EACtC,OAA0B,EACO,EAAE,CACnC,KAAK,CAAC,MAAM,CACV,YAAY,EACZ,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC9D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAoC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  export * as DynamoModel from "@effect-dynamodb/schema/DynamoModel.js";
2
2
  export type { Casing, DynamoSchema as DynamoSchemaType, } from "@effect-dynamodb/schema/DynamoSchema.js";
3
3
  export * as DynamoSchema from "@effect-dynamodb/schema/DynamoSchema.js";
4
- export { AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, ConditionalCheckFailed, DynamoError, DynamoValidationError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, ValidationError, VersionConflict, } from "@effect-dynamodb/schema/Errors.js";
5
- export type { AppendInputType, AppendSuccess, EntityInputType, EntityKeyType, EntityRecordType, EntityRefInputType, EntityRefUpdateType, EntityUpdateType, IndexPkComposites, IndexPkInput, IndexSkComposites, ModelType, PrimaryKeyComposites, RefErrors, SystemFieldsType, } from "@effect-dynamodb/schema/internal/EntityTypes.js";
4
+ export type { EmbedderService } from "@effect-dynamodb/schema/Embedder.js";
5
+ export { Embedder } from "@effect-dynamodb/schema/Embedder.js";
6
+ export { AdditionalItemConditionFailed, AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, AppendTooLarge, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, ConditionalCheckFailed, DuplicateCommand, DynamoError, DynamoValidationError, EmbeddingError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, ValidationError, VectorIndexBackfilling, VersionConflict, } from "@effect-dynamodb/schema/Errors.js";
7
+ export type { AppendInputType, AppendSuccess, EntityInputType, EntityKeyType, EntityRecordType, EntityRefInputType, EntityRefUpdateType, EntityUpdateType, IndexPkComposites, IndexPkInput, IndexSkComposites, ModelType, PrimaryKeyComposites, RefErrors, SystemFieldsType, VectorErrors, } from "@effect-dynamodb/schema/internal/EntityTypes.js";
6
8
  export type { GsiConfig, IndexDefinition, KeyPart } from "@effect-dynamodb/schema/KeyComposer.js";
7
9
  export * as KeyComposer from "@effect-dynamodb/schema/KeyComposer.js";
8
10
  export type { ProjectionResult } from "@effect-dynamodb/schema/Projection.js";
9
11
  export * as Projection from "@effect-dynamodb/schema/Projection.js";
12
+ export type { DistanceFunction, Similarity, VectorFilterInput, VectorFilterOperand, VectorIndexConfig, VectorIndexDefinition, VectorSourceConfig, } from "@effect-dynamodb/schema/VectorIndex.js";
13
+ export * as VectorIndex from "@effect-dynamodb/schema/VectorIndex.js";
10
14
  export type { BoundAggregate } from "./Aggregate.js";
11
15
  export * as Aggregate from "./Aggregate.js";
12
16
  export type { BatchRetryConfig } from "./Batch.js";
@@ -22,6 +26,7 @@ export type { ConditionInput, ExpressionResult, UpdateInput, } from "./Expressio
22
26
  export * as Expression from "./Expression.js";
23
27
  export type { BoundQuery, BoundQueryBase, BoundQueryWithWhere, SkConditionOps, } from "./internal/BoundQuery.js";
24
28
  export { makeBoundQuery } from "./internal/BoundQuery.js";
29
+ export type { BoundVectorQuery, BoundVectorQueryCombinators, BoundVectorQueryTerminals, BoundVectorQueryWithPartition, VectorHit, VectorSearchError, } from "./internal/BoundVectorQuery.js";
25
30
  export type { CompileResult, ConditionOps, ConditionShorthand, Expr, } from "./internal/Expr.js";
26
31
  export { compileExpr, createConditionOps, isExpr, parseShorthand, parseSimpleShorthand, } from "./internal/Expr.js";
27
32
  export type { ArrayPath, DeepPick, Path, PathBuilder, PathKeys, SizeOperand, } from "./internal/PathBuilder.js";
@@ -32,4 +37,6 @@ export type { Table as TableType, TableConfig } from "./Table.js";
32
37
  export * as Table from "./Table.js";
33
38
  export type { ConditionCheckOp } from "./Transaction.js";
34
39
  export * as Transaction from "./Transaction.js";
40
+ export type { EmulatedVectorIndex, EmulationOptions, } from "./VectorSearchEmulation.js";
41
+ export * as VectorSearchEmulation from "./VectorSearchEmulation.js";
35
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  export * as DynamoModel from "@effect-dynamodb/schema/DynamoModel.js";
2
2
  export * as DynamoSchema from "@effect-dynamodb/schema/DynamoSchema.js";
3
- export { AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, ConditionalCheckFailed, DynamoError, DynamoValidationError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, ValidationError, VersionConflict, } from "@effect-dynamodb/schema/Errors.js";
3
+ export { Embedder } from "@effect-dynamodb/schema/Embedder.js";
4
+ export { AdditionalItemConditionFailed, AggregateAssemblyError, AggregateDecompositionError, AggregateTransactionOverflow, AppendTooLarge, CascadePartialFailure, CompositeKeyHoleError, CompositeNullableError, ConditionalCheckFailed, DuplicateCommand, DynamoError, DynamoValidationError, EmbeddingError, InternalServerError, ItemDeleted, ItemNotDeleted, ItemNotFound, makeCompositeKeyHoleError, makeCompositeNullableError, OptimisticLockError, RefNotFound, ResourceNotFoundError, StaleAppend, ThrottlingError, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, TransactionOverflow, UniqueConstraintViolation, ValidationError, VectorIndexBackfilling, VersionConflict, } from "@effect-dynamodb/schema/Errors.js";
4
5
  export * as KeyComposer from "@effect-dynamodb/schema/KeyComposer.js";
5
6
  export * as Projection from "@effect-dynamodb/schema/Projection.js";
7
+ export * as VectorIndex from "@effect-dynamodb/schema/VectorIndex.js";
6
8
  export * as Aggregate from "./Aggregate.js";
7
9
  export * as Batch from "./Batch.js";
8
10
  export * as Collection from "./Collection.js";
@@ -17,4 +19,5 @@ export * as Marshaller from "./Marshaller.js";
17
19
  export * as Query from "./Query.js";
18
20
  export * as Table from "./Table.js";
19
21
  export * as Transaction from "./Transaction.js";
22
+ export * as VectorSearchEmulation from "./VectorSearchEmulation.js";
20
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AAKrE,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAA;AACvE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,eAAe,GAChB,MAAM,mCAAmC,CAAA;AAmB1C,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AAErE,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AAEnE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAQ7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAUhD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAM7C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAO7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAOzD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAS3B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AAKrE,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAA;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,mCAAmC,CAAA;AAoB1C,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AAErE,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AAUnE,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AAErE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAQ7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAUhD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAM7C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAO7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAezD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAS3B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAK/C,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA"}