effect-dynamodb 1.22.0 → 1.23.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 (68) hide show
  1. package/dist/Aggregate.d.ts +9 -4
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +644 -219
  4. package/dist/Aggregate.js.map +1 -1
  5. package/dist/Batch.d.ts +7 -0
  6. package/dist/Batch.d.ts.map +1 -1
  7. package/dist/Batch.js +132 -7
  8. package/dist/Batch.js.map +1 -1
  9. package/dist/Collection.d.ts.map +1 -1
  10. package/dist/Collection.js +13 -31
  11. package/dist/Collection.js.map +1 -1
  12. package/dist/DynamoClient.d.ts +40 -3
  13. package/dist/DynamoClient.d.ts.map +1 -1
  14. package/dist/DynamoClient.js +70 -19
  15. package/dist/DynamoClient.js.map +1 -1
  16. package/dist/Entity.d.ts +138 -55
  17. package/dist/Entity.d.ts.map +1 -1
  18. package/dist/Entity.js +3061 -626
  19. package/dist/Entity.js.map +1 -1
  20. package/dist/EventStore.d.ts +15 -6
  21. package/dist/EventStore.d.ts.map +1 -1
  22. package/dist/EventStore.js +169 -148
  23. package/dist/EventStore.js.map +1 -1
  24. package/dist/Query.d.ts +75 -3
  25. package/dist/Query.d.ts.map +1 -1
  26. package/dist/Query.js +228 -30
  27. package/dist/Query.js.map +1 -1
  28. package/dist/Transaction.d.ts +13 -2
  29. package/dist/Transaction.d.ts.map +1 -1
  30. package/dist/Transaction.js +48 -38
  31. package/dist/Transaction.js.map +1 -1
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal/BoundCrud.d.ts +31 -20
  37. package/dist/internal/BoundCrud.d.ts.map +1 -1
  38. package/dist/internal/BoundCrud.js +1 -1
  39. package/dist/internal/BoundCrud.js.map +1 -1
  40. package/dist/internal/BoundQuery.d.ts +47 -2
  41. package/dist/internal/BoundQuery.d.ts.map +1 -1
  42. package/dist/internal/BoundQuery.js +182 -18
  43. package/dist/internal/BoundQuery.js.map +1 -1
  44. package/dist/internal/EntityCombinators.d.ts +32 -10
  45. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  46. package/dist/internal/EntityCombinators.js +16 -7
  47. package/dist/internal/EntityCombinators.js.map +1 -1
  48. package/dist/internal/EntityOps.d.ts +44 -10
  49. package/dist/internal/EntityOps.d.ts.map +1 -1
  50. package/dist/internal/EntityOps.js +48 -5
  51. package/dist/internal/EntityOps.js.map +1 -1
  52. package/dist/internal/Expr.d.ts +23 -0
  53. package/dist/internal/Expr.d.ts.map +1 -1
  54. package/dist/internal/Expr.js +84 -9
  55. package/dist/internal/Expr.js.map +1 -1
  56. package/dist/internal/ItemSize.d.ts +38 -0
  57. package/dist/internal/ItemSize.d.ts.map +1 -0
  58. package/dist/internal/ItemSize.js +62 -0
  59. package/dist/internal/ItemSize.js.map +1 -0
  60. package/dist/internal/TransactWriteOps.d.ts +112 -19
  61. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  62. package/dist/internal/TransactWriteOps.js +210 -33
  63. package/dist/internal/TransactWriteOps.js.map +1 -1
  64. package/dist/internal/TransactableOps.d.ts +33 -14
  65. package/dist/internal/TransactableOps.d.ts.map +1 -1
  66. package/dist/internal/TransactableOps.js +46 -19
  67. package/dist/internal/TransactableOps.js.map +1 -1
  68. package/package.json +2 -2
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Function as Fn } from "effect";
7
7
  import { EntityDeleteImpl, EntityDeleteTypeId, EntityGetImpl, EntityOpTypeId, EntityPutImpl, EntityUpdateImpl, EntityUpdateTypeId, } from "./EntityOps.js";
8
+ import { nonEmptyCondition } from "./Expr.js";
8
9
  /** Decode through model schema (default for yield*). Returns clean model class instance. */
9
10
  export const asModel = (self) => self._run("model");
10
11
  /** Decode through record schema (model + system fields). */
@@ -59,6 +60,7 @@ export const project = Fn.dual(2, (self, attributes) => {
59
60
  const impl = self;
60
61
  return new EntityGetImpl(impl._builder, impl._entity, impl._key, impl._consistentRead, attributes);
61
62
  });
63
+ /** @internal Whether a condition compiles to nothing (`{}`, `and()`). */
62
64
  /**
63
65
  * Add a condition expression to a put, update, or delete operation.
64
66
  * The condition is evaluated server-side by DynamoDB. If it fails,
@@ -69,11 +71,15 @@ export const project = Fn.dual(2, (self, attributes) => {
69
71
  * Accepts either a `ConditionInput` shorthand or a compiled `Expr` node.
70
72
  * For updates, the user condition is ANDed with any optimistic lock condition.
71
73
  */
72
- export const condition = Fn.dual(2, (self, cond) => {
74
+ export const condition = Fn.dual(2, (self, given) => {
75
+ // An empty condition (`{}`, `and()`) is no condition (#133): like any later
76
+ // `.condition()`, it replaces an earlier one — with none.
77
+ const cond = nonEmptyCondition(given);
73
78
  if (EntityDeleteTypeId in self) {
74
- // EntityDelete
79
+ // EntityDelete. `deleteIfExists`'s existence check is the op's own guard
80
+ // (`_mustExist`), never its condition: it stays, ANDed with this one.
75
81
  const impl = self;
76
- return new EntityDeleteImpl(impl._builder, impl._entity, impl._key, cond, impl._returnValues);
82
+ return new EntityDeleteImpl(impl._builder, impl._entity, impl._key, cond, impl._returnValues, impl._mustExist);
77
83
  }
78
84
  if (EntityUpdateTypeId in self) {
79
85
  // EntityUpdate
@@ -113,15 +119,18 @@ export const withVector = Fn.dual(3, (self, name, vector) => {
113
119
  * - `"none"` — return nothing (default for delete)
114
120
  * - `"allOld"` — return the item as it was before the operation
115
121
  * - `"allNew"` — return the item as it is after the operation (default for update)
116
- * - `"updatedOld"` — return only the updated attributes, with old values
117
- * - `"updatedNew"` — return only the updated attributes, with new values
122
+ * - `"updatedOld"` — return only the top-level attributes the update wrote, with
123
+ * their old values, decoded as a partial
124
+ * - `"updatedNew"` — the same attributes with their new values
118
125
  *
119
- * For deletes, only `"none"` and `"allOld"` are valid DynamoDB modes.
126
+ * An update's result type follows the mode (`undefined` for `"none"`, a
127
+ * `Partial` for the `updated*` modes). For deletes, only `"none"` and
128
+ * `"allOld"` are valid DynamoDB modes.
120
129
  */
121
130
  export const returnValues = Fn.dual(2, (self, mode) => {
122
131
  if (EntityDeleteTypeId in self) {
123
132
  const impl = self;
124
- return new EntityDeleteImpl(impl._builder, impl._entity, impl._key, impl._condition, mode);
133
+ return new EntityDeleteImpl(impl._builder, impl._entity, impl._key, impl._condition, mode, impl._mustExist);
125
134
  }
126
135
  // EntityUpdate
127
136
  const impl = self;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCombinators.js","sourceRoot":"","sources":["../../src/internal/EntityCombinators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityCombinators.js","sourceRoot":"","sources":["../../src/internal/EntityCombinators.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,9 @@
6
6
  import type { ReturnValue } from "@aws-sdk/client-dynamodb";
7
7
  import type * as DynamoSchema from "@effect-dynamodb/schema/DynamoSchema.js";
8
8
  import type { IndexDefinition } from "@effect-dynamodb/schema/KeyComposer.js";
9
- import type { Effect } from "effect";
10
- import { Pipeable } from "effect";
9
+ import { Effect, Pipeable } from "effect";
11
10
  import type { ConditionInput } from "../Expression.js";
12
- import type { Expr } from "../internal/Expr.js";
11
+ import { type Expr } from "../internal/Expr.js";
13
12
  import type { TableConfig } from "../Table.js";
14
13
  /** @internal */
15
14
  export declare const EntityOpTypeId: unique symbol;
@@ -23,6 +22,21 @@ export type EntityDeleteTypeId = typeof EntityDeleteTypeId;
23
22
  export type DecodeMode = "model" | "record" | "item" | "native" | "raw";
24
23
  /** DynamoDB ReturnValues modes */
25
24
  export type ReturnValuesMode = "none" | "allOld" | "allNew" | "updatedOld" | "updatedNew";
25
+ /**
26
+ * What an update returns for a `returnValues` mode (#133): `"none"` →
27
+ * `undefined`; `"updatedOld"` / `"updatedNew"` → only the attributes the
28
+ * update wrote, as a `Partial`; `"allOld"` / `"allNew"` → the whole item.
29
+ */
30
+ export type UpdateReturn<A, M extends ReturnValuesMode> = M extends "none" ? undefined : M extends "updatedOld" | "updatedNew" ? Partial<A> : A;
31
+ /**
32
+ * @internal An op's built-in guard ANDed with the caller's condition (#133):
33
+ * `create`'s not-exists, `patch`'s and `deleteIfExists`'s exists. The guard
34
+ * is held apart from the caller's condition, so no `.condition()` — empty,
35
+ * or replacing an earlier one — can remove it. Compiled as ONE expression,
36
+ * so their placeholders never collide; with no caller's condition, the guard
37
+ * alone (what these ops always sent).
38
+ */
39
+ export declare const withGuard: (guard: ConditionInput | undefined, condition: Expr | ConditionInput | undefined) => Expr | ConditionInput | undefined;
26
40
  /** @internal Map from our mode names to DynamoDB ReturnValues strings */
27
41
  export declare const returnValuesMap: globalThis.Record<ReturnValuesMode, ReturnValue>;
28
42
  /** @internal Minimal shape needed from cascade target entities */
@@ -87,6 +101,11 @@ export interface UpdateState {
87
101
  * escape hatch that skips the Embedder for the named vector index.
88
102
  */
89
103
  readonly withVectors: WithVectors | undefined;
104
+ /**
105
+ * `patch()`: the update requires the item to exist and reports a missing
106
+ * one as `ConditionalCheckFailed` (its documented contract).
107
+ */
108
+ readonly patch?: boolean | undefined;
90
109
  }
91
110
  /** @internal Path-based SET operation */
92
111
  export interface PathSetOp {
@@ -199,12 +218,19 @@ export interface EntityUpdate<A, Rec, U, E, R> extends EntityOp<A, Rec, E, R> {
199
218
  * Does NOT extend EntityOp (no decode mode — delete returns void).
200
219
  * Yieldable in `Effect.gen`.
201
220
  */
202
- export interface EntityDelete<E, R> extends Pipeable.Pipeable {
221
+ /**
222
+ * A delete descriptor. `A` is what it returns: nothing, or with
223
+ * `returnValues("allOld")` the item it deleted (`Model`, `undefined` when there
224
+ * was none).
225
+ */
226
+ export interface EntityDelete<E, R, A = void, Model = unknown> extends Pipeable.Pipeable {
203
227
  readonly [EntityDeleteTypeId]: EntityDeleteTypeId;
204
228
  /** Convert this descriptor to an executable Effect. */
205
- readonly asEffect: () => Effect.Effect<void, E, R>;
229
+ readonly asEffect: () => Effect.Effect<A, E, R>;
206
230
  /** Yield support for `Effect.gen`. */
207
- readonly [Symbol.iterator]: () => Iterator<Effect.Effect<void, E, R>, void>;
231
+ readonly [Symbol.iterator]: () => Iterator<Effect.Effect<A, E, R>, A>;
232
+ /** @internal Phantom: the model an `"allOld"` delete returns. */
233
+ readonly _deleteModel?: Model | undefined;
208
234
  /** @internal */ readonly _opType: "delete";
209
235
  /** @internal */ readonly _entity: EntityBase;
210
236
  /** @internal */ readonly _key: globalThis.Record<string, unknown>;
@@ -245,6 +271,10 @@ export type WithVectors = globalThis.Record<string, ReadonlyArray<number>>;
245
271
  export interface EntityPutOpts {
246
272
  readonly condition: Expr | ConditionInput | undefined;
247
273
  readonly withVectors?: WithVectors | undefined;
274
+ /** Which put-shaped op is running (`create` fails on an existing item). */
275
+ readonly putKind?: PutKind | undefined;
276
+ /** The operation errors name — `upsert` runs its create through `put`. */
277
+ readonly operation?: string | undefined;
248
278
  }
249
279
  /**
250
280
  * @internal Which `put`-shaped entity operation produced an `EntityPutImpl`.
@@ -290,22 +320,26 @@ export declare class EntityUpdateImpl<A, Rec, U, E, R> implements Pipeable.Pipea
290
320
  [Symbol.iterator](): any;
291
321
  pipe(): unknown;
292
322
  }
293
- export declare class EntityDeleteImpl<E, R> implements Pipeable.Pipeable {
323
+ export declare class EntityDeleteImpl<E, R, A = void> implements Pipeable.Pipeable {
294
324
  readonly _builder: (opts: {
295
325
  readonly condition: Expr | ConditionInput | undefined;
296
326
  readonly returnValues: ReturnValuesMode | undefined;
297
- }) => Effect.Effect<void, E, R>;
327
+ readonly mustExist: boolean;
328
+ }) => Effect.Effect<A, E, R>;
298
329
  readonly [EntityDeleteTypeId]: EntityDeleteTypeId;
299
330
  readonly _opType: "delete";
300
331
  readonly _entity: EntityBase;
301
332
  readonly _key: globalThis.Record<string, unknown>;
302
333
  readonly _condition: Expr | ConditionInput | undefined;
303
334
  readonly _returnValues: ReturnValuesMode | undefined;
335
+ /** `deleteIfExists`: the item must exist — a guard no `.condition()` replaces. */
336
+ readonly _mustExist: boolean;
304
337
  constructor(_builder: (opts: {
305
338
  readonly condition: Expr | ConditionInput | undefined;
306
339
  readonly returnValues: ReturnValuesMode | undefined;
307
- }) => Effect.Effect<void, E, R>, entity: EntityBase, key: globalThis.Record<string, unknown>, condition?: Expr | ConditionInput | undefined, returnValues?: ReturnValuesMode | undefined);
308
- asEffect(): Effect.Effect<void, E, R>;
340
+ readonly mustExist: boolean;
341
+ }) => Effect.Effect<A, E, R>, entity: EntityBase, key: globalThis.Record<string, unknown>, condition?: Expr | ConditionInput | undefined, returnValues?: ReturnValuesMode | undefined, mustExist?: boolean);
342
+ asEffect(): Effect.Effect<A, E, R>;
309
343
  [Symbol.iterator](): any;
310
344
  pipe(): unknown;
311
345
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EntityOps.d.ts","sourceRoot":"","sources":["../../src/internal/EntityOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityOps.d.ts","sourceRoot":"","sources":["../../src/internal/EntityOps.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * Extracted from Entity.ts for decomposition. Not part of the public API.
5
5
  */
6
- import { Pipeable, Utils } from "effect";
6
+ import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
7
+ import { Effect, Pipeable, Utils } from "effect";
8
+ import { ExprTag, emptyPartProblem, toExpr } from "../internal/Expr.js";
7
9
  // ---------------------------------------------------------------------------
8
10
  // TypeId symbols
9
11
  // ---------------------------------------------------------------------------
@@ -13,6 +15,36 @@ export const EntityOpTypeId = Symbol.for("effect-dynamodb/EntityOp");
13
15
  export const EntityUpdateTypeId = Symbol.for("effect-dynamodb/EntityUpdate");
14
16
  /** @internal */
15
17
  export const EntityDeleteTypeId = Symbol.for("effect-dynamodb/EntityDelete");
18
+ /**
19
+ * @internal An op's built-in guard ANDed with the caller's condition (#133):
20
+ * `create`'s not-exists, `patch`'s and `deleteIfExists`'s exists. The guard
21
+ * is held apart from the caller's condition, so no `.condition()` — empty,
22
+ * or replacing an earlier one — can remove it. Compiled as ONE expression,
23
+ * so their placeholders never collide; with no caller's condition, the guard
24
+ * alone (what these ops always sent).
25
+ */
26
+ export const withGuard = (guard, condition) => {
27
+ if (guard === undefined)
28
+ return condition;
29
+ if (condition === undefined)
30
+ return guard;
31
+ return { [ExprTag]: ExprTag, _tag: "and", exprs: [toExpr(guard), toExpr(condition)] };
32
+ };
33
+ /**
34
+ * @internal Run a write op unless its condition has an empty part where none
35
+ * may be (`emptyPartProblem`, #133): refused with a `ValidationError` before
36
+ * anything is sent.
37
+ */
38
+ const refuseEmptyParts = (entity, operation, condition, run) => {
39
+ const problem = condition === undefined ? undefined : emptyPartProblem(toExpr(condition));
40
+ if (problem === undefined)
41
+ return run();
42
+ return Effect.fail(new ValidationError({
43
+ entityType: entity.entityType ?? "unknown",
44
+ operation: `${operation}.condition`,
45
+ cause: `${operation}: ${problem} Nothing was sent.`,
46
+ }));
47
+ };
16
48
  /** @internal Map from our mode names to DynamoDB ReturnValues strings */
17
49
  export const returnValuesMap = {
18
50
  none: "NONE",
@@ -94,7 +126,11 @@ export class EntityPutImpl {
94
126
  this._putKind = putKind;
95
127
  }
96
128
  get _run() {
97
- return (mode) => this._builder(mode, { condition: this._condition, withVectors: this._withVectors });
129
+ return (mode) => refuseEmptyParts(this._entity, this._putKind, this._condition, () => this._builder(mode, {
130
+ condition: this._condition,
131
+ withVectors: this._withVectors,
132
+ putKind: this._putKind,
133
+ }));
98
134
  }
99
135
  asEffect() {
100
136
  return this._run("model");
@@ -121,7 +157,7 @@ export class EntityUpdateImpl {
121
157
  this._key = key;
122
158
  }
123
159
  get _run() {
124
- return (mode) => this._builder(mode, this._updateState);
160
+ return (mode) => refuseEmptyParts(this._entity, this._updateState.patch ? "patch" : "update", this._updateState.condition, () => this._builder(mode, this._updateState));
125
161
  }
126
162
  asEffect() {
127
163
  return this._run("model");
@@ -141,15 +177,22 @@ export class EntityDeleteImpl {
141
177
  _key;
142
178
  _condition;
143
179
  _returnValues;
144
- constructor(_builder, entity, key, condition, returnValues) {
180
+ /** `deleteIfExists`: the item must exist — a guard no `.condition()` replaces. */
181
+ _mustExist;
182
+ constructor(_builder, entity, key, condition, returnValues, mustExist = false) {
145
183
  this._builder = _builder;
146
184
  this._entity = entity;
147
185
  this._key = key;
148
186
  this._condition = condition;
149
187
  this._returnValues = returnValues;
188
+ this._mustExist = mustExist;
150
189
  }
151
190
  asEffect() {
152
- return this._builder({ condition: this._condition, returnValues: this._returnValues });
191
+ return refuseEmptyParts(this._entity, this._mustExist ? "deleteIfExists" : "delete", this._condition, () => this._builder({
192
+ condition: this._condition,
193
+ returnValues: this._returnValues,
194
+ mustExist: this._mustExist,
195
+ }));
153
196
  }
154
197
  [Symbol.iterator]() {
155
198
  return new Utils.SingleShotGen(this.asEffect());
@@ -1 +1 @@
1
- {"version":3,"file":"EntityOps.js","sourceRoot":"","sources":["../../src/internal/EntityOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityOps.js","sourceRoot":"","sources":["../../src/internal/EntityOps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAa,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAGlF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AAGnF,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;AAG3F,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;AAuB3F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAiC,EACjC,SAA4C,EACT,EAAE;IACrC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAU,CAAA;AAC/F,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CACvB,MAAkB,EAClB,SAAiB,EACjB,SAA4C,EAC5C,GAAmC,EACT,EAAE;IAC5B,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACzF,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,GAAG,EAAE,CAAA;IACvC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,eAAe,CAAC;QAClB,UAAU,EAAG,MAA2C,CAAC,UAAU,IAAI,SAAS;QAChF,SAAS,EAAE,GAAG,SAAS,YAAY;QACnC,KAAK,EAAE,GAAG,SAAS,KAAK,OAAO,oBAAoB;KACpD,CAAC,CAC+B,CAAA;AACrC,CAAC,CAAA;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAqD;IAC/E,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;CAC1B,CAAA;AA0HD,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,SAAS;IAC1B,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,SAAS;IACxB,YAAY,EAAE,SAAS;IACvB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,SAAS;IACtB,mBAAmB,EAAE,SAAS;IAC9B,iBAAiB,EAAE,SAAS;IAC5B,WAAW,EAAE,SAAS;CACvB,CAAA;AAkHD,MAAM,OAAO,aAAa;IASb;IARF,CAAC,cAAc,CAAC,GAAmB,cAAgC,CAAA;IACnE,OAAO,GAAG,KAAc,CAAA;IAExB,OAAO,CAAY;IACnB,IAAI,CAAoC;IACxC,eAAe,CAAS;IACxB,WAAW,CAAmC;IACvD,YACW,QAA6E,EACtF,MAAkB,EAClB,GAAuC,EACvC,cAAwB,EACxB,UAAkC;QAJzB,aAAQ,GAAR,QAAQ,CAAqE;QAMtF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,eAAe,GAAG,cAAc,IAAI,KAAK,CAAA;QAC9C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YAC7C,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC,CAAA;IACN,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B,CAAA;IACrD,CAAC;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAQ,CAAA;IACxD,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;CACF;AA+BD,MAAM,OAAO,aAAa;IAWb;IAVF,CAAC,cAAc,CAAC,GAAmB,cAAgC,CAAA;IACnE,OAAO,GAAG,KAAc,CAAA;IAExB,OAAO,CAAY;IACnB,MAAM,CAAoC;IAC1C,UAAU,CAAmC;IAC7C,YAAY,CAAyB;IAC9C,iEAAiE;IACxD,QAAQ,CAAS;IAC1B,YACW,QAA6E,EACtF,MAAkB,EAClB,KAAyC,EACzC,SAA6C,EAC7C,WAAqC,EACrC,UAAmB,KAAK;QALf,aAAQ,GAAR,QAAQ,CAAqE;QAOtF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CACH,CAAA;IACL,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B,CAAA;IACrD,CAAC;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAQ,CAAA;IACxD,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAShB;IACA;IATF,CAAC,cAAc,CAAC,GAAmB,cAAgC,CAAA;IACnE,CAAC,kBAAkB,CAAC,GAAuB,kBAAwC,CAAA;IACnF,OAAO,GAAG,QAAiB,CAAA;IAG3B,OAAO,CAAY;IACnB,IAAI,CAAoC;IACjD,YACW,QAA4E,EAC5E,YAAyB,EAClC,MAAkB,EAClB,GAAuC;QAH9B,aAAQ,GAAR,QAAQ,CAAoE;QAC5E,iBAAY,GAAZ,YAAY,CAAa;QAIlC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACjB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,gBAAgB,CACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAC5C,IAAI,CAAC,YAAY,CAAC,SAAS,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAC7C,CAAA;IACL,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B,CAAA;IACrD,CAAC;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAQ,CAAA;IACxD,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAUhB;IATF,CAAC,kBAAkB,CAAC,GAAuB,kBAAwC,CAAA;IACnF,OAAO,GAAG,QAAiB,CAAA;IAC3B,OAAO,CAAY;IACnB,IAAI,CAAoC;IACxC,UAAU,CAAmC;IAC7C,aAAa,CAA8B;IACpD,kFAAkF;IACzE,UAAU,CAAS;IAC5B,YACW,QAImB,EAC5B,MAAkB,EAClB,GAAuC,EACvC,SAA6C,EAC7C,YAA2C,EAC3C,SAAS,GAAG,KAAK;QATR,aAAQ,GAAR,QAAQ,CAIW;QAO5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IACD,QAAQ;QACN,OAAO,gBAAgB,CACrB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAC7C,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CACL,CAAA;IACH,CAAC;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAQ,CAAA;IACxD,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;CACF"}
@@ -123,6 +123,29 @@ export interface CompileResult {
123
123
  * Compile an Expr node to a DynamoDB expression string with name/value placeholders.
124
124
  */
125
125
  export declare const compileExpr: (expr: Expr, resolveDbName?: (name: string) => string) => CompileResult;
126
+ /**
127
+ * Whether an expression asserts nothing: `and()` — a `{}` shorthand — or an
128
+ * `and` of only such parts. A whole condition or filter that is empty is no
129
+ * condition, and an empty part directly under `and` is left out.
130
+ */
131
+ export declare const isEmptyExpr: (expr: Expr) => boolean;
132
+ /**
133
+ * Why an expression cannot be sent, or `undefined`: an empty part anywhere but
134
+ * directly under `and` or as the whole expression (#133). `or(x, {})` and
135
+ * `not({})` have no reading that does not widen what the caller wrote — `{}`
136
+ * asserts nothing, so `or(x, {})` would match everything and `not({})`
137
+ * nothing — and `or()` with no parts matches nothing at all. Each is refused
138
+ * with a `ValidationError` before anything is sent, never dropped.
139
+ */
140
+ export declare const emptyPartProblem: (expr: Expr) => string | undefined;
141
+ /** A condition or filter as an `Expr`: shorthand records are parsed. */
142
+ export declare const toExpr: (cond: Expr | ConditionInput) => Expr;
143
+ /**
144
+ * The one place an empty condition becomes no condition (#133): a whole
145
+ * condition that asserts nothing (`{}`, `and()`) is `undefined`; anything
146
+ * else — including one `emptyPartProblem` will refuse — is kept as given.
147
+ */
148
+ export declare const nonEmptyCondition: <C extends Expr | ConditionInput>(cond: C | undefined) => C | undefined;
126
149
  /**
127
150
  * Convert a ConditionInput shorthand object to an Expr ADT node.
128
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Expr.d.ts","sourceRoot":"","sources":["../../src/internal/Expr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Expr.d.ts","sourceRoot":"","sources":["../../src/internal/Expr.ts"],"names":[],"mappings":"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"}
@@ -157,6 +157,13 @@ export const not = (expr) => ({
157
157
  * Compile an Expr node to a DynamoDB expression string with name/value placeholders.
158
158
  */
159
159
  export const compileExpr = (expr, resolveDbName) => {
160
+ // Every user-facing entry point refuses these with a `ValidationError`
161
+ // before compiling (#133); reaching here with one is a library bug, and
162
+ // compiling it would silently send a widened or invalid expression.
163
+ const problem = emptyPartProblem(expr);
164
+ if (problem !== undefined) {
165
+ throw new Error(`compileExpr: ${problem} (refuse it with emptyPartProblem before compiling)`);
166
+ }
160
167
  const names = {};
161
168
  const values = {};
162
169
  const counter = { value: 0 };
@@ -204,19 +211,23 @@ export const compileExpr = (expr, resolveDbName) => {
204
211
  return `begins_with(${compileOperand(node.operand)}, ${compileOperand(node.prefix)})`;
205
212
  case "contains":
206
213
  return `contains(${compileOperand(node.operand)}, ${compileOperand(node.value)})`;
214
+ // An empty part (`and()`, a `{}` shorthand) directly under `and` is no
215
+ // condition: it is left out, never compiled to `()`, which DynamoDB
216
+ // rejects (#133). Under `or` or `not` it has no meaning that would not
217
+ // widen the expression — `emptyPartProblem` refuses it, above.
207
218
  case "and": {
208
- if (node.exprs.length === 0)
219
+ const parts = node.exprs.map((e) => compile(e)).filter((part) => part !== "");
220
+ if (parts.length === 0)
209
221
  return "";
210
- if (node.exprs.length === 1)
211
- return compile(node.exprs[0]);
212
- return node.exprs.map((e) => `(${compile(e)})`).join(" AND ");
222
+ if (parts.length === 1)
223
+ return parts[0];
224
+ return parts.map((part) => `(${part})`).join(" AND ");
213
225
  }
214
226
  case "or": {
215
- if (node.exprs.length === 0)
216
- return "";
217
- if (node.exprs.length === 1)
218
- return compile(node.exprs[0]);
219
- return node.exprs.map((e) => `(${compile(e)})`).join(" OR ");
227
+ const parts = node.exprs.map((e) => compile(e));
228
+ if (parts.length === 1)
229
+ return parts[0];
230
+ return parts.map((part) => `(${part})`).join(" OR ");
220
231
  }
221
232
  case "not":
222
233
  return `NOT (${compile(node.expr)})`;
@@ -225,6 +236,70 @@ export const compileExpr = (expr, resolveDbName) => {
225
236
  return { expression: compile(expr), names, values };
226
237
  };
227
238
  // ---------------------------------------------------------------------------
239
+ // Empty parts (#133)
240
+ // ---------------------------------------------------------------------------
241
+ /**
242
+ * Whether an expression asserts nothing: `and()` — a `{}` shorthand — or an
243
+ * `and` of only such parts. A whole condition or filter that is empty is no
244
+ * condition, and an empty part directly under `and` is left out.
245
+ */
246
+ export const isEmptyExpr = (expr) => expr._tag === "and" && expr.exprs.every((part) => isEmptyExpr(part));
247
+ /**
248
+ * Why an expression cannot be sent, or `undefined`: an empty part anywhere but
249
+ * directly under `and` or as the whole expression (#133). `or(x, {})` and
250
+ * `not({})` have no reading that does not widen what the caller wrote — `{}`
251
+ * asserts nothing, so `or(x, {})` would match everything and `not({})`
252
+ * nothing — and `or()` with no parts matches nothing at all. Each is refused
253
+ * with a `ValidationError` before anything is sent, never dropped.
254
+ */
255
+ export const emptyPartProblem = (expr) => {
256
+ switch (expr._tag) {
257
+ case "and": {
258
+ for (const part of expr.exprs) {
259
+ const problem = emptyPartProblem(part);
260
+ if (problem !== undefined)
261
+ return problem;
262
+ }
263
+ return undefined;
264
+ }
265
+ case "or": {
266
+ if (expr.exprs.length === 0) {
267
+ return "or() has no parts — it would match nothing. Give it at least one condition.";
268
+ }
269
+ for (const part of expr.exprs) {
270
+ if (isEmptyExpr(part)) {
271
+ return ("an empty part ({} or and()) under or() would match everything. " +
272
+ "Remove it, or give it a condition.");
273
+ }
274
+ const problem = emptyPartProblem(part);
275
+ if (problem !== undefined)
276
+ return problem;
277
+ }
278
+ return undefined;
279
+ }
280
+ case "in":
281
+ return expr.values.length === 0
282
+ ? "isIn() with no values matches nothing, and DynamoDB rejects `IN ()`. Give it at least one value."
283
+ : undefined;
284
+ case "not":
285
+ if (isEmptyExpr(expr.expr)) {
286
+ return ("not() of an empty part ({} or and()) would match nothing. " +
287
+ "Remove it, or give it a condition.");
288
+ }
289
+ return emptyPartProblem(expr.expr);
290
+ default:
291
+ return undefined;
292
+ }
293
+ };
294
+ /** A condition or filter as an `Expr`: shorthand records are parsed. */
295
+ export const toExpr = (cond) => isExpr(cond) ? cond : parseShorthand(cond);
296
+ /**
297
+ * The one place an empty condition becomes no condition (#133): a whole
298
+ * condition that asserts nothing (`{}`, `and()`) is `undefined`; anything
299
+ * else — including one `emptyPartProblem` will refuse — is kept as given.
300
+ */
301
+ export const nonEmptyCondition = (cond) => (cond === undefined || isEmptyExpr(toExpr(cond)) ? undefined : cond);
302
+ // ---------------------------------------------------------------------------
228
303
  // Shorthand parser — convert ConditionInput-like objects to Expr
229
304
  // ---------------------------------------------------------------------------
230
305
  /**