@infra-blocks/aws-dynamodb 0.31.0-alpha.0 → 0.32.0-alpha.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 (67) hide show
  1. package/lib/cjs/commands/expressions/condition/comparisons.d.ts +4 -4
  2. package/lib/cjs/commands/expressions/condition/comparisons.js +15 -8
  3. package/lib/cjs/commands/expressions/condition/comparisons.js.map +1 -1
  4. package/lib/cjs/commands/expressions/condition/condition.d.ts +5 -4
  5. package/lib/cjs/commands/expressions/condition/condition.js +9 -0
  6. package/lib/cjs/commands/expressions/condition/condition.js.map +1 -1
  7. package/lib/cjs/commands/expressions/condition/functions.d.ts +9 -8
  8. package/lib/cjs/commands/expressions/condition/functions.js +10 -4
  9. package/lib/cjs/commands/expressions/condition/functions.js.map +1 -1
  10. package/lib/cjs/commands/expressions/condition/size.d.ts +7 -6
  11. package/lib/cjs/commands/expressions/condition/size.js +10 -3
  12. package/lib/cjs/commands/expressions/condition/size.js.map +1 -1
  13. package/lib/cjs/commands/expressions/operands/index.d.ts +3 -3
  14. package/lib/cjs/commands/expressions/operands/index.js +9 -17
  15. package/lib/cjs/commands/expressions/operands/index.js.map +1 -1
  16. package/lib/cjs/commands/expressions/operands/{type.d.ts → operand.d.ts} +5 -2
  17. package/lib/cjs/commands/expressions/operands/operand.js +19 -0
  18. package/lib/cjs/commands/expressions/operands/operand.js.map +1 -0
  19. package/lib/cjs/commands/expressions/operands/path.d.ts +10 -2
  20. package/lib/cjs/commands/expressions/operands/path.js +18 -0
  21. package/lib/cjs/commands/expressions/operands/path.js.map +1 -1
  22. package/lib/cjs/commands/expressions/operands/value.d.ts +10 -2
  23. package/lib/cjs/commands/expressions/operands/value.js +25 -0
  24. package/lib/cjs/commands/expressions/operands/value.js.map +1 -1
  25. package/lib/cjs/commands/expressions/update/if-not-exists.d.ts +1 -1
  26. package/lib/cjs/commands/expressions/update/if-not-exists.js.map +1 -1
  27. package/lib/cjs/commands/expressions/update/set.d.ts +1 -1
  28. package/lib/cjs/commands/expressions/update/set.js.map +1 -1
  29. package/lib/cjs/types.d.ts +8 -0
  30. package/lib/cjs/types.js +37 -0
  31. package/lib/cjs/types.js.map +1 -1
  32. package/lib/esm/commands/expressions/condition/comparisons.d.ts +4 -4
  33. package/lib/esm/commands/expressions/condition/comparisons.js +15 -8
  34. package/lib/esm/commands/expressions/condition/comparisons.js.map +1 -1
  35. package/lib/esm/commands/expressions/condition/condition.d.ts +5 -4
  36. package/lib/esm/commands/expressions/condition/condition.js +8 -1
  37. package/lib/esm/commands/expressions/condition/condition.js.map +1 -1
  38. package/lib/esm/commands/expressions/condition/functions.d.ts +9 -8
  39. package/lib/esm/commands/expressions/condition/functions.js +10 -4
  40. package/lib/esm/commands/expressions/condition/functions.js.map +1 -1
  41. package/lib/esm/commands/expressions/condition/size.d.ts +7 -6
  42. package/lib/esm/commands/expressions/condition/size.js +9 -3
  43. package/lib/esm/commands/expressions/condition/size.js.map +1 -1
  44. package/lib/esm/commands/expressions/operands/index.d.ts +3 -3
  45. package/lib/esm/commands/expressions/operands/index.js +3 -3
  46. package/lib/esm/commands/expressions/operands/index.js.map +1 -1
  47. package/lib/esm/commands/expressions/operands/{type.d.ts → operand.d.ts} +5 -2
  48. package/lib/esm/commands/expressions/operands/operand.js +13 -0
  49. package/lib/esm/commands/expressions/operands/operand.js.map +1 -0
  50. package/lib/esm/commands/expressions/operands/path.d.ts +10 -2
  51. package/lib/esm/commands/expressions/operands/path.js +17 -0
  52. package/lib/esm/commands/expressions/operands/path.js.map +1 -1
  53. package/lib/esm/commands/expressions/operands/value.d.ts +10 -2
  54. package/lib/esm/commands/expressions/operands/value.js +24 -0
  55. package/lib/esm/commands/expressions/operands/value.js.map +1 -1
  56. package/lib/esm/commands/expressions/update/if-not-exists.d.ts +1 -1
  57. package/lib/esm/commands/expressions/update/if-not-exists.js.map +1 -1
  58. package/lib/esm/commands/expressions/update/set.d.ts +1 -1
  59. package/lib/esm/commands/expressions/update/set.js.map +1 -1
  60. package/lib/esm/types.d.ts +8 -0
  61. package/lib/esm/types.js +29 -0
  62. package/lib/esm/types.js.map +1 -1
  63. package/package.json +1 -1
  64. package/lib/cjs/commands/expressions/operands/type.js +0 -3
  65. package/lib/cjs/commands/expressions/operands/type.js.map +0 -1
  66. package/lib/esm/commands/expressions/operands/type.js +0 -2
  67. package/lib/esm/commands/expressions/operands/type.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import type { NativeBinary, NativeNumber, NativeString } from "../../../types.js";
2
- import type { ConditionOperand, ConditionParams } from "./condition.js";
2
+ import { type ConditionParams, type RawConditionOperand } from "./condition.js";
3
3
  import { ConditionExpression } from "./expression.js";
4
4
  export type ComparableValue = NativeBinary | NativeNumber | NativeString;
5
- export type ComparableOperand = ConditionOperand<ComparableValue>;
5
+ export type ComparableOperand = RawConditionOperand<ComparableValue>;
6
6
  export type ConditionComparisonParams = Between | Equals | GreaterThan | GreaterThanOrEquals | In | LowerThan | LowerThanOrEquals | NotEquals;
7
7
  export type Between = [
8
8
  ComparableOperand,
@@ -11,12 +11,12 @@ export type Between = [
11
11
  "AND",
12
12
  ComparableOperand
13
13
  ];
14
- export type Equals = [ConditionOperand, "=", ConditionOperand];
14
+ export type Equals = [RawConditionOperand, "=", RawConditionOperand];
15
15
  export type GreaterThan = [ComparableOperand, ">", ComparableOperand];
16
16
  export type GreaterThanOrEquals = [ComparableOperand, ">=", ComparableOperand];
17
17
  export type In = [ComparableOperand, "IN", ComparableOperand[]];
18
18
  export type LowerThan = [ComparableOperand, "<", ComparableOperand];
19
19
  export type LowerThanOrEquals = [ComparableOperand, "<=", ComparableOperand];
20
- export type NotEquals = [ConditionOperand, "<>", ConditionOperand];
20
+ export type NotEquals = [RawConditionOperand, "<>", RawConditionOperand];
21
21
  export declare function comparison(params: ConditionComparisonParams): ConditionExpression;
22
22
  export declare function isComparison(params: ConditionParams): params is ConditionComparisonParams;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.comparison = comparison;
4
4
  exports.isComparison = isComparison;
5
5
  const types_1 = require("@infra-blocks/types");
6
+ const condition_js_1 = require("./condition.js");
6
7
  const expression_js_1 = require("./expression.js");
7
8
  // TODO: don't export publicly through index.
8
9
  function comparison(params) {
@@ -56,9 +57,12 @@ function isComparison(params) {
56
57
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Comparators
57
58
  */
58
59
  function between(params) {
60
+ const lhs = (0, condition_js_1.conditionOperand)(params[0]);
61
+ const lower = (0, condition_js_1.conditionOperand)(params[2]);
62
+ const upper = (0, condition_js_1.conditionOperand)(params[4]);
59
63
  return expression_js_1.ConditionExpression.from({
60
64
  stringify: ({ names, values }) => {
61
- return `${params[0].substitute({ names, values })} BETWEEN ${params[2].substitute({ names, values })} AND ${params[4].substitute({ names, values })}`;
65
+ return `${lhs.substitute({ names, values })} BETWEEN ${lower.substitute({ names, values })} AND ${upper.substitute({ names, values })}`;
62
66
  },
63
67
  });
64
68
  }
@@ -126,20 +130,21 @@ function isGreaterThanOrEquals(value) {
126
130
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Comparators
127
131
  */
128
132
  function inComparison(params) {
129
- const containerElements = params[2];
130
133
  // TODO: unit test those limits
131
- if (containerElements.length === 0) {
134
+ if (params[2].length === 0) {
132
135
  throw new Error("the IN operator requires at least one operand.");
133
136
  }
134
- if (containerElements.length > 100) {
135
- throw new Error(`up to 100 operands are support for the IN operator, got ${containerElements.length}`);
137
+ if (params[2].length > 100) {
138
+ throw new Error(`up to 100 operands are support for the IN operator, got ${params[2].length}`);
136
139
  }
140
+ const element = (0, condition_js_1.conditionOperand)(params[0]);
141
+ const elements = params[2].map((condition_js_1.conditionOperand));
137
142
  return expression_js_1.ConditionExpression.from({
138
143
  stringify: ({ names, values }) => {
139
- const operands = containerElements
144
+ const elementsString = elements
140
145
  .map((operand) => operand.substitute({ names, values }))
141
146
  .join(",");
142
- return `${params[0].substitute({ names, values })} IN (${operands})`;
147
+ return `${element.substitute({ names, values })} IN (${elementsString})`;
143
148
  },
144
149
  });
145
150
  }
@@ -195,9 +200,11 @@ function isNotEquals(value) {
195
200
  return value[1] === "<>";
196
201
  }
197
202
  function binaryOperation(params) {
203
+ const lhs = (0, condition_js_1.conditionOperand)(params[0]);
204
+ const rhs = (0, condition_js_1.conditionOperand)(params[2]);
198
205
  return expression_js_1.ConditionExpression.from({
199
206
  stringify: ({ names, values }) => {
200
- return `${params[0].substitute({ names, values })} ${params[1]} ${params[2].substitute({ names, values })}`;
207
+ return `${lhs.substitute({ names, values })} ${params[1]} ${rhs.substitute({ names, values })}`;
201
208
  },
202
209
  });
203
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"comparisons.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/comparisons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparisons.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/comparisons.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { AttributeValue } from "../../../types.js";
2
- import type { Path } from "../operands/path.js";
3
- import type { Value } from "../operands/value.js";
2
+ import { type Operand, type RawOperand } from "../operands/index.js";
4
3
  import type { ConditionComparisonParams } from "./comparisons.js";
5
4
  import type { ConditionExpression } from "./expression.js";
6
- import type { Size } from "./size.js";
5
+ import { type Size } from "./size.js";
7
6
  export type ConditionParams = ConditionExpression | ConditionComparisonParams | ConditionExpression;
8
- export type ConditionOperand<T extends AttributeValue = AttributeValue> = Path | Value<T> | Size;
7
+ export type ConditionOperand<T extends AttributeValue = AttributeValue> = Operand<T> | Size;
8
+ export type RawConditionOperand<T extends AttributeValue = AttributeValue> = RawOperand<T> | Size;
9
+ export declare function conditionOperand<T extends AttributeValue = AttributeValue>(raw: RawConditionOperand<T>): ConditionOperand<T>;
@@ -1,3 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conditionOperand = conditionOperand;
4
+ const index_js_1 = require("../operands/index.js");
5
+ const size_js_1 = require("./size.js");
6
+ function conditionOperand(raw) {
7
+ if ((0, size_js_1.isSize)(raw)) {
8
+ return raw;
9
+ }
10
+ return (0, index_js_1.operand)(raw);
11
+ }
3
12
  //# sourceMappingURL=condition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/condition.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/condition.ts"],"names":[],"mappings":";;AAmBA,4CAOC;AAzBD,mDAA8E;AAG9E,uCAA8C;AAe9C,SAAgB,gBAAgB,CAC9B,GAA2B;IAE3B,IAAI,IAAA,gBAAM,EAAC,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAA,kBAAO,EAAI,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import type { NativeBinary, NativeString, NativeType } from "../../../types.js";
2
- import { Path, type RawPath } from "../operands/path.js";
3
- import { type RawValue, Value } from "../operands/value.js";
2
+ import { type RawOperand } from "../operands/operand.js";
3
+ import { type RawPath } from "../operands/path.js";
4
+ import { type RawValue } from "../operands/value.js";
5
+ import { type RawConditionOperand } from "./condition.js";
4
6
  import { ConditionExpression } from "./expression.js";
5
- import type { Size } from "./size.js";
6
7
  /**
7
8
  * Returns a condition that uses the `attribute_exists` function.
8
9
  *
@@ -37,11 +38,11 @@ export declare function attributeType(attribute: RawPath, rawType: RawValue<Nati
37
38
  *
38
39
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Functions
39
40
  */
40
- export type BeginsWithOperand = Path | Value<NativeString | NativeBinary>;
41
+ export type BeginsWithOperand = RawOperand<NativeString | NativeBinary>;
41
42
  /**
42
43
  * Returns a condition that uses the `begins_with` function.
43
44
  *
44
- * @param first - The first function operand, which is the attribute or value to check.
45
+ * @param first - The first function operand, which is the path or value to check.
45
46
  * @param second - The second function operand, which is the prefix to validate against.
46
47
  *
47
48
  * @returns A {@link ConditionExpression} that evaluates to true if the first operand begins with the second.
@@ -52,15 +53,15 @@ export declare function beginsWith(first: BeginsWithOperand, second: BeginsWithO
52
53
  /**
53
54
  * This type aggregates the types of operands that can be used as the first operand of the {@link contains} function.
54
55
  */
55
- export type ContainsFirstOperand = Path | Value;
56
+ export type ContainsFirstOperand = RawOperand;
56
57
  /**
57
58
  * This type aggregates the types of operands that can be used as the second operand of the {@link contains} function.
58
59
  */
59
- export type ContainsSecondOperand = Path | Value | Size;
60
+ export type ContainsSecondOperand = RawConditionOperand;
60
61
  /**
61
62
  * Returns a condition that uses the `contains` function.
62
63
  *
63
- * @param first - The first function operand, which is the attribute or value to check.
64
+ * @param first - The first function operand, which is the path or value to check.
64
65
  * @param second - The second function operand, which is the value to check for containment.
65
66
  *
66
67
  * @returns A {@link ConditionExpression} that evaluates to true if this operand contains the provided one.
@@ -5,8 +5,10 @@ exports.attributeNotExists = attributeNotExists;
5
5
  exports.attributeType = attributeType;
6
6
  exports.beginsWith = beginsWith;
7
7
  exports.contains = contains;
8
+ const operand_js_1 = require("../operands/operand.js");
8
9
  const path_js_1 = require("../operands/path.js");
9
10
  const value_js_1 = require("../operands/value.js");
11
+ const condition_js_1 = require("./condition.js");
10
12
  const expression_js_1 = require("./expression.js");
11
13
  /**
12
14
  * Returns a condition that uses the `attribute_exists` function.
@@ -56,7 +58,7 @@ function attributeType(attribute, rawType) {
56
58
  /**
57
59
  * Returns a condition that uses the `begins_with` function.
58
60
  *
59
- * @param first - The first function operand, which is the attribute or value to check.
61
+ * @param first - The first function operand, which is the path or value to check.
60
62
  * @param second - The second function operand, which is the prefix to validate against.
61
63
  *
62
64
  * @returns A {@link ConditionExpression} that evaluates to true if the first operand begins with the second.
@@ -64,14 +66,16 @@ function attributeType(attribute, rawType) {
64
66
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Functions
65
67
  */
66
68
  function beginsWith(first, second) {
69
+ const firstOperand = (0, operand_js_1.operand)(first);
70
+ const secondOperand = (0, operand_js_1.operand)(second);
67
71
  return expression_js_1.ConditionExpression.from({
68
- stringify: ({ names, values }) => `begins_with(${first.substitute({ names, values })}, ${second.substitute({ names, values })})`,
72
+ stringify: ({ names, values }) => `begins_with(${firstOperand.substitute({ names, values })}, ${secondOperand.substitute({ names, values })})`,
69
73
  });
70
74
  }
71
75
  /**
72
76
  * Returns a condition that uses the `contains` function.
73
77
  *
74
- * @param first - The first function operand, which is the attribute or value to check.
78
+ * @param first - The first function operand, which is the path or value to check.
75
79
  * @param second - The second function operand, which is the value to check for containment.
76
80
  *
77
81
  * @returns A {@link ConditionExpression} that evaluates to true if this operand contains the provided one.
@@ -79,8 +83,10 @@ function beginsWith(first, second) {
79
83
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Functions
80
84
  */
81
85
  function contains(first, second) {
86
+ const firstOperand = (0, operand_js_1.operand)(first);
87
+ const secondOperand = (0, condition_js_1.conditionOperand)(second);
82
88
  return expression_js_1.ConditionExpression.from({
83
- stringify: ({ names, values }) => `contains(${first.substitute({ names, values })}, ${second.substitute({ names, values })})`,
89
+ stringify: ({ names, values }) => `contains(${firstOperand.substitute({ names, values })}, ${secondOperand.substitute({ names, values })})`,
84
90
  });
85
91
  }
86
92
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/functions.ts"],"names":[],"mappings":";;AAcA,0CAKC;AAUD,gDAMC;AAYD,sCAUC;AAmBD,gCAQC;AAsBD,4BAQC;AAjHD,iDAAyD;AACzD,mDAA4D;AAC5D,mDAAsD;AAGtD;;;;;;;GAOG;AACH,SAAgB,eAAe,CAAC,OAAgB;IAC9C,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;KAC5E,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACvB,wBAAwB,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;KACxD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,SAAkB,EAClB,OAA6B;IAE7B,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,gBAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC/B,kBAAkB,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG;KAClF,CAAC,CAAC;AACL,CAAC;AASD;;;;;;;;;GASG;AACH,SAAgB,UAAU,CACxB,KAAwB,EACxB,MAAyB;IAEzB,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC/B,eAAe,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG;KACjG,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CACtB,KAA2B,EAC3B,MAA6B;IAE7B,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC/B,YAAY,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG;KAC9F,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/functions.ts"],"names":[],"mappings":";;AAoBA,0CAKC;AAUD,gDAMC;AAYD,sCAUC;AAoBD,gCAWC;AAqBD,4BAWC;AAxHD,uDAAkE;AAClE,iDAAyD;AACzD,mDAA4D;AAC5D,iDAA4E;AAC5E,mDAAsD;AAEtD;;;;;;;GAOG;AACH,SAAgB,eAAe,CAAC,OAAgB;IAC9C,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;KAC5E,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACvB,wBAAwB,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;KACxD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,SAAkB,EAClB,OAA6B;IAE7B,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,gBAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC/B,kBAAkB,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG;KAClF,CAAC,CAAC;AACL,CAAC;AAUD;;;;;;;;;GASG;AACH,SAAgB,UAAU,CACxB,KAAwB,EACxB,MAAyB;IAEzB,MAAM,YAAY,GAAG,IAAA,oBAAO,EAA8B,KAAK,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,IAAA,oBAAO,EAA8B,MAAM,CAAC,CAAC;IAEnE,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC/B,eAAe,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG;KAC/G,CAAC,CAAC;AACL,CAAC;AAWD;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CACtB,KAA2B,EAC3B,MAA6B;IAE7B,MAAM,YAAY,GAAG,IAAA,oBAAO,EAAiB,KAAK,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAA,+BAAgB,EAAiB,MAAM,CAAC,CAAC;IAE/D,OAAO,mCAAmB,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC/B,YAAY,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG;KAC5G,CAAC,CAAC;AACL,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import type { NativeBinary, NativeList, NativeMap, NativeSet, NativeString } from "../../../types.js";
2
2
  import type { AttributeNames, AttributeValues } from "../../attributes/index.js";
3
- import type { Path } from "../operands/path.js";
4
- import type { IOperand } from "../operands/type.js";
5
- import type { Value } from "../operands/value.js";
3
+ import { type IOperand, type Operand, type RawOperand } from "../operands/operand.js";
4
+ export type SizeOperandValue = NativeBinary | NativeList | NativeMap | NativeSet | NativeString;
6
5
  /**
7
6
  * This type aggregates the types of operands that can be used with the {@link size} function.
8
7
  *
@@ -10,7 +9,8 @@ import type { Value } from "../operands/value.js";
10
9
  * @see Path
11
10
  * @see Value
12
11
  */
13
- export type SizeOperand = Path | Value<NativeBinary | NativeList | NativeMap | NativeSet | NativeString>;
12
+ export type SizeOperand = Operand<SizeOperandValue>;
13
+ export type RawSizeOperand = RawOperand<SizeOperandValue>;
14
14
  /**
15
15
  * A type representing the result of the {@link size} function as an operand to be used in expressions.
16
16
  */
@@ -29,9 +29,10 @@ export declare class Size implements IOperand {
29
29
  /**
30
30
  * Creates a new {@link Size} operand to be nested in expressions.
31
31
  *
32
- * @param operand - The operand to calculate the size of.
32
+ * @param raw - The operand to calculate the size of.
33
33
  * @returns A new {@link Size} operand.
34
34
  *
35
35
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Functions
36
36
  */
37
- export declare function size(operand: SizeOperand): Size;
37
+ export declare function size(raw: RawSizeOperand): Size;
38
+ export declare function isSize(value: unknown): value is Size;
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Size = void 0;
4
4
  exports.size = size;
5
+ exports.isSize = isSize;
6
+ const operand_js_1 = require("../operands/operand.js");
5
7
  /**
6
8
  * A type representing the result of the {@link size} function as an operand to be used in expressions.
7
9
  */
@@ -24,12 +26,17 @@ exports.Size = Size;
24
26
  /**
25
27
  * Creates a new {@link Size} operand to be nested in expressions.
26
28
  *
27
- * @param operand - The operand to calculate the size of.
29
+ * @param raw - The operand to calculate the size of.
28
30
  * @returns A new {@link Size} operand.
29
31
  *
30
32
  * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Functions
31
33
  */
32
- function size(operand) {
33
- return Size.from(operand);
34
+ function size(raw) {
35
+ const effective = (0, operand_js_1.operand)(raw);
36
+ return Size.from(effective);
37
+ }
38
+ // TODO: module visibility
39
+ function isSize(value) {
40
+ return value instanceof Size;
34
41
  }
35
42
  //# sourceMappingURL=size.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"size.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/size.ts"],"names":[],"mappings":";;;AA2DA,oBAEC;AAnCD;;GAEG;AACH,MAAa,IAAI;IACE,KAAK,CAAc;IAEpC,YAAY,OAAoB;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,MAGV;QACC,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAoB;QAC9B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AApBD,oBAoBC;AAED;;;;;;;GAOG;AACH,SAAgB,IAAI,CAAC,OAAoB;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"size.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/condition/size.ts"],"names":[],"mappings":";;;AAqEA,oBAGC;AAGD,wBAEC;AAlED,uDAKgC;AAoBhC;;GAEG;AACH,MAAa,IAAI;IACE,KAAK,CAAc;IAEpC,YAAY,OAAoB;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,MAGV;QACC,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAoB;QAC9B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AApBD,oBAoBC;AAED;;;;;;;GAOG;AACH,SAAgB,IAAI,CAAC,GAAmB;IACtC,MAAM,SAAS,GAAG,IAAA,oBAAO,EAAmB,GAAG,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,0BAA0B;AAC1B,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,IAAI,CAAC;AAC/B,CAAC"}
@@ -1,3 +1,3 @@
1
- export * from "./path.js";
2
- export * from "./type.js";
3
- export * from "./value.js";
1
+ export { type ImplicitOperand, type Operand, operand, type RawOperand, } from "./operand.js";
2
+ export { type ImplicitPath, Path, path, type RawPath } from "./path.js";
3
+ export { type ImplicitValue, type RawValue, Value, value, } from "./value.js";
@@ -1,20 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./path.js"), exports);
18
- __exportStar(require("./type.js"), exports);
19
- __exportStar(require("./value.js"), exports);
3
+ exports.value = exports.Value = exports.path = exports.Path = exports.operand = void 0;
4
+ var operand_js_1 = require("./operand.js");
5
+ Object.defineProperty(exports, "operand", { enumerable: true, get: function () { return operand_js_1.operand; } });
6
+ var path_js_1 = require("./path.js");
7
+ Object.defineProperty(exports, "Path", { enumerable: true, get: function () { return path_js_1.Path; } });
8
+ Object.defineProperty(exports, "path", { enumerable: true, get: function () { return path_js_1.path; } });
9
+ var value_js_1 = require("./value.js");
10
+ Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return value_js_1.Value; } });
11
+ Object.defineProperty(exports, "value", { enumerable: true, get: function () { return value_js_1.value; } });
20
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/index.ts"],"names":[],"mappings":";;;AAAA,2CAKsB;AAFpB,qGAAA,OAAO,OAAA;AAGT,qCAAwE;AAA5C,+FAAA,IAAI,OAAA;AAAE,+FAAA,IAAI,OAAA;AACtC,uCAKoB;AAFlB,iGAAA,KAAK,OAAA;AACL,iGAAA,KAAK,OAAA"}
@@ -1,8 +1,10 @@
1
1
  import type { AttributeValue } from "../../../types.js";
2
2
  import type { AttributeNames } from "../../attributes/names.js";
3
3
  import type { AttributeValues } from "../../attributes/values.js";
4
- import type { Path } from "./path.js";
5
- import type { Value } from "./value.js";
4
+ import { type ImplicitPath, Path, type RawPath } from "./path.js";
5
+ import { type ImplicitValue, type RawValue, Value } from "./value.js";
6
+ export type ImplicitOperand = ImplicitPath | ImplicitValue;
7
+ export type RawOperand<T extends AttributeValue = AttributeValue> = RawPath | RawValue<T>;
6
8
  export type Operand<T extends AttributeValue = AttributeValue> = Path | Value<T>;
7
9
  export interface IOperand {
8
10
  substitute(params: {
@@ -10,3 +12,4 @@ export interface IOperand {
10
12
  values: AttributeValues;
11
13
  }): string;
12
14
  }
15
+ export declare function operand<T extends AttributeValue = AttributeValue>(raw: RawOperand<T>): Operand<T>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.operand = operand;
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const path_js_1 = require("./path.js");
9
+ const value_js_1 = require("./value.js");
10
+ function operand(raw) {
11
+ if ((0, path_js_1.isRawPath)(raw)) {
12
+ return path_js_1.Path.normalize(raw);
13
+ }
14
+ if ((0, value_js_1.isRawValue)(raw)) {
15
+ return value_js_1.Value.normalize(raw);
16
+ }
17
+ (0, node_assert_1.default)(false, `unexpected operand: ${raw}`);
18
+ }
19
+ //# sourceMappingURL=operand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operand.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/operand.ts"],"names":[],"mappings":";;;;;AA6BA,0BAUC;AAvCD,8DAAiC;AAIjC,uCAA6E;AAC7E,yCAKoB;AAmBpB,SAAgB,OAAO,CACrB,GAAkB;IAElB,IAAI,IAAA,mBAAS,EAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,cAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,IAAA,qBAAU,EAAI,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,gBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAA,qBAAM,EAAC,KAAK,EAAE,uBAAuB,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { AttributePath } from "../../../types.js";
1
+ import { type AttributePath } from "../../../types.js";
2
2
  import type { AttributeNames } from "../../attributes/names.js";
3
- import type { IOperand } from "./type.js";
3
+ import type { IOperand } from "./operand.js";
4
4
  /**
5
5
  * This type represents the types that can implicitly be used
6
6
  * as path operands.
@@ -62,3 +62,11 @@ export declare class Path implements IOperand {
62
62
  * @returns A new {@link Path} instance for the provided path.
63
63
  */
64
64
  export declare function path(path: AttributePath): Path;
65
+ /**
66
+ * A type guard to assess if something is a {@link RawPath}.
67
+ *
68
+ * @param operand - The operand to test.
69
+ *
70
+ * @returns Whether the operand is a {@link RawPath}.
71
+ */
72
+ export declare function isRawPath(operand: unknown): operand is RawPath;
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Path = void 0;
4
4
  exports.path = path;
5
+ exports.isRawPath = isRawPath;
6
+ const types_js_1 = require("../../../types.js");
5
7
  /**
6
8
  * Represents an attribute path operand in an expression.
7
9
  *
@@ -55,4 +57,20 @@ exports.Path = Path;
55
57
  function path(path) {
56
58
  return Path.from(path);
57
59
  }
60
+ /**
61
+ * A type guard to assess if something is a {@link RawPath}.
62
+ *
63
+ * @param operand - The operand to test.
64
+ *
65
+ * @returns Whether the operand is a {@link RawPath}.
66
+ */
67
+ function isRawPath(operand) {
68
+ return isImplicitPath(operand) || isPath(operand);
69
+ }
70
+ function isImplicitPath(operand) {
71
+ return (0, types_js_1.isNativeString)(operand);
72
+ }
73
+ function isPath(operand) {
74
+ return operand instanceof Path;
75
+ }
58
76
  //# sourceMappingURL=path.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/path.ts"],"names":[],"mappings":";;;AAiFA,oBAEC;AAxDD;;;;;;GAMG;AACH,MAAa,IAAI;IACE,IAAI,CAAgB;IAErC,YAAoB,IAAmB;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,MAAiC;QAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAmB;QAC7B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CAAC,SAAkB;QACjC,IAAI,SAAS,YAAY,IAAI,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;CACF;AAtCD,oBAsCC;AAED;;;;;;GAMG;AACH,SAAgB,IAAI,CAAC,IAAmB;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/path.ts"],"names":[],"mappings":";;;AAiFA,oBAEC;AASD,8BAEC;AA9FD,gDAAuE;AA2BvE;;;;;;GAMG;AACH,MAAa,IAAI;IACE,IAAI,CAAgB;IAErC,YAAoB,IAAmB;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,MAAiC;QAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAmB;QAC7B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CAAC,SAAkB;QACjC,IAAI,SAAS,YAAY,IAAI,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;CACF;AAtCD,oBAsCC;AAED;;;;;;GAMG;AACH,SAAgB,IAAI,CAAC,IAAmB;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,OAAgB;IACxC,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO,IAAA,yBAAc,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,MAAM,CAAC,OAAgB;IAC9B,OAAO,OAAO,YAAY,IAAI,CAAC;AACjC,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { AttributePath, AttributeValue } from "../../../types.js";
1
+ import { type AttributePath, type AttributeValue } from "../../../types.js";
2
2
  import type { AttributeValues } from "../../attributes/values.js";
3
- import type { IOperand } from "./type.js";
3
+ import type { IOperand } from "./operand.js";
4
4
  export type ImplicitValue = Exclude<AttributeValue, AttributePath>;
5
5
  export type RawValue<T extends AttributeValue = AttributeValue> = T extends ImplicitValue ? T | Value<T> : Value<T>;
6
6
  /**
@@ -35,3 +35,11 @@ export declare class Value<T extends AttributeValue = AttributeValue> implements
35
35
  * @returns A new {@link Value} instance for the provided value.
36
36
  */
37
37
  export declare function value<T extends AttributeValue = AttributeValue>(value: T): Value<T>;
38
+ /**
39
+ * A type guard to assess if something is a {@link RawValue}.
40
+ *
41
+ * @param operand - The operand to test.
42
+ *
43
+ * @returns Whether the operand is a {@link RawValue}.
44
+ */
45
+ export declare function isRawValue<T extends AttributeValue = AttributeValue>(operand: unknown): operand is RawValue<T>;
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Value = void 0;
4
4
  exports.value = value;
5
+ exports.isRawValue = isRawValue;
6
+ const types_js_1 = require("../../../types.js");
5
7
  /**
6
8
  * Represents a value operand in an expression.
7
9
  *
@@ -48,4 +50,27 @@ exports.Value = Value;
48
50
  function value(value) {
49
51
  return Value.from(value);
50
52
  }
53
+ /**
54
+ * A type guard to assess if something is a {@link RawValue}.
55
+ *
56
+ * @param operand - The operand to test.
57
+ *
58
+ * @returns Whether the operand is a {@link RawValue}.
59
+ */
60
+ function isRawValue(operand) {
61
+ return isImplicitValue(operand) || isValue(operand);
62
+ }
63
+ function isImplicitValue(value) {
64
+ // Any of the native types *but* NativeString.
65
+ return ((0, types_js_1.isNativeBinary)(value) ||
66
+ (0, types_js_1.isNativeBoolean)(value) ||
67
+ (0, types_js_1.isNativeList)(value) ||
68
+ (0, types_js_1.isNativeMap)(value) ||
69
+ (0, types_js_1.isNativeNull)(value) ||
70
+ (0, types_js_1.isNativeNumber)(value) ||
71
+ (0, types_js_1.isNativeSet)(value));
72
+ }
73
+ function isValue(operand) {
74
+ return operand instanceof Value;
75
+ }
51
76
  //# sourceMappingURL=value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/value.ts"],"names":[],"mappings":";;;AA6DA,sBAIC;AAxDD;;;;;;GAMG;AACH,MAAa,KAAK;IAGC,KAAK,CAAI;IAE1B,YAAoB,KAAQ;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,MAAmC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAA4C,KAAQ;QAC7D,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,aAAa;IACb;;;;OAIG;IACH,MAAM,CAAC,SAAS,CACd,KAAkB;QAElB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,KAAiB,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAa,CAAC;IACvC,CAAC;CACF;AApCD,sBAoCC;AAED;;;;;;GAMG;AACH,SAAgB,KAAK,CACnB,KAAQ;IAER,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/value.ts"],"names":[],"mappings":";;;AAuEA,sBAIC;AASD,gCAIC;AAxFD,gDAU2B;AAS3B;;;;;;GAMG;AACH,MAAa,KAAK;IAGC,KAAK,CAAI;IAE1B,YAAoB,KAAQ;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,MAAmC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAA4C,KAAQ;QAC7D,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,aAAa;IACb;;;;OAIG;IACH,MAAM,CAAC,SAAS,CACd,KAAkB;QAElB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,KAAiB,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAa,CAAC;IACvC,CAAC;CACF;AApCD,sBAoCC;AAED;;;;;;GAMG;AACH,SAAgB,KAAK,CACnB,KAAQ;IAER,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CACxB,OAAgB;IAEhB,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,8CAA8C;IAC9C,OAAO,CACL,IAAA,yBAAc,EAAC,KAAK,CAAC;QACrB,IAAA,0BAAe,EAAC,KAAK,CAAC;QACtB,IAAA,uBAAY,EAAC,KAAK,CAAC;QACnB,IAAA,sBAAW,EAAC,KAAK,CAAC;QAClB,IAAA,uBAAY,EAAC,KAAK,CAAC;QACnB,IAAA,yBAAc,EAAC,KAAK,CAAC;QACrB,IAAA,sBAAW,EAAC,KAAK,CAAC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAgB;IAC/B,OAAO,OAAO,YAAY,KAAK,CAAC;AAClC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { AttributeValue } from "../../../types.js";
2
2
  import type { AttributeNames } from "../../attributes/names.js";
3
3
  import type { AttributeValues } from "../../attributes/values.js";
4
+ import type { IOperand, Operand } from "../operands/operand.js";
4
5
  import { Path, type RawPath } from "../operands/path.js";
5
- import type { IOperand, Operand } from "../operands/type.js";
6
6
  export declare class IfNotExists<T extends AttributeValue = AttributeValue> implements IOperand {
7
7
  private readonly path;
8
8
  private readonly defaultValue;
@@ -1 +1 @@
1
- {"version":3,"file":"if-not-exists.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/update/if-not-exists.ts"],"names":[],"mappings":";;;AA2BA,kCAMC;AA9BD,iDAAyD;AAGzD,MAAa,WAAW;IAGL,IAAI,CAAO;IACX,YAAY,CAAa;IAE1C,YAAY,MAAgD;QAC1D,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,MAGV;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IACjH,CAAC;CACF;AAnBD,kCAmBC;AAED,SAAgB,WAAW,CACzB,OAAgB,EAChB,YAAwB;IAExB,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"if-not-exists.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/update/if-not-exists.ts"],"names":[],"mappings":";;;AA2BA,kCAMC;AA7BD,iDAAyD;AAEzD,MAAa,WAAW;IAGL,IAAI,CAAO;IACX,YAAY,CAAa;IAE1C,YAAY,MAAgD;QAC1D,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,MAGV;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IACjH,CAAC;CACF;AAnBD,kCAmBC;AAED,SAAgB,WAAW,CACzB,OAAgB,EAChB,YAAwB;IAExB,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { AttributeNames } from "../../attributes/names.js";
2
2
  import type { AttributeValues } from "../../attributes/values.js";
3
+ import type { Operand } from "../operands/operand.js";
3
4
  import { Path, type RawPath } from "../operands/path.js";
4
- import type { Operand } from "../operands/type.js";
5
5
  import type { IUpdateAction, UpdateAction } from "./action.js";
6
6
  import type { UpdateExpressionClauses } from "./clauses.js";
7
7
  import type { IfNotExists } from "./if-not-exists.js";
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/update/set.ts"],"names":[],"mappings":";;;AAsEA,kBAYC;AAhFD,iDAAyD;AAsBzD,MAAa,SAAS;IACH,MAAM,CAAkB;IAEzC,YAAoB,MAAuB;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,OAAgC;QACvC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,MAGT;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CACxF;YACE,KAAK;YACL,MAAM;SACP,CACF,EAAE,CAAC;QACJ,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC9D,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CACxE;gBACE,KAAK;gBACL,MAAM;aACP,CACF,EAAE,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAuB;QACjC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;AApCD,8BAoCC;AAUD,SAAgB,GAAG,CACjB,OAAgB,EAChB,OAAmB,EACnB,QAAsB,EACtB,aAA0B;IAE1B,OAAO,SAAS,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,OAAO;QACP,QAAQ;QACR,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/update/set.ts"],"names":[],"mappings":";;;AAsEA,kBAYC;AA/ED,iDAAyD;AAqBzD,MAAa,SAAS;IACH,MAAM,CAAkB;IAEzC,YAAoB,MAAuB;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,OAAgC;QACvC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,MAGT;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CACxF;YACE,KAAK;YACL,MAAM;SACP,CACF,EAAE,CAAC;QACJ,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC9D,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CACxE;gBACE,KAAK;gBACL,MAAM;aACP,CACF,EAAE,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAuB;QACjC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;AApCD,8BAoCC;AAUD,SAAgB,GAAG,CACjB,OAAgB,EAChB,OAAmB,EACnB,QAAsB,EACtB,aAA0B;IAE1B,OAAO,SAAS,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,OAAO;QACP,QAAQ;QACR,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
@@ -14,6 +14,14 @@ export type NativeScalar = NativeBinary | NativeBoolean | NativeNull | NativeNum
14
14
  export type NativeSet = NativeNumberSet | NativeStringSet | NativeBinarySet;
15
15
  export type NativeString = string;
16
16
  export type NativeStringSet = Set<NativeString>;
17
+ export declare function isNativeBinary(value: unknown): value is NativeBinary;
18
+ export declare function isNativeBoolean(value: unknown): value is NativeBoolean;
19
+ export declare function isNativeList(value: unknown): value is NativeList;
20
+ export declare function isNativeMap(value: unknown): value is NativeMap;
21
+ export declare function isNativeNull(value: unknown): value is NativeNull;
22
+ export declare function isNativeNumber(value: unknown): value is NativeNumber;
23
+ export declare function isNativeSet(value: unknown): value is NativeSet;
24
+ export declare function isNativeString(value: unknown): value is NativeString;
17
25
  /**
18
26
  * The type of an attribute name in DynamoDB.
19
27
  *