@wix/wix-data-items-common 1.0.52

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 (228) hide show
  1. package/README.md +8 -0
  2. package/dist/cjs/api/ApiClient.js +186 -0
  3. package/dist/cjs/api/ApiClient.js.map +1 -0
  4. package/dist/cjs/api/QueryBase.js +200 -0
  5. package/dist/cjs/api/QueryBase.js.map +1 -0
  6. package/dist/cjs/api/QueryValidator.js +36 -0
  7. package/dist/cjs/api/QueryValidator.js.map +1 -0
  8. package/dist/cjs/api/WixDataAggregate.js +4 -0
  9. package/dist/cjs/api/WixDataAggregate.js.map +1 -0
  10. package/dist/cjs/api/WixDataApi.js +800 -0
  11. package/dist/cjs/api/WixDataApi.js.map +1 -0
  12. package/dist/cjs/api/WixDataFilter.js +2 -0
  13. package/dist/cjs/api/WixDataFilter.js.map +1 -0
  14. package/dist/cjs/api/WixDataPatch.js +139 -0
  15. package/dist/cjs/api/WixDataPatch.js.map +1 -0
  16. package/dist/cjs/api/WixDataQuery.js +4 -0
  17. package/dist/cjs/api/WixDataQuery.js.map +1 -0
  18. package/dist/cjs/api/WixDataResult.js +4 -0
  19. package/dist/cjs/api/WixDataResult.js.map +1 -0
  20. package/dist/cjs/api/common.js +14 -0
  21. package/dist/cjs/api/common.js.map +1 -0
  22. package/dist/cjs/api/errors.js +67 -0
  23. package/dist/cjs/api/errors.js.map +1 -0
  24. package/dist/cjs/api/impl/WixDataAggregateImpl.js +193 -0
  25. package/dist/cjs/api/impl/WixDataAggregateImpl.js.map +1 -0
  26. package/dist/cjs/api/impl/WixDataQueryImpl.js +116 -0
  27. package/dist/cjs/api/impl/WixDataQueryImpl.js.map +1 -0
  28. package/dist/cjs/api/impl/WixDataResultImpl.js +111 -0
  29. package/dist/cjs/api/impl/WixDataResultImpl.js.map +1 -0
  30. package/dist/cjs/api/index.js +32 -0
  31. package/dist/cjs/api/index.js.map +1 -0
  32. package/dist/cjs/api/types.js +2 -0
  33. package/dist/cjs/api/types.js.map +1 -0
  34. package/dist/cjs/errors/base-validator.js +92 -0
  35. package/dist/cjs/errors/base-validator.js.map +1 -0
  36. package/dist/cjs/errors/errors.js +155 -0
  37. package/dist/cjs/errors/errors.js.map +1 -0
  38. package/dist/cjs/errors/index.js +15 -0
  39. package/dist/cjs/errors/index.js.map +1 -0
  40. package/dist/cjs/errors/validations.js +91 -0
  41. package/dist/cjs/errors/validations.js.map +1 -0
  42. package/dist/cjs/external-types.d.js +2 -0
  43. package/dist/cjs/external-types.d.js.map +1 -0
  44. package/dist/cjs/filter/FilterTree.js +154 -0
  45. package/dist/cjs/filter/FilterTree.js.map +1 -0
  46. package/dist/cjs/filter/WithFilter.js +2 -0
  47. package/dist/cjs/filter/WithFilter.js.map +1 -0
  48. package/dist/cjs/filter/filterBuilder.js +53 -0
  49. package/dist/cjs/filter/filterBuilder.js.map +1 -0
  50. package/dist/cjs/filter/filterMixin.js +144 -0
  51. package/dist/cjs/filter/filterMixin.js.map +1 -0
  52. package/dist/cjs/filter/index.js +16 -0
  53. package/dist/cjs/filter/index.js.map +1 -0
  54. package/dist/cjs/index.js +120 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/sort/sortMixin.js +79 -0
  57. package/dist/cjs/sort/sortMixin.js.map +1 -0
  58. package/dist/cjs/test-types.d.js +2 -0
  59. package/dist/cjs/test-types.d.js.map +1 -0
  60. package/dist/cjs/types/api.js +4 -0
  61. package/dist/cjs/types/api.js.map +1 -0
  62. package/dist/cjs/types/data-item-types.js +46 -0
  63. package/dist/cjs/types/data-item-types.js.map +1 -0
  64. package/dist/cjs/types/error.js +2 -0
  65. package/dist/cjs/types/error.js.map +1 -0
  66. package/dist/cjs/types/index.js +16 -0
  67. package/dist/cjs/types/index.js.map +1 -0
  68. package/dist/cjs/utils/base64url.js +51 -0
  69. package/dist/cjs/utils/base64url.js.map +1 -0
  70. package/dist/cjs/utils/clone.js +21 -0
  71. package/dist/cjs/utils/clone.js.map +1 -0
  72. package/dist/cjs/utils/codec.js +64 -0
  73. package/dist/cjs/utils/codec.js.map +1 -0
  74. package/dist/cjs/utils/field-key-utils.js +18 -0
  75. package/dist/cjs/utils/field-key-utils.js.map +1 -0
  76. package/dist/cjs/utils/index.js +25 -0
  77. package/dist/cjs/utils/index.js.map +1 -0
  78. package/dist/cjs/utils/type-utils.js +54 -0
  79. package/dist/cjs/utils/type-utils.js.map +1 -0
  80. package/dist/esm/api/ApiClient.js +174 -0
  81. package/dist/esm/api/ApiClient.js.map +1 -0
  82. package/dist/esm/api/QueryBase.js +117 -0
  83. package/dist/esm/api/QueryBase.js.map +1 -0
  84. package/dist/esm/api/QueryValidator.js +32 -0
  85. package/dist/esm/api/QueryValidator.js.map +1 -0
  86. package/dist/esm/api/WixDataAggregate.js +2 -0
  87. package/dist/esm/api/WixDataAggregate.js.map +1 -0
  88. package/dist/esm/api/WixDataApi.js +829 -0
  89. package/dist/esm/api/WixDataApi.js.map +1 -0
  90. package/dist/esm/api/WixDataFilter.js +2 -0
  91. package/dist/esm/api/WixDataFilter.js.map +1 -0
  92. package/dist/esm/api/WixDataPatch.js +134 -0
  93. package/dist/esm/api/WixDataPatch.js.map +1 -0
  94. package/dist/esm/api/WixDataQuery.js +2 -0
  95. package/dist/esm/api/WixDataQuery.js.map +1 -0
  96. package/dist/esm/api/WixDataResult.js +2 -0
  97. package/dist/esm/api/WixDataResult.js.map +1 -0
  98. package/dist/esm/api/common.js +10 -0
  99. package/dist/esm/api/common.js.map +1 -0
  100. package/dist/esm/api/errors.js +52 -0
  101. package/dist/esm/api/errors.js.map +1 -0
  102. package/dist/esm/api/impl/WixDataAggregateImpl.js +214 -0
  103. package/dist/esm/api/impl/WixDataAggregateImpl.js.map +1 -0
  104. package/dist/esm/api/impl/WixDataQueryImpl.js +119 -0
  105. package/dist/esm/api/impl/WixDataQueryImpl.js.map +1 -0
  106. package/dist/esm/api/impl/WixDataResultImpl.js +100 -0
  107. package/dist/esm/api/impl/WixDataResultImpl.js.map +1 -0
  108. package/dist/esm/api/index.js +5 -0
  109. package/dist/esm/api/index.js.map +1 -0
  110. package/dist/esm/api/types.js +2 -0
  111. package/dist/esm/api/types.js.map +1 -0
  112. package/dist/esm/errors/base-validator.js +71 -0
  113. package/dist/esm/errors/base-validator.js.map +1 -0
  114. package/dist/esm/errors/errors.js +147 -0
  115. package/dist/esm/errors/errors.js.map +1 -0
  116. package/dist/esm/errors/index.js +5 -0
  117. package/dist/esm/errors/index.js.map +1 -0
  118. package/dist/esm/errors/validations.js +114 -0
  119. package/dist/esm/errors/validations.js.map +1 -0
  120. package/dist/esm/filter/FilterTree.js +148 -0
  121. package/dist/esm/filter/FilterTree.js.map +1 -0
  122. package/dist/esm/filter/WithFilter.js +2 -0
  123. package/dist/esm/filter/WithFilter.js.map +1 -0
  124. package/dist/esm/filter/filterBuilder.js +43 -0
  125. package/dist/esm/filter/filterBuilder.js.map +1 -0
  126. package/dist/esm/filter/filterMixin.js +137 -0
  127. package/dist/esm/filter/filterMixin.js.map +1 -0
  128. package/dist/esm/filter/index.js +5 -0
  129. package/dist/esm/filter/index.js.map +1 -0
  130. package/dist/esm/index.js +9 -0
  131. package/dist/esm/index.js.map +1 -0
  132. package/dist/esm/sort/sortMixin.js +74 -0
  133. package/dist/esm/sort/sortMixin.js.map +1 -0
  134. package/dist/esm/types/api.js +2 -0
  135. package/dist/esm/types/api.js.map +1 -0
  136. package/dist/esm/types/data-item-types.js +35 -0
  137. package/dist/esm/types/data-item-types.js.map +1 -0
  138. package/dist/esm/types/error.js +2 -0
  139. package/dist/esm/types/error.js.map +1 -0
  140. package/dist/esm/types/index.js +3 -0
  141. package/dist/esm/types/index.js.map +1 -0
  142. package/dist/esm/utils/base64url.js +57 -0
  143. package/dist/esm/utils/base64url.js.map +1 -0
  144. package/dist/esm/utils/clone.js +18 -0
  145. package/dist/esm/utils/clone.js.map +1 -0
  146. package/dist/esm/utils/codec.js +60 -0
  147. package/dist/esm/utils/codec.js.map +1 -0
  148. package/dist/esm/utils/field-key-utils.js +14 -0
  149. package/dist/esm/utils/field-key-utils.js.map +1 -0
  150. package/dist/esm/utils/index.js +7 -0
  151. package/dist/esm/utils/index.js.map +1 -0
  152. package/dist/esm/utils/type-utils.js +40 -0
  153. package/dist/esm/utils/type-utils.js.map +1 -0
  154. package/dist/types/api/ApiClient.d.ts +30 -0
  155. package/dist/types/api/ApiClient.d.ts.map +1 -0
  156. package/dist/types/api/QueryBase.d.ts +111 -0
  157. package/dist/types/api/QueryBase.d.ts.map +1 -0
  158. package/dist/types/api/QueryValidator.d.ts +12 -0
  159. package/dist/types/api/QueryValidator.d.ts.map +1 -0
  160. package/dist/types/api/WixDataAggregate.d.ts +320 -0
  161. package/dist/types/api/WixDataAggregate.d.ts.map +1 -0
  162. package/dist/types/api/WixDataApi.d.ts +52 -0
  163. package/dist/types/api/WixDataApi.d.ts.map +1 -0
  164. package/dist/types/api/WixDataFilter.d.ts +424 -0
  165. package/dist/types/api/WixDataFilter.d.ts.map +1 -0
  166. package/dist/types/api/WixDataPatch.d.ts +80 -0
  167. package/dist/types/api/WixDataPatch.d.ts.map +1 -0
  168. package/dist/types/api/WixDataQuery.d.ts +702 -0
  169. package/dist/types/api/WixDataQuery.d.ts.map +1 -0
  170. package/dist/types/api/WixDataResult.d.ts +144 -0
  171. package/dist/types/api/WixDataResult.d.ts.map +1 -0
  172. package/dist/types/api/common.d.ts +3 -0
  173. package/dist/types/api/common.d.ts.map +1 -0
  174. package/dist/types/api/errors.d.ts +12 -0
  175. package/dist/types/api/errors.d.ts.map +1 -0
  176. package/dist/types/api/impl/WixDataAggregateImpl.d.ts +76 -0
  177. package/dist/types/api/impl/WixDataAggregateImpl.d.ts.map +1 -0
  178. package/dist/types/api/impl/WixDataQueryImpl.d.ts +72 -0
  179. package/dist/types/api/impl/WixDataQueryImpl.d.ts.map +1 -0
  180. package/dist/types/api/impl/WixDataResultImpl.d.ts +34 -0
  181. package/dist/types/api/impl/WixDataResultImpl.d.ts.map +1 -0
  182. package/dist/types/api/index.d.ts +11 -0
  183. package/dist/types/api/index.d.ts.map +1 -0
  184. package/dist/types/api/types.d.ts +163 -0
  185. package/dist/types/api/types.d.ts.map +1 -0
  186. package/dist/types/errors/base-validator.d.ts +28 -0
  187. package/dist/types/errors/base-validator.d.ts.map +1 -0
  188. package/dist/types/errors/errors.d.ts +108 -0
  189. package/dist/types/errors/errors.d.ts.map +1 -0
  190. package/dist/types/errors/index.d.ts +5 -0
  191. package/dist/types/errors/index.d.ts.map +1 -0
  192. package/dist/types/errors/validations.d.ts +25 -0
  193. package/dist/types/errors/validations.d.ts.map +1 -0
  194. package/dist/types/filter/FilterTree.d.ts +56 -0
  195. package/dist/types/filter/FilterTree.d.ts.map +1 -0
  196. package/dist/types/filter/WithFilter.d.ts +470 -0
  197. package/dist/types/filter/WithFilter.d.ts.map +1 -0
  198. package/dist/types/filter/filterBuilder.d.ts +105 -0
  199. package/dist/types/filter/filterBuilder.d.ts.map +1 -0
  200. package/dist/types/filter/filterMixin.d.ts +61 -0
  201. package/dist/types/filter/filterMixin.d.ts.map +1 -0
  202. package/dist/types/filter/index.d.ts +8 -0
  203. package/dist/types/filter/index.d.ts.map +1 -0
  204. package/dist/types/index.d.ts +13 -0
  205. package/dist/types/index.d.ts.map +1 -0
  206. package/dist/types/sort/sortMixin.d.ts +46 -0
  207. package/dist/types/sort/sortMixin.d.ts.map +1 -0
  208. package/dist/types/types/api.d.ts +36 -0
  209. package/dist/types/types/api.d.ts.map +1 -0
  210. package/dist/types/types/data-item-types.d.ts +1448 -0
  211. package/dist/types/types/data-item-types.d.ts.map +1 -0
  212. package/dist/types/types/error.d.ts +23 -0
  213. package/dist/types/types/error.d.ts.map +1 -0
  214. package/dist/types/types/index.d.ts +4 -0
  215. package/dist/types/types/index.d.ts.map +1 -0
  216. package/dist/types/utils/base64url.d.ts +2 -0
  217. package/dist/types/utils/base64url.d.ts.map +1 -0
  218. package/dist/types/utils/clone.d.ts +2 -0
  219. package/dist/types/utils/clone.d.ts.map +1 -0
  220. package/dist/types/utils/codec.d.ts +3 -0
  221. package/dist/types/utils/codec.d.ts.map +1 -0
  222. package/dist/types/utils/field-key-utils.d.ts +2 -0
  223. package/dist/types/utils/field-key-utils.d.ts.map +1 -0
  224. package/dist/types/utils/index.d.ts +7 -0
  225. package/dist/types/utils/index.d.ts.map +1 -0
  226. package/dist/types/utils/type-utils.d.ts +11 -0
  227. package/dist/types/utils/type-utils.d.ts.map +1 -0
  228. package/package.json +89 -0
@@ -0,0 +1,148 @@
1
+ import { messages, validationError } from '../errors/errors';
2
+ import { isArray, isObject, isString, isDate, isNumber, isBoolean, } from '../utils/type-utils';
3
+ const { filterTreeValidations: errors } = messages;
4
+ export function validateFilterOrThrow(tree) {
5
+ const failures = validateFilterTree(tree);
6
+ if (failures.length === 0) {
7
+ return true;
8
+ }
9
+ throw validationError(`Invalid filter:${failures.join('\n')}`);
10
+ }
11
+ export function validateFilterTree(tree, path) {
12
+ if (!isObject(tree)) {
13
+ return [errors.objectType('Filter Model', tree)];
14
+ }
15
+ const collectedErrors = [];
16
+ for (const key of Object.keys(tree)) {
17
+ const value = tree[key];
18
+ const at = join(path, key);
19
+ switch (key) {
20
+ case '$and':
21
+ case '$or':
22
+ if (!isArray(value)) {
23
+ collectedErrors.push(errors.arrayType(at, value));
24
+ }
25
+ if (isArray(value)) {
26
+ collectedErrors.push(...value.flatMap((x) => validateFilterTree(x, at)));
27
+ }
28
+ break;
29
+ case '$not':
30
+ if (!isArray(value)) {
31
+ collectedErrors.push(...validateFilterTree(value, at));
32
+ }
33
+ if (isArray(value) && value.length !== 1) {
34
+ collectedErrors.push(errors.arrayLength(at, 1, value));
35
+ }
36
+ if (isArray(value) && value.length > 0) {
37
+ collectedErrors.push(...validateFilterTree(value[0], at));
38
+ }
39
+ break;
40
+ default:
41
+ if (key.startsWith('$')) {
42
+ collectedErrors.push(`Unexpected operator ${at}`);
43
+ }
44
+ else {
45
+ collectedErrors.push(...validateOperatorOrValue(value, at));
46
+ }
47
+ }
48
+ }
49
+ return collectedErrors;
50
+ }
51
+ function validateOperatorOrValue(value, path) {
52
+ if (isObject(value) &&
53
+ !isComparableValue(value) &&
54
+ Object.keys(value).some((op) => op.startsWith('$'))) {
55
+ return validateOperator(value, path);
56
+ }
57
+ return [];
58
+ }
59
+ function validateOperator(operator, path) {
60
+ if (!isObject(operator)) {
61
+ return [errors.objectType(path, operator)];
62
+ }
63
+ const collectedErrors = [];
64
+ for (const key of Object.keys(operator)) {
65
+ const at = join(path, key);
66
+ const value = operator[key];
67
+ switch (key) {
68
+ case '$eq':
69
+ case '$ne':
70
+ break;
71
+ case '$gt':
72
+ case '$gte':
73
+ case '$lt':
74
+ case '$lte':
75
+ if (!isComparableValue(value)) {
76
+ collectedErrors.push(errors.comparisonOperatorType(at, value));
77
+ }
78
+ break;
79
+ case '$startsWith':
80
+ case '$endsWith':
81
+ case '$contains':
82
+ if (!isString(value)) {
83
+ collectedErrors.push(errors.stringOperatorType(at, value));
84
+ }
85
+ break;
86
+ case '$exists':
87
+ if (!isBoolean(value)) {
88
+ collectedErrors.push(`${at} should be a Boolean`);
89
+ }
90
+ break;
91
+ case '$hasSome':
92
+ case '$hasAll':
93
+ case '$in':
94
+ if (!isArray(value)) {
95
+ collectedErrors.push(errors.arrayType(at, value));
96
+ }
97
+ if (isArray(value) && !value.every(isComparableValue)) {
98
+ collectedErrors.push(errors.setOperatorItems(at, value));
99
+ }
100
+ break;
101
+ case '$matches':
102
+ if (!isObject(value)) {
103
+ collectedErrors.push(errors.objectType(at, value));
104
+ }
105
+ if (isObject(value) && value.ignoreCase !== true) {
106
+ collectedErrors.push(errors.matchesOperatorIgnoreCase(value));
107
+ }
108
+ if (isObject(value) && !isArray(value.spec)) {
109
+ collectedErrors.push(errors.arrayType(`${at}.spec`, value.spec));
110
+ }
111
+ if (isArray(value?.spec)) {
112
+ const validSpec = (spec) => {
113
+ if (!isObject(spec)) {
114
+ return false;
115
+ }
116
+ if (spec.type === 'anyOf' && spec.value === ' \t\n-') {
117
+ return true;
118
+ }
119
+ return spec.type === 'literal' && isString(spec.value);
120
+ };
121
+ const invalid = value.spec.find((x) => !validSpec(x));
122
+ if (invalid !== undefined) {
123
+ collectedErrors.push(errors.matchesOperatorSpecItems(invalid));
124
+ }
125
+ }
126
+ break;
127
+ case '$regex':
128
+ collectedErrors.push(errors.regexNotAllowed());
129
+ break;
130
+ case '$not':
131
+ collectedErrors.push(...validateOperator(value, at));
132
+ break;
133
+ default:
134
+ collectedErrors.push(`Unknown operator ${at}`);
135
+ }
136
+ }
137
+ return collectedErrors;
138
+ }
139
+ function isComparableValue(x) {
140
+ if (isDate(x) || isString(x) || isNumber(x)) {
141
+ return true;
142
+ }
143
+ return isObject(x) && isString(x.$date) && Object.keys(x).length === 1;
144
+ }
145
+ function join(prefix, next) {
146
+ return prefix === undefined ? next : `${prefix}.${next}`;
147
+ }
148
+ //# sourceMappingURL=FilterTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterTree.js","sourceRoot":"","sources":["../../../src/filter/FilterTree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WithFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WithFilter.js","sourceRoot":"","sources":["../../../src/filter/WithFilter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import filterMixin from './filterMixin';
2
+ export class FilterBuilder extends filterMixin() {
3
+ get constructorName() {
4
+ return 'FilterBuilder';
5
+ }
6
+ _build() {
7
+ return this.getFilterModel();
8
+ }
9
+ }
10
+ export class PlatformizedFilterBuilder extends filterMixin() {
11
+ in(...args) {
12
+ return this._AndSetOperand('$in', '.in', args);
13
+ }
14
+ exists(...args) {
15
+ return this._binaryAnd('$exists', '.exists', args);
16
+ }
17
+ gte(field, value) {
18
+ return this.ge(field, value);
19
+ }
20
+ lte(field, value) {
21
+ return this.le(field, value);
22
+ }
23
+ build() {
24
+ return this.getFilterModel();
25
+ }
26
+ hasAnyFilter() {
27
+ if (this.filterTree === null || this.filterTree === undefined) {
28
+ return false;
29
+ }
30
+ if (!Object.keys(this.filterTree).every((x) => x === '$and')) {
31
+ return false;
32
+ }
33
+ return (this.filterTree?.$and?.length ?? 0) > 0;
34
+ }
35
+ }
36
+ export function platformizedFilterBuilder(options = {}) {
37
+ return new PlatformizedFilterBuilder(options);
38
+ }
39
+ export function filterBuilderFactory() {
40
+ return new FilterBuilder({});
41
+ }
42
+ export default filterBuilderFactory;
43
+ //# sourceMappingURL=filterBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterBuilder.js","sourceRoot":"","sources":["../../../src/filter/filterBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAA;AAGvC,MAAM,OAAO,aAAc,SAAQ,WAAW,EAAE;IAC9C,IAAI,eAAe;QACjB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,yBACX,SAAQ,WAAW,EAAE;IAGrB,EAAE,CAAC,GAAG,IAAW;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,GAAG,IAAW;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,GAAG,CAAC,KAAU,EAAE,KAAU;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,KAAU,EAAE,KAAU;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YAC7D,OAAO,KAAK,CAAA;SACb;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAA;SACb;QACD,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAO,GAAG,EAAE;IACpD,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;AAC9B,CAAC;AAED,eAAe,oBAAoB,CAAA"}
@@ -0,0 +1,137 @@
1
+ import { typeForDisplay, isDate, isString, isNumber } from '../utils/type-utils';
2
+ import { AggregatingValidator } from '../errors/base-validator';
3
+ import { messages, validationError } from '../errors/errors';
4
+ import { filterMixin as genericFilterMixin, } from '@wix/filter-builder';
5
+ const filterMixin = (Base = class {
6
+ }) => class extends genericFilterMixin(Base) {
7
+ constructor(origin) {
8
+ super(origin);
9
+ this.validateCollectionName = origin?.validateCollectionName ?? true;
10
+ }
11
+ or(otherQuery) {
12
+ const orQuery = super.or.apply(this, arguments);
13
+ return this._validateCollectionName(orQuery, otherQuery, '.or');
14
+ }
15
+ and(otherQuery) {
16
+ const andQuery = super.and.apply(this, arguments);
17
+ return this._validateCollectionName(andQuery, otherQuery, '.and');
18
+ }
19
+ not(otherQuery) {
20
+ const notQuery = super.not.apply(this, arguments);
21
+ return this._validateCollectionName(notQuery, otherQuery, '.not');
22
+ }
23
+ _validateCollectionName(query, originalQuery, operationName) {
24
+ if (query.invalidArguments.length > 0 || !this.validateCollectionName) {
25
+ return query;
26
+ }
27
+ const withCollectionName = withCollectionNameIfUnset(originalQuery, this.collectionName);
28
+ const [newInvalidArguments, valid] = new FilterValidator(operationName, query.invalidArguments, this.constructor, this.constructorName ?? this.constructor.name)
29
+ .isForCollection(withCollectionName, this.collectionName)
30
+ .validateAndAggregate();
31
+ if (!valid) {
32
+ return this._copy(this.filterTree, newInvalidArguments);
33
+ }
34
+ return query;
35
+ }
36
+ // used only from data binding router internally
37
+ _matchesUrlized(field, operand) {
38
+ const [newInvalidArguments, valid] = this._filterValidator('._matchesUrlized')
39
+ .arityIsTwo(arguments)
40
+ .validFieldName(field)
41
+ .typeIsString(operand)
42
+ .validateAndAggregate();
43
+ if (valid) {
44
+ const newFilterTree = this._makeNewFilter(field,
45
+ // @ts-ignore-next-line
46
+ ...createMatchesOrInFilter(operand));
47
+ return this._copy(newFilterTree, newInvalidArguments);
48
+ }
49
+ return this._copy(this.filterTree, newInvalidArguments);
50
+ }
51
+ getFilterModel() {
52
+ if (this.invalidArguments.length > 0) {
53
+ throw validationError(messages.filterBuilderInvalid(this.invalidArguments));
54
+ }
55
+ return super.getFilterModel();
56
+ }
57
+ _filterValidator(filterOperatorName) {
58
+ return new FilterValidator(filterOperatorName, this.invalidArguments, this.constructor, this.constructorName ?? this.constructor.name);
59
+ }
60
+ };
61
+ function createMatchesOrInFilter(operand) {
62
+ if (looksLikeAnInteger(operand)) {
63
+ // eslint-disable-next-line radix
64
+ return ['$in', [operand, Number.parseInt(operand)]];
65
+ }
66
+ else {
67
+ return [
68
+ '$matches',
69
+ {
70
+ ignoreCase: true,
71
+ spec: createMatchSpec(operand),
72
+ },
73
+ ];
74
+ }
75
+ function looksLikeAnInteger(str) {
76
+ return /^-?[0-9]{1,16}$/.test(str);
77
+ }
78
+ }
79
+ function createMatchSpec(fieldValue) {
80
+ const literals = fieldValue.split('-');
81
+ const result = [];
82
+ for (let i = 0; i < literals.length - 1; i++) {
83
+ appendLiteralSegment(result, literals[i]);
84
+ appendAnyOfSegment(result);
85
+ }
86
+ appendLiteralSegment(result, literals[literals.length - 1]);
87
+ return result;
88
+ function appendLiteralSegment(res, literalValue) {
89
+ if (literalValue.length !== 0) {
90
+ res.push({ type: 'literal', value: literalValue });
91
+ }
92
+ }
93
+ function appendAnyOfSegment(res) {
94
+ res.push({ type: 'anyOf', value: ' \t\n-' });
95
+ }
96
+ }
97
+ export class FilterValidator extends AggregatingValidator {
98
+ constructor(operatorName, previousInvalidArguments, ctor, constructorName) {
99
+ super(previousInvalidArguments);
100
+ this.operatorName = operatorName;
101
+ this.ctor = ctor;
102
+ this.constructorName = constructorName;
103
+ }
104
+ typeIsString(value) {
105
+ return this.addValidation(() => isString(value), () => messages.filterValidations.typeIsString(this.operatorName, value));
106
+ }
107
+ typeIsStringNumberOrDate(value) {
108
+ return this.addValidation(() => isDateStringOrNumber(value), () => messages.filterValidations.typeIsStringNumberOrDate(this.operatorName, value));
109
+ }
110
+ sameType(first, second) {
111
+ return this.addValidation(() => typeForDisplay(first) === typeForDisplay(second), () => messages.filterValidations.sameType(this.operatorName, first, second));
112
+ }
113
+ typeIsStringNumberOrDateForAll(values) {
114
+ return this.addValidation(() => values.every(isDateStringOrNumber), () => messages.filterValidations.typeIsStringNumberOrDateForAll(this.operatorName));
115
+ }
116
+ validFieldName(field) {
117
+ return this.addValidation(() => isString(field), () => messages.filterValidations.validFieldName(this.operatorName, field));
118
+ }
119
+ isInstanceOfSameClass(obj) {
120
+ return this.addValidation(() => obj instanceof this.ctor, () => messages.filterValidations.isInstanceOfSameClass(this.operatorName, this.constructorName, obj));
121
+ }
122
+ isForCollection(otherFilterBuilder, expectedCollectionName) {
123
+ return this.addValidation(() => otherFilterBuilder.collectionName === expectedCollectionName, () => messages.filterValidations.isForCollection(this.operatorName, this.constructorName, otherFilterBuilder.collectionName));
124
+ }
125
+ }
126
+ function isDateStringOrNumber(value) {
127
+ return isString(value) || isNumber(value) || isDate(value);
128
+ }
129
+ function withCollectionNameIfUnset(filter, name) {
130
+ if (!filter || !filter.constructor) {
131
+ return filter;
132
+ }
133
+ const collectionName = filter.collectionName ? filter.collectionName : name;
134
+ return new filter.constructor({ ...filter, collectionName });
135
+ }
136
+ export default filterMixin;
137
+ //# sourceMappingURL=filterMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterMixin.js","sourceRoot":"","sources":["../../../src/filter/filterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EACL,WAAW,IAAI,kBAAkB,GAElC,MAAM,qBAAqB,CAAA;AAE5B,MAAM,WAAW,GAAG,CAAC,OAAY;CAAQ,EAAE,EAAE,CAC3C,KAAM,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IAGpC,YAAY,MAKX;QACC,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,sBAAsB,GAAG,MAAM,EAAE,sBAAsB,IAAI,IAAI,CAAA;IACtE,CAAC;IAED,EAAE,CAAC,UAAe;QAChB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC;IAED,GAAG,CAAC,UAAe;QACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAED,GAAG,CAAC,UAAe;QACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAED,uBAAuB,CACrB,KAAU,EACV,aAAkB,EAClB,aAAqB;QAErB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACrE,OAAO,KAAK,CAAA;SACb;QACD,MAAM,kBAAkB,GAAG,yBAAyB,CAClD,aAAa,EACb,IAAI,CAAC,cAAc,CACpB,CAAA;QACD,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,IAAI,eAAe,CACtD,aAAa,EACb,KAAK,CAAC,gBAAgB,EACtB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAC9C;aACE,eAAe,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC;aACxD,oBAAoB,EAAE,CAAA;QAEzB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;SACxD;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gDAAgD;IAChD,eAAe,CAAC,KAAU,EAAE,OAAY;QACtC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CACxD,kBAAkB,CACnB;aACE,UAAU,CAAC,SAAS,CAAC;aACrB,cAAc,CAAC,KAAK,CAAC;aACrB,YAAY,CAAC,OAAO,CAAC;aACrB,oBAAoB,EAAE,CAAA;QAEzB,IAAI,KAAK,EAAE;YACT,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CACvC,KAAK;YACL,uBAAuB;YACvB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CACpC,CAAA;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;SACtD;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;IACzD,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,MAAM,eAAe,CACnB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACrD,CAAA;SACF;QACD,OAAO,KAAK,CAAC,cAAc,EAAE,CAAA;IAC/B,CAAC;IAED,gBAAgB,CAAC,kBAA0B;QACzC,OAAO,IAAI,eAAe,CACxB,kBAAkB,EAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAC9C,CAAA;IACH,CAAC;CACF,CAAA;AAEH,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC/B,iCAAiC;QACjC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACpD;SAAM;QACL,OAAO;YACL,UAAU;YACV;gBACE,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC;aAC/B;SACF,CAAA;KACF;IAED,SAAS,kBAAkB,CAAC,GAAW;QACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;AACH,CAAC;AAMD,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,MAAM,MAAM,GAAgB,EAAE,CAAA;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5C,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,kBAAkB,CAAC,MAAM,CAAC,CAAA;KAC3B;IACD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAE3D,OAAO,MAAM,CAAA;IAEb,SAAS,oBAAoB,CAAC,GAAgB,EAAE,YAAoB;QAClE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;SACnD;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,GAAgB;QAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,oBAAoB;IACvD,YACS,YAAoB,EAC3B,wBAAkC,EAC1B,IAAS,EACT,eAAuB;QAE/B,KAAK,CAAC,wBAAwB,CAAC,CAAA;QALxB,iBAAY,GAAZ,YAAY,CAAQ;QAEnB,SAAI,GAAJ,IAAI,CAAK;QACT,oBAAe,GAAf,eAAe,CAAQ;IAGjC,CAAC;IAED,YAAY,CAAC,KAAU;QACrB,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACrB,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CACxE,CAAA;IACH,CAAC;IAED,wBAAwB,CAAC,KAAU;QACjC,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EACjC,GAAG,EAAE,CACH,QAAQ,CAAC,iBAAiB,CAAC,wBAAwB,CACjD,IAAI,CAAC,YAAY,EACjB,KAAK,CACN,CACJ,CAAA;IACH,CAAC;IAED,QAAQ,CAAC,KAAU,EAAE,MAAW;QAC9B,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,MAAM,CAAC,EACtD,GAAG,EAAE,CACH,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CACxE,CAAA;IACH,CAAC;IAED,8BAA8B,CAAC,MAAW;QACxC,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EACxC,GAAG,EAAE,CACH,QAAQ,CAAC,iBAAiB,CAAC,8BAA8B,CACvD,IAAI,CAAC,YAAY,CAClB,CACJ,CAAA;IACH,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACrB,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAC1E,CAAA;IACH,CAAC;IAED,qBAAqB,CAAC,GAAQ;QAC5B,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,GAAG,YAAY,IAAI,CAAC,IAAI,EAC9B,GAAG,EAAE,CACH,QAAQ,CAAC,iBAAiB,CAAC,qBAAqB,CAC9C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,GAAG,CACJ,CACJ,CAAA;IACH,CAAC;IAED,eAAe,CAAC,kBAAuB,EAAE,sBAA2B;QAClE,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EAAE,CAAC,kBAAkB,CAAC,cAAc,KAAK,sBAAsB,EAClE,GAAG,EAAE,CACH,QAAQ,CAAC,iBAAiB,CAAC,eAAe,CACxC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,kBAAkB,CAAC,cAAc,CAClC,CACJ,CAAA;IACH,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,KAAU;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAW,EAAE,IAAY;IAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QAClC,OAAO,MAAM,CAAA;KACd;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;IAE3E,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED,eAAe,WAAW,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { validateFilterTree, validateFilterOrThrow } from './FilterTree';
2
+ import { filterBuilderFactory, platformizedFilterBuilder, PlatformizedFilterBuilder, } from './filterBuilder';
3
+ import filterMixin from './filterMixin';
4
+ export { validateFilterTree, validateFilterOrThrow, filterBuilderFactory, platformizedFilterBuilder, PlatformizedFilterBuilder, filterMixin, };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/filter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGxE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,WAAW,MAAM,eAAe,CAAA;AAGvC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EAErB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,WAAW,GACZ,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { encode, decode, isObject, isArray, isDate, isNumber, isBoolean, isString, isFunction, typeForDisplay, isUndefined, isNull, clone, base64url, } from './utils';
2
+ import { filterBuilderFactory, platformizedFilterBuilder, PlatformizedFilterBuilder, filterMixin, validateFilterTree, validateFilterOrThrow, } from './filter';
3
+ import { optimiseQuery, wixDataEncoder } from '@wix/filter-builder';
4
+ import { messages, codes, wixDataError, validationError, BulkError, apiValidator, AggregatingValidator, RejectingValidator, } from './errors';
5
+ import sortMixin from './sort/sortMixin';
6
+ import { WixDataApi, WixDataBulkPatch, WixDataPatch, QueryValidator, QueryBase, } from './api';
7
+ export * from './types';
8
+ export { encode, decode, isObject, isArray, isDate, isNumber, isBoolean, isString, isFunction, typeForDisplay, isUndefined, isNull, clone, base64url, filterMixin, filterBuilderFactory, platformizedFilterBuilder, PlatformizedFilterBuilder, optimiseQuery, validateFilterOrThrow, validateFilterTree, wixDataEncoder, messages, codes, wixDataError, validationError, BulkError, apiValidator, AggregatingValidator, RejectingValidator, sortMixin, WixDataApi, WixDataBulkPatch, WixDataPatch, QueryValidator, QueryBase, };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,WAAW,EACX,MAAM,EACN,KAAK,EACL,SAAS,GACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GAEtB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EACL,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,UAAU,CAAA;AACjB,OAAO,SAAS,MAAM,kBAAkB,CAAA;AACxC,OAAO,EACL,UAAU,EACV,gBAAgB,EAEhB,YAAY,EAEZ,cAAc,EAWd,SAAS,GAEV,MAAM,OAAO,CAAA;AAUd,cAAc,SAAS,CAAA;AACvB,OAAO,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,WAAW,EACX,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EAEd,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,gBAAgB,EAEhB,YAAY,EAEZ,cAAc,EAWd,SAAS,GAEV,CAAA"}
@@ -0,0 +1,74 @@
1
+ import { clone, isString, isArray } from '../utils';
2
+ import { AggregatingValidator, messages, validationError } from '../errors';
3
+ const sortMixin = (Base = class {
4
+ }) => class extends Base {
5
+ constructor(obj = {}) {
6
+ super(obj);
7
+ this.orderBy = obj.orderBy || [];
8
+ this.invalidArguments = obj.invalidArguments || [];
9
+ }
10
+ ascending(...fields) {
11
+ return this._sortClause('asc', '.ascending', fields);
12
+ }
13
+ descending(...fields) {
14
+ return this._sortClause('desc', '.descending', fields);
15
+ }
16
+ getSortModel() {
17
+ if (this.invalidArguments.length > 0) {
18
+ throw validationError(messages.sortBuilderInvalid(this.invalidArguments));
19
+ }
20
+ return this.orderBy;
21
+ }
22
+ setSortModel(sortModel) {
23
+ return this._copySort(sortModel, []);
24
+ }
25
+ _sortClause(operatorSymbol, operatorName, args) {
26
+ let orderBy = [];
27
+ if (this.orderBy) {
28
+ orderBy = clone(this.orderBy);
29
+ }
30
+ const appendClause = createAppendClauseFn(orderBy, operatorSymbol);
31
+ const effectiveArgs = isArray(args[0]) && args.length === 1
32
+ ? args[0]
33
+ : Array.prototype.slice.call(args, 0);
34
+ const [newInvalidArguments, valid] = this._sortValidator(operatorName)
35
+ .arityIsAtLeastOne(args)
36
+ .allStrings(effectiveArgs)
37
+ .validateAndAggregate();
38
+ if (valid) {
39
+ effectiveArgs.forEach(appendClause);
40
+ }
41
+ return this._copySort(orderBy, newInvalidArguments);
42
+ }
43
+ _sortValidator(operatorName) {
44
+ return new SortValidator(operatorName, this.invalidArguments);
45
+ }
46
+ _copySort(orderBy, invalidArguments) {
47
+ return new this.constructor({
48
+ ...this,
49
+ orderBy,
50
+ invalidArguments,
51
+ });
52
+ }
53
+ };
54
+ function createAppendClauseFn(destination, direction) {
55
+ return (field) => {
56
+ const spec = { [field]: direction };
57
+ destination.push(spec);
58
+ };
59
+ }
60
+ export class SortValidator extends AggregatingValidator {
61
+ constructor(operatorName, previousInvalidArguments) {
62
+ super(previousInvalidArguments);
63
+ this.operatorName = operatorName;
64
+ }
65
+ allStrings(effectiveArgs) {
66
+ return this.addValidation(() => effectiveArgs.every(isString), () => {
67
+ return messages.sortValidations.typeIsStringOrArrayOfStrings(this.operatorName, effectiveArgs);
68
+ });
69
+ }
70
+ }
71
+ export class Sort extends sortMixin() {
72
+ }
73
+ export default sortMixin;
74
+ //# sourceMappingURL=sortMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortMixin.js","sourceRoot":"","sources":["../../../src/sort/sortMixin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ export var Environment;
2
+ (function (Environment) {
3
+ Environment["LIVE"] = "LIVE";
4
+ Environment["SANDBOX"] = "SANDBOX";
5
+ Environment["SANDBOX_PREFERRED"] = "SANDBOX_PREFERRED";
6
+ })(Environment || (Environment = {}));
7
+ export var ACTION;
8
+ (function (ACTION) {
9
+ ACTION["UNKNOWN_ACTION"] = "UNKNOWN_ACTION";
10
+ ACTION["SET_FIELD"] = "SET_FIELD";
11
+ ACTION["REMOVE_FIELD"] = "REMOVE_FIELD";
12
+ ACTION["INCREMENT_FIELD"] = "INCREMENT_FIELD";
13
+ ACTION["APPEND_TO_ARRAY"] = "APPEND_TO_ARRAY";
14
+ ACTION["REMOVE_FROM_ARRAY"] = "REMOVE_FROM_ARRAY";
15
+ })(ACTION || (ACTION = {}));
16
+ export var BulkActionType;
17
+ (function (BulkActionType) {
18
+ BulkActionType["UNKNOWN_ACTION_TYPE"] = "UNKNOWN_ACTION_TYPE";
19
+ BulkActionType["INSERT"] = "INSERT";
20
+ BulkActionType["UPDATE"] = "UPDATE";
21
+ BulkActionType["DELETE"] = "DELETE";
22
+ BulkActionType["PATCH"] = "PATCH";
23
+ })(BulkActionType || (BulkActionType = {}));
24
+ export var Action;
25
+ (function (Action) {
26
+ Action["UNKNOWN_ACTION"] = "UNKNOWN_ACTION";
27
+ Action["INSERTED"] = "INSERTED";
28
+ Action["UPDATED"] = "UPDATED";
29
+ })(Action || (Action = {}));
30
+ export var SortOrder;
31
+ (function (SortOrder) {
32
+ SortOrder["ASC"] = "ASC";
33
+ SortOrder["DESC"] = "DESC";
34
+ })(SortOrder || (SortOrder = {}));
35
+ //# sourceMappingURL=data-item-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-item-types.js","sourceRoot":"","sources":["../../../src/types/data-item-types.ts"],"names":[],"mappings":"AA4DA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,sDAAuC,CAAA;AACzC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAuFD,MAAM,CAAN,IAAY,MAOX;AAPD,WAAY,MAAM;IAChB,2CAAiC,CAAA;IACjC,iCAAuB,CAAA;IACvB,uCAA6B,CAAA;IAC7B,6CAAmC,CAAA;IACnC,6CAAmC,CAAA;IACnC,iDAAuC,CAAA;AACzC,CAAC,EAPW,MAAM,KAAN,MAAM,QAOjB;AAsFD,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,6DAA2C,CAAA;IAC3C,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;AACjB,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAgID,MAAM,CAAN,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,2CAAiC,CAAA;IACjC,+BAAqB,CAAA;IACrB,6BAAmB,CAAA;AACrB,CAAC,EAJW,MAAM,KAAN,MAAM,QAIjB;AAyPD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/types/error.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './api';
2
+ export * from './data-item-types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AAErB,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,57 @@
1
+ /* eslint-disable no-control-regex */
2
+ export default function base64url(data) {
3
+ if (typeof data !== 'string') {
4
+ data = JSON.stringify(data);
5
+ }
6
+ return toBase64(data)
7
+ .replace(/[+/]/g, (c) => subst[c])
8
+ .replace(/={1,3}$/, '');
9
+ }
10
+ function toBase64(str) {
11
+ if (isBtoaPatched()) {
12
+ return btoa(str);
13
+ }
14
+ return btoa(toBinary(str));
15
+ }
16
+ // Importing certain packages in Velo (for example 'wix-bookings-backend')
17
+ // patches btoa.
18
+ // https://wix.slack.com/archives/CA5PUAXL5/p1718090111259899
19
+ function isBtoaPatched() {
20
+ try {
21
+ return btoa('🦄') === '8J+mhA==';
22
+ }
23
+ catch (e) {
24
+ return false;
25
+ }
26
+ }
27
+ const subst = {
28
+ '+': '-',
29
+ '/': '_',
30
+ };
31
+ function toBinary(s) {
32
+ if (typeof TextEncoder === 'function') {
33
+ const bytes = new TextEncoder().encode(s);
34
+ return Array.from(bytes, (byte) => String.fromCodePoint(byte)).join('');
35
+ }
36
+ return s.replace(nonAsciiRegex, toBytes);
37
+ }
38
+ const nonAsciiRegex = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
39
+ const fromCode = (code) => String.fromCharCode(code);
40
+ function toBytes(c) {
41
+ if (c.length < 2) {
42
+ const cc = c.charCodeAt(0);
43
+ return cc < 0x80
44
+ ? c
45
+ : cc < 0x800
46
+ ? fromCode(0xc0 | (cc >>> 6)) + fromCode(0x80 | (cc & 0x3f))
47
+ : fromCode(0xe0 | ((cc >>> 12) & 0x0f)) +
48
+ fromCode(0x80 | ((cc >>> 6) & 0x3f)) +
49
+ fromCode(0x80 | (cc & 0x3f));
50
+ }
51
+ const cc = 0x10000 + (c.charCodeAt(0) - 0xd800) * 0x400 + (c.charCodeAt(1) - 0xdc00);
52
+ return (fromCode(0xf0 | ((cc >>> 18) & 0x07)) +
53
+ fromCode(0x80 | ((cc >>> 12) & 0x3f)) +
54
+ fromCode(0x80 | ((cc >>> 6) & 0x3f)) +
55
+ fromCode(0x80 | (cc & 0x3f)));
56
+ }
57
+ //# sourceMappingURL=base64url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64url.js","sourceRoot":"","sources":["../../../src/utils/base64url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { isDate } from './type-utils';
2
+ export function clone(obj) {
3
+ if (obj == null || typeof obj !== 'object') {
4
+ return obj;
5
+ }
6
+ let temp = null;
7
+ if (isDate(obj)) {
8
+ temp = new Date(obj.getTime());
9
+ }
10
+ else {
11
+ temp = obj.constructor();
12
+ for (const key in obj) {
13
+ temp[key] = clone(obj[key]);
14
+ }
15
+ }
16
+ return temp;
17
+ }
18
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../src/utils/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,UAAU,KAAK,CAAC,GAAQ;IAC5B,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC1C,OAAO,GAAG,CAAA;KACX;IAED,IAAI,IAAI,GAAQ,IAAI,CAAA;IAEpB,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;QACf,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;KAC/B;SAAM;QACL,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QACxB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;SAC5B;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}