@webiny/db-dynamodb 0.0.0-mt-2 → 0.0.0-unstable.5e7233243f

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 (97) hide show
  1. package/BatchProcess.d.ts +26 -10
  2. package/BatchProcess.js +7 -3
  3. package/BatchProcess.js.map +1 -0
  4. package/DynamoDbDriver.d.ts +19 -11
  5. package/DynamoDbDriver.js +2 -2
  6. package/DynamoDbDriver.js.map +1 -0
  7. package/QueryGenerator.d.ts +15 -13
  8. package/QueryGenerator.js +15 -12
  9. package/QueryGenerator.js.map +1 -0
  10. package/index.js.map +1 -0
  11. package/operators/comparison/beginsWith.js.map +1 -0
  12. package/operators/comparison/between.js.map +1 -0
  13. package/operators/comparison/eq.js.map +1 -0
  14. package/operators/comparison/gt.js.map +1 -0
  15. package/operators/comparison/gte.js.map +1 -0
  16. package/operators/comparison/lt.js.map +1 -0
  17. package/operators/comparison/lte.js.map +1 -0
  18. package/operators/index.js.map +1 -0
  19. package/operators/logical/and.js.map +1 -0
  20. package/operators/logical/or.js.map +1 -0
  21. package/package.json +16 -15
  22. package/plugins/definitions/AttributePlugin.d.ts +3 -3
  23. package/plugins/definitions/AttributePlugin.js.map +1 -0
  24. package/plugins/definitions/DateTimeTransformPlugin.d.ts +2 -2
  25. package/plugins/definitions/DateTimeTransformPlugin.js +6 -2
  26. package/plugins/definitions/DateTimeTransformPlugin.js.map +1 -0
  27. package/plugins/definitions/FieldPathPlugin.d.ts +3 -3
  28. package/plugins/definitions/FieldPathPlugin.js +2 -2
  29. package/plugins/definitions/FieldPathPlugin.js.map +1 -0
  30. package/plugins/definitions/FieldPlugin.d.ts +3 -3
  31. package/plugins/definitions/FieldPlugin.js.map +1 -0
  32. package/plugins/definitions/NumberTransformPlugin.d.ts +2 -2
  33. package/plugins/definitions/NumberTransformPlugin.js +2 -2
  34. package/plugins/definitions/NumberTransformPlugin.js.map +1 -0
  35. package/plugins/definitions/TimeTransformPlugin.d.ts +2 -2
  36. package/plugins/definitions/TimeTransformPlugin.js +2 -2
  37. package/plugins/definitions/TimeTransformPlugin.js.map +1 -0
  38. package/plugins/definitions/ValueFilterPlugin.d.ts +10 -10
  39. package/plugins/definitions/ValueFilterPlugin.js.map +1 -0
  40. package/plugins/definitions/ValueTransformPlugin.d.ts +8 -8
  41. package/plugins/definitions/ValueTransformPlugin.js +2 -2
  42. package/plugins/definitions/ValueTransformPlugin.js.map +1 -0
  43. package/plugins/definitions/assignFields.js.map +1 -0
  44. package/plugins/filters/andIn.js.map +1 -0
  45. package/plugins/filters/between.js.map +1 -0
  46. package/plugins/filters/contains.js.map +1 -0
  47. package/plugins/filters/eq.js +13 -0
  48. package/plugins/filters/eq.js.map +1 -0
  49. package/plugins/filters/fuzzy.js.map +1 -0
  50. package/plugins/filters/gt.js.map +1 -0
  51. package/plugins/filters/gte.js.map +1 -0
  52. package/plugins/filters/in.js.map +1 -0
  53. package/plugins/filters/index.js +3 -1
  54. package/plugins/filters/index.js.map +1 -0
  55. package/plugins/filters/lt.js.map +1 -0
  56. package/plugins/filters/lte.js.map +1 -0
  57. package/plugins/filters/startsWith.d.ts +3 -0
  58. package/plugins/filters/startsWith.js +33 -0
  59. package/plugins/filters/startsWith.js.map +1 -0
  60. package/plugins/index.js.map +1 -0
  61. package/statements/createKeyConditionExpressionArgs.d.ts +12 -9
  62. package/statements/createKeyConditionExpressionArgs.js +4 -0
  63. package/statements/createKeyConditionExpressionArgs.js.map +1 -0
  64. package/statements/processStatement.d.ts +3 -4
  65. package/statements/processStatement.js +7 -4
  66. package/statements/processStatement.js.map +1 -0
  67. package/types.d.ts +37 -8
  68. package/types.js.map +1 -0
  69. package/utils/attributes.d.ts +2 -2
  70. package/utils/attributes.js +2 -2
  71. package/utils/attributes.js.map +1 -0
  72. package/utils/batchRead.d.ts +1 -1
  73. package/utils/batchRead.js +56 -25
  74. package/utils/batchRead.js.map +1 -0
  75. package/utils/batchWrite.js.map +1 -0
  76. package/utils/cleanup.d.ts +2 -2
  77. package/utils/cleanup.js +8 -11
  78. package/utils/cleanup.js.map +1 -0
  79. package/utils/cursor.d.ts +2 -2
  80. package/utils/cursor.js.map +1 -0
  81. package/utils/filter.d.ts +2 -2
  82. package/utils/filter.js +6 -5
  83. package/utils/filter.js.map +1 -0
  84. package/utils/get.d.ts +2 -2
  85. package/utils/get.js.map +1 -0
  86. package/utils/listResponse.d.ts +1 -1
  87. package/utils/listResponse.js +9 -6
  88. package/utils/listResponse.js.map +1 -0
  89. package/utils/query.d.ts +2 -3
  90. package/utils/query.js +4 -8
  91. package/utils/query.js.map +1 -0
  92. package/utils/sort.d.ts +2 -2
  93. package/utils/sort.js +3 -5
  94. package/utils/sort.js.map +1 -0
  95. package/utils/table.js.map +1 -0
  96. package/utils/documentClient.d.ts +0 -8
  97. package/utils/documentClient.js +0 -33
@@ -15,9 +15,9 @@ var _error = _interopRequireDefault(require("@webiny/error"));
15
15
 
16
16
  var _isNumber = _interopRequireDefault(require("is-number"));
17
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; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
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; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  const transformNumber = params => {
23
23
  const {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["transformNumber","params","value","typeOf","isNumber","Number","WebinyError","NumberTransformPlugin","ValueTransformPlugin","constructor","transform"],"sources":["NumberTransformPlugin.ts"],"sourcesContent":["import {\n ValueTransformPlugin,\n ValueTransformPluginParams,\n ValueTransformPluginParamsTransformParams\n} from \"./ValueTransformPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport isNumber from \"is-number\";\n\nconst transformNumber = (params: ValueTransformPluginParamsTransformParams): number => {\n const { value } = params;\n const typeOf = typeof value;\n /**\n * Due to some internal JS stuff, we must check for a number like this.\n */\n if (typeOf === \"number\" || isNumber(value) === true) {\n return Number(value);\n }\n throw new WebinyError(\"Field value must be a number because.\", \"NUMBER_ERROR\", {\n value\n });\n};\n\nexport class NumberTransformPlugin extends ValueTransformPlugin {\n public constructor(params: Omit<ValueTransformPluginParams, \"transform\">) {\n super({\n transform: transformNumber,\n ...params\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;AACA;;;;;;AAEA,MAAMA,eAAe,GAAIC,MAAD,IAA+D;EACnF,MAAM;IAAEC;EAAF,IAAYD,MAAlB;EACA,MAAME,MAAM,GAAG,OAAOD,KAAtB;EACA;AACJ;AACA;;EACI,IAAIC,MAAM,KAAK,QAAX,IAAuB,IAAAC,iBAAA,EAASF,KAAT,MAAoB,IAA/C,EAAqD;IACjD,OAAOG,MAAM,CAACH,KAAD,CAAb;EACH;;EACD,MAAM,IAAII,cAAJ,CAAgB,uCAAhB,EAAyD,cAAzD,EAAyE;IAC3EJ;EAD2E,CAAzE,CAAN;AAGH,CAZD;;AAcO,MAAMK,qBAAN,SAAoCC,0CAApC,CAAyD;EACrDC,WAAW,CAACR,MAAD,EAAwD;IACtE;MACIS,SAAS,EAAEV;IADf,GAEOC,MAFP;EAIH;;AAN2D"}
@@ -1,4 +1,4 @@
1
- import { ValueTransformPlugin, Params } from "./ValueTransformPlugin";
1
+ import { ValueTransformPlugin, ValueTransformPluginParams } from "./ValueTransformPlugin";
2
2
  export declare class TimeTransformPlugin extends ValueTransformPlugin {
3
- constructor(params: Omit<Params, "transform">);
3
+ constructor(params: Omit<ValueTransformPluginParams, "transform">);
4
4
  }
@@ -15,9 +15,9 @@ var _error = _interopRequireDefault(require("@webiny/error"));
15
15
 
16
16
  var _isNumber = _interopRequireDefault(require("is-number"));
17
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; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
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; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  const transformTime = params => {
23
23
  const {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["transformTime","params","value","typeOf","isNumber","Number","WebinyError","time","milliseconds","split","values","map","length","hours","minutes","seconds","TimeTransformPlugin","ValueTransformPlugin","constructor","transform"],"sources":["TimeTransformPlugin.ts"],"sourcesContent":["import {\n ValueTransformPlugin,\n ValueTransformPluginParams,\n ValueTransformPluginParamsTransformParams\n} from \"./ValueTransformPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport isNumber from \"is-number\";\n\nconst transformTime = (params: ValueTransformPluginParamsTransformParams): number => {\n const { value } = params;\n const typeOf = typeof value;\n /**\n * Due to some internal JS stuff, we must check for a number like this.\n */\n if (typeOf === \"number\" || isNumber(value) === true) {\n return Number(value);\n } else if (typeOf !== \"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 as any).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":";;;;;;;;;;;AAAA;;AAKA;;AACA;;;;;;AAEA,MAAMA,aAAa,GAAIC,MAAD,IAA+D;EACjF,MAAM;IAAEC;EAAF,IAAYD,MAAlB;EACA,MAAME,MAAM,GAAG,OAAOD,KAAtB;EACA;AACJ;AACA;;EACI,IAAIC,MAAM,KAAK,QAAX,IAAuB,IAAAC,iBAAA,EAASF,KAAT,MAAoB,IAA/C,EAAqD;IACjD,OAAOG,MAAM,CAACH,KAAD,CAAb;EACH,CAFD,MAEO,IAAIC,MAAM,KAAK,QAAf,EAAyB;IAC5B,MAAM,IAAIG,cAAJ,CACF,gEADE,EAEF,kBAFE,EAGF;MACIJ;IADJ,CAHE,CAAN;EAOH;EACD;AACJ;AACA;;;EACI,MAAM,CAACK,IAAD,EAAOC,YAAY,GAAG,CAAtB,IAA4BN,KAAD,CAAeO,KAAf,CAAqB,GAArB,CAAjC;EACA,MAAMC,MAAM,GAAGH,IAAI,CAACE,KAAL,CAAW,GAAX,EAAgBE,GAAhB,CAAoBN,MAApB,CAAf;;EACA,IAAIK,MAAM,CAACE,MAAP,GAAgB,CAApB,EAAuB;IACnB,MAAM,IAAIN,cAAJ,CAAgB,+CAAhB,EAAiE,kBAAjE,EAAqF;MACvFJ;IADuF,CAArF,CAAN;EAGH;;EACD,MAAM,CAACW,KAAD,EAAQC,OAAR,EAAiBC,OAAO,GAAG,CAA3B,IAAgCL,MAAtC;EACA,OAAO,CAACG,KAAK,GAAG,EAAR,GAAa,EAAb,GAAkBC,OAAO,GAAG,EAA5B,GAAiCC,OAAlC,IAA6C,IAA7C,GAAoDV,MAAM,CAACG,YAAD,CAAjE;AACH,CA7BD;;AA+BO,MAAMQ,mBAAN,SAAkCC,0CAAlC,CAAuD;EACnDC,WAAW,CAACjB,MAAD,EAAwD;IACtE;MACIkB,SAAS,EAAEnB;IADf,GAEOC,MAFP;EAIH;;AANyD"}
@@ -1,20 +1,20 @@
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
+ matches: ValueFilterPluginParamsMatches;
12
12
  }
13
13
  export declare class ValueFilterPlugin extends Plugin {
14
- static readonly type = "dynamodb.value.filter";
14
+ static readonly type: string;
15
15
  private readonly _params;
16
16
  get operation(): string;
17
- constructor(params: Params);
18
- matches(params: MatchesParams): boolean;
17
+ constructor(params: ValueFilterPluginParams);
18
+ matches(params: ValueFilterPluginParamsMatchesParams): boolean;
19
19
  getOperation(): string;
20
20
  }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","Plugin","operation","getOperation","constructor","params","_params","matches","WebinyError","plugin"],"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 matches: ValueFilterPluginParamsMatches;\n}\nexport class ValueFilterPlugin 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 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;;AACA;;AAeO,MAAMA,iBAAN,SAAgCC,eAAhC,CAAuC;EAItB,IAATC,SAAS,GAAW;IAC3B,OAAO,KAAKC,YAAL,EAAP;EACH;;EAEMC,WAAW,CAACC,MAAD,EAAkC;IAChD;IADgD;IAEhD,KAAKC,OAAL,GAAeD,MAAf;EACH;;EAEME,OAAO,CAACF,MAAD,EAAwD;IAClE,IAAI,CAAC,KAAKC,OAAN,IAAiB,CAAC,KAAKA,OAAL,CAAaC,OAAnC,EAA4C;MACxC,MAAM,IAAIC,cAAJ,CAAiB,kCAAjB,EAAoD,eAApD,EAAqE;QACvEC,MAAM,EAAE,IAD+D;QAEvEJ;MAFuE,CAArE,CAAN;IAIH;;IACD,OAAO,KAAKC,OAAL,CAAaC,OAAb,CAAqBF,MAArB,CAAP;EACH;;EAEMF,YAAY,GAAW;IAC1B,IAAI,CAAC,KAAKG,OAAN,IAAiB,CAAC,KAAKA,OAAL,CAAaJ,SAAnC,EAA8C;MAC1C,MAAM,IAAIM,cAAJ,CAAiB,oCAAjB,EAAsD,iBAAtD,CAAN;IACH;;IACD,OAAO,KAAKF,OAAL,CAAaJ,SAApB;EACH;;AA5ByC;;;8BAAjCF,iB,UACsC,uB"}
@@ -1,22 +1,22 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- export interface TransformParams {
2
+ export interface ValueTransformPluginParamsTransformParams {
3
3
  value: any;
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
  }
@@ -15,9 +15,9 @@ var _error = _interopRequireDefault(require("@webiny/error"));
15
15
 
16
16
  var _assignFields = require("./assignFields");
17
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; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
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; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  class ValueTransformPlugin extends _plugins.Plugin {
23
23
  constructor(params) {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueTransformPlugin","Plugin","constructor","params","_params","fields","assignFields","canTransform","field","includes","transform","WebinyError"],"sources":["ValueTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\nimport { assignFields } from \"./assignFields\";\n\nexport interface ValueTransformPluginParamsTransformParams {\n value: any;\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;;AACA;;AACA;;;;;;AAiBO,MAAMA,oBAAN,SAAmCC,eAAnC,CAA0C;EAKtCC,WAAW,CAACC,MAAD,EAAqC;IACnD;IADmD;IAEnD,KAAKC,OAAL,mCACOD,MADP;MAEIE,MAAM,EAAE,IAAAC,0BAAA,EAAaH,MAAM,CAACE,MAApB;IAFZ;EAIH;;EAEME,YAAY,CAACC,KAAD,EAAyB;IACxC,IAAI,CAAC,KAAKJ,OAAL,CAAaG,YAAlB,EAAgC;MAC5B,OAAO,KAAKH,OAAL,CAAaC,MAAb,CAAoBI,QAApB,CAA6BD,KAA7B,CAAP;IACH;;IACD,OAAO,KAAKJ,OAAL,CAAaG,YAAb,CAA0BC,KAA1B,CAAP;EACH;;EAEME,SAAS,CAACP,MAAD,EAAyD;IACrE,IAAI,CAAC,KAAKC,OAAL,CAAaM,SAAlB,EAA6B;MACzB,MAAM,IAAIC,cAAJ,CAAiB,oCAAjB,EAAsD,iBAAtD,EAAyE;QAC3EN,MAAM,EAAE,KAAKD,OAAL,CAAaC;MADsD,CAAzE,CAAN;IAGH;;IACD,OAAO,KAAKD,OAAL,CAAaM,SAAb,CAAuBP,MAAvB,CAAP;EACH;;AA3B4C;;;8BAApCH,oB,UACsC,0B"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assignFields","rawInput","input","Array","isArray","length","WebinyError","fields","field","push"],"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;;AAEO,MAAMA,YAAY,GAAIC,QAAD,IAA2C;EACnE,MAAMC,KAAK,GAAGC,KAAK,CAACC,OAAN,CAAcH,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAAnD;;EACA,IAAIC,KAAK,CAACG,MAAN,KAAiB,CAArB,EAAwB;IACpB,MAAM,IAAIC,cAAJ,CACF,iDADE,EAEF,qBAFE,CAAN;EAIH;;EACD,MAAMC,MAAgB,GAAG,EAAzB;;EACA,KAAK,MAAMC,KAAX,IAAoBN,KAApB,EAA2B;IACvB;AACR;AACA;IACQ,IAAI,CAACM,KAAL,EAAY;MACR,MAAM,IAAIF,cAAJ,CACF,2CADE,EAEF,mBAFE,EAGF;QACIC,MAAM,EAAEL;MADZ,CAHE,CAAN;IAOH;;IACDK,MAAM,CAACE,IAAP,CAAYD,KAAZ;EACH;;EACD,OAAOD,MAAP;AACH,CAzBM"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","WebinyError","every","c","includes"],"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\nexport default 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"],"mappings":";;;;;;;;;AAAA;;AACA;;eAOe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,QADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA4C;IACjD,IAAI,CAACA,YAAD,IAAiBC,KAAK,CAACC,OAAN,CAAcF,YAAd,MAAgC,KAArD,EAA4D;MACxD,MAAM,IAAIG,cAAJ,CACD,qDADC,EAEF,qBAFE,EAGF;QACIJ,KADJ;QAEIC;MAFJ,CAHE,CAAN;IAQH;;IACD,IAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,MAAyB,IAA7B,EAAmC;MAC/B,OAAOC,YAAY,CAACI,KAAb,CAAmBC,CAAC,IAAIN,KAAK,CAACO,QAAN,CAAeD,CAAf,CAAxB,CAAP;IACH;;IACD,OAAOL,YAAY,CAACM,QAAb,CAAsBP,KAAtB,CAAP;EACH;AAjBgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","length","WebinyError","from","to"],"sources":["between.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default 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"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,SADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC,IAAIC,KAAK,CAACC,OAAN,CAAcF,YAAd,CAAJ,EAAiC;MAC7B,IAAIA,YAAY,CAACG,MAAb,KAAwB,CAA5B,EAA+B;QAC3B,MAAM,IAAIC,cAAJ,CACF,8EADE,EAEF,cAFE,EAGF;UACIL,KADJ;UAEIC;QAFJ,CAHE,CAAN;MAQH;;MACD,MAAM,CAACK,IAAD,EAAOC,EAAP,IAAaN,YAAnB;MACA,OAAOD,KAAK,IAAIM,IAAT,IAAiBN,KAAK,IAAIO,EAAjC;IACH;;IACD,OAAOP,KAAK,IAAIC,YAAT,IAAyBD,KAAK,IAAIC,YAAzC;EACH;AAlBgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","re","RegExp","some","v","match"],"sources":["contains.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"contains\",\n matches: ({ value, compareValue }) => {\n if (typeof value !== \"string\") {\n if (Array.isArray(value) === true) {\n const re = new RegExp(compareValue, \"i\");\n return value.some((v: string) => {\n return v.match(re) !== null;\n });\n }\n return false;\n }\n const re = new RegExp(compareValue, \"i\");\n return value.match(re) !== null;\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,UADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC,IAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;MAC3B,IAAIE,KAAK,CAACC,OAAN,CAAcH,KAAd,MAAyB,IAA7B,EAAmC;QAC/B,MAAMI,EAAE,GAAG,IAAIC,MAAJ,CAAWJ,YAAX,EAAyB,GAAzB,CAAX;QACA,OAAOD,KAAK,CAACM,IAAN,CAAYC,CAAD,IAAe;UAC7B,OAAOA,CAAC,CAACC,KAAF,CAAQJ,EAAR,MAAgB,IAAvB;QACH,CAFM,CAAP;MAGH;;MACD,OAAO,KAAP;IACH;;IACD,MAAMA,EAAE,GAAG,IAAIC,MAAJ,CAAWJ,YAAX,EAAyB,GAAzB,CAAX;IACA,OAAOD,KAAK,CAACQ,KAAN,CAAYJ,EAAZ,MAAoB,IAA3B;EACH;AAdgC,CAAtB,C"}
@@ -13,6 +13,19 @@ var _default = new _ValueFilterPlugin.ValueFilterPlugin({
13
13
  value,
14
14
  compareValue
15
15
  }) => {
16
+ /**
17
+ * Possibility that either input value or one from the system is array.
18
+ */
19
+ if (Array.isArray(value) === true) {
20
+ return value.some(v => {
21
+ return Array.isArray(compareValue) ? compareValue.includes(v) : compareValue === v;
22
+ });
23
+ } else if (Array.isArray(compareValue) === true) {
24
+ return compareValue.every(v => {
25
+ return value === v;
26
+ });
27
+ }
28
+
16
29
  return value === compareValue;
17
30
  }
18
31
  });
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","some","v","includes","every"],"sources":["eq.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default 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"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,IADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC;AACR;AACA;IACQ,IAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,MAAyB,IAA7B,EAAmC;MAC/B,OAAOA,KAAK,CAACI,IAAN,CAAYC,CAAD,IAAe;QAC7B,OAAOH,KAAK,CAACC,OAAN,CAAcF,YAAd,IAA8BA,YAAY,CAACK,QAAb,CAAsBD,CAAtB,CAA9B,GAAyDJ,YAAY,KAAKI,CAAjF;MACH,CAFM,CAAP;IAGH,CAJD,MAIO,IAAIH,KAAK,CAACC,OAAN,CAAcF,YAAd,MAAgC,IAApC,EAA0C;MAC7C,OAAOA,YAAY,CAACM,KAAb,CAAoBF,CAAD,IAAe;QACrC,OAAOL,KAAK,KAAKK,CAAjB;MACH,CAFM,CAAP;IAGH;;IACD,OAAOL,KAAK,KAAKC,YAAjB;EACH;AAhBgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","f","Fuse","result","search","length"],"sources":["fuzzy.ts"],"sourcesContent":["import Fuse from \"fuse.js\";\nimport {\n ValueFilterPluginParamsMatchesParams,\n ValueFilterPlugin\n} from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"fuzzy\",\n matches: ({\n value,\n compareValue\n }: ValueFilterPluginParamsMatchesParams<string | null, string>) => {\n if (typeof value !== \"string\") {\n return false;\n }\n const f = new Fuse([value], {});\n const result = f.search(compareValue);\n\n return result.length > 0;\n }\n});\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAKe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,OADsB;EAEjCC,OAAO,EAAE,CAAC;IACNC,KADM;IAENC;EAFM,CAAD,KAG0D;IAC/D,IAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;MAC3B,OAAO,KAAP;IACH;;IACD,MAAME,CAAC,GAAG,IAAIC,aAAJ,CAAS,CAACH,KAAD,CAAT,EAAkB,EAAlB,CAAV;IACA,MAAMI,MAAM,GAAGF,CAAC,CAACG,MAAF,CAASJ,YAAT,CAAf;IAEA,OAAOG,MAAM,CAACE,MAAP,GAAgB,CAAvB;EACH;AAbgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue"],"sources":["gt.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"gt\",\n matches: ({ value, compareValue }) => {\n return value > compareValue;\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,IADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC,OAAOD,KAAK,GAAGC,YAAf;EACH;AAJgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue"],"sources":["gte.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"gte\",\n matches: ({ value, compareValue }) => {\n return value >= compareValue;\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,KADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC,OAAOD,KAAK,IAAIC,YAAhB;EACH;AAJgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","Array","isArray","WebinyError","some","c","includes"],"sources":["in.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\nimport WebinyError from \"@webiny/error\";\n\ninterface MatchesParams {\n value: any[];\n compareValue?: any[];\n}\n\nexport default new ValueFilterPlugin({\n operation: \"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.some(c => value.includes(c));\n }\n return compareValue.includes(value);\n }\n});\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAOe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,IADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA4C;IACjD,IAAI,CAACA,YAAD,IAAiBC,KAAK,CAACC,OAAN,CAAcF,YAAd,MAAgC,KAArD,EAA4D;MACxD,MAAM,IAAIG,cAAJ,CACD,qDADC,EAEF,qBAFE,EAGF;QACIJ,KADJ;QAEIC;MAFJ,CAHE,CAAN;IAQH;;IACD,IAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,MAAyB,IAA7B,EAAmC;MAC/B,OAAOC,YAAY,CAACI,IAAb,CAAkBC,CAAC,IAAIN,KAAK,CAACO,QAAN,CAAeD,CAAf,CAAvB,CAAP;IACH;;IACD,OAAOL,YAAY,CAACM,QAAb,CAAsBP,KAAtB,CAAP;EACH;AAjBgC,CAAtB,C"}
@@ -27,6 +27,8 @@ var _contains = _interopRequireDefault(require("./contains"));
27
27
 
28
28
  var _fuzzy = _interopRequireDefault(require("./fuzzy"));
29
29
 
30
- var _default = () => [_eq.default, _andIn.default, _in.default, _gt.default, _lt.default, _gte.default, _lte.default, _between.default, _contains.default, _fuzzy.default];
30
+ var _startsWith = _interopRequireDefault(require("./startsWith"));
31
+
32
+ var _default = () => [_eq.default, _andIn.default, _in.default, _gt.default, _lt.default, _gte.default, _lte.default, _between.default, _contains.default, _fuzzy.default, _startsWith.default];
31
33
 
32
34
  exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["eqFilter","andInFilter","inFilter","gtFilter","ltFilter","gteFilter","lteFilter","betweenFilter","containsFilter","fuzzyFilter","startsWithFilter"],"sources":["index.ts"],"sourcesContent":["import eqFilter from \"./eq\";\nimport betweenFilter from \"./between\";\nimport andInFilter from \"./andIn\";\nimport inFilter from \"./in\";\nimport gtFilter from \"./gt\";\nimport gteFilter from \"./gte\";\nimport ltFilter from \"./lt\";\nimport lteFilter from \"./lte\";\nimport containsFilter from \"./contains\";\nimport fuzzyFilter from \"./fuzzy\";\nimport startsWithFilter from \"./startsWith\";\n\nexport default () => [\n eqFilter,\n andInFilter,\n inFilter,\n gtFilter,\n ltFilter,\n gteFilter,\n lteFilter,\n betweenFilter,\n containsFilter,\n fuzzyFilter,\n startsWithFilter\n];\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAEe,MAAM,CACjBA,WADiB,EAEjBC,cAFiB,EAGjBC,WAHiB,EAIjBC,WAJiB,EAKjBC,WALiB,EAMjBC,YANiB,EAOjBC,YAPiB,EAQjBC,gBARiB,EASjBC,iBATiB,EAUjBC,cAViB,EAWjBC,mBAXiB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue"],"sources":["lt.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"lt\",\n matches: ({ value, compareValue }) => {\n return value < compareValue;\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,IADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC,OAAOD,KAAK,GAAGC,YAAf;EACH;AAJgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue"],"sources":["lte.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"lte\",\n matches: ({ value, compareValue }) => {\n return value <= compareValue;\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,KADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC,OAAOD,KAAK,IAAIC,YAAhB;EACH;AAJgC,CAAtB,C"}
@@ -0,0 +1,3 @@
1
+ import { ValueFilterPlugin } from "../definitions/ValueFilterPlugin";
2
+ declare const _default: ValueFilterPlugin;
3
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _ValueFilterPlugin = require("../definitions/ValueFilterPlugin");
9
+
10
+ var _default = new _ValueFilterPlugin.ValueFilterPlugin({
11
+ operation: "startsWith",
12
+ matches: ({
13
+ value,
14
+ compareValue
15
+ }) => {
16
+ /**
17
+ * We do "case-insensitive" comparison.
18
+ */
19
+ const compareValueInLowerCase = compareValue.toLowerCase();
20
+
21
+ if (typeof value !== "string") {
22
+ if (Array.isArray(value) === true) {
23
+ return value.some(v => v.toLowerCase().startsWith(compareValueInLowerCase));
24
+ }
25
+
26
+ return false;
27
+ }
28
+
29
+ return value.toLowerCase().startsWith(compareValueInLowerCase);
30
+ }
31
+ });
32
+
33
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueFilterPlugin","operation","matches","value","compareValue","compareValueInLowerCase","toLowerCase","Array","isArray","some","v","startsWith"],"sources":["startsWith.ts"],"sourcesContent":["import { ValueFilterPlugin } from \"../definitions/ValueFilterPlugin\";\n\nexport default new ValueFilterPlugin({\n operation: \"startsWith\",\n matches: ({ value, compareValue }) => {\n /**\n * We do \"case-insensitive\" comparison.\n */\n const compareValueInLowerCase = compareValue.toLowerCase();\n\n if (typeof value !== \"string\") {\n if (Array.isArray(value) === true) {\n return value.some((v: string) =>\n v.toLowerCase().startsWith(compareValueInLowerCase)\n );\n }\n return false;\n }\n\n return value.toLowerCase().startsWith(compareValueInLowerCase);\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,oCAAJ,CAAsB;EACjCC,SAAS,EAAE,YADsB;EAEjCC,OAAO,EAAE,CAAC;IAAEC,KAAF;IAASC;EAAT,CAAD,KAA6B;IAClC;AACR;AACA;IACQ,MAAMC,uBAAuB,GAAGD,YAAY,CAACE,WAAb,EAAhC;;IAEA,IAAI,OAAOH,KAAP,KAAiB,QAArB,EAA+B;MAC3B,IAAII,KAAK,CAACC,OAAN,CAAcL,KAAd,MAAyB,IAA7B,EAAmC;QAC/B,OAAOA,KAAK,CAACM,IAAN,CAAYC,CAAD,IACdA,CAAC,CAACJ,WAAF,GAAgBK,UAAhB,CAA2BN,uBAA3B,CADG,CAAP;MAGH;;MACD,OAAO,KAAP;IACH;;IAED,OAAOF,KAAK,CAACG,WAAN,GAAoBK,UAApB,CAA+BN,uBAA/B,CAAP;EACH;AAlBgC,CAAtB,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["filterPlugins"],"sources":["index.ts"],"sourcesContent":["/**\n * List everything that needs to be loaded by default.\n */\nimport filterPlugins from \"./filters\";\n\nexport default () => {\n return [filterPlugins()];\n};\n"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;eAGe,MAAM;EACjB,OAAO,CAAC,IAAAA,gBAAA,GAAD,CAAP;AACH,C"}
@@ -1,12 +1,15 @@
1
- declare const _default: ({ query, sort, key }: {
2
- query: any;
3
- sort: any;
4
- key: any;
5
- }) => {
1
+ import { Query, QueryKey, QuerySort } from "../types";
2
+ interface Output {
6
3
  KeyConditionExpression: string;
7
- ExpressionAttributeNames: {};
8
- ExpressionAttributeValues: {};
4
+ ExpressionAttributeNames: Record<string, any>;
5
+ ExpressionAttributeValues: Record<string, any>;
9
6
  ScanIndexForward: boolean;
10
- IndexName: any;
11
- };
7
+ IndexName: string;
8
+ }
9
+ interface Params {
10
+ query: Query;
11
+ sort: QuerySort;
12
+ key: QueryKey;
13
+ }
14
+ declare const _default: ({ query, sort, key }: Params) => Output;
12
15
  export default _default;
@@ -9,6 +9,10 @@ exports.default = void 0;
9
9
 
10
10
  var _processStatement = _interopRequireDefault(require("./processStatement"));
11
11
 
12
+ /**
13
+ * Remove this when no apps are using our internal db drivers anymore
14
+ */
15
+ // @ts-nocheck
12
16
  var _default = ({
13
17
  query,
14
18
  sort,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["query","sort","key","args","expression","attributeNames","attributeValues","processStatement","$and","output","KeyConditionExpression","ExpressionAttributeNames","ExpressionAttributeValues","ScanIndexForward","IndexName","sortKey","fields","name","primary"],"sources":["createKeyConditionExpressionArgs.ts"],"sourcesContent":["/**\n * Remove this when no apps are using our internal db drivers anymore\n */\n// @ts-nocheck\nimport processStatement from \"./processStatement\";\nimport { ProcessStatementArgsParam, Query, QueryKey, QuerySort } from \"~/types\";\n\ninterface Output {\n KeyConditionExpression: string;\n ExpressionAttributeNames: Record<string, any>;\n ExpressionAttributeValues: Record<string, any>;\n ScanIndexForward: boolean;\n IndexName: string;\n}\ninterface Params {\n query: Query;\n sort: QuerySort;\n key: QueryKey;\n}\nexport default ({ query, sort, key }: Params): Output => {\n const args: ProcessStatementArgsParam = {\n expression: \"\",\n attributeNames: {},\n attributeValues: {}\n };\n\n processStatement({ args, query: { $and: query } });\n\n const output: Output = {\n KeyConditionExpression: args.expression,\n ExpressionAttributeNames: args.attributeNames,\n ExpressionAttributeValues: args.attributeValues,\n ScanIndexForward: true,\n IndexName: null\n };\n\n const sortKey = key.fields && key.fields[1];\n if (sort && sort[sortKey.name] === -1) {\n output.ScanIndexForward = false;\n }\n\n if (!key.primary) {\n output.IndexName = key.name;\n }\n\n return output;\n};\n"],"mappings":";;;;;;;;;AAIA;;AAJA;AACA;AACA;AACA;eAgBe,CAAC;EAAEA,KAAF;EAASC,IAAT;EAAeC;AAAf,CAAD,KAA0C;EACrD,MAAMC,IAA+B,GAAG;IACpCC,UAAU,EAAE,EADwB;IAEpCC,cAAc,EAAE,EAFoB;IAGpCC,eAAe,EAAE;EAHmB,CAAxC;EAMA,IAAAC,yBAAA,EAAiB;IAAEJ,IAAF;IAAQH,KAAK,EAAE;MAAEQ,IAAI,EAAER;IAAR;EAAf,CAAjB;EAEA,MAAMS,MAAc,GAAG;IACnBC,sBAAsB,EAAEP,IAAI,CAACC,UADV;IAEnBO,wBAAwB,EAAER,IAAI,CAACE,cAFZ;IAGnBO,yBAAyB,EAAET,IAAI,CAACG,eAHb;IAInBO,gBAAgB,EAAE,IAJC;IAKnBC,SAAS,EAAE;EALQ,CAAvB;EAQA,MAAMC,OAAO,GAAGb,GAAG,CAACc,MAAJ,IAAcd,GAAG,CAACc,MAAJ,CAAW,CAAX,CAA9B;;EACA,IAAIf,IAAI,IAAIA,IAAI,CAACc,OAAO,CAACE,IAAT,CAAJ,KAAuB,CAAC,CAApC,EAAuC;IACnCR,MAAM,CAACI,gBAAP,GAA0B,KAA1B;EACH;;EAED,IAAI,CAACX,GAAG,CAACgB,OAAT,EAAkB;IACdT,MAAM,CAACK,SAAP,GAAmBZ,GAAG,CAACe,IAAvB;EACH;;EAED,OAAOR,MAAP;AACH,C"}
@@ -1,4 +1,3 @@
1
- export default function processStatement({ args, query }: {
2
- args: any;
3
- query: any;
4
- }): void;
1
+ import { ProcessStatementCallable } from "../types";
2
+ declare const processStatement: ProcessStatementCallable;
3
+ export default processStatement;
@@ -5,14 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = processStatement;
8
+ exports.default = void 0;
9
9
 
10
10
  var _operators = _interopRequireDefault(require("./../operators"));
11
11
 
12
- function processStatement({
12
+ const processStatement = ({
13
13
  args,
14
14
  query
15
- }) {
15
+ }) => {
16
16
  outerLoop: for (const [key, value] of Object.entries(query)) {
17
17
  const operators = Object.values(_operators.default);
18
18
 
@@ -36,4 +36,7 @@ function processStatement({
36
36
 
37
37
  throw new Error(`Invalid operator {${key} : ${value}}.`);
38
38
  }
39
- }
39
+ };
40
+
41
+ var _default = processStatement;
42
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["processStatement","args","query","outerLoop","key","value","Object","entries","operators","values","allOperators","i","length","operator","canProcess","process","Error"],"sources":["processStatement.ts"],"sourcesContent":["import allOperators from \"./../operators\";\nimport { ProcessStatementCallable } from \"~/types\";\n\nconst processStatement: ProcessStatementCallable = ({ args, query }) => {\n outerLoop: for (const [key, value] of Object.entries(query)) {\n const operators = Object.values(allOperators);\n for (let i = 0; i < operators.length; i++) {\n const operator = operators[i];\n if (operator.canProcess({ key, value, args })) {\n operator.process({ key, value, args, processStatement });\n continue outerLoop;\n }\n }\n throw new Error(`Invalid operator {${key} : ${value}}.`);\n }\n};\nexport default processStatement;\n"],"mappings":";;;;;;;;;AAAA;;AAGA,MAAMA,gBAA0C,GAAG,CAAC;EAAEC,IAAF;EAAQC;AAAR,CAAD,KAAqB;EACpEC,SAAS,EAAE,KAAK,MAAM,CAACC,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeL,KAAf,CAA3B,EAAkD;IACzD,MAAMM,SAAS,GAAGF,MAAM,CAACG,MAAP,CAAcC,kBAAd,CAAlB;;IACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,SAAS,CAACI,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;MACvC,MAAME,QAAQ,GAAGL,SAAS,CAACG,CAAD,CAA1B;;MACA,IAAIE,QAAQ,CAACC,UAAT,CAAoB;QAAEV,GAAF;QAAOC,KAAP;QAAcJ;MAAd,CAApB,CAAJ,EAA+C;QAC3CY,QAAQ,CAACE,OAAT,CAAiB;UAAEX,GAAF;UAAOC,KAAP;UAAcJ,IAAd;UAAoBD;QAApB,CAAjB;QACA,SAASG,SAAT;MACH;IACJ;;IACD,MAAM,IAAIa,KAAJ,CAAW,qBAAoBZ,GAAI,MAAKC,KAAM,IAA9C,CAAN;EACH;AACJ,CAZD;;eAaeL,gB"}
package/types.d.ts CHANGED
@@ -1,23 +1,23 @@
1
- export declare type OperatorArgs = {
1
+ export interface OperatorArgs {
2
2
  expression: string;
3
3
  attributeNames: Record<string, any>;
4
4
  attributeValues: Record<string, any>;
5
- };
6
- declare type CanProcessArgs = {
5
+ }
6
+ interface CanProcessArgs {
7
7
  key: string;
8
8
  value: any;
9
9
  args: OperatorArgs;
10
- };
11
- declare type ProcessArgs = {
10
+ }
11
+ interface ProcessArgs {
12
12
  key: string;
13
13
  value: any;
14
14
  args: OperatorArgs;
15
15
  processStatement: any;
16
- };
17
- export declare type Operator = {
16
+ }
17
+ export interface Operator {
18
18
  canProcess: ({ key }: CanProcessArgs) => boolean;
19
19
  process: ({ key, value, args }: ProcessArgs) => void;
20
- };
20
+ }
21
21
  /**
22
22
  * We use this definition to search for a value in any given field that was passed.
23
23
  * It works as an "OR" condition.
@@ -26,4 +26,33 @@ export interface DynamoDbContainsFilter {
26
26
  fields: string[];
27
27
  value: string;
28
28
  }
29
+ export interface ProcessStatementArgsParam {
30
+ expression: string;
31
+ attributeNames: Record<string, any>;
32
+ attributeValues: Record<string, any>;
33
+ }
34
+ export interface ProcessStatementQueryParam {
35
+ [key: string]: any;
36
+ }
37
+ export interface ProcessStatementParams {
38
+ args: ProcessStatementArgsParam;
39
+ query: ProcessStatementQueryParam;
40
+ }
41
+ export interface ProcessStatementCallable {
42
+ (params: ProcessStatementParams): void;
43
+ }
44
+ export interface Query {
45
+ [key: string]: string;
46
+ }
47
+ export interface QueryKeyField {
48
+ name: string;
49
+ }
50
+ export interface QueryKey {
51
+ fields: QueryKeyField[];
52
+ primary?: boolean;
53
+ unique?: boolean;
54
+ name: string;
55
+ }
56
+ export declare type QueryKeys = QueryKey[];
57
+ export declare type QuerySort = Record<string, -1 | 1>;
29
58
  export {};
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface OperatorArgs {\n expression: string;\n attributeNames: Record<string, any>;\n attributeValues: Record<string, any>;\n}\n\ninterface CanProcessArgs {\n key: string;\n value: any;\n args: OperatorArgs;\n}\n\ninterface ProcessArgs {\n key: string;\n value: any;\n args: OperatorArgs;\n processStatement: any;\n}\n\nexport interface Operator {\n canProcess: ({ key }: CanProcessArgs) => boolean;\n process: ({ key, value, args }: ProcessArgs) => void;\n}\n\n/**\n * We use this definition to search for a value in any given field that was passed.\n * It works as an \"OR\" condition.\n */\nexport interface DynamoDbContainsFilter {\n fields: string[];\n value: string;\n}\n\nexport interface ProcessStatementArgsParam {\n expression: string;\n attributeNames: Record<string, any>;\n attributeValues: Record<string, any>;\n}\nexport interface ProcessStatementQueryParam {\n [key: string]: any;\n}\nexport interface ProcessStatementParams {\n args: ProcessStatementArgsParam;\n query: ProcessStatementQueryParam;\n}\n\nexport interface ProcessStatementCallable {\n (params: ProcessStatementParams): void;\n}\n\nexport interface Query {\n [key: string]: string;\n}\nexport interface QueryKeyField {\n name: string;\n}\nexport interface QueryKey {\n fields: QueryKeyField[];\n primary?: boolean;\n unique?: boolean;\n name: string;\n}\nexport type QueryKeys = QueryKey[];\n\nexport type QuerySort = Record<string, -1 | 1>;\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { ContextInterface } from "@webiny/handler/types";
1
+ import { Context } from "@webiny/api/types";
2
2
  import { DefinitionParams } from "../plugins/definitions/AttributePlugin";
3
3
  import { PluginsContainer } from "@webiny/plugins";
4
4
  /**
@@ -6,5 +6,5 @@ import { PluginsContainer } from "@webiny/plugins";
6
6
  *
7
7
  * @deprecated
8
8
  */
9
- export declare const getExtraAttributes: (context: ContextInterface, entity: string) => Record<string, DefinitionParams>;
9
+ export declare const getExtraAttributes: (context: Context, entity: string) => Record<string, DefinitionParams>;
10
10
  export declare const getExtraAttributesFromPlugins: (plugins: PluginsContainer, entity: string) => Record<string, DefinitionParams>;
@@ -11,9 +11,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _AttributePlugin = require("../plugins/definitions/AttributePlugin");
13
13
 
14
- 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; }
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
 
16
- 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; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
17
 
18
18
  /**
19
19
  * Will be removed in favor of directly assigning attributes to a certain entity when creating the storage operations.
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getExtraAttributes","context","entity","getExtraAttributesFromPlugins","plugins","byType","AttributePlugin","type","filter","plugin","reduce","attributes","getDefinition"],"sources":["attributes.ts"],"sourcesContent":["import { Context } from \"@webiny/api/types\";\nimport { AttributePlugin, DefinitionParams } from \"~/plugins/definitions/AttributePlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\n/**\n * Will be removed in favor of directly assigning attributes to a certain entity when creating the storage operations.\n *\n * @deprecated\n */\nexport const getExtraAttributes = (\n context: Context,\n entity: string\n): Record<string, DefinitionParams> => {\n return getExtraAttributesFromPlugins(context.plugins, entity);\n};\n\nexport const getExtraAttributesFromPlugins = (\n plugins: PluginsContainer,\n entity: string\n): Record<string, DefinitionParams> => {\n return plugins\n .byType<AttributePlugin>(AttributePlugin.type)\n .filter(plugin => plugin.entity === entity)\n .reduce((attributes, plugin) => {\n return {\n ...attributes,\n ...plugin.getDefinition()\n };\n }, {});\n};\n"],"mappings":";;;;;;;;;;;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAG,CAC9BC,OAD8B,EAE9BC,MAF8B,KAGK;EACnC,OAAOC,6BAA6B,CAACF,OAAO,CAACG,OAAT,EAAkBF,MAAlB,CAApC;AACH,CALM;;;;AAOA,MAAMC,6BAA6B,GAAG,CACzCC,OADyC,EAEzCF,MAFyC,KAGN;EACnC,OAAOE,OAAO,CACTC,MADE,CACsBC,gCAAA,CAAgBC,IADtC,EAEFC,MAFE,CAEKC,MAAM,IAAIA,MAAM,CAACP,MAAP,KAAkBA,MAFjC,EAGFQ,MAHE,CAGK,CAACC,UAAD,EAAaF,MAAb,KAAwB;IAC5B,uCACOE,UADP,GAEOF,MAAM,CAACG,aAAP,EAFP;EAIH,CARE,EAQA,EARA,CAAP;AASH,CAbM"}
@@ -11,5 +11,5 @@ interface Params {
11
11
  * This helper function is meant to be used to batch read from one table.
12
12
  * It will fetch all results, as there is a next() method call built in.
13
13
  */
14
- export declare const batchReadAll: <T = any>(params: Params) => Promise<T[]>;
14
+ export declare const batchReadAll: <T = any>(params: Params, maxChunk?: number) => Promise<T[]>;
15
15
  export {};
@@ -1,10 +1,18 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.batchReadAll = void 0;
7
9
 
10
+ var _chunk = _interopRequireDefault(require("lodash/chunk"));
11
+
12
+ var _error = _interopRequireDefault(require("@webiny/error"));
13
+
14
+ const MAX_BATCH_ITEMS = 100;
15
+
8
16
  const flatten = responses => {
9
17
  const entries = [];
10
18
  const values = Object.values(responses);
@@ -15,44 +23,67 @@ const flatten = responses => {
15
23
 
16
24
  return entries;
17
25
  };
18
- /**
19
- * This helper function is meant to be used to batch read from one table.
20
- * It will fetch all results, as there is a next() method call built in.
21
- */
22
26
 
27
+ const batchReadAllChunk = async params => {
28
+ const {
29
+ table,
30
+ items
31
+ } = params;
32
+ const records = [];
33
+ const result = await table.batchGet(items);
23
34
 
24
- const batchReadAll = async params => {
25
- if (params.items.length === 0) {
26
- return [];
35
+ if (!result || !result.Responses) {
36
+ return records;
27
37
  }
28
38
 
29
- const items = [];
30
- const result = await params.table.batchGet(params.items);
39
+ records.push(...flatten(result.Responses));
31
40
 
32
- if (result.Responses) {
33
- items.push(...flatten(result.Responses));
41
+ if (!result.next || typeof result.next !== "function") {
42
+ return records;
34
43
  }
35
44
 
36
- if (typeof result.next === "function") {
37
- let previous = result;
38
- let nextResult;
45
+ let previous = result;
39
46
 
40
- while (nextResult = await previous.next()) {
41
- if (!nextResult) {
42
- return items;
43
- }
47
+ while (typeof previous.next === "function") {
48
+ const nextResult = await previous.next();
44
49
 
45
- items.push(...flatten(nextResult.Responses));
50
+ if (!nextResult) {
51
+ return records;
52
+ }
46
53
 
47
- if (!nextResult || typeof nextResult.next !== "function") {
48
- return items;
49
- }
54
+ records.push(...flatten(nextResult.Responses));
55
+ previous = nextResult;
56
+ }
50
57
 
51
- previous = nextResult;
52
- }
58
+ return records;
59
+ };
60
+ /**
61
+ * This helper function is meant to be used to batch read from one table.
62
+ * It will fetch all results, as there is a next() method call built in.
63
+ */
64
+
65
+
66
+ const batchReadAll = async (params, maxChunk = MAX_BATCH_ITEMS) => {
67
+ if (params.items.length === 0) {
68
+ return [];
69
+ } else if (maxChunk > MAX_BATCH_ITEMS) {
70
+ throw new _error.default(`Cannot set to load more than ${MAX_BATCH_ITEMS} items from the DynamoDB at once.`, "DYNAMODB_MAX_BATCH_GET_LIMIT_ERROR", {
71
+ maxChunk
72
+ });
73
+ }
74
+
75
+ const records = [];
76
+ const chunkItemsList = (0, _chunk.default)(params.items, maxChunk);
77
+
78
+ for (const chunkItems of chunkItemsList) {
79
+ const results = await batchReadAllChunk({
80
+ table: params.table,
81
+ items: chunkItems
82
+ });
83
+ records.push(...results);
53
84
  }
54
85
 
55
- return items;
86
+ return records;
56
87
  };
57
88
 
58
89
  exports.batchReadAll = batchReadAll;