@webiny/db-dynamodb 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/DynamoDbDriver.js +204 -209
  2. package/DynamoDbDriver.js.map +1 -1
  3. package/exports/api/db.js +0 -2
  4. package/feature/FilterUtil/FilterUtil.js +18 -20
  5. package/feature/FilterUtil/FilterUtil.js.map +1 -1
  6. package/feature/FilterUtil/abstractions/FilterUtil.js +2 -1
  7. package/feature/FilterUtil/abstractions/FilterUtil.js.map +1 -1
  8. package/feature/FilterUtil/createFilters.js +82 -120
  9. package/feature/FilterUtil/createFilters.js.map +1 -1
  10. package/feature/FilterUtil/extractWhereArgs.js +15 -19
  11. package/feature/FilterUtil/extractWhereArgs.js.map +1 -1
  12. package/feature/FilterUtil/feature.js +6 -5
  13. package/feature/FilterUtil/feature.js.map +1 -1
  14. package/feature/FilterUtil/index.js +0 -2
  15. package/feature/ValueFilter/ValueFilterRegistry.js +21 -17
  16. package/feature/ValueFilter/ValueFilterRegistry.js.map +1 -1
  17. package/feature/ValueFilter/abstractions/ValueFilter.js +2 -1
  18. package/feature/ValueFilter/abstractions/ValueFilter.js.map +1 -1
  19. package/feature/ValueFilter/abstractions/ValueFilterRegistry.js +2 -1
  20. package/feature/ValueFilter/abstractions/ValueFilterRegistry.js.map +1 -1
  21. package/feature/ValueFilter/feature.js +17 -16
  22. package/feature/ValueFilter/feature.js.map +1 -1
  23. package/feature/ValueFilter/filters/AndInFilter.js +19 -23
  24. package/feature/ValueFilter/filters/AndInFilter.js.map +1 -1
  25. package/feature/ValueFilter/filters/BetweenFilter.js +23 -25
  26. package/feature/ValueFilter/filters/BetweenFilter.js.map +1 -1
  27. package/feature/ValueFilter/filters/ContainsFilter.js +34 -53
  28. package/feature/ValueFilter/filters/ContainsFilter.js.map +1 -1
  29. package/feature/ValueFilter/filters/EqFilter.js +17 -27
  30. package/feature/ValueFilter/filters/EqFilter.js.map +1 -1
  31. package/feature/ValueFilter/filters/FuzzyFilter.js +30 -30
  32. package/feature/ValueFilter/filters/FuzzyFilter.js.map +1 -1
  33. package/feature/ValueFilter/filters/GtFilter.js +16 -16
  34. package/feature/ValueFilter/filters/GtFilter.js.map +1 -1
  35. package/feature/ValueFilter/filters/GteFilter.js +16 -16
  36. package/feature/ValueFilter/filters/GteFilter.js.map +1 -1
  37. package/feature/ValueFilter/filters/InFilter.js +19 -23
  38. package/feature/ValueFilter/filters/InFilter.js.map +1 -1
  39. package/feature/ValueFilter/filters/LtFilter.js +16 -16
  40. package/feature/ValueFilter/filters/LtFilter.js.map +1 -1
  41. package/feature/ValueFilter/filters/LteFilter.js +16 -16
  42. package/feature/ValueFilter/filters/LteFilter.js.map +1 -1
  43. package/feature/ValueFilter/filters/StartsWithFilter.js +20 -36
  44. package/feature/ValueFilter/filters/StartsWithFilter.js.map +1 -1
  45. package/feature/ValueFilter/index.js +0 -2
  46. package/index.js +7 -9
  47. package/index.js.map +1 -1
  48. package/package.json +13 -13
  49. package/plugins/definitions/DateTimeTransformPlugin.js +18 -30
  50. package/plugins/definitions/DateTimeTransformPlugin.js.map +1 -1
  51. package/plugins/definitions/FieldPlugin.js +34 -37
  52. package/plugins/definitions/FieldPlugin.js.map +1 -1
  53. package/plugins/definitions/TimeTransformPlugin.js +25 -37
  54. package/plugins/definitions/TimeTransformPlugin.js.map +1 -1
  55. package/plugins/definitions/ValueTransformPlugin.js +18 -17
  56. package/plugins/definitions/ValueTransformPlugin.js.map +1 -1
  57. package/plugins/definitions/assignFields.js +14 -18
  58. package/plugins/definitions/assignFields.js.map +1 -1
  59. package/plugins/index.js +0 -2
  60. package/store/entity.js +6 -9
  61. package/store/entity.js.map +1 -1
  62. package/store/keys.js +6 -13
  63. package/store/keys.js.map +1 -1
  64. package/store/types.js +0 -3
  65. package/toolbox.js +0 -5
  66. package/types.js +0 -3
  67. package/utils/batch/batchRead.js +37 -56
  68. package/utils/batch/batchRead.js.map +1 -1
  69. package/utils/batch/batchWrite.js +33 -51
  70. package/utils/batch/batchWrite.js.map +1 -1
  71. package/utils/batch/index.js +0 -2
  72. package/utils/batch/types.js +0 -3
  73. package/utils/cleanup.js +35 -25
  74. package/utils/cleanup.js.map +1 -1
  75. package/utils/count.js +8 -14
  76. package/utils/count.js.map +1 -1
  77. package/utils/createEntity.d.ts +1 -1
  78. package/utils/createEntity.js +75 -78
  79. package/utils/createEntity.js.map +1 -1
  80. package/utils/createTable.js +25 -35
  81. package/utils/createTable.js.map +1 -1
  82. package/utils/cursor.js +7 -10
  83. package/utils/cursor.js.map +1 -1
  84. package/utils/delete.js +6 -8
  85. package/utils/delete.js.map +1 -1
  86. package/utils/entity/Entity.js +85 -90
  87. package/utils/entity/Entity.js.map +1 -1
  88. package/utils/entity/EntityReadBatch.js +23 -31
  89. package/utils/entity/EntityReadBatch.js.map +1 -1
  90. package/utils/entity/EntityReadBatchBuilder.js +12 -15
  91. package/utils/entity/EntityReadBatchBuilder.js.map +1 -1
  92. package/utils/entity/EntityWriteBatch.js +34 -41
  93. package/utils/entity/EntityWriteBatch.js.map +1 -1
  94. package/utils/entity/EntityWriteBatchBuilder.js +15 -16
  95. package/utils/entity/EntityWriteBatchBuilder.js.map +1 -1
  96. package/utils/entity/getEntity.js +8 -9
  97. package/utils/entity/getEntity.js.map +1 -1
  98. package/utils/entity/index.js +0 -2
  99. package/utils/entity/types.js +0 -4
  100. package/utils/get.js +12 -26
  101. package/utils/get.js.map +1 -1
  102. package/utils/index.js +1 -3
  103. package/utils/put.js +7 -9
  104. package/utils/put.js.map +1 -1
  105. package/utils/query.js +77 -129
  106. package/utils/query.js.map +1 -1
  107. package/utils/scan.js +47 -73
  108. package/utils/scan.js.map +1 -1
  109. package/utils/sort.js +37 -61
  110. package/utils/sort.js.map +1 -1
  111. package/utils/table/Table.js +22 -21
  112. package/utils/table/Table.js.map +1 -1
  113. package/utils/table/TableReadBatch.js +37 -45
  114. package/utils/table/TableReadBatch.js.map +1 -1
  115. package/utils/table/TableWriteBatch.js +47 -56
  116. package/utils/table/TableWriteBatch.js.map +1 -1
  117. package/utils/table/index.js +0 -2
  118. package/utils/table/types.js +0 -3
  119. package/exports/api/db.js.map +0 -1
  120. package/feature/FilterUtil/index.js.map +0 -1
  121. package/feature/ValueFilter/index.js.map +0 -1
  122. package/plugins/index.js.map +0 -1
  123. package/store/types.js.map +0 -1
  124. package/toolbox.js.map +0 -1
  125. package/types.js.map +0 -1
  126. package/utils/batch/index.js.map +0 -1
  127. package/utils/batch/types.js.map +0 -1
  128. package/utils/entity/index.js.map +0 -1
  129. package/utils/entity/types.js.map +0 -1
  130. package/utils/index.js.map +0 -1
  131. package/utils/table/index.js.map +0 -1
  132. package/utils/table/types.js.map +0 -1
@@ -1,130 +1,92 @@
1
- import * as dotProp from "dot-prop";
2
1
  import { WebinyError } from "@webiny/error";
3
2
  import { extractWhereArgs } from "./extractWhereArgs.js";
4
- const findFilter = (registry, operation) => {
5
- const filter = registry.get(operation);
6
- if (filter) {
7
- return filter;
8
- }
9
- throw new WebinyError(`Missing filter plugin definition.`, "FILTER_PLUGIN_ERROR", {
10
- operation
11
- });
3
+ import * as __rspack_external_dot_prop_de53db47 from "dot-prop";
4
+ const findFilter = (registry, operation)=>{
5
+ const filter = registry.get(operation);
6
+ if (filter) return filter;
7
+ throw new WebinyError("Missing filter plugin definition.", "FILTER_PLUGIN_ERROR", {
8
+ operation
9
+ });
12
10
  };
13
- const multiSearchFieldOperations = ["contains", "fuzzy"];
14
- export const createFilters = params => {
15
- const {
16
- where,
17
- fields,
18
- filterRegistry
19
- } = params;
20
- const keys = Object.keys(where);
21
- /**
22
- * Skip everything if there are no conditions to be applied.
23
- */
24
- if (keys.length === 0) {
25
- return [];
26
- }
27
- return keys.reduce((filters, key) => {
28
- const compareValue = where[key];
29
- if (compareValue === undefined) {
30
- return filters;
31
- }
32
- /**
33
- * @see DynamoDbContainsFilter
34
- */
35
- if (multiSearchFieldOperations.includes(key) === true) {
36
- const data = compareValue;
37
- let transformValue = undefined;
38
- const paths = data.fields.map(field => {
39
- const fieldPlugin = fields.find(plugin => plugin.getField() === field);
11
+ const multiSearchFieldOperations = [
12
+ "contains",
13
+ "fuzzy"
14
+ ];
15
+ const createFilters = (params)=>{
16
+ const { where, fields, filterRegistry } = params;
17
+ const keys = Object.keys(where);
18
+ if (0 === keys.length) return [];
19
+ return keys.reduce((filters, key)=>{
20
+ const compareValue = where[key];
21
+ if (void 0 === compareValue) return filters;
22
+ if (true === multiSearchFieldOperations.includes(key)) {
23
+ const data = compareValue;
24
+ let transformValue;
25
+ const paths = data.fields.map((field)=>{
26
+ const fieldPlugin = fields.find((plugin)=>plugin.getField() === field);
27
+ if (fieldPlugin) {
28
+ transformValue = (value)=>fieldPlugin.transformValue(value);
29
+ return fieldPlugin.getPath();
30
+ }
31
+ return field;
32
+ });
33
+ const filter = findFilter(filterRegistry, key);
34
+ filters.push({
35
+ operation: filter.operation,
36
+ compareValue: data.value,
37
+ filter,
38
+ transformValue,
39
+ paths,
40
+ negate: false
41
+ });
42
+ return filters;
43
+ }
44
+ const { field, operation, negate } = extractWhereArgs(key);
45
+ const filter = findFilter(filterRegistry, operation);
46
+ const fieldPlugin = fields.find((plugin)=>plugin.getField() === field);
47
+ let path = field;
48
+ let transformValue;
40
49
  if (fieldPlugin) {
41
- transformValue = value => {
42
- return fieldPlugin.transformValue(value);
43
- };
44
- return fieldPlugin.getPath();
50
+ transformValue = (value)=>fieldPlugin.transformValue(value);
51
+ path = fieldPlugin.getPath();
45
52
  }
46
- return field;
47
- });
48
- const filter = findFilter(filterRegistry, key);
49
- filters.push({
50
- operation: filter.operation,
51
- compareValue: data.value,
52
- filter,
53
- transformValue,
54
- paths,
55
- negate: false
56
- });
57
- return filters;
58
- }
59
- const {
60
- field,
61
- operation,
62
- negate
63
- } = extractWhereArgs(key);
64
- const filter = findFilter(filterRegistry, operation);
65
- const fieldPlugin = fields.find(plugin => plugin.getField() === field);
66
- let path = field;
67
- let transformValue = undefined;
68
- if (fieldPlugin) {
69
- transformValue = value => {
70
- return fieldPlugin.transformValue(value);
71
- };
72
- path = fieldPlugin.getPath();
73
- }
74
- filters.push({
75
- operation: filter.operation,
76
- compareValue,
77
- filter,
78
- transformValue,
79
- paths: [path],
80
- negate
81
- });
82
- return filters;
83
- }, []);
53
+ filters.push({
54
+ operation: filter.operation,
55
+ compareValue,
56
+ filter,
57
+ transformValue,
58
+ paths: [
59
+ path
60
+ ],
61
+ negate
62
+ });
63
+ return filters;
64
+ }, []);
84
65
  };
85
-
86
- /**
87
- * Transforms the value with given transformer callable.
88
- */
89
- const transform = (value, transformValue) => {
90
- if (!transformValue) {
91
- return value;
92
- }
93
- if (Array.isArray(value)) {
94
- return value.map(v => transformValue(v));
95
- }
96
- return transformValue(value);
66
+ const transform = (value, transformValue)=>{
67
+ if (!transformValue) return value;
68
+ if (Array.isArray(value)) return value.map((v)=>transformValue(v));
69
+ return transformValue(value);
97
70
  };
98
-
99
- /**
100
- * Creates a filter callable that we can send to the .filter() method of the array.
101
- */
102
- export const createFilterCallable = params => {
103
- const filters = createFilters(params);
104
- /**
105
- * Just return null so there are no filters to be applied.
106
- * Later in the code we check for null so we do not loop through the items.
107
- */
108
- if (filters.length === 0) {
109
- return null;
110
- }
111
- return item => {
112
- for (const filter of filters) {
113
- const result = filter.paths.some(path => {
114
- const value = transform(dotProp.getProperty(item, path), filter.transformValue);
115
- const compareValue = transform(filter.compareValue, filter.transformValue);
116
- const matched = filter.filter.matches({
117
- value,
118
- compareValue
119
- });
120
- return filter.negate ? !matched : matched;
121
- });
122
- if (result === false) {
123
- return false;
124
- }
125
- }
126
- return true;
127
- };
71
+ const createFilterCallable = (params)=>{
72
+ const filters = createFilters(params);
73
+ if (0 === filters.length) return null;
74
+ return (item)=>{
75
+ for (const filter of filters){
76
+ const result = filter.paths.some((path)=>{
77
+ const value = transform(__rspack_external_dot_prop_de53db47.getProperty(item, path), filter.transformValue);
78
+ const compareValue = transform(filter.compareValue, filter.transformValue);
79
+ const matched = filter.filter.matches({
80
+ value,
81
+ compareValue
82
+ });
83
+ return filter.negate ? !matched : matched;
84
+ });
85
+ if (false === result) return false;
86
+ }
87
+ return true;
88
+ };
128
89
  };
90
+ export { createFilterCallable, createFilters };
129
91
 
130
92
  //# sourceMappingURL=createFilters.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["dotProp","WebinyError","extractWhereArgs","findFilter","registry","operation","filter","get","multiSearchFieldOperations","createFilters","params","where","fields","filterRegistry","keys","Object","length","reduce","filters","key","compareValue","undefined","includes","data","transformValue","paths","map","field","fieldPlugin","find","plugin","getField","value","getPath","push","negate","path","transform","Array","isArray","v","createFilterCallable","item","result","some","getProperty","matched","matches"],"sources":["createFilters.ts"],"sourcesContent":["import * as dotProp from \"dot-prop\";\nimport { WebinyError } from \"@webiny/error\";\nimport type { FieldPlugin } from \"~/plugins/definitions/FieldPlugin.js\";\nimport type { DynamoDbContainsFilter } from \"~/types.js\";\nimport type { ValueFilter, ValueFilterRegistry } from \"~/feature/ValueFilter/index.js\";\nimport { extractWhereArgs } from \"./extractWhereArgs.js\";\n\ntype TransformValue = (value: any) => any;\n\ninterface Filter {\n operation: string;\n compareValue: any;\n filter: ValueFilter.Interface;\n transformValue?: TransformValue;\n paths: string[];\n negate: boolean;\n}\n\ninterface CreateFiltersParams {\n filterRegistry: ValueFilterRegistry.Interface;\n where: Record<string, any>;\n fields: FieldPlugin[];\n}\n\nconst findFilter = (\n registry: ValueFilterRegistry.Interface,\n operation: string\n): ValueFilter.Interface => {\n const filter = registry.get(operation);\n if (filter) {\n return filter;\n }\n throw new WebinyError(`Missing filter plugin definition.`, \"FILTER_PLUGIN_ERROR\", {\n operation\n });\n};\n\nconst multiSearchFieldOperations = [\"contains\", \"fuzzy\"];\n\nexport const createFilters = (params: CreateFiltersParams): Filter[] => {\n const { where, fields, filterRegistry } = params;\n\n const keys = Object.keys(where);\n /**\n * Skip everything if there are no conditions to be applied.\n */\n if (keys.length === 0) {\n return [];\n }\n\n return keys.reduce((filters, key) => {\n const compareValue = where[key];\n if (compareValue === undefined) {\n return filters;\n }\n /**\n * @see DynamoDbContainsFilter\n */\n if (multiSearchFieldOperations.includes(key) === true) {\n const data: DynamoDbContainsFilter = compareValue;\n let transformValue: TransformValue | undefined = undefined;\n const paths = data.fields.map(field => {\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n return fieldPlugin.getPath();\n }\n return field;\n });\n\n const filter = findFilter(filterRegistry, key);\n filters.push({\n operation: filter.operation,\n compareValue: data.value,\n filter,\n transformValue,\n paths,\n negate: false\n });\n return filters;\n }\n\n const { field, operation, negate } = extractWhereArgs(key);\n\n const filter = findFilter(filterRegistry, operation);\n\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n let path: string = field;\n let transformValue: TransformValue | undefined = undefined;\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n path = fieldPlugin.getPath();\n }\n\n filters.push({\n operation: filter.operation,\n compareValue,\n filter,\n transformValue,\n paths: [path],\n negate\n });\n\n return filters;\n }, [] as Filter[]);\n};\n\n/**\n * Transforms the value with given transformer callable.\n */\nconst transform = (value: any, transformValue?: TransformValue): any => {\n if (!transformValue) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(v => transformValue(v));\n }\n return transformValue(value);\n};\n\n/**\n * Creates a filter callable that we can send to the .filter() method of the array.\n */\nexport const createFilterCallable = (\n params: CreateFiltersParams\n): ((item: any) => boolean) | null => {\n const filters = createFilters(params);\n /**\n * Just return null so there are no filters to be applied.\n * Later in the code we check for null so we do not loop through the items.\n */\n if (filters.length === 0) {\n return null;\n }\n\n return (item: any) => {\n for (const filter of filters) {\n const result = filter.paths.some(path => {\n const value = transform(dotProp.getProperty(item, path), filter.transformValue);\n const compareValue = transform(filter.compareValue, filter.transformValue);\n const matched = filter.filter.matches({\n value,\n compareValue\n });\n\n return filter.negate ? !matched : matched;\n });\n if (result === false) {\n return false;\n }\n }\n return true;\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"feature/FilterUtil/createFilters.js","sources":["../../../src/feature/FilterUtil/createFilters.ts"],"sourcesContent":["import * as dotProp from \"dot-prop\";\nimport { WebinyError } from \"@webiny/error\";\nimport type { FieldPlugin } from \"~/plugins/definitions/FieldPlugin.js\";\nimport type { DynamoDbContainsFilter } from \"~/types.js\";\nimport type { ValueFilter, ValueFilterRegistry } from \"~/feature/ValueFilter/index.js\";\nimport { extractWhereArgs } from \"./extractWhereArgs.js\";\n\ntype TransformValue = (value: any) => any;\n\ninterface Filter {\n operation: string;\n compareValue: any;\n filter: ValueFilter.Interface;\n transformValue?: TransformValue;\n paths: string[];\n negate: boolean;\n}\n\ninterface CreateFiltersParams {\n filterRegistry: ValueFilterRegistry.Interface;\n where: Record<string, any>;\n fields: FieldPlugin[];\n}\n\nconst findFilter = (\n registry: ValueFilterRegistry.Interface,\n operation: string\n): ValueFilter.Interface => {\n const filter = registry.get(operation);\n if (filter) {\n return filter;\n }\n throw new WebinyError(`Missing filter plugin definition.`, \"FILTER_PLUGIN_ERROR\", {\n operation\n });\n};\n\nconst multiSearchFieldOperations = [\"contains\", \"fuzzy\"];\n\nexport const createFilters = (params: CreateFiltersParams): Filter[] => {\n const { where, fields, filterRegistry } = params;\n\n const keys = Object.keys(where);\n /**\n * Skip everything if there are no conditions to be applied.\n */\n if (keys.length === 0) {\n return [];\n }\n\n return keys.reduce((filters, key) => {\n const compareValue = where[key];\n if (compareValue === undefined) {\n return filters;\n }\n /**\n * @see DynamoDbContainsFilter\n */\n if (multiSearchFieldOperations.includes(key) === true) {\n const data: DynamoDbContainsFilter = compareValue;\n let transformValue: TransformValue | undefined = undefined;\n const paths = data.fields.map(field => {\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n return fieldPlugin.getPath();\n }\n return field;\n });\n\n const filter = findFilter(filterRegistry, key);\n filters.push({\n operation: filter.operation,\n compareValue: data.value,\n filter,\n transformValue,\n paths,\n negate: false\n });\n return filters;\n }\n\n const { field, operation, negate } = extractWhereArgs(key);\n\n const filter = findFilter(filterRegistry, operation);\n\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n let path: string = field;\n let transformValue: TransformValue | undefined = undefined;\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n path = fieldPlugin.getPath();\n }\n\n filters.push({\n operation: filter.operation,\n compareValue,\n filter,\n transformValue,\n paths: [path],\n negate\n });\n\n return filters;\n }, [] as Filter[]);\n};\n\n/**\n * Transforms the value with given transformer callable.\n */\nconst transform = (value: any, transformValue?: TransformValue): any => {\n if (!transformValue) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(v => transformValue(v));\n }\n return transformValue(value);\n};\n\n/**\n * Creates a filter callable that we can send to the .filter() method of the array.\n */\nexport const createFilterCallable = (\n params: CreateFiltersParams\n): ((item: any) => boolean) | null => {\n const filters = createFilters(params);\n /**\n * Just return null so there are no filters to be applied.\n * Later in the code we check for null so we do not loop through the items.\n */\n if (filters.length === 0) {\n return null;\n }\n\n return (item: any) => {\n for (const filter of filters) {\n const result = filter.paths.some(path => {\n const value = transform(dotProp.getProperty(item, path), filter.transformValue);\n const compareValue = transform(filter.compareValue, filter.transformValue);\n const matched = filter.filter.matches({\n value,\n compareValue\n });\n\n return filter.negate ? !matched : matched;\n });\n if (result === false) {\n return false;\n }\n }\n return true;\n };\n};\n"],"names":["findFilter","registry","operation","filter","WebinyError","multiSearchFieldOperations","createFilters","params","where","fields","filterRegistry","keys","Object","filters","key","compareValue","undefined","data","transformValue","paths","field","fieldPlugin","plugin","value","negate","extractWhereArgs","path","transform","Array","v","createFilterCallable","item","result","dotProp","matched"],"mappings":";;;AAwBA,MAAMA,aAAa,CACfC,UACAC;IAEA,MAAMC,SAASF,SAAS,GAAG,CAACC;IAC5B,IAAIC,QACA,OAAOA;IAEX,MAAM,IAAIC,YAAY,qCAAqC,uBAAuB;QAC9EF;IACJ;AACJ;AAEA,MAAMG,6BAA6B;IAAC;IAAY;CAAQ;AAEjD,MAAMC,gBAAgB,CAACC;IAC1B,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,cAAc,EAAE,GAAGH;IAE1C,MAAMI,OAAOC,OAAO,IAAI,CAACJ;IAIzB,IAAIG,AAAgB,MAAhBA,KAAK,MAAM,EACX,OAAO,EAAE;IAGb,OAAOA,KAAK,MAAM,CAAC,CAACE,SAASC;QACzB,MAAMC,eAAeP,KAAK,CAACM,IAAI;QAC/B,IAAIC,AAAiBC,WAAjBD,cACA,OAAOF;QAKX,IAAIR,AAA6C,SAA7CA,2BAA2B,QAAQ,CAACS,MAAe;YACnD,MAAMG,OAA+BF;YACrC,IAAIG;YACJ,MAAMC,QAAQF,KAAK,MAAM,CAAC,GAAG,CAACG,CAAAA;gBAC1B,MAAMC,cAAcZ,OAAO,IAAI,CAACa,CAAAA,SAAUA,OAAO,QAAQ,OAAOF;gBAChE,IAAIC,aAAa;oBACbH,iBAAiB,CAACK,QACPF,YAAY,cAAc,CAACE;oBAEtC,OAAOF,YAAY,OAAO;gBAC9B;gBACA,OAAOD;YACX;YAEA,MAAMjB,SAASH,WAAWU,gBAAgBI;YAC1CD,QAAQ,IAAI,CAAC;gBACT,WAAWV,OAAO,SAAS;gBAC3B,cAAcc,KAAK,KAAK;gBACxBd;gBACAe;gBACAC;gBACA,QAAQ;YACZ;YACA,OAAON;QACX;QAEA,MAAM,EAAEO,KAAK,EAAElB,SAAS,EAAEsB,MAAM,EAAE,GAAGC,iBAAiBX;QAEtD,MAAMX,SAASH,WAAWU,gBAAgBR;QAE1C,MAAMmB,cAAcZ,OAAO,IAAI,CAACa,CAAAA,SAAUA,OAAO,QAAQ,OAAOF;QAChE,IAAIM,OAAeN;QACnB,IAAIF;QACJ,IAAIG,aAAa;YACbH,iBAAiB,CAACK,QACPF,YAAY,cAAc,CAACE;YAEtCG,OAAOL,YAAY,OAAO;QAC9B;QAEAR,QAAQ,IAAI,CAAC;YACT,WAAWV,OAAO,SAAS;YAC3BY;YACAZ;YACAe;YACA,OAAO;gBAACQ;aAAK;YACbF;QACJ;QAEA,OAAOX;IACX,GAAG,EAAE;AACT;AAKA,MAAMc,YAAY,CAACJ,OAAYL;IAC3B,IAAI,CAACA,gBACD,OAAOK;IAEX,IAAIK,MAAM,OAAO,CAACL,QACd,OAAOA,MAAM,GAAG,CAACM,CAAAA,IAAKX,eAAeW;IAEzC,OAAOX,eAAeK;AAC1B;AAKO,MAAMO,uBAAuB,CAChCvB;IAEA,MAAMM,UAAUP,cAAcC;IAK9B,IAAIM,AAAmB,MAAnBA,QAAQ,MAAM,EACd,OAAO;IAGX,OAAO,CAACkB;QACJ,KAAK,MAAM5B,UAAUU,QAAS;YAC1B,MAAMmB,SAAS7B,OAAO,KAAK,CAAC,IAAI,CAACuB,CAAAA;gBAC7B,MAAMH,QAAQI,UAAUM,oCAAAA,WAAmB,CAACF,MAAML,OAAOvB,OAAO,cAAc;gBAC9E,MAAMY,eAAeY,UAAUxB,OAAO,YAAY,EAAEA,OAAO,cAAc;gBACzE,MAAM+B,UAAU/B,OAAO,MAAM,CAAC,OAAO,CAAC;oBAClCoB;oBACAR;gBACJ;gBAEA,OAAOZ,OAAO,MAAM,GAAG,CAAC+B,UAAUA;YACtC;YACA,IAAIF,AAAW,UAAXA,QACA,OAAO;QAEf;QACA,OAAO;IACX;AACJ"}
@@ -1,24 +1,20 @@
1
- export const extractWhereArgs = key => {
2
- const result = key.split("_");
3
- const field = result.shift();
4
- const rawOp = result.length === 0 ? "eq" : result.join("_");
5
- /**
6
- * When rawOp is not, it means it is equal negated so just return that.
7
- */
8
- if (rawOp === "not") {
1
+ const extractWhereArgs = (key)=>{
2
+ const result = key.split("_");
3
+ const field = result.shift();
4
+ const rawOp = 0 === result.length ? "eq" : result.join("_");
5
+ if ("not" === rawOp) return {
6
+ field,
7
+ operation: "eq",
8
+ negate: true
9
+ };
10
+ const negate = null !== rawOp.match("not_");
11
+ const operation = rawOp.replace("not_", "");
9
12
  return {
10
- field,
11
- operation: "eq",
12
- negate: true
13
+ field,
14
+ operation,
15
+ negate
13
16
  };
14
- }
15
- const negate = rawOp.match("not_") !== null;
16
- const operation = rawOp.replace("not_", "");
17
- return {
18
- field,
19
- operation,
20
- negate
21
- };
22
17
  };
18
+ export { extractWhereArgs };
23
19
 
24
20
  //# sourceMappingURL=extractWhereArgs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["extractWhereArgs","key","result","split","field","shift","rawOp","length","join","operation","negate","match","replace"],"sources":["extractWhereArgs.ts"],"sourcesContent":["interface ExtractWhereArgsResult {\n field: string;\n operation: string;\n negate: boolean;\n}\n\nexport const extractWhereArgs = (key: string): ExtractWhereArgsResult => {\n const result = key.split(\"_\");\n const field = result.shift() as string;\n const rawOp = result.length === 0 ? \"eq\" : result.join(\"_\");\n /**\n * When rawOp is not, it means it is equal negated so just return that.\n */\n if (rawOp === \"not\") {\n return {\n field,\n operation: \"eq\",\n negate: true\n };\n }\n const negate = rawOp.match(\"not_\") !== null;\n const operation = rawOp.replace(\"not_\", \"\");\n return {\n field,\n operation,\n negate\n };\n};\n"],"mappings":"AAMA,OAAO,MAAMA,gBAAgB,GAAIC,GAAW,IAA6B;EACrE,MAAMC,MAAM,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7B,MAAMC,KAAK,GAAGF,MAAM,CAACG,KAAK,CAAC,CAAW;EACtC,MAAMC,KAAK,GAAGJ,MAAM,CAACK,MAAM,KAAK,CAAC,GAAG,IAAI,GAAGL,MAAM,CAACM,IAAI,CAAC,GAAG,CAAC;EAC3D;AACJ;AACA;EACI,IAAIF,KAAK,KAAK,KAAK,EAAE;IACjB,OAAO;MACHF,KAAK;MACLK,SAAS,EAAE,IAAI;MACfC,MAAM,EAAE;IACZ,CAAC;EACL;EACA,MAAMA,MAAM,GAAGJ,KAAK,CAACK,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI;EAC3C,MAAMF,SAAS,GAAGH,KAAK,CAACM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAC3C,OAAO;IACHR,KAAK;IACLK,SAAS;IACTC;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/FilterUtil/extractWhereArgs.js","sources":["../../../src/feature/FilterUtil/extractWhereArgs.ts"],"sourcesContent":["interface ExtractWhereArgsResult {\n field: string;\n operation: string;\n negate: boolean;\n}\n\nexport const extractWhereArgs = (key: string): ExtractWhereArgsResult => {\n const result = key.split(\"_\");\n const field = result.shift() as string;\n const rawOp = result.length === 0 ? \"eq\" : result.join(\"_\");\n /**\n * When rawOp is not, it means it is equal negated so just return that.\n */\n if (rawOp === \"not\") {\n return {\n field,\n operation: \"eq\",\n negate: true\n };\n }\n const negate = rawOp.match(\"not_\") !== null;\n const operation = rawOp.replace(\"not_\", \"\");\n return {\n field,\n operation,\n negate\n };\n};\n"],"names":["extractWhereArgs","key","result","field","rawOp","negate","operation"],"mappings":"AAMO,MAAMA,mBAAmB,CAACC;IAC7B,MAAMC,SAASD,IAAI,KAAK,CAAC;IACzB,MAAME,QAAQD,OAAO,KAAK;IAC1B,MAAME,QAAQF,AAAkB,MAAlBA,OAAO,MAAM,GAAS,OAAOA,OAAO,IAAI,CAAC;IAIvD,IAAIE,AAAU,UAAVA,OACA,OAAO;QACHD;QACA,WAAW;QACX,QAAQ;IACZ;IAEJ,MAAME,SAASD,AAAwB,SAAxBA,MAAM,KAAK,CAAC;IAC3B,MAAME,YAAYF,MAAM,OAAO,CAAC,QAAQ;IACxC,OAAO;QACHD;QACAG;QACAD;IACJ;AACJ"}
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { FilterUtil } from "./FilterUtil.js";
3
- export const FilterUtilFeature = createFeature({
4
- name: "Db/DynamoDB/FilterUtilFeature",
5
- register: container => {
6
- container.register(FilterUtil);
7
- }
3
+ const FilterUtilFeature = createFeature({
4
+ name: "Db/DynamoDB/FilterUtilFeature",
5
+ register: (container)=>{
6
+ container.register(FilterUtil);
7
+ }
8
8
  });
9
+ export { FilterUtilFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","FilterUtil","FilterUtilFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { FilterUtil } from \"./FilterUtil.js\";\n\nexport const FilterUtilFeature = createFeature({\n name: \"Db/DynamoDB/FilterUtilFeature\",\n register: container => {\n container.register(FilterUtil);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,UAAU;AAEnB,OAAO,MAAMC,iBAAiB,GAAGF,aAAa,CAAC;EAC3CG,IAAI,EAAE,+BAA+B;EACrCC,QAAQ,EAAEC,SAAS,IAAI;IACnBA,SAAS,CAACD,QAAQ,CAACH,UAAU,CAAC;EAClC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/FilterUtil/feature.js","sources":["../../../src/feature/FilterUtil/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { FilterUtil } from \"./FilterUtil.js\";\n\nexport const FilterUtilFeature = createFeature({\n name: \"Db/DynamoDB/FilterUtilFeature\",\n register: container => {\n container.register(FilterUtil);\n }\n});\n"],"names":["FilterUtilFeature","createFeature","container","FilterUtil"],"mappings":";;AAGO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export { FilterUtil } from "./abstractions/FilterUtil.js";
2
2
  export { FilterUtilFeature } from "./feature.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,23 +1,27 @@
1
- import { ValueFilterRegistry as Abstraction } from "./abstractions/ValueFilterRegistry.js";
1
+ import { ValueFilterRegistry } from "./abstractions/ValueFilterRegistry.js";
2
2
  import { ValueFilter } from "./abstractions/ValueFilter.js";
3
3
  class ValueFilterRegistryImpl {
4
- constructor(filters) {
5
- this.filters = filters;
6
- }
7
- get(operation) {
8
- return this.filters.find(filter => {
9
- return filter.is(operation);
10
- });
11
- }
12
- getAll() {
13
- return this.filters;
14
- }
4
+ constructor(filters){
5
+ this.filters = filters;
6
+ }
7
+ get(operation) {
8
+ return this.filters.find((filter)=>filter.is(operation));
9
+ }
10
+ getAll() {
11
+ return this.filters;
12
+ }
15
13
  }
16
- export const ValueFilterRegistry = Abstraction.createImplementation({
17
- implementation: ValueFilterRegistryImpl,
18
- dependencies: [[ValueFilter, {
19
- multiple: true
20
- }]]
14
+ const ValueFilterRegistry_ValueFilterRegistry = ValueFilterRegistry.createImplementation({
15
+ implementation: ValueFilterRegistryImpl,
16
+ dependencies: [
17
+ [
18
+ ValueFilter,
19
+ {
20
+ multiple: true
21
+ }
22
+ ]
23
+ ]
21
24
  });
25
+ export { ValueFilterRegistry_ValueFilterRegistry as ValueFilterRegistry };
22
26
 
23
27
  //# sourceMappingURL=ValueFilterRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ValueFilterRegistry","Abstraction","ValueFilter","ValueFilterRegistryImpl","constructor","filters","get","operation","find","filter","is","getAll","createImplementation","implementation","dependencies","multiple"],"sources":["ValueFilterRegistry.ts"],"sourcesContent":["import { ValueFilterRegistry as Abstraction } from \"./abstractions/ValueFilterRegistry.js\";\nimport { ValueFilter } from \"./abstractions/ValueFilter.js\";\n\nclass ValueFilterRegistryImpl implements Abstraction.Interface {\n public constructor(private readonly filters: ValueFilter.Interface[]) {}\n\n public get(operation: string): ValueFilter.Interface | undefined {\n return this.filters.find(filter => {\n return filter.is(operation);\n });\n }\n\n public getAll(): ValueFilter.Interface[] {\n return this.filters;\n }\n}\n\nexport const ValueFilterRegistry = Abstraction.createImplementation({\n implementation: ValueFilterRegistryImpl,\n dependencies: [[ValueFilter, { multiple: true }]]\n});\n"],"mappings":"AAAA,SAASA,mBAAmB,IAAIC,WAAW;AAC3C,SAASC,WAAW;AAEpB,MAAMC,uBAAuB,CAAkC;EACpDC,WAAWA,CAAkBC,OAAgC,EAAE;IAAA,KAAlCA,OAAgC,GAAhCA,OAAgC;EAAG;EAEhEC,GAAGA,CAACC,SAAiB,EAAqC;IAC7D,OAAO,IAAI,CAACF,OAAO,CAACG,IAAI,CAACC,MAAM,IAAI;MAC/B,OAAOA,MAAM,CAACC,EAAE,CAACH,SAAS,CAAC;IAC/B,CAAC,CAAC;EACN;EAEOI,MAAMA,CAAA,EAA4B;IACrC,OAAO,IAAI,CAACN,OAAO;EACvB;AACJ;AAEA,OAAO,MAAML,mBAAmB,GAAGC,WAAW,CAACW,oBAAoB,CAAC;EAChEC,cAAc,EAAEV,uBAAuB;EACvCW,YAAY,EAAE,CAAC,CAACZ,WAAW,EAAE;IAAEa,QAAQ,EAAE;EAAK,CAAC,CAAC;AACpD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/ValueFilter/ValueFilterRegistry.js","sources":["../../../src/feature/ValueFilter/ValueFilterRegistry.ts"],"sourcesContent":["import { ValueFilterRegistry as Abstraction } from \"./abstractions/ValueFilterRegistry.js\";\nimport { ValueFilter } from \"./abstractions/ValueFilter.js\";\n\nclass ValueFilterRegistryImpl implements Abstraction.Interface {\n public constructor(private readonly filters: ValueFilter.Interface[]) {}\n\n public get(operation: string): ValueFilter.Interface | undefined {\n return this.filters.find(filter => {\n return filter.is(operation);\n });\n }\n\n public getAll(): ValueFilter.Interface[] {\n return this.filters;\n }\n}\n\nexport const ValueFilterRegistry = Abstraction.createImplementation({\n implementation: ValueFilterRegistryImpl,\n dependencies: [[ValueFilter, { multiple: true }]]\n});\n"],"names":["ValueFilterRegistryImpl","filters","operation","filter","ValueFilterRegistry","Abstraction","ValueFilter"],"mappings":";;AAGA,MAAMA;IACF,YAAoCC,OAAgC,CAAE;aAAlCA,OAAO,GAAPA;IAAmC;IAEhE,IAAIC,SAAiB,EAAqC;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAACC,CAAAA,SACdA,OAAO,EAAE,CAACD;IAEzB;IAEO,SAAkC;QACrC,OAAO,IAAI,CAAC,OAAO;IACvB;AACJ;AAEO,MAAME,0CAAsBC,oBAAAA,oBAAgC,CAAC;IAChE,gBAAgBL;IAChB,cAAc;QAAC;YAACM;YAAa;gBAAE,UAAU;YAAK;SAAE;KAAC;AACrD"}
@@ -1,4 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- export const ValueFilter = createAbstraction("Db/DynamoDB/ValueFilter");
2
+ const ValueFilter = createAbstraction("Db/DynamoDB/ValueFilter");
3
+ export { ValueFilter };
3
4
 
4
5
  //# sourceMappingURL=ValueFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ValueFilter"],"sources":["ValueFilter.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface IValueFilterCanUseParams<TValue = any, TCompareValue = any> {\n value: TValue;\n compareValue: TCompareValue;\n}\n\nexport interface IValueFilterMatchesParams<TValue = any, TCompareValue = any> {\n value: TValue;\n compareValue: TCompareValue;\n}\n\nexport type IValueFilterMatchesResult = boolean;\n\nexport interface IValueFilter<TValue = any, TCompareValue = any> {\n readonly operation: string;\n is(operation: string): boolean;\n canUse(params: IValueFilterCanUseParams): boolean;\n matches(params: IValueFilterMatchesParams<TValue, TCompareValue>): IValueFilterMatchesResult;\n}\n\nexport const ValueFilter = createAbstraction<IValueFilter>(\"Db/DynamoDB/ValueFilter\");\n\nexport namespace ValueFilter {\n export type Interface<TValue = any, TCompareValue = any> = IValueFilter<TValue, TCompareValue>;\n export type CanUseParams = IValueFilterCanUseParams;\n export type MatchesParams = IValueFilterMatchesParams;\n export type Result = IValueFilterMatchesResult;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAqBvD,OAAO,MAAMC,WAAW,GAAGD,iBAAiB,CAAe,yBAAyB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/ValueFilter/abstractions/ValueFilter.js","sources":["../../../../src/feature/ValueFilter/abstractions/ValueFilter.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface IValueFilterCanUseParams<TValue = any, TCompareValue = any> {\n value: TValue;\n compareValue: TCompareValue;\n}\n\nexport interface IValueFilterMatchesParams<TValue = any, TCompareValue = any> {\n value: TValue;\n compareValue: TCompareValue;\n}\n\nexport type IValueFilterMatchesResult = boolean;\n\nexport interface IValueFilter<TValue = any, TCompareValue = any> {\n readonly operation: string;\n is(operation: string): boolean;\n canUse(params: IValueFilterCanUseParams): boolean;\n matches(params: IValueFilterMatchesParams<TValue, TCompareValue>): IValueFilterMatchesResult;\n}\n\nexport const ValueFilter = createAbstraction<IValueFilter>(\"Db/DynamoDB/ValueFilter\");\n\nexport namespace ValueFilter {\n export type Interface<TValue = any, TCompareValue = any> = IValueFilter<TValue, TCompareValue>;\n export type CanUseParams = IValueFilterCanUseParams;\n export type MatchesParams = IValueFilterMatchesParams;\n export type Result = IValueFilterMatchesResult;\n}\n"],"names":["ValueFilter","createAbstraction"],"mappings":";AAqBO,MAAMA,cAAcC,kBAAgC"}
@@ -1,4 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- export const ValueFilterRegistry = createAbstraction("Db/DynamoDB/ValueFilterRegistry");
2
+ const ValueFilterRegistry = createAbstraction("Db/DynamoDB/ValueFilterRegistry");
3
+ export { ValueFilterRegistry };
3
4
 
4
5
  //# sourceMappingURL=ValueFilterRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ValueFilterRegistry"],"sources":["ValueFilterRegistry.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ValueFilter } from \"./ValueFilter.js\";\n\nexport interface IValueFilterRegistry {\n get(operation: string): ValueFilter.Interface | undefined;\n getAll(): ValueFilter.Interface[];\n}\n\nexport const ValueFilterRegistry = createAbstraction<IValueFilterRegistry>(\n \"Db/DynamoDB/ValueFilterRegistry\"\n);\n\nexport namespace ValueFilterRegistry {\n export type Interface = IValueFilterRegistry;\n export type Filter = ValueFilter.Interface;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAQvD,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAChD,iCACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/ValueFilter/abstractions/ValueFilterRegistry.js","sources":["../../../../src/feature/ValueFilter/abstractions/ValueFilterRegistry.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ValueFilter } from \"./ValueFilter.js\";\n\nexport interface IValueFilterRegistry {\n get(operation: string): ValueFilter.Interface | undefined;\n getAll(): ValueFilter.Interface[];\n}\n\nexport const ValueFilterRegistry = createAbstraction<IValueFilterRegistry>(\n \"Db/DynamoDB/ValueFilterRegistry\"\n);\n\nexport namespace ValueFilterRegistry {\n export type Interface = IValueFilterRegistry;\n export type Filter = ValueFilter.Interface;\n}\n"],"names":["ValueFilterRegistry","createAbstraction"],"mappings":";AAQO,MAAMA,sBAAsBC,kBAC/B"}
@@ -11,22 +11,23 @@ import { ContainsFilter } from "./filters/ContainsFilter.js";
11
11
  import { FuzzyFilter } from "./filters/FuzzyFilter.js";
12
12
  import { StartsWithFilter } from "./filters/StartsWithFilter.js";
13
13
  import { ValueFilterRegistry } from "./ValueFilterRegistry.js";
14
- export const ValueFilterFeature = createFeature({
15
- name: "Db/DynamoDB/ValueFilterFeature",
16
- register: container => {
17
- container.register(EqFilter);
18
- container.register(GtFilter);
19
- container.register(GteFilter);
20
- container.register(LtFilter);
21
- container.register(LteFilter);
22
- container.register(BetweenFilter);
23
- container.register(InFilter);
24
- container.register(AndInFilter);
25
- container.register(ContainsFilter);
26
- container.register(FuzzyFilter);
27
- container.register(StartsWithFilter);
28
- container.register(ValueFilterRegistry);
29
- }
14
+ const ValueFilterFeature = createFeature({
15
+ name: "Db/DynamoDB/ValueFilterFeature",
16
+ register: (container)=>{
17
+ container.register(EqFilter);
18
+ container.register(GtFilter);
19
+ container.register(GteFilter);
20
+ container.register(LtFilter);
21
+ container.register(LteFilter);
22
+ container.register(BetweenFilter);
23
+ container.register(InFilter);
24
+ container.register(AndInFilter);
25
+ container.register(ContainsFilter);
26
+ container.register(FuzzyFilter);
27
+ container.register(StartsWithFilter);
28
+ container.register(ValueFilterRegistry);
29
+ }
30
30
  });
31
+ export { ValueFilterFeature };
31
32
 
32
33
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","EqFilter","GtFilter","GteFilter","LtFilter","LteFilter","BetweenFilter","InFilter","AndInFilter","ContainsFilter","FuzzyFilter","StartsWithFilter","ValueFilterRegistry","ValueFilterFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { EqFilter } from \"./filters/EqFilter.js\";\nimport { GtFilter } from \"./filters/GtFilter.js\";\nimport { GteFilter } from \"./filters/GteFilter.js\";\nimport { LtFilter } from \"./filters/LtFilter.js\";\nimport { LteFilter } from \"./filters/LteFilter.js\";\nimport { BetweenFilter } from \"./filters/BetweenFilter.js\";\nimport { InFilter } from \"./filters/InFilter.js\";\nimport { AndInFilter } from \"./filters/AndInFilter.js\";\nimport { ContainsFilter } from \"./filters/ContainsFilter.js\";\nimport { FuzzyFilter } from \"./filters/FuzzyFilter.js\";\nimport { StartsWithFilter } from \"./filters/StartsWithFilter.js\";\nimport { ValueFilterRegistry } from \"./ValueFilterRegistry.js\";\n\nexport const ValueFilterFeature = createFeature({\n name: \"Db/DynamoDB/ValueFilterFeature\",\n register: container => {\n container.register(EqFilter);\n container.register(GtFilter);\n container.register(GteFilter);\n container.register(LtFilter);\n container.register(LteFilter);\n container.register(BetweenFilter);\n container.register(InFilter);\n container.register(AndInFilter);\n container.register(ContainsFilter);\n container.register(FuzzyFilter);\n container.register(StartsWithFilter);\n container.register(ValueFilterRegistry);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,QAAQ;AACjB,SAASC,QAAQ;AACjB,SAASC,SAAS;AAClB,SAASC,QAAQ;AACjB,SAASC,SAAS;AAClB,SAASC,aAAa;AACtB,SAASC,QAAQ;AACjB,SAASC,WAAW;AACpB,SAASC,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,kBAAkB,GAAGb,aAAa,CAAC;EAC5Cc,IAAI,EAAE,gCAAgC;EACtCC,QAAQ,EAAEC,SAAS,IAAI;IACnBA,SAAS,CAACD,QAAQ,CAACd,QAAQ,CAAC;IAC5Be,SAAS,CAACD,QAAQ,CAACb,QAAQ,CAAC;IAC5Bc,SAAS,CAACD,QAAQ,CAACZ,SAAS,CAAC;IAC7Ba,SAAS,CAACD,QAAQ,CAACX,QAAQ,CAAC;IAC5BY,SAAS,CAACD,QAAQ,CAACV,SAAS,CAAC;IAC7BW,SAAS,CAACD,QAAQ,CAACT,aAAa,CAAC;IACjCU,SAAS,CAACD,QAAQ,CAACR,QAAQ,CAAC;IAC5BS,SAAS,CAACD,QAAQ,CAACP,WAAW,CAAC;IAC/BQ,SAAS,CAACD,QAAQ,CAACN,cAAc,CAAC;IAClCO,SAAS,CAACD,QAAQ,CAACL,WAAW,CAAC;IAC/BM,SAAS,CAACD,QAAQ,CAACJ,gBAAgB,CAAC;IACpCK,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC;EAC3C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/ValueFilter/feature.js","sources":["../../../src/feature/ValueFilter/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { EqFilter } from \"./filters/EqFilter.js\";\nimport { GtFilter } from \"./filters/GtFilter.js\";\nimport { GteFilter } from \"./filters/GteFilter.js\";\nimport { LtFilter } from \"./filters/LtFilter.js\";\nimport { LteFilter } from \"./filters/LteFilter.js\";\nimport { BetweenFilter } from \"./filters/BetweenFilter.js\";\nimport { InFilter } from \"./filters/InFilter.js\";\nimport { AndInFilter } from \"./filters/AndInFilter.js\";\nimport { ContainsFilter } from \"./filters/ContainsFilter.js\";\nimport { FuzzyFilter } from \"./filters/FuzzyFilter.js\";\nimport { StartsWithFilter } from \"./filters/StartsWithFilter.js\";\nimport { ValueFilterRegistry } from \"./ValueFilterRegistry.js\";\n\nexport const ValueFilterFeature = createFeature({\n name: \"Db/DynamoDB/ValueFilterFeature\",\n register: container => {\n container.register(EqFilter);\n container.register(GtFilter);\n container.register(GteFilter);\n container.register(LtFilter);\n container.register(LteFilter);\n container.register(BetweenFilter);\n container.register(InFilter);\n container.register(AndInFilter);\n container.register(ContainsFilter);\n container.register(FuzzyFilter);\n container.register(StartsWithFilter);\n container.register(ValueFilterRegistry);\n }\n});\n"],"names":["ValueFilterFeature","createFeature","container","EqFilter","GtFilter","GteFilter","LtFilter","LteFilter","BetweenFilter","InFilter","AndInFilter","ContainsFilter","FuzzyFilter","StartsWithFilter","ValueFilterRegistry"],"mappings":";;;;;;;;;;;;;AAcO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;QACnBL,UAAU,QAAQ,CAACM;QACnBN,UAAU,QAAQ,CAACO;QACnBP,UAAU,QAAQ,CAACQ;QACnBR,UAAU,QAAQ,CAACS;QACnBT,UAAU,QAAQ,CAACU;QACnBV,UAAU,QAAQ,CAACW;QACnBX,UAAU,QAAQ,CAACY;IACvB;AACJ"}
@@ -1,32 +1,28 @@
1
1
  import { WebinyError } from "@webiny/error";
2
2
  import { ValueFilter } from "../abstractions/ValueFilter.js";
3
3
  class AndInFilterImpl {
4
- operation = "and_in";
5
- is(operation) {
6
- return this.operation === operation;
7
- }
8
- canUse() {
9
- return true;
10
- }
11
- matches({
12
- value,
13
- compareValue
14
- }) {
15
- if (!compareValue || Array.isArray(compareValue) === false) {
16
- throw new WebinyError(`The value given as "compareValue" must be an array!`, "COMPARE_VALUE_ERROR", {
17
- value,
18
- compareValue
19
- });
4
+ is(operation) {
5
+ return this.operation === operation;
20
6
  }
21
- if (Array.isArray(value) === true) {
22
- return compareValue.every(c => value.includes(c));
7
+ canUse() {
8
+ return true;
9
+ }
10
+ matches({ value, compareValue }) {
11
+ if (!compareValue || false === Array.isArray(compareValue)) throw new WebinyError('The value given as "compareValue" must be an array!', "COMPARE_VALUE_ERROR", {
12
+ value,
13
+ compareValue
14
+ });
15
+ if (true === Array.isArray(value)) return compareValue.every((c)=>value.includes(c));
16
+ return compareValue.includes(value);
17
+ }
18
+ constructor(){
19
+ this.operation = "and_in";
23
20
  }
24
- return compareValue.includes(value);
25
- }
26
21
  }
27
- export const AndInFilter = ValueFilter.createImplementation({
28
- implementation: AndInFilterImpl,
29
- dependencies: []
22
+ const AndInFilter = ValueFilter.createImplementation({
23
+ implementation: AndInFilterImpl,
24
+ dependencies: []
30
25
  });
26
+ export { AndInFilter };
31
27
 
32
28
  //# sourceMappingURL=AndInFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebinyError","ValueFilter","AndInFilterImpl","operation","is","canUse","matches","value","compareValue","Array","isArray","every","c","includes","AndInFilter","createImplementation","implementation","dependencies"],"sources":["AndInFilter.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { ValueFilter } from \"../abstractions/ValueFilter.js\";\n\nclass AndInFilterImpl implements ValueFilter.Interface {\n public readonly operation = \"and_in\";\n\n public is(operation: string): boolean {\n return this.operation === operation;\n }\n\n public canUse(): boolean {\n return true;\n }\n\n public matches({ value, compareValue }: ValueFilter.MatchesParams): ValueFilter.Result {\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: any) => value.includes(c));\n }\n return compareValue.includes(value);\n }\n}\n\nexport const AndInFilter = ValueFilter.createImplementation({\n implementation: AndInFilterImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,WAAW;AAEpB,MAAMC,eAAe,CAAkC;EACnCC,SAAS,GAAG,QAAQ;EAE7BC,EAAEA,CAACD,SAAiB,EAAW;IAClC,OAAO,IAAI,CAACA,SAAS,KAAKA,SAAS;EACvC;EAEOE,MAAMA,CAAA,EAAY;IACrB,OAAO,IAAI;EACf;EAEOC,OAAOA,CAAC;IAAEC,KAAK;IAAEC;EAAwC,CAAC,EAAsB;IACnF,IAAI,CAACA,YAAY,IAAIC,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,KAAK,KAAK,EAAE;MACxD,MAAM,IAAIR,WAAW,CACjB,qDAAqD,EACrD,qBAAqB,EACrB;QACIO,KAAK;QACLC;MACJ,CACJ,CAAC;IACL;IACA,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,KAAK,IAAI,EAAE;MAC/B,OAAOC,YAAY,CAACG,KAAK,CAAEC,CAAM,IAAKL,KAAK,CAACM,QAAQ,CAACD,CAAC,CAAC,CAAC;IAC5D;IACA,OAAOJ,YAAY,CAACK,QAAQ,CAACN,KAAK,CAAC;EACvC;AACJ;AAEA,OAAO,MAAMO,WAAW,GAAGb,WAAW,CAACc,oBAAoB,CAAC;EACxDC,cAAc,EAAEd,eAAe;EAC/Be,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"feature/ValueFilter/filters/AndInFilter.js","sources":["../../../../src/feature/ValueFilter/filters/AndInFilter.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { ValueFilter } from \"../abstractions/ValueFilter.js\";\n\nclass AndInFilterImpl implements ValueFilter.Interface {\n public readonly operation = \"and_in\";\n\n public is(operation: string): boolean {\n return this.operation === operation;\n }\n\n public canUse(): boolean {\n return true;\n }\n\n public matches({ value, compareValue }: ValueFilter.MatchesParams): ValueFilter.Result {\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: any) => value.includes(c));\n }\n return compareValue.includes(value);\n }\n}\n\nexport const AndInFilter = ValueFilter.createImplementation({\n implementation: AndInFilterImpl,\n dependencies: []\n});\n"],"names":["AndInFilterImpl","operation","value","compareValue","Array","WebinyError","c","AndInFilter","ValueFilter"],"mappings":";;AAGA,MAAMA;IAGK,GAAGC,SAAiB,EAAW;QAClC,OAAO,IAAI,CAAC,SAAS,KAAKA;IAC9B;IAEO,SAAkB;QACrB,OAAO;IACX;IAEO,QAAQ,EAAEC,KAAK,EAAEC,YAAY,EAA6B,EAAsB;QACnF,IAAI,CAACA,gBAAgBC,AAAgC,UAAhCA,MAAM,OAAO,CAACD,eAC/B,MAAM,IAAIE,YACN,uDACA,uBACA;YACIH;YACAC;QACJ;QAGR,IAAIC,AAAyB,SAAzBA,MAAM,OAAO,CAACF,QACd,OAAOC,aAAa,KAAK,CAAC,CAACG,IAAWJ,MAAM,QAAQ,CAACI;QAEzD,OAAOH,aAAa,QAAQ,CAACD;IACjC;;aAzBgB,SAAS,GAAG;;AA0BhC;AAEO,MAAMK,cAAcC,YAAY,oBAAoB,CAAC;IACxD,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}