@webiny/db-dynamodb 0.0.0-mt-2 → 0.0.0-unstable.06b2ede40f

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 (222) hide show
  1. package/DynamoDbDriver.d.ts +23 -25
  2. package/DynamoDbDriver.js +232 -240
  3. package/DynamoDbDriver.js.map +1 -0
  4. package/README.md +81 -1
  5. package/index.d.ts +2 -0
  6. package/index.js +18 -3
  7. package/index.js.map +1 -0
  8. package/package.json +19 -22
  9. package/plugins/definitions/AttributePlugin.d.ts +6 -8
  10. package/plugins/definitions/AttributePlugin.js +5 -20
  11. package/plugins/definitions/AttributePlugin.js.map +1 -0
  12. package/plugins/definitions/DateTimeTransformPlugin.d.ts +3 -2
  13. package/plugins/definitions/DateTimeTransformPlugin.js +16 -28
  14. package/plugins/definitions/DateTimeTransformPlugin.js.map +1 -0
  15. package/plugins/definitions/FieldPathPlugin.d.ts +3 -3
  16. package/plugins/definitions/FieldPathPlugin.js +7 -21
  17. package/plugins/definitions/FieldPathPlugin.js.map +1 -0
  18. package/plugins/definitions/FieldPlugin.d.ts +5 -5
  19. package/plugins/definitions/FieldPlugin.js +2 -24
  20. package/plugins/definitions/FieldPlugin.js.map +1 -0
  21. package/plugins/definitions/TimeTransformPlugin.d.ts +3 -2
  22. package/plugins/definitions/TimeTransformPlugin.js +19 -30
  23. package/plugins/definitions/TimeTransformPlugin.js.map +1 -0
  24. package/plugins/definitions/ValueFilterPlugin.d.ts +13 -11
  25. package/plugins/definitions/ValueFilterPlugin.js +10 -16
  26. package/plugins/definitions/ValueFilterPlugin.js.map +1 -0
  27. package/plugins/definitions/ValueTransformPlugin.d.ts +9 -9
  28. package/plugins/definitions/ValueTransformPlugin.js +7 -22
  29. package/plugins/definitions/ValueTransformPlugin.js.map +1 -0
  30. package/plugins/definitions/assignFields.js +3 -10
  31. package/plugins/definitions/assignFields.js.map +1 -0
  32. package/plugins/filters/andIn.d.ts +2 -2
  33. package/plugins/filters/andIn.js +5 -9
  34. package/plugins/filters/andIn.js.map +1 -0
  35. package/plugins/filters/between.d.ts +2 -2
  36. package/plugins/filters/between.js +5 -9
  37. package/plugins/filters/between.js.map +1 -0
  38. package/plugins/filters/contains.d.ts +2 -2
  39. package/plugins/filters/contains.js +44 -17
  40. package/plugins/filters/contains.js.map +1 -0
  41. package/plugins/filters/eq.d.ts +2 -2
  42. package/plugins/filters/eq.js +17 -5
  43. package/plugins/filters/eq.js.map +1 -0
  44. package/plugins/filters/fuzzy.d.ts +2 -2
  45. package/plugins/filters/fuzzy.js +18 -12
  46. package/plugins/filters/fuzzy.js.map +1 -0
  47. package/plugins/filters/gt.d.ts +2 -2
  48. package/plugins/filters/gt.js +4 -4
  49. package/plugins/filters/gt.js.map +1 -0
  50. package/plugins/filters/gte.d.ts +2 -2
  51. package/plugins/filters/gte.js +4 -4
  52. package/plugins/filters/gte.js.map +1 -0
  53. package/plugins/filters/in.d.ts +2 -2
  54. package/plugins/filters/in.js +5 -9
  55. package/plugins/filters/in.js.map +1 -0
  56. package/plugins/filters/index.d.ts +1 -1
  57. package/plugins/filters/index.js +5 -15
  58. package/plugins/filters/index.js.map +1 -0
  59. package/plugins/filters/lt.d.ts +2 -2
  60. package/plugins/filters/lt.js +4 -4
  61. package/plugins/filters/lt.js.map +1 -0
  62. package/plugins/filters/lte.d.ts +2 -2
  63. package/plugins/filters/lte.js +4 -4
  64. package/plugins/filters/lte.js.map +1 -0
  65. package/plugins/filters/startsWith.d.ts +3 -0
  66. package/plugins/filters/startsWith.js +40 -0
  67. package/plugins/filters/startsWith.js.map +1 -0
  68. package/plugins/index.d.ts +1 -1
  69. package/plugins/index.js +3 -5
  70. package/plugins/index.js.map +1 -0
  71. package/store/entity.d.ts +78 -0
  72. package/store/entity.js +41 -0
  73. package/store/entity.js.map +1 -0
  74. package/store/keys.d.ts +6 -0
  75. package/store/keys.js +22 -0
  76. package/store/keys.js.map +1 -0
  77. package/store/types.d.ts +7 -0
  78. package/store/types.js +7 -0
  79. package/store/types.js.map +1 -0
  80. package/toolbox.d.ts +3 -0
  81. package/toolbox.js +20 -0
  82. package/toolbox.js.map +1 -0
  83. package/types.d.ts +37 -21
  84. package/types.js +3 -1
  85. package/types.js.map +1 -0
  86. package/utils/attributes.d.ts +5 -5
  87. package/utils/attributes.js +6 -14
  88. package/utils/attributes.js.map +1 -0
  89. package/utils/batch/batchRead.d.ts +15 -0
  90. package/utils/batch/batchRead.js +72 -0
  91. package/utils/batch/batchRead.js.map +1 -0
  92. package/utils/batch/batchWrite.d.ts +13 -0
  93. package/utils/batch/batchWrite.js +65 -0
  94. package/utils/batch/batchWrite.js.map +1 -0
  95. package/utils/batch/index.d.ts +3 -0
  96. package/utils/batch/index.js +40 -0
  97. package/utils/batch/index.js.map +1 -0
  98. package/utils/batch/types.d.ts +25 -0
  99. package/utils/batch/types.js +7 -0
  100. package/utils/batch/types.js.map +1 -0
  101. package/utils/cleanup.d.ts +3 -3
  102. package/utils/cleanup.js +11 -27
  103. package/utils/cleanup.js.map +1 -0
  104. package/utils/count.d.ts +2 -0
  105. package/utils/count.js +23 -0
  106. package/utils/count.js.map +1 -0
  107. package/utils/createEntity.d.ts +54 -0
  108. package/utils/createEntity.js +61 -0
  109. package/utils/createEntity.js.map +1 -0
  110. package/utils/createTable.d.ts +8 -0
  111. package/utils/createTable.js +29 -0
  112. package/utils/createTable.js.map +1 -0
  113. package/utils/cursor.d.ts +2 -2
  114. package/utils/cursor.js +2 -6
  115. package/utils/cursor.js.map +1 -0
  116. package/utils/delete.d.ts +10 -0
  117. package/utils/delete.js +18 -0
  118. package/utils/delete.js.map +1 -0
  119. package/utils/entity/Entity.d.ts +26 -0
  120. package/utils/entity/Entity.js +77 -0
  121. package/utils/entity/Entity.js.map +1 -0
  122. package/utils/entity/EntityReadBatch.d.ts +17 -0
  123. package/utils/entity/EntityReadBatch.js +41 -0
  124. package/utils/entity/EntityReadBatch.js.map +1 -0
  125. package/utils/entity/EntityReadBatchBuilder.d.ts +10 -0
  126. package/utils/entity/EntityReadBatchBuilder.js +29 -0
  127. package/utils/entity/EntityReadBatchBuilder.js.map +1 -0
  128. package/utils/entity/EntityWriteBatch.d.ts +22 -0
  129. package/utils/entity/EntityWriteBatch.js +59 -0
  130. package/utils/entity/EntityWriteBatch.js.map +1 -0
  131. package/utils/entity/EntityWriteBatchBuilder.d.ts +11 -0
  132. package/utils/entity/EntityWriteBatchBuilder.js +28 -0
  133. package/utils/entity/EntityWriteBatchBuilder.js.map +1 -0
  134. package/utils/entity/getEntity.d.ts +4 -0
  135. package/utils/entity/getEntity.js +19 -0
  136. package/utils/entity/getEntity.js.map +1 -0
  137. package/utils/entity/index.d.ts +7 -0
  138. package/utils/entity/index.js +84 -0
  139. package/utils/entity/index.js.map +1 -0
  140. package/utils/entity/types.d.ts +51 -0
  141. package/utils/entity/types.js +7 -0
  142. package/utils/entity/types.js.map +1 -0
  143. package/utils/filter.d.ts +4 -4
  144. package/utils/filter.js +12 -43
  145. package/utils/filter.js.map +1 -0
  146. package/utils/get.d.ts +10 -8
  147. package/utils/get.js +16 -7
  148. package/utils/get.js.map +1 -0
  149. package/utils/index.d.ts +17 -0
  150. package/utils/index.js +194 -0
  151. package/utils/index.js.map +1 -0
  152. package/utils/listResponse.d.ts +1 -1
  153. package/utils/listResponse.js +8 -7
  154. package/utils/listResponse.js.map +1 -0
  155. package/utils/put.d.ts +12 -0
  156. package/utils/put.js +19 -0
  157. package/utils/put.js.map +1 -0
  158. package/utils/query.d.ts +20 -8
  159. package/utils/query.js +71 -38
  160. package/utils/query.js.map +1 -0
  161. package/utils/scan.d.ts +38 -0
  162. package/utils/scan.js +90 -0
  163. package/utils/scan.js.map +1 -0
  164. package/utils/sort.d.ts +3 -3
  165. package/utils/sort.js +5 -22
  166. package/utils/sort.js.map +1 -0
  167. package/utils/table/Table.d.ts +11 -0
  168. package/utils/table/Table.js +38 -0
  169. package/utils/table/Table.js.map +1 -0
  170. package/utils/table/TableReadBatch.d.ts +19 -0
  171. package/utils/table/TableReadBatch.js +62 -0
  172. package/utils/table/TableReadBatch.js.map +1 -0
  173. package/utils/table/TableWriteBatch.d.ts +21 -0
  174. package/utils/table/TableWriteBatch.js +69 -0
  175. package/utils/table/TableWriteBatch.js.map +1 -0
  176. package/utils/table/index.d.ts +4 -0
  177. package/utils/table/index.js +51 -0
  178. package/utils/table/index.js.map +1 -0
  179. package/utils/table/types.d.ts +39 -0
  180. package/utils/table/types.js +7 -0
  181. package/utils/table/types.js.map +1 -0
  182. package/utils/update.d.ts +12 -0
  183. package/utils/update.js +19 -0
  184. package/utils/update.js.map +1 -0
  185. package/BatchProcess.d.ts +0 -31
  186. package/BatchProcess.js +0 -196
  187. package/QueryGenerator.d.ts +0 -19
  188. package/QueryGenerator.js +0 -79
  189. package/operators/comparison/beginsWith.d.ts +0 -3
  190. package/operators/comparison/beginsWith.js +0 -24
  191. package/operators/comparison/between.d.ts +0 -3
  192. package/operators/comparison/between.js +0 -30
  193. package/operators/comparison/eq.d.ts +0 -3
  194. package/operators/comparison/eq.js +0 -34
  195. package/operators/comparison/gt.d.ts +0 -3
  196. package/operators/comparison/gt.js +0 -24
  197. package/operators/comparison/gte.d.ts +0 -3
  198. package/operators/comparison/gte.js +0 -24
  199. package/operators/comparison/lt.d.ts +0 -3
  200. package/operators/comparison/lt.js +0 -24
  201. package/operators/comparison/lte.d.ts +0 -3
  202. package/operators/comparison/lte.js +0 -24
  203. package/operators/index.d.ts +0 -12
  204. package/operators/index.js +0 -39
  205. package/operators/logical/and.d.ts +0 -3
  206. package/operators/logical/and.js +0 -63
  207. package/operators/logical/or.d.ts +0 -3
  208. package/operators/logical/or.js +0 -63
  209. package/plugins/definitions/NumberTransformPlugin.d.ts +0 -4
  210. package/plugins/definitions/NumberTransformPlugin.js +0 -49
  211. package/statements/createKeyConditionExpressionArgs.d.ts +0 -12
  212. package/statements/createKeyConditionExpressionArgs.js +0 -48
  213. package/statements/processStatement.d.ts +0 -4
  214. package/statements/processStatement.js +0 -39
  215. package/utils/batchRead.d.ts +0 -15
  216. package/utils/batchRead.js +0 -58
  217. package/utils/batchWrite.d.ts +0 -17
  218. package/utils/batchWrite.js +0 -30
  219. package/utils/documentClient.d.ts +0 -8
  220. package/utils/documentClient.js +0 -33
  221. package/utils/table.d.ts +0 -7
  222. package/utils/table.js +0 -27
@@ -1,36 +1,29 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.TimeTransformPlugin = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
8
  var _ValueTransformPlugin = require("./ValueTransformPlugin");
13
-
14
9
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
- var _isNumber = _interopRequireDefault(require("is-number"));
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
-
22
10
  const transformTime = params => {
23
11
  const {
24
12
  value
25
13
  } = params;
26
- const typeOf = typeof value;
27
- /**
28
- * Due to some internal JS stuff, we must check for a number like this.
29
- */
30
-
31
- if (typeOf === "number" || (0, _isNumber.default)(value) === true) {
14
+ if (value === undefined || value === null) {
15
+ throw new _error.default(`Time value is null or undefined.`, "TIME_PARSE_ERROR", {
16
+ value
17
+ });
18
+ } else if (typeof value === "boolean" || value === "" || Array.isArray(value)) {
19
+ throw new _error.default("Field value must be a string because field is defined as time.", "TIME_PARSE_ERROR", {
20
+ value
21
+ });
22
+ }
23
+ const converted = Number(`${value}`);
24
+ if (typeof value === "number" || isNaN(converted) === false) {
32
25
  return Number(value);
33
- } else if (typeOf !== "string") {
26
+ } else if (typeof value !== "string") {
34
27
  throw new _error.default("Field value must be a string because field is defined as time.", "TIME_PARSE_ERROR", {
35
28
  value
36
29
  });
@@ -38,28 +31,24 @@ const transformTime = params => {
38
31
  /**
39
32
  * This is for the time format, eg. 12:36:25 or 12:36:25.881
40
33
  */
41
-
42
-
43
34
  const [time, milliseconds = 0] = value.split(".");
44
35
  const values = time.split(":").map(Number);
45
-
46
36
  if (values.length < 2) {
47
37
  throw new _error.default("Time must contain at least hours and minutes.", "TIME_PARSE_ERROR", {
48
38
  value
49
39
  });
50
40
  }
51
-
52
41
  const [hours, minutes, seconds = 0] = values;
53
42
  return (hours * 60 * 60 + minutes * 60 + seconds) * 1000 + Number(milliseconds);
54
43
  };
55
-
56
44
  class TimeTransformPlugin extends _ValueTransformPlugin.ValueTransformPlugin {
57
45
  constructor(params) {
58
- super(_objectSpread({
59
- transform: transformTime
60
- }, params));
46
+ super({
47
+ transform: transformTime,
48
+ ...params
49
+ });
61
50
  }
62
-
63
51
  }
52
+ exports.TimeTransformPlugin = TimeTransformPlugin;
64
53
 
65
- exports.TimeTransformPlugin = TimeTransformPlugin;
54
+ //# sourceMappingURL=TimeTransformPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ValueTransformPlugin","require","_error","_interopRequireDefault","transformTime","params","value","undefined","WebinyError","Array","isArray","converted","Number","isNaN","time","milliseconds","split","values","map","length","hours","minutes","seconds","TimeTransformPlugin","ValueTransformPlugin","constructor","transform","exports"],"sources":["TimeTransformPlugin.ts"],"sourcesContent":["import type {\n ValueTransformPluginParams,\n ValueTransformPluginParamsTransformParams\n} from \"./ValueTransformPlugin\";\nimport { ValueTransformPlugin } from \"./ValueTransformPlugin\";\nimport WebinyError from \"@webiny/error\";\n\nconst transformTime = (params: ValueTransformPluginParamsTransformParams): number => {\n const { value } = params;\n if (value === undefined || value === null) {\n throw new WebinyError(`Time value is null or undefined.`, \"TIME_PARSE_ERROR\", {\n value\n });\n } else if (typeof value === \"boolean\" || value === \"\" || Array.isArray(value)) {\n throw new WebinyError(\n \"Field value must be a string because field is defined as time.\",\n \"TIME_PARSE_ERROR\",\n {\n value\n }\n );\n }\n const converted = Number(`${value}`);\n if (typeof value === \"number\" || isNaN(converted) === false) {\n return Number(value);\n } else if (typeof value !== \"string\") {\n throw new WebinyError(\n \"Field value must be a string because field is defined as time.\",\n \"TIME_PARSE_ERROR\",\n {\n value\n }\n );\n }\n /**\n * This is for the time format, eg. 12:36:25 or 12:36:25.881\n */\n const [time, milliseconds = 0] = value.split(\".\");\n const values = time.split(\":\").map(Number);\n if (values.length < 2) {\n throw new WebinyError(\"Time must contain at least hours and minutes.\", \"TIME_PARSE_ERROR\", {\n value\n });\n }\n const [hours, minutes, seconds = 0] = values;\n return (hours * 60 * 60 + minutes * 60 + seconds) * 1000 + Number(milliseconds);\n};\n\nexport class TimeTransformPlugin extends ValueTransformPlugin {\n public constructor(params: Omit<ValueTransformPluginParams, \"transform\">) {\n super({\n transform: transformTime,\n ...params\n });\n }\n}\n"],"mappings":";;;;;;;AAIA,IAAAA,qBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,MAAMG,aAAa,GAAIC,MAAiD,IAAa;EACjF,MAAM;IAAEC;EAAM,CAAC,GAAGD,MAAM;EACxB,IAAIC,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,IAAI,EAAE;IACvC,MAAM,IAAIE,cAAW,CAAC,kCAAkC,EAAE,kBAAkB,EAAE;MAC1EF;IACJ,CAAC,CAAC;EACN,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,SAAS,IAAIA,KAAK,KAAK,EAAE,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IAC3E,MAAM,IAAIE,cAAW,CACjB,gEAAgE,EAChE,kBAAkB,EAClB;MACIF;IACJ,CACJ,CAAC;EACL;EACA,MAAMK,SAAS,GAAGC,MAAM,CAAC,GAAGN,KAAK,EAAE,CAAC;EACpC,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIO,KAAK,CAACF,SAAS,CAAC,KAAK,KAAK,EAAE;IACzD,OAAOC,MAAM,CAACN,KAAK,CAAC;EACxB,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAClC,MAAM,IAAIE,cAAW,CACjB,gEAAgE,EAChE,kBAAkB,EAClB;MACIF;IACJ,CACJ,CAAC;EACL;EACA;AACJ;AACA;EACI,MAAM,CAACQ,IAAI,EAAEC,YAAY,GAAG,CAAC,CAAC,GAAGT,KAAK,CAACU,KAAK,CAAC,GAAG,CAAC;EACjD,MAAMC,MAAM,GAAGH,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAACE,GAAG,CAACN,MAAM,CAAC;EAC1C,IAAIK,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;IACnB,MAAM,IAAIX,cAAW,CAAC,+CAA+C,EAAE,kBAAkB,EAAE;MACvFF;IACJ,CAAC,CAAC;EACN;EACA,MAAM,CAACc,KAAK,EAAEC,OAAO,EAAEC,OAAO,GAAG,CAAC,CAAC,GAAGL,MAAM;EAC5C,OAAO,CAACG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAGC,OAAO,GAAG,EAAE,GAAGC,OAAO,IAAI,IAAI,GAAGV,MAAM,CAACG,YAAY,CAAC;AACnF,CAAC;AAEM,MAAMQ,mBAAmB,SAASC,0CAAoB,CAAC;EACnDC,WAAWA,CAACpB,MAAqD,EAAE;IACtE,KAAK,CAAC;MACFqB,SAAS,EAAEtB,aAAa;MACxB,GAAGC;IACP,CAAC,CAAC;EACN;AACJ;AAACsB,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,20 +1,22 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- export interface MatchesParams {
3
- value: any;
4
- compareValue: any;
2
+ export interface ValueFilterPluginParamsMatchesParams<V = any, C = any> {
3
+ value: V;
4
+ compareValue: C;
5
5
  }
6
- export interface Matches {
7
- (params: MatchesParams): boolean;
6
+ export interface ValueFilterPluginParamsMatches {
7
+ (params: ValueFilterPluginParamsMatchesParams): boolean;
8
8
  }
9
- export interface Params {
9
+ export interface ValueFilterPluginParams {
10
10
  operation: string;
11
- matches: Matches;
11
+ canUse?: (params: ValueFilterPluginParamsMatchesParams) => boolean;
12
+ matches: ValueFilterPluginParamsMatches;
12
13
  }
13
- export declare class ValueFilterPlugin extends Plugin {
14
- static readonly type = "dynamodb.value.filter";
14
+ export declare class ValueFilterPlugin<V = any, C = any> extends Plugin {
15
+ static readonly type: string;
15
16
  private readonly _params;
16
17
  get operation(): string;
17
- constructor(params: Params);
18
- matches(params: MatchesParams): boolean;
18
+ constructor(params: ValueFilterPluginParams);
19
+ canUse(params: ValueFilterPluginParamsMatchesParams<V, C>): boolean;
20
+ matches(params: ValueFilterPluginParamsMatchesParams): boolean;
19
21
  getOperation(): string;
20
22
  }
@@ -1,29 +1,27 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.ValueFilterPlugin = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
8
  var _plugins = require("@webiny/plugins");
13
-
14
9
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
10
  class ValueFilterPlugin extends _plugins.Plugin {
11
+ static type = "dynamodb.value.filter";
17
12
  get operation() {
18
13
  return this.getOperation();
19
14
  }
20
-
21
15
  constructor(params) {
22
16
  super();
23
- (0, _defineProperty2.default)(this, "_params", void 0);
24
17
  this._params = params;
25
18
  }
26
-
19
+ canUse(params) {
20
+ if (!this._params.canUse) {
21
+ return true;
22
+ }
23
+ return this._params.canUse(params);
24
+ }
27
25
  matches(params) {
28
26
  if (!this._params || !this._params.matches) {
29
27
  throw new _error.default(`Missing "matches" in the plugin.`, "MATCHES_ERROR", {
@@ -31,19 +29,15 @@ class ValueFilterPlugin extends _plugins.Plugin {
31
29
  params
32
30
  });
33
31
  }
34
-
35
32
  return this._params.matches(params);
36
33
  }
37
-
38
34
  getOperation() {
39
35
  if (!this._params || !this._params.operation) {
40
36
  throw new _error.default(`Missing "operation" in the plugin.`, "OPERATION_ERROR");
41
37
  }
42
-
43
38
  return this._params.operation;
44
39
  }
45
-
46
40
  }
47
-
48
41
  exports.ValueFilterPlugin = ValueFilterPlugin;
49
- (0, _defineProperty2.default)(ValueFilterPlugin, "type", "dynamodb.value.filter");
42
+
43
+ //# sourceMappingURL=ValueFilterPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_error","_interopRequireDefault","ValueFilterPlugin","Plugin","type","operation","getOperation","constructor","params","_params","canUse","matches","WebinyError","plugin","exports"],"sources":["ValueFilterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\n\nexport interface ValueFilterPluginParamsMatchesParams<V = any, C = any> {\n value: V;\n compareValue: C;\n}\n\nexport interface ValueFilterPluginParamsMatches {\n (params: ValueFilterPluginParamsMatchesParams): boolean;\n}\n\nexport interface ValueFilterPluginParams {\n operation: string;\n canUse?: (params: ValueFilterPluginParamsMatchesParams) => boolean;\n matches: ValueFilterPluginParamsMatches;\n}\nexport class ValueFilterPlugin<V = any, C = any> extends Plugin {\n public static override readonly type: string = \"dynamodb.value.filter\";\n private readonly _params: ValueFilterPluginParams;\n\n public get operation(): string {\n return this.getOperation();\n }\n\n public constructor(params: ValueFilterPluginParams) {\n super();\n this._params = params;\n }\n\n public canUse(params: ValueFilterPluginParamsMatchesParams<V, C>): boolean {\n if (!this._params.canUse) {\n return true;\n }\n return this._params.canUse(params);\n }\n\n public matches(params: ValueFilterPluginParamsMatchesParams): boolean {\n if (!this._params || !this._params.matches) {\n throw new WebinyError(`Missing \"matches\" in the plugin.`, \"MATCHES_ERROR\", {\n plugin: this,\n params\n });\n }\n return this._params.matches(params);\n }\n\n public getOperation(): string {\n if (!this._params || !this._params.operation) {\n throw new WebinyError(`Missing \"operation\" in the plugin.`, \"OPERATION_ERROR\");\n }\n return this._params.operation;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAgBO,MAAMG,iBAAiB,SAA2BC,eAAM,CAAC;EAC5D,OAAgCC,IAAI,GAAW,uBAAuB;EAGtE,IAAWC,SAASA,CAAA,EAAW;IAC3B,OAAO,IAAI,CAACC,YAAY,CAAC,CAAC;EAC9B;EAEOC,WAAWA,CAACC,MAA+B,EAAE;IAChD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAGD,MAAM;EACzB;EAEOE,MAAMA,CAACF,MAAkD,EAAW;IACvE,IAAI,CAAC,IAAI,CAACC,OAAO,CAACC,MAAM,EAAE;MACtB,OAAO,IAAI;IACf;IACA,OAAO,IAAI,CAACD,OAAO,CAACC,MAAM,CAACF,MAAM,CAAC;EACtC;EAEOG,OAAOA,CAACH,MAA4C,EAAW;IAClE,IAAI,CAAC,IAAI,CAACC,OAAO,IAAI,CAAC,IAAI,CAACA,OAAO,CAACE,OAAO,EAAE;MACxC,MAAM,IAAIC,cAAW,CAAC,kCAAkC,EAAE,eAAe,EAAE;QACvEC,MAAM,EAAE,IAAI;QACZL;MACJ,CAAC,CAAC;IACN;IACA,OAAO,IAAI,CAACC,OAAO,CAACE,OAAO,CAACH,MAAM,CAAC;EACvC;EAEOF,YAAYA,CAAA,EAAW;IAC1B,IAAI,CAAC,IAAI,CAACG,OAAO,IAAI,CAAC,IAAI,CAACA,OAAO,CAACJ,SAAS,EAAE;MAC1C,MAAM,IAAIO,cAAW,CAAC,oCAAoC,EAAE,iBAAiB,CAAC;IAClF;IACA,OAAO,IAAI,CAACH,OAAO,CAACJ,SAAS;EACjC;AACJ;AAACS,OAAA,CAAAZ,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,22 +1,22 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- export interface TransformParams {
3
- value: any;
2
+ export interface ValueTransformPluginParamsTransformParams {
3
+ value: Date | string | null | undefined;
4
4
  }
5
- export interface Transform {
6
- (params: TransformParams): any;
5
+ export interface ValueTransformPluginParamsTransform {
6
+ (params: ValueTransformPluginParamsTransformParams): any;
7
7
  }
8
8
  export interface CanTransform {
9
9
  (field: string): boolean;
10
10
  }
11
- export interface Params {
11
+ export interface ValueTransformPluginParams {
12
12
  fields: string[];
13
- transform: Transform;
13
+ transform: ValueTransformPluginParamsTransform;
14
14
  canTransform?: CanTransform;
15
15
  }
16
16
  export declare class ValueTransformPlugin extends Plugin {
17
- static readonly type = "dynamodb.value.transform";
17
+ static readonly type: string;
18
18
  private readonly _params;
19
- constructor(params: Params);
19
+ constructor(params: ValueTransformPluginParams);
20
20
  canTransform(field: string): boolean;
21
- transform(params: TransformParams): any;
21
+ transform(params: ValueTransformPluginParamsTransformParams): any;
22
22
  }
@@ -1,52 +1,37 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.ValueTransformPlugin = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
8
  var _plugins = require("@webiny/plugins");
13
-
14
9
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
10
  var _assignFields = require("./assignFields");
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
-
22
11
  class ValueTransformPlugin extends _plugins.Plugin {
12
+ static type = "dynamodb.value.transform";
23
13
  constructor(params) {
24
14
  super();
25
- (0, _defineProperty2.default)(this, "_params", void 0);
26
- this._params = _objectSpread(_objectSpread({}, params), {}, {
15
+ this._params = {
16
+ ...params,
27
17
  fields: (0, _assignFields.assignFields)(params.fields)
28
- });
18
+ };
29
19
  }
30
-
31
20
  canTransform(field) {
32
21
  if (!this._params.canTransform) {
33
22
  return this._params.fields.includes(field);
34
23
  }
35
-
36
24
  return this._params.canTransform(field);
37
25
  }
38
-
39
26
  transform(params) {
40
27
  if (!this._params.transform) {
41
28
  throw new _error.default(`Missing "transform" in the plugin.`, "TRANSFORM_ERROR", {
42
29
  fields: this._params.fields
43
30
  });
44
31
  }
45
-
46
32
  return this._params.transform(params);
47
33
  }
48
-
49
34
  }
50
-
51
35
  exports.ValueTransformPlugin = ValueTransformPlugin;
52
- (0, _defineProperty2.default)(ValueTransformPlugin, "type", "dynamodb.value.transform");
36
+
37
+ //# sourceMappingURL=ValueTransformPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_error","_interopRequireDefault","_assignFields","ValueTransformPlugin","Plugin","type","constructor","params","_params","fields","assignFields","canTransform","field","includes","transform","WebinyError","exports"],"sources":["ValueTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\nimport { assignFields } from \"./assignFields\";\n\nexport interface ValueTransformPluginParamsTransformParams {\n value: Date | string | null | undefined;\n}\nexport interface ValueTransformPluginParamsTransform {\n (params: ValueTransformPluginParamsTransformParams): any;\n}\nexport interface CanTransform {\n (field: string): boolean;\n}\nexport interface ValueTransformPluginParams {\n fields: string[];\n transform: ValueTransformPluginParamsTransform;\n canTransform?: CanTransform;\n}\n\nexport class ValueTransformPlugin extends Plugin {\n public static override readonly type: string = \"dynamodb.value.transform\";\n\n private readonly _params: ValueTransformPluginParams;\n\n public constructor(params: ValueTransformPluginParams) {\n super();\n this._params = {\n ...params,\n fields: assignFields(params.fields)\n };\n }\n\n public canTransform(field: string): boolean {\n if (!this._params.canTransform) {\n return this._params.fields.includes(field);\n }\n return this._params.canTransform(field);\n }\n\n public transform(params: ValueTransformPluginParamsTransformParams): any {\n if (!this._params.transform) {\n throw new WebinyError(`Missing \"transform\" in the plugin.`, \"TRANSFORM_ERROR\", {\n fields: this._params.fields\n });\n }\n return this._params.transform(params);\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAiBO,MAAMI,oBAAoB,SAASC,eAAM,CAAC;EAC7C,OAAgCC,IAAI,GAAW,0BAA0B;EAIlEC,WAAWA,CAACC,MAAkC,EAAE;IACnD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAG;MACX,GAAGD,MAAM;MACTE,MAAM,EAAE,IAAAC,0BAAY,EAACH,MAAM,CAACE,MAAM;IACtC,CAAC;EACL;EAEOE,YAAYA,CAACC,KAAa,EAAW;IACxC,IAAI,CAAC,IAAI,CAACJ,OAAO,CAACG,YAAY,EAAE;MAC5B,OAAO,IAAI,CAACH,OAAO,CAACC,MAAM,CAACI,QAAQ,CAACD,KAAK,CAAC;IAC9C;IACA,OAAO,IAAI,CAACJ,OAAO,CAACG,YAAY,CAACC,KAAK,CAAC;EAC3C;EAEOE,SAASA,CAACP,MAAiD,EAAO;IACrE,IAAI,CAAC,IAAI,CAACC,OAAO,CAACM,SAAS,EAAE;MACzB,MAAM,IAAIC,cAAW,CAAC,oCAAoC,EAAE,iBAAiB,EAAE;QAC3EN,MAAM,EAAE,IAAI,CAACD,OAAO,CAACC;MACzB,CAAC,CAAC;IACN;IACA,OAAO,IAAI,CAACD,OAAO,CAACM,SAAS,CAACP,MAAM,CAAC;EACzC;AACJ;AAACS,OAAA,CAAAb,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -1,23 +1,17 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.assignFields = void 0;
9
-
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
-
12
9
  const assignFields = rawInput => {
13
10
  const input = Array.isArray(rawInput) ? rawInput : [rawInput];
14
-
15
11
  if (input.length === 0) {
16
12
  throw new _error.default("Could not assign fields because there are none.", "ASSIGN_FIELDS_ERROR");
17
13
  }
18
-
19
14
  const fields = [];
20
-
21
15
  for (const field of input) {
22
16
  /**
23
17
  * Need to make sure that no field is empty.
@@ -27,11 +21,10 @@ const assignFields = rawInput => {
27
21
  fields: input
28
22
  });
29
23
  }
30
-
31
24
  fields.push(field);
32
25
  }
33
-
34
26
  return fields;
35
27
  };
28
+ exports.assignFields = assignFields;
36
29
 
37
- exports.assignFields = assignFields;
30
+ //# sourceMappingURL=assignFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","assignFields","rawInput","input","Array","isArray","length","WebinyError","fields","field","push","exports"],"sources":["assignFields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nexport const assignFields = (rawInput: string | string[]): string[] => {\n const input = Array.isArray(rawInput) ? rawInput : [rawInput];\n if (input.length === 0) {\n throw new WebinyError(\n \"Could not assign fields because there are none.\",\n \"ASSIGN_FIELDS_ERROR\"\n );\n }\n const fields: string[] = [];\n for (const field of input) {\n /**\n * Need to make sure that no field is empty.\n */\n if (!field) {\n throw new WebinyError(\n \"Passed empty field value into the plugin.\",\n \"EMPTY_FIELD_VALUE\",\n {\n fields: input\n }\n );\n }\n fields.push(field);\n }\n return fields;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,YAAY,GAAIC,QAA2B,IAAe;EACnE,MAAMC,KAAK,GAAGC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;EAC7D,IAAIC,KAAK,CAACG,MAAM,KAAK,CAAC,EAAE;IACpB,MAAM,IAAIC,cAAW,CACjB,iDAAiD,EACjD,qBACJ,CAAC;EACL;EACA,MAAMC,MAAgB,GAAG,EAAE;EAC3B,KAAK,MAAMC,KAAK,IAAIN,KAAK,EAAE;IACvB;AACR;AACA;IACQ,IAAI,CAACM,KAAK,EAAE;MACR,MAAM,IAAIF,cAAW,CACjB,2CAA2C,EAC3C,mBAAmB,EACnB;QACIC,MAAM,EAAEL;MACZ,CACJ,CAAC;IACL;IACAK,MAAM,CAACE,IAAI,CAACD,KAAK,CAAC;EACtB;EACA,OAAOD,MAAM;AACjB,CAAC;AAACG,OAAA,CAAAV,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { ValueFilterPlugin } from "../definitions/ValueFilterPlugin";
2
- declare const _default: ValueFilterPlugin;
3
- export default _default;
2
+ declare const plugin: ValueFilterPlugin<any, any>;
3
+ export default plugin;
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _ValueFilterPlugin = require("../definitions/ValueFilterPlugin");
11
-
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
- var _default = new _ValueFilterPlugin.ValueFilterPlugin({
10
+ const plugin = new _ValueFilterPlugin.ValueFilterPlugin({
15
11
  operation: "and_in",
16
12
  matches: ({
17
13
  value,
@@ -23,13 +19,13 @@ var _default = new _ValueFilterPlugin.ValueFilterPlugin({
23
19
  compareValue
24
20
  });
25
21
  }
26
-
27
22
  if (Array.isArray(value) === true) {
28
23
  return compareValue.every(c => value.includes(c));
29
24
  }
30
-
31
25
  return compareValue.includes(value);
32
26
  }
33
27
  });
28
+ plugin.name = "dynamodb.value.filter.and_in";
29
+ var _default = exports.default = plugin;
34
30
 
35
- exports.default = _default;
31
+ //# sourceMappingURL=andIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ValueFilterPlugin","require","_error","_interopRequireDefault","plugin","ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","WebinyError","every","c","includes","name","_default","exports","default"],"sources":["andIn.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\nimport WebinyError from \"@webiny/error\";\n\ninterface MatchesParams {\n value: any[];\n compareValue?: any[];\n}\n\nconst plugin = new ValueFilterPlugin({\n operation: \"and_in\",\n matches: ({ value, compareValue }: MatchesParams) => {\n if (!compareValue || Array.isArray(compareValue) === false) {\n throw new WebinyError(\n `The value given as \"compareValue\" must be an array!`,\n \"COMPARE_VALUE_ERROR\",\n {\n value,\n compareValue\n }\n );\n }\n if (Array.isArray(value) === true) {\n return compareValue.every(c => value.includes(c));\n }\n return compareValue.includes(value);\n }\n});\n\nplugin.name = \"dynamodb.value.filter.and_in\";\n\nexport default plugin;\n"],"mappings":";;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAOA,MAAMG,MAAM,GAAG,IAAIC,oCAAiB,CAAC;EACjCC,SAAS,EAAE,QAAQ;EACnBC,OAAO,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAA4B,CAAC,KAAK;IACjD,IAAI,CAACA,YAAY,IAAIC,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,KAAK,KAAK,EAAE;MACxD,MAAM,IAAIG,cAAW,CACjB,qDAAqD,EACrD,qBAAqB,EACrB;QACIJ,KAAK;QACLC;MACJ,CACJ,CAAC;IACL;IACA,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,KAAK,IAAI,EAAE;MAC/B,OAAOC,YAAY,CAACI,KAAK,CAACC,CAAC,IAAIN,KAAK,CAACO,QAAQ,CAACD,CAAC,CAAC,CAAC;IACrD;IACA,OAAOL,YAAY,CAACM,QAAQ,CAACP,KAAK,CAAC;EACvC;AACJ,CAAC,CAAC;AAEFJ,MAAM,CAACY,IAAI,GAAG,8BAA8B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE9Bf,MAAM","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { ValueFilterPlugin } from "../definitions/ValueFilterPlugin";
2
- declare const _default: ValueFilterPlugin;
3
- export default _default;
2
+ declare const plugin: ValueFilterPlugin<any, any>;
3
+ export default plugin;
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
-
12
9
  var _ValueFilterPlugin = require("../definitions/ValueFilterPlugin");
13
-
14
- var _default = new _ValueFilterPlugin.ValueFilterPlugin({
10
+ const plugin = new _ValueFilterPlugin.ValueFilterPlugin({
15
11
  operation: "between",
16
12
  matches: ({
17
13
  value,
@@ -24,13 +20,13 @@ var _default = new _ValueFilterPlugin.ValueFilterPlugin({
24
20
  compareValue
25
21
  });
26
22
  }
27
-
28
23
  const [from, to] = compareValue;
29
24
  return value >= from && value <= to;
30
25
  }
31
-
32
26
  return value >= compareValue && value <= compareValue;
33
27
  }
34
28
  });
29
+ plugin.name = "dynamodb.value.filter.between";
30
+ var _default = exports.default = plugin;
35
31
 
36
- exports.default = _default;
32
+ //# sourceMappingURL=between.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_ValueFilterPlugin","plugin","ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","length","WebinyError","from","to","name","_default","exports","default"],"sources":["between.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nconst plugin = new ValueFilterPlugin({\n operation: \"between\",\n matches: ({ value, compareValue }) => {\n if (Array.isArray(compareValue)) {\n if (compareValue.length !== 2) {\n throw new WebinyError(\n \"When comparing between and you give an array, there must be two items in it.\",\n \"FILTER_ERROR\",\n {\n value,\n compareValue\n }\n );\n }\n const [from, to] = compareValue;\n return value >= from && value <= to;\n }\n return value >= compareValue && value <= compareValue;\n }\n});\n\nplugin.name = \"dynamodb.value.filter.between\";\n\nexport default plugin;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEA,MAAME,MAAM,GAAG,IAAIC,oCAAiB,CAAC;EACjCC,SAAS,EAAE,SAAS;EACpBC,OAAO,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAa,CAAC,KAAK;IAClC,IAAIC,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,EAAE;MAC7B,IAAIA,YAAY,CAACG,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAIC,cAAW,CACjB,8EAA8E,EAC9E,cAAc,EACd;UACIL,KAAK;UACLC;QACJ,CACJ,CAAC;MACL;MACA,MAAM,CAACK,IAAI,EAAEC,EAAE,CAAC,GAAGN,YAAY;MAC/B,OAAOD,KAAK,IAAIM,IAAI,IAAIN,KAAK,IAAIO,EAAE;IACvC;IACA,OAAOP,KAAK,IAAIC,YAAY,IAAID,KAAK,IAAIC,YAAY;EACzD;AACJ,CAAC,CAAC;AAEFL,MAAM,CAACY,IAAI,GAAG,+BAA+B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE/Bf,MAAM","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { ValueFilterPlugin } from "../definitions/ValueFilterPlugin";
2
- declare const _default: ValueFilterPlugin;
3
- export default _default;
2
+ declare const plugin: ValueFilterPlugin<any, any>;
3
+ export default plugin;
@@ -4,29 +4,56 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _ValueFilterPlugin = require("../definitions/ValueFilterPlugin");
9
-
10
- var _default = new _ValueFilterPlugin.ValueFilterPlugin({
8
+ const createValues = initialValue => {
9
+ if (typeof initialValue === "string") {
10
+ return [initialValue];
11
+ }
12
+ if (Array.isArray(initialValue)) {
13
+ return initialValue.flat().map(v => v.toString()).filter(Boolean);
14
+ }
15
+ const result = [];
16
+ const traverse = node => {
17
+ if (node == null) {
18
+ return;
19
+ }
20
+ if (typeof node === "string" || typeof node === "number") {
21
+ result.push(node.toString());
22
+ } else if (Array.isArray(node)) {
23
+ node.forEach(traverse);
24
+ } else if (typeof node === "object") {
25
+ Object.values(node).forEach(traverse);
26
+ }
27
+ };
28
+ traverse(initialValue);
29
+ return result.filter(Boolean);
30
+ };
31
+ const createCompareValues = value => {
32
+ return value.replace(/\s+/g, " ").trim().replace(/\?/g, `\\?`).replace(/\//g, `\\/`).replace(/:/g, ``).replace(/\-/g, `\\-`).split(" ").filter(val => {
33
+ return val.length > 0;
34
+ });
35
+ };
36
+ const plugin = new _ValueFilterPlugin.ValueFilterPlugin({
11
37
  operation: "contains",
12
38
  matches: ({
13
- value,
14
- compareValue
39
+ value: initialValue,
40
+ compareValue: initialCompareValue
15
41
  }) => {
16
- if (typeof value !== "string") {
17
- if (Array.isArray(value) === true) {
18
- const re = new RegExp(compareValue, "i");
19
- return value.some(v => {
20
- return v.match(re) !== null;
21
- });
22
- }
23
-
42
+ if (!initialValue || Array.isArray(initialValue) && initialValue.length === 0) {
24
43
  return false;
44
+ } else if (initialCompareValue === undefined || initialCompareValue === null) {
45
+ return true;
25
46
  }
26
-
27
- const re = new RegExp(compareValue, "i");
28
- return value.match(re) !== null;
47
+ const values = createValues(initialValue);
48
+ const compareValues = createCompareValues(initialCompareValue);
49
+ return values.some(target => {
50
+ return compareValues.every(compareValue => {
51
+ return target.match(new RegExp(compareValue, "gi")) !== null;
52
+ });
53
+ });
29
54
  }
30
55
  });
56
+ plugin.name = "dynamodb.value.filter.contains";
57
+ var _default = exports.default = plugin;
31
58
 
32
- exports.default = _default;
59
+ //# sourceMappingURL=contains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ValueFilterPlugin","require","createValues","initialValue","Array","isArray","flat","map","v","toString","filter","Boolean","result","traverse","node","push","forEach","Object","values","createCompareValues","value","replace","trim","split","val","length","plugin","ValueFilterPlugin","operation","matches","compareValue","initialCompareValue","undefined","compareValues","some","target","every","match","RegExp","name","_default","exports","default"],"sources":["contains.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nconst createValues = (initialValue: string | string[] | object): string[] => {\n if (typeof initialValue === \"string\") {\n return [initialValue];\n }\n\n if (Array.isArray(initialValue)) {\n return initialValue\n .flat()\n .map(v => v.toString())\n .filter(Boolean);\n }\n\n const result: string[] = [];\n\n const traverse = (node: any): void => {\n if (node == null) {\n return;\n }\n if (typeof node === \"string\" || typeof node === \"number\") {\n result.push(node.toString());\n } else if (Array.isArray(node)) {\n node.forEach(traverse);\n } else if (typeof node === \"object\") {\n Object.values(node).forEach(traverse);\n }\n };\n\n traverse(initialValue);\n\n return result.filter(Boolean);\n};\n\nconst createCompareValues = (value: string) => {\n return value\n .replace(/\\s+/g, \" \")\n .trim()\n .replace(/\\?/g, `\\\\?`)\n .replace(/\\//g, `\\\\/`)\n .replace(/:/g, ``)\n .replace(/\\-/g, `\\\\-`)\n .split(\" \")\n .filter(val => {\n return val.length > 0;\n });\n};\n\nconst plugin = new ValueFilterPlugin({\n operation: \"contains\",\n matches: ({ value: initialValue, compareValue: initialCompareValue }) => {\n if (!initialValue || (Array.isArray(initialValue) && initialValue.length === 0)) {\n return false;\n } else if (initialCompareValue === undefined || initialCompareValue === null) {\n return true;\n }\n const values = createValues(initialValue);\n const compareValues = createCompareValues(initialCompareValue);\n return values.some(target => {\n return compareValues.every(compareValue => {\n return target.match(new RegExp(compareValue, \"gi\")) !== null;\n });\n });\n }\n});\n\nplugin.name = \"dynamodb.value.filter.contains\";\n\nexport default plugin;\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,YAAY,GAAIC,YAAwC,IAAe;EACzE,IAAI,OAAOA,YAAY,KAAK,QAAQ,EAAE;IAClC,OAAO,CAACA,YAAY,CAAC;EACzB;EAEA,IAAIC,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,EAAE;IAC7B,OAAOA,YAAY,CACdG,IAAI,CAAC,CAAC,CACNC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC,CACtBC,MAAM,CAACC,OAAO,CAAC;EACxB;EAEA,MAAMC,MAAgB,GAAG,EAAE;EAE3B,MAAMC,QAAQ,GAAIC,IAAS,IAAW;IAClC,IAAIA,IAAI,IAAI,IAAI,EAAE;MACd;IACJ;IACA,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACtDF,MAAM,CAACG,IAAI,CAACD,IAAI,CAACL,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC,MAAM,IAAIL,KAAK,CAACC,OAAO,CAACS,IAAI,CAAC,EAAE;MAC5BA,IAAI,CAACE,OAAO,CAACH,QAAQ,CAAC;IAC1B,CAAC,MAAM,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;MACjCG,MAAM,CAACC,MAAM,CAACJ,IAAI,CAAC,CAACE,OAAO,CAACH,QAAQ,CAAC;IACzC;EACJ,CAAC;EAEDA,QAAQ,CAACV,YAAY,CAAC;EAEtB,OAAOS,MAAM,CAACF,MAAM,CAACC,OAAO,CAAC;AACjC,CAAC;AAED,MAAMQ,mBAAmB,GAAIC,KAAa,IAAK;EAC3C,OAAOA,KAAK,CACPC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBC,IAAI,CAAC,CAAC,CACND,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CACrBA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CACrBA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CACrBE,KAAK,CAAC,GAAG,CAAC,CACVb,MAAM,CAACc,GAAG,IAAI;IACX,OAAOA,GAAG,CAACC,MAAM,GAAG,CAAC;EACzB,CAAC,CAAC;AACV,CAAC;AAED,MAAMC,MAAM,GAAG,IAAIC,oCAAiB,CAAC;EACjCC,SAAS,EAAE,UAAU;EACrBC,OAAO,EAAEA,CAAC;IAAET,KAAK,EAAEjB,YAAY;IAAE2B,YAAY,EAAEC;EAAoB,CAAC,KAAK;IACrE,IAAI,CAAC5B,YAAY,IAAKC,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,IAAIA,YAAY,CAACsB,MAAM,KAAK,CAAE,EAAE;MAC7E,OAAO,KAAK;IAChB,CAAC,MAAM,IAAIM,mBAAmB,KAAKC,SAAS,IAAID,mBAAmB,KAAK,IAAI,EAAE;MAC1E,OAAO,IAAI;IACf;IACA,MAAMb,MAAM,GAAGhB,YAAY,CAACC,YAAY,CAAC;IACzC,MAAM8B,aAAa,GAAGd,mBAAmB,CAACY,mBAAmB,CAAC;IAC9D,OAAOb,MAAM,CAACgB,IAAI,CAACC,MAAM,IAAI;MACzB,OAAOF,aAAa,CAACG,KAAK,CAACN,YAAY,IAAI;QACvC,OAAOK,MAAM,CAACE,KAAK,CAAC,IAAIC,MAAM,CAACR,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI;MAChE,CAAC,CAAC;IACN,CAAC,CAAC;EACN;AACJ,CAAC,CAAC;AAEFJ,MAAM,CAACa,IAAI,GAAG,gCAAgC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEhChB,MAAM","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { ValueFilterPlugin } from "../definitions/ValueFilterPlugin";
2
- declare const _default: ValueFilterPlugin;
3
- export default _default;
2
+ declare const plugin: ValueFilterPlugin<any, any>;
3
+ export default plugin;
@@ -4,17 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _ValueFilterPlugin = require("../definitions/ValueFilterPlugin");
9
-
10
- var _default = new _ValueFilterPlugin.ValueFilterPlugin({
8
+ const plugin = new _ValueFilterPlugin.ValueFilterPlugin({
11
9
  operation: "eq",
12
10
  matches: ({
13
11
  value,
14
12
  compareValue
15
13
  }) => {
16
- return value === compareValue;
14
+ /**
15
+ * Possibility that either input value or one from the system is array.
16
+ */
17
+ if (Array.isArray(value) === true) {
18
+ return value.some(v => {
19
+ return Array.isArray(compareValue) ? compareValue.includes(v) : compareValue === v;
20
+ });
21
+ } else if (Array.isArray(compareValue) === true) {
22
+ return compareValue.every(v => {
23
+ return value == v;
24
+ });
25
+ }
26
+ return value == compareValue;
17
27
  }
18
28
  });
29
+ plugin.name = "dynamodb.value.filter.eq";
30
+ var _default = exports.default = plugin;
19
31
 
20
- exports.default = _default;
32
+ //# sourceMappingURL=eq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ValueFilterPlugin","require","plugin","ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","some","v","includes","every","name","_default","exports","default"],"sources":["eq.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nconst plugin = new ValueFilterPlugin({\n operation: \"eq\",\n matches: ({ value, compareValue }) => {\n /**\n * Possibility that either input value or one from the system is array.\n */\n if (Array.isArray(value) === true) {\n return value.some((v: string) => {\n return Array.isArray(compareValue) ? compareValue.includes(v) : compareValue === v;\n });\n } else if (Array.isArray(compareValue) === true) {\n return compareValue.every((v: string) => {\n return value == v;\n });\n }\n return value == compareValue;\n }\n});\n\nplugin.name = \"dynamodb.value.filter.eq\";\n\nexport default plugin;\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAG,IAAIC,oCAAiB,CAAC;EACjCC,SAAS,EAAE,IAAI;EACfC,OAAO,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAa,CAAC,KAAK;IAClC;AACR;AACA;IACQ,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,KAAK,IAAI,EAAE;MAC/B,OAAOA,KAAK,CAACI,IAAI,CAAEC,CAAS,IAAK;QAC7B,OAAOH,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,GAAGA,YAAY,CAACK,QAAQ,CAACD,CAAC,CAAC,GAAGJ,YAAY,KAAKI,CAAC;MACtF,CAAC,CAAC;IACN,CAAC,MAAM,IAAIH,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,KAAK,IAAI,EAAE;MAC7C,OAAOA,YAAY,CAACM,KAAK,CAAEF,CAAS,IAAK;QACrC,OAAOL,KAAK,IAAIK,CAAC;MACrB,CAAC,CAAC;IACN;IACA,OAAOL,KAAK,IAAIC,YAAY;EAChC;AACJ,CAAC,CAAC;AAEFL,MAAM,CAACY,IAAI,GAAG,0BAA0B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1Bf,MAAM","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { ValueFilterPlugin } from "../definitions/ValueFilterPlugin";
2
- declare const _default: ValueFilterPlugin;
3
- export default _default;
2
+ declare const plugin: ValueFilterPlugin<any, any>;
3
+ export default plugin;