@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.
- package/README.md +8 -0
- package/dist/cjs/api/ApiClient.js +186 -0
- package/dist/cjs/api/ApiClient.js.map +1 -0
- package/dist/cjs/api/QueryBase.js +200 -0
- package/dist/cjs/api/QueryBase.js.map +1 -0
- package/dist/cjs/api/QueryValidator.js +36 -0
- package/dist/cjs/api/QueryValidator.js.map +1 -0
- package/dist/cjs/api/WixDataAggregate.js +4 -0
- package/dist/cjs/api/WixDataAggregate.js.map +1 -0
- package/dist/cjs/api/WixDataApi.js +800 -0
- package/dist/cjs/api/WixDataApi.js.map +1 -0
- package/dist/cjs/api/WixDataFilter.js +2 -0
- package/dist/cjs/api/WixDataFilter.js.map +1 -0
- package/dist/cjs/api/WixDataPatch.js +139 -0
- package/dist/cjs/api/WixDataPatch.js.map +1 -0
- package/dist/cjs/api/WixDataQuery.js +4 -0
- package/dist/cjs/api/WixDataQuery.js.map +1 -0
- package/dist/cjs/api/WixDataResult.js +4 -0
- package/dist/cjs/api/WixDataResult.js.map +1 -0
- package/dist/cjs/api/common.js +14 -0
- package/dist/cjs/api/common.js.map +1 -0
- package/dist/cjs/api/errors.js +67 -0
- package/dist/cjs/api/errors.js.map +1 -0
- package/dist/cjs/api/impl/WixDataAggregateImpl.js +193 -0
- package/dist/cjs/api/impl/WixDataAggregateImpl.js.map +1 -0
- package/dist/cjs/api/impl/WixDataQueryImpl.js +116 -0
- package/dist/cjs/api/impl/WixDataQueryImpl.js.map +1 -0
- package/dist/cjs/api/impl/WixDataResultImpl.js +111 -0
- package/dist/cjs/api/impl/WixDataResultImpl.js.map +1 -0
- package/dist/cjs/api/index.js +32 -0
- package/dist/cjs/api/index.js.map +1 -0
- package/dist/cjs/api/types.js +2 -0
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/errors/base-validator.js +92 -0
- package/dist/cjs/errors/base-validator.js.map +1 -0
- package/dist/cjs/errors/errors.js +155 -0
- package/dist/cjs/errors/errors.js.map +1 -0
- package/dist/cjs/errors/index.js +15 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/errors/validations.js +91 -0
- package/dist/cjs/errors/validations.js.map +1 -0
- package/dist/cjs/external-types.d.js +2 -0
- package/dist/cjs/external-types.d.js.map +1 -0
- package/dist/cjs/filter/FilterTree.js +154 -0
- package/dist/cjs/filter/FilterTree.js.map +1 -0
- package/dist/cjs/filter/WithFilter.js +2 -0
- package/dist/cjs/filter/WithFilter.js.map +1 -0
- package/dist/cjs/filter/filterBuilder.js +53 -0
- package/dist/cjs/filter/filterBuilder.js.map +1 -0
- package/dist/cjs/filter/filterMixin.js +144 -0
- package/dist/cjs/filter/filterMixin.js.map +1 -0
- package/dist/cjs/filter/index.js +16 -0
- package/dist/cjs/filter/index.js.map +1 -0
- package/dist/cjs/index.js +120 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/sort/sortMixin.js +79 -0
- package/dist/cjs/sort/sortMixin.js.map +1 -0
- package/dist/cjs/test-types.d.js +2 -0
- package/dist/cjs/test-types.d.js.map +1 -0
- package/dist/cjs/types/api.js +4 -0
- package/dist/cjs/types/api.js.map +1 -0
- package/dist/cjs/types/data-item-types.js +46 -0
- package/dist/cjs/types/data-item-types.js.map +1 -0
- package/dist/cjs/types/error.js +2 -0
- package/dist/cjs/types/error.js.map +1 -0
- package/dist/cjs/types/index.js +16 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/base64url.js +51 -0
- package/dist/cjs/utils/base64url.js.map +1 -0
- package/dist/cjs/utils/clone.js +21 -0
- package/dist/cjs/utils/clone.js.map +1 -0
- package/dist/cjs/utils/codec.js +64 -0
- package/dist/cjs/utils/codec.js.map +1 -0
- package/dist/cjs/utils/field-key-utils.js +18 -0
- package/dist/cjs/utils/field-key-utils.js.map +1 -0
- package/dist/cjs/utils/index.js +25 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/type-utils.js +54 -0
- package/dist/cjs/utils/type-utils.js.map +1 -0
- package/dist/esm/api/ApiClient.js +174 -0
- package/dist/esm/api/ApiClient.js.map +1 -0
- package/dist/esm/api/QueryBase.js +117 -0
- package/dist/esm/api/QueryBase.js.map +1 -0
- package/dist/esm/api/QueryValidator.js +32 -0
- package/dist/esm/api/QueryValidator.js.map +1 -0
- package/dist/esm/api/WixDataAggregate.js +2 -0
- package/dist/esm/api/WixDataAggregate.js.map +1 -0
- package/dist/esm/api/WixDataApi.js +829 -0
- package/dist/esm/api/WixDataApi.js.map +1 -0
- package/dist/esm/api/WixDataFilter.js +2 -0
- package/dist/esm/api/WixDataFilter.js.map +1 -0
- package/dist/esm/api/WixDataPatch.js +134 -0
- package/dist/esm/api/WixDataPatch.js.map +1 -0
- package/dist/esm/api/WixDataQuery.js +2 -0
- package/dist/esm/api/WixDataQuery.js.map +1 -0
- package/dist/esm/api/WixDataResult.js +2 -0
- package/dist/esm/api/WixDataResult.js.map +1 -0
- package/dist/esm/api/common.js +10 -0
- package/dist/esm/api/common.js.map +1 -0
- package/dist/esm/api/errors.js +52 -0
- package/dist/esm/api/errors.js.map +1 -0
- package/dist/esm/api/impl/WixDataAggregateImpl.js +214 -0
- package/dist/esm/api/impl/WixDataAggregateImpl.js.map +1 -0
- package/dist/esm/api/impl/WixDataQueryImpl.js +119 -0
- package/dist/esm/api/impl/WixDataQueryImpl.js.map +1 -0
- package/dist/esm/api/impl/WixDataResultImpl.js +100 -0
- package/dist/esm/api/impl/WixDataResultImpl.js.map +1 -0
- package/dist/esm/api/index.js +5 -0
- package/dist/esm/api/index.js.map +1 -0
- package/dist/esm/api/types.js +2 -0
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/errors/base-validator.js +71 -0
- package/dist/esm/errors/base-validator.js.map +1 -0
- package/dist/esm/errors/errors.js +147 -0
- package/dist/esm/errors/errors.js.map +1 -0
- package/dist/esm/errors/index.js +5 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/errors/validations.js +114 -0
- package/dist/esm/errors/validations.js.map +1 -0
- package/dist/esm/filter/FilterTree.js +148 -0
- package/dist/esm/filter/FilterTree.js.map +1 -0
- package/dist/esm/filter/WithFilter.js +2 -0
- package/dist/esm/filter/WithFilter.js.map +1 -0
- package/dist/esm/filter/filterBuilder.js +43 -0
- package/dist/esm/filter/filterBuilder.js.map +1 -0
- package/dist/esm/filter/filterMixin.js +137 -0
- package/dist/esm/filter/filterMixin.js.map +1 -0
- package/dist/esm/filter/index.js +5 -0
- package/dist/esm/filter/index.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/sort/sortMixin.js +74 -0
- package/dist/esm/sort/sortMixin.js.map +1 -0
- package/dist/esm/types/api.js +2 -0
- package/dist/esm/types/api.js.map +1 -0
- package/dist/esm/types/data-item-types.js +35 -0
- package/dist/esm/types/data-item-types.js.map +1 -0
- package/dist/esm/types/error.js +2 -0
- package/dist/esm/types/error.js.map +1 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/base64url.js +57 -0
- package/dist/esm/utils/base64url.js.map +1 -0
- package/dist/esm/utils/clone.js +18 -0
- package/dist/esm/utils/clone.js.map +1 -0
- package/dist/esm/utils/codec.js +60 -0
- package/dist/esm/utils/codec.js.map +1 -0
- package/dist/esm/utils/field-key-utils.js +14 -0
- package/dist/esm/utils/field-key-utils.js.map +1 -0
- package/dist/esm/utils/index.js +7 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/type-utils.js +40 -0
- package/dist/esm/utils/type-utils.js.map +1 -0
- package/dist/types/api/ApiClient.d.ts +30 -0
- package/dist/types/api/ApiClient.d.ts.map +1 -0
- package/dist/types/api/QueryBase.d.ts +111 -0
- package/dist/types/api/QueryBase.d.ts.map +1 -0
- package/dist/types/api/QueryValidator.d.ts +12 -0
- package/dist/types/api/QueryValidator.d.ts.map +1 -0
- package/dist/types/api/WixDataAggregate.d.ts +320 -0
- package/dist/types/api/WixDataAggregate.d.ts.map +1 -0
- package/dist/types/api/WixDataApi.d.ts +52 -0
- package/dist/types/api/WixDataApi.d.ts.map +1 -0
- package/dist/types/api/WixDataFilter.d.ts +424 -0
- package/dist/types/api/WixDataFilter.d.ts.map +1 -0
- package/dist/types/api/WixDataPatch.d.ts +80 -0
- package/dist/types/api/WixDataPatch.d.ts.map +1 -0
- package/dist/types/api/WixDataQuery.d.ts +702 -0
- package/dist/types/api/WixDataQuery.d.ts.map +1 -0
- package/dist/types/api/WixDataResult.d.ts +144 -0
- package/dist/types/api/WixDataResult.d.ts.map +1 -0
- package/dist/types/api/common.d.ts +3 -0
- package/dist/types/api/common.d.ts.map +1 -0
- package/dist/types/api/errors.d.ts +12 -0
- package/dist/types/api/errors.d.ts.map +1 -0
- package/dist/types/api/impl/WixDataAggregateImpl.d.ts +76 -0
- package/dist/types/api/impl/WixDataAggregateImpl.d.ts.map +1 -0
- package/dist/types/api/impl/WixDataQueryImpl.d.ts +72 -0
- package/dist/types/api/impl/WixDataQueryImpl.d.ts.map +1 -0
- package/dist/types/api/impl/WixDataResultImpl.d.ts +34 -0
- package/dist/types/api/impl/WixDataResultImpl.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +11 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +163 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/errors/base-validator.d.ts +28 -0
- package/dist/types/errors/base-validator.d.ts.map +1 -0
- package/dist/types/errors/errors.d.ts +108 -0
- package/dist/types/errors/errors.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +5 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/errors/validations.d.ts +25 -0
- package/dist/types/errors/validations.d.ts.map +1 -0
- package/dist/types/filter/FilterTree.d.ts +56 -0
- package/dist/types/filter/FilterTree.d.ts.map +1 -0
- package/dist/types/filter/WithFilter.d.ts +470 -0
- package/dist/types/filter/WithFilter.d.ts.map +1 -0
- package/dist/types/filter/filterBuilder.d.ts +105 -0
- package/dist/types/filter/filterBuilder.d.ts.map +1 -0
- package/dist/types/filter/filterMixin.d.ts +61 -0
- package/dist/types/filter/filterMixin.d.ts.map +1 -0
- package/dist/types/filter/index.d.ts +8 -0
- package/dist/types/filter/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/sort/sortMixin.d.ts +46 -0
- package/dist/types/sort/sortMixin.d.ts.map +1 -0
- package/dist/types/types/api.d.ts +36 -0
- package/dist/types/types/api.d.ts.map +1 -0
- package/dist/types/types/data-item-types.d.ts +1448 -0
- package/dist/types/types/data-item-types.d.ts.map +1 -0
- package/dist/types/types/error.d.ts +23 -0
- package/dist/types/types/error.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/base64url.d.ts +2 -0
- package/dist/types/utils/base64url.d.ts.map +1 -0
- package/dist/types/utils/clone.d.ts +2 -0
- package/dist/types/utils/clone.d.ts.map +1 -0
- package/dist/types/utils/codec.d.ts +3 -0
- package/dist/types/utils/codec.d.ts.map +1 -0
- package/dist/types/utils/field-key-utils.d.ts +2 -0
- package/dist/types/utils/field-key-utils.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/type-utils.d.ts +11 -0
- package/dist/types/utils/type-utils.d.ts.map +1 -0
- 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 @@
|
|
|
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":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/types/error.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|