@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,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.RejectingValidator = exports.AggregatingValidator = void 0;
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _clone = require("../utils/clone");
|
|
8
|
+
var _errors = require("./errors");
|
|
9
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
10
|
+
|
|
11
|
+
class BaseValidator {
|
|
12
|
+
constructor() {
|
|
13
|
+
(0, _defineProperty2.default)(this, "_validations", void 0);
|
|
14
|
+
(0, _defineProperty2.default)(this, "operatorName", void 0);
|
|
15
|
+
this._validations = [];
|
|
16
|
+
}
|
|
17
|
+
arityIsZero(args) {
|
|
18
|
+
return this.addValidation(() => args.length === 0, () => _errors.messages.arityValidations.arityIsZero(this.operatorName ?? ''));
|
|
19
|
+
}
|
|
20
|
+
arityIsOne(args) {
|
|
21
|
+
return this.addValidation(() => args.length === 1, () => _errors.messages.arityValidations.arityIsOne(this.operatorName ?? ''));
|
|
22
|
+
}
|
|
23
|
+
arityIsTwo(args) {
|
|
24
|
+
return this.addValidation(() => args.length === 2, () => _errors.messages.arityValidations.arityIsTwo(this.operatorName ?? ''));
|
|
25
|
+
}
|
|
26
|
+
arityIsThree(args) {
|
|
27
|
+
return this.addValidation(() => args.length === 3, () => _errors.messages.arityValidations.arityIsThree(this.operatorName ?? ''));
|
|
28
|
+
}
|
|
29
|
+
arityIsAtLeastTwo(args) {
|
|
30
|
+
return this.addValidation(() => args.length >= 2, () => _errors.messages.arityValidations.arityIsAtLeastTwo(this.operatorName ?? ''));
|
|
31
|
+
}
|
|
32
|
+
arityIsAtLeastOne(args) {
|
|
33
|
+
return this.addValidation(() => args.length >= 1, () => _errors.messages.arityValidations.arityIsAtLeastOne(this.operatorName ?? ''));
|
|
34
|
+
}
|
|
35
|
+
addValidation(predicateFn, messageFn) {
|
|
36
|
+
this._validations.push({
|
|
37
|
+
predicateFn,
|
|
38
|
+
messageFn
|
|
39
|
+
});
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
class AggregatingValidator extends BaseValidator {
|
|
44
|
+
constructor(previousInvalidArguments) {
|
|
45
|
+
super();
|
|
46
|
+
(0, _defineProperty2.default)(this, "_invalidArguments", void 0);
|
|
47
|
+
this._invalidArguments = (0, _clone.clone)(previousInvalidArguments);
|
|
48
|
+
}
|
|
49
|
+
validateAndAggregate() {
|
|
50
|
+
const valid = this._validations.every(({
|
|
51
|
+
predicateFn,
|
|
52
|
+
messageFn
|
|
53
|
+
}) => this._appendIfInvalid(predicateFn(), messageFn()));
|
|
54
|
+
return [this._invalidArguments, valid];
|
|
55
|
+
}
|
|
56
|
+
_appendIfInvalid(valid, message) {
|
|
57
|
+
if (!valid) {
|
|
58
|
+
this._invalidArguments.push(message);
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.AggregatingValidator = AggregatingValidator;
|
|
65
|
+
class RejectingValidator extends BaseValidator {
|
|
66
|
+
validateAndReject() {
|
|
67
|
+
return Promise.resolve().then(() => {
|
|
68
|
+
this._validations.forEach(({
|
|
69
|
+
predicateFn,
|
|
70
|
+
messageFn
|
|
71
|
+
}) => {
|
|
72
|
+
if (!predicateFn()) {
|
|
73
|
+
throw (0, _errors.validationError)(messageFn());
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
validateAndReturn() {
|
|
79
|
+
const errors = [];
|
|
80
|
+
this._validations.forEach(({
|
|
81
|
+
predicateFn,
|
|
82
|
+
messageFn
|
|
83
|
+
}) => {
|
|
84
|
+
if (!predicateFn()) {
|
|
85
|
+
errors.push(messageFn());
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return errors;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.RejectingValidator = RejectingValidator;
|
|
92
|
+
//# sourceMappingURL=base-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_clone","require","_errors","BaseValidator","constructor","_defineProperty2","default","_validations","arityIsZero","args","addValidation","length","messages","arityValidations","operatorName","arityIsOne","arityIsTwo","arityIsThree","arityIsAtLeastTwo","arityIsAtLeastOne","predicateFn","messageFn","push","AggregatingValidator","previousInvalidArguments","_invalidArguments","clone","validateAndAggregate","valid","every","_appendIfInvalid","message","exports","RejectingValidator","validateAndReject","Promise","resolve","then","forEach","validationError","validateAndReturn","errors"],"sources":["../../../src/errors/base-validator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { clone } from '../utils/clone'\nimport { messages, validationError } from './errors'\n\ninterface Validation {\n predicateFn: () => boolean\n messageFn: () => string\n}\nclass BaseValidator {\n public _validations: Validation[]\n public operatorName?: string\n\n constructor() {\n this._validations = []\n }\n\n arityIsZero(args: IArguments) {\n return this.addValidation(\n () => args.length === 0,\n () => messages.arityValidations.arityIsZero(this.operatorName ?? '')\n )\n }\n\n arityIsOne(args: IArguments) {\n return this.addValidation(\n () => args.length === 1,\n () => messages.arityValidations.arityIsOne(this.operatorName ?? '')\n )\n }\n\n arityIsTwo(args: IArguments) {\n return this.addValidation(\n () => args.length === 2,\n () => messages.arityValidations.arityIsTwo(this.operatorName ?? '')\n )\n }\n\n arityIsThree(args: IArguments) {\n return this.addValidation(\n () => args.length === 3,\n () => messages.arityValidations.arityIsThree(this.operatorName ?? '')\n )\n }\n\n arityIsAtLeastTwo(args: IArguments) {\n return this.addValidation(\n () => args.length >= 2,\n () => messages.arityValidations.arityIsAtLeastTwo(this.operatorName ?? '')\n )\n }\n\n arityIsAtLeastOne(args: IArguments | any[]) {\n return this.addValidation(\n () => args.length >= 1,\n () => messages.arityValidations.arityIsAtLeastOne(this.operatorName ?? '')\n )\n }\n\n addValidation(\n predicateFn: Validation['predicateFn'],\n messageFn: Validation['messageFn']\n ) {\n this._validations.push({\n predicateFn,\n messageFn,\n })\n return this\n }\n}\n\nexport class AggregatingValidator extends BaseValidator {\n private _invalidArguments: string[]\n\n constructor(previousInvalidArguments?: string[]) {\n super()\n this._invalidArguments = clone(previousInvalidArguments)\n }\n\n validateAndAggregate(): [string[], boolean] {\n const valid = this._validations.every(({ predicateFn, messageFn }) =>\n this._appendIfInvalid(predicateFn(), messageFn())\n )\n return [this._invalidArguments, valid]\n }\n\n _appendIfInvalid(valid: boolean, message: string) {\n if (!valid) {\n this._invalidArguments.push(message)\n return false\n }\n return true\n }\n}\n\nexport class RejectingValidator extends BaseValidator {\n validateAndReject(): Promise<void> {\n return Promise.resolve().then(() => {\n this._validations.forEach(({ predicateFn, messageFn }) => {\n if (!predicateFn()) {\n throw validationError(messageFn())\n }\n })\n })\n }\n\n validateAndReturn(): string[] {\n const errors: string[] = []\n this._validations.forEach(({ predicateFn, messageFn }) => {\n if (!predicateFn()) {\n errors.push(messageFn())\n }\n })\n return errors\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.messages = exports.codes = exports.BulkError = void 0;
|
|
6
|
+
exports.validationError = validationError;
|
|
7
|
+
exports.wixDataError = wixDataError;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _typeUtils = require("../utils/type-utils");
|
|
10
|
+
var _safeJsonStringify = _interopRequireDefault(require("safe-json-stringify"));
|
|
11
|
+
// When adding new messages, update Support article with error code and explanation about the error.
|
|
12
|
+
const messages = exports.messages = {
|
|
13
|
+
collectionNameMustBeAString: () => 'WDE0001: Collection name must be a string.',
|
|
14
|
+
itemIdMustBeAString: () => 'WDE0002: ItemId must be a string.',
|
|
15
|
+
itemIdsMustBeArrayOfStrings: () => 'WDE0068: Item ids must be an array of strings',
|
|
16
|
+
removeItemsMustBeLessThanThousand: collectionName => `WDE0069: Failed to remove items from [${collectionName}].\nCannot remove more than 1000 items in one request`,
|
|
17
|
+
fieldNameMustBeAString: () => 'WDE0003: FieldName must be a string.',
|
|
18
|
+
itemMustBeAnObject: (item, collectionName) => `WDE0004: Failed to save [${item}] into [${collectionName}].\nItems must be JavaScript objects.`,
|
|
19
|
+
itemsMustBeArrayOfObjects: collectionName => `WDE0005: Failed to bulk save items into [${collectionName}].\nItems must be an array of JavaScript objects and itemIds must be strings if present.`,
|
|
20
|
+
itemsMustBeLessThanThousand: collectionName => `WDE0006: Failed to bulk save items into [${collectionName}].\nCannot insert more than 1000 items in one request`,
|
|
21
|
+
updateItemInvalid: () => 'WDE0007: Invalid update. Updated object must have a string _id property.',
|
|
22
|
+
invalidArgumentLength: (method, from, to, actual) => `WDE0008: wixData.${method} expects between ${from} and ${to} arguments, but was called with ${actual}.`,
|
|
23
|
+
aggregateValidations: {
|
|
24
|
+
aggregateInvalid: (collectionName, invalidArguments) => `Failed to perform aggregation on [${collectionName}].\n${invalidArguments.join('\n')}`,
|
|
25
|
+
filterMustBeBuilder: operatorName => `WDE0011: Invalid ${operatorName} usage. ${operatorName} requires WixDataFilter.`,
|
|
26
|
+
filterIsAlreadySet: operatorName => `WDE0012: Invalid ${operatorName} usage. Filter is already set.`,
|
|
27
|
+
groupIsAlreadySet: operatorName => `WDE0013: Invalid ${operatorName} usage. Group is already set.`
|
|
28
|
+
},
|
|
29
|
+
filterBuilderInvalid: invalidArguments => `Failed to build a filter.\n${invalidArguments.join('\n')}.`,
|
|
30
|
+
groupBuilderInvalid: invalidArguments => `Failed to build group.\n${invalidArguments.join('\n')}.`,
|
|
31
|
+
filterMustBeAnObject: () => 'WDE0016: Filter must be an object.',
|
|
32
|
+
sortBuilderInvalid: invalidArguments => `Failed to build a sort.\n${invalidArguments.join('\n')}.`,
|
|
33
|
+
optionsInvalid: properties => `WDE0018: Options must be an object with one or all of the following boolean properties: ${properties.join(', ')}.`,
|
|
34
|
+
referenceOperationParameterError: () => 'WDE0019: Reference operation takes a string ID or an object with an ID to be connected.',
|
|
35
|
+
referenceOperationFieldError: fieldName => `WDE0020: Provided property [${fieldName}] is not a multi-reference field.`,
|
|
36
|
+
invalidReferenceError: () => `WDE0021: Invalid reference`,
|
|
37
|
+
queryValidations: {
|
|
38
|
+
queryInvalid: (collectionName, invalidArguments) => `Failed to perform query on [${collectionName}].\n${invalidArguments.join('\n')}`,
|
|
39
|
+
isNumber: (operatorName, specifier, operand) => `WDE0032: Invalid ${operatorName} parameter [${(0, _typeUtils.typeForDisplay)(operand)}]. ${operatorName} parameter must be a ${specifier} number.`,
|
|
40
|
+
isPositiveNumber: (operatorName, operand) => `WDE0033: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter must be a positive number.`,
|
|
41
|
+
isNonNegativeNumber: (operatorName, operand) => `WDE0034: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter must be a non-negative number.`,
|
|
42
|
+
isInteger: (operatorName, operand) => `WDE0035: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter must be an integer.`,
|
|
43
|
+
isNonEmptyString: operatorName => `WDE0094: Invalid ${operatorName} parameter. ${operatorName} parameter must be non-empty string.`,
|
|
44
|
+
notGreaterThan: (operatorName, operand, value) => `WDE0036: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter cannot exceed ${value}.`,
|
|
45
|
+
invalidSkipParameter: (collectionName, skipParameter) => `WDE0037: Invalid query on [${collectionName}].\nInvalid prev positioned query skip on a negative number ${skipParameter}.`,
|
|
46
|
+
noPrevPage: collectionName => `WDE0159: Invalid query on [${collectionName}].\nThere is no prev page.`,
|
|
47
|
+
noNextPage: collectionName => `WDE0165: Invalid query on [${collectionName}].\nThere is no next page.`
|
|
48
|
+
},
|
|
49
|
+
arityValidations: {
|
|
50
|
+
arityIsZero: operatorName => `WDE0038: Invalid ${operatorName} usage. ${operatorName} does not take parameters.`,
|
|
51
|
+
arityIsOne: operatorName => `WDE0039: Invalid ${operatorName} usage. ${operatorName} requires one parameter.`,
|
|
52
|
+
arityIsTwo: operatorName => `WDE0040: Invalid ${operatorName} usage. ${operatorName} requires two parameters.`,
|
|
53
|
+
arityIsThree: operatorName => `WDE0041: Invalid ${operatorName} usage. ${operatorName} requires three parameters.`,
|
|
54
|
+
arityIsAtLeastTwo: operatorName => `WDE0042: Invalid ${operatorName} usage. ${operatorName} requires at least two parameters.`,
|
|
55
|
+
arityIsAtLeastOne: operatorName => `WDE0043: Invalid ${operatorName} usage. ${operatorName} requires at least one parameter.`
|
|
56
|
+
},
|
|
57
|
+
filterValidations: {
|
|
58
|
+
typeIsString: (operatorName, value) => `WDE0044: Invalid ${operatorName} parameter value [${(0, _typeUtils.typeForDisplay)(value)}]. ${operatorName} parameter must be a String.`,
|
|
59
|
+
typeIsStringNumberOrDate: (operatorName, value) => `WDE0045: Invalid ${operatorName} parameter value [${(0, _typeUtils.typeForDisplay)(value)}]. Valid ${operatorName} parameter types are String, Number or Date.`,
|
|
60
|
+
sameType: (operatorName, first, second) => `WDE0046: Invalid ${operatorName} parameter values [${(0, _typeUtils.typeForDisplay)(first)}] and [${(0, _typeUtils.typeForDisplay)(second)}]. Both parameters must be of the same type.`,
|
|
61
|
+
typeIsStringNumberOrDateForAll: operatorName => `WDE0047: Invalid ${operatorName} usage. ${operatorName} supports only Number, String or Date items.`,
|
|
62
|
+
validFieldName: (operatorName, field) => `WDE0048: Invalid ${operatorName} field value [${(0, _typeUtils.typeForDisplay)(field)}]. ${operatorName} field must be a String.`,
|
|
63
|
+
isInstanceOfSameClass: (operatorName, constructorName, obj) => `WDE0049: Invalid ${operatorName} parameter [${(0, _typeUtils.typeForDisplay)(obj)}]. ${operatorName} expects ${constructorName} only.`,
|
|
64
|
+
isForCollection: (operatorName, constructorName, collectionName) => `WDE0050: Invalid ${operatorName} parameter query for [${collectionName}]. ${operatorName} accepts ${constructorName} for the same collection only.`
|
|
65
|
+
},
|
|
66
|
+
filterTreeValidations: {
|
|
67
|
+
objectType: (operatorName, value) => `WDE0056: ${operatorName} should be an Object. Got ${stringify(value)} instead`,
|
|
68
|
+
arrayType: (operatorName, value) => `WDE0057: ${operatorName} should be an Array. Got ${stringify(value)} instead`,
|
|
69
|
+
arrayLength: (operatorName, expectedLength, value) => `WDE0057: ${stringify(value)}.length is ${value.length}. ${operatorName} Array should have length ${expectedLength}`,
|
|
70
|
+
comparisonOperatorType: (operatorName, value) => `WDE0058: ${operatorName} should be a Date, Number, or String. Got ${stringify(value)} instead`,
|
|
71
|
+
stringOperatorType: (operatorName, value) => `WDE0059: ${operatorName} should be a String. Got ${stringify(value)} instead`,
|
|
72
|
+
setOperatorItems: (operatorName, value) => `WDE0060: ${operatorName} Array should only contain values of types Date, Number, and String. Got ${stringify(value)} instead`,
|
|
73
|
+
inOperatorItems: value => `WDE0061: $in Array should have length 2, and match [String, Number]. Got ${stringify(value)} instead`,
|
|
74
|
+
matchesOperatorRequiredProperty: (propertyName, value) => `WDE0062: $matches value ${stringify(value)} does not have property ${propertyName}`,
|
|
75
|
+
matchesOperatorIgnoreCase: value => `WDE0063: $matches.ignoreCase should equal true. Got ${stringify(value)} instead`,
|
|
76
|
+
matchesOperatorSpecItems: value => `WDE0064: $matches.spec Array values should be either {"type":"anyOf","value":" -"} or {"type":"literal","value":String}. Got ${stringify(value)} instead`,
|
|
77
|
+
regexNotAllowed: () => 'WDE0070: $regex keyword is not allowed.'
|
|
78
|
+
},
|
|
79
|
+
sortValidations: {
|
|
80
|
+
typeIsStringOrArrayOfStrings: (operatorName, effectiveArgs) => `WDE0051: Invalid ${operatorName} parameters [${effectiveArgs.map(_typeUtils.typeForDisplay)}]. Valid ${operatorName} values are String, Array of String or varargs String.`
|
|
81
|
+
},
|
|
82
|
+
orderByValidations: {
|
|
83
|
+
sortModelType: value => `WDE0065: Sort Model should be an Array. Got ${stringify(value)} instead`,
|
|
84
|
+
sortModelItemType: value => `WDE0066: Sort Model Array should contain values of type Object only. Got ${stringify(value)} instead`,
|
|
85
|
+
sortModelItem: value => `WDE0067: Sort Model Array items should have a single property with value "asc" or "desc". Got ${stringify(value)} instead`
|
|
86
|
+
},
|
|
87
|
+
internalError: message => `WDE0053: Internal wixData error: ${message}`,
|
|
88
|
+
serverInvalidResponse: message => 'WDE0055: Failed to parse server response.' + (message ? ` ${message}` : ''),
|
|
89
|
+
itemDoesNotExist: (id, collectionName) => `WDE0073: Item [${id}] does not exist in collection [${collectionName}].`,
|
|
90
|
+
cursorPagingDoesNotSupportSkip: () => 'WDE0080: Skip is not supported in cursor paging.',
|
|
91
|
+
payloadIsTooLarge: () => 'WDE0109: Payload is too large.'
|
|
92
|
+
};
|
|
93
|
+
function stringify(obj) {
|
|
94
|
+
return (0, _safeJsonStringify.default)(obj);
|
|
95
|
+
}
|
|
96
|
+
const codes = exports.codes = {
|
|
97
|
+
ItemDoesNotExist: 'WD_ITEM_DOES_NOT_EXIST',
|
|
98
|
+
ItemAlreadyExists: 'WD_ITEM_ALREADY_EXISTS',
|
|
99
|
+
SiteInTemplateMode: 'WD_SITE_IN_TEMPLATE_MODE',
|
|
100
|
+
UnknownError: 'WD_UNKNOWN_ERROR',
|
|
101
|
+
ValidationError: 'WD_VALIDATION_ERROR',
|
|
102
|
+
CollectionDeleted: 'WD_COLLECTION_DELETED',
|
|
103
|
+
SchemaDoesNotExist: 'WD_SCHEMA_DOES_NOT_EXIST',
|
|
104
|
+
PermissionDenied: 'WD_PERMISSION_DENIED',
|
|
105
|
+
BadRequest: 'WD_BAD_REQUEST',
|
|
106
|
+
Unauthorized: 'WD_UNAUTHORIZED',
|
|
107
|
+
TooManyRequests: 'WD_TOO_MANY_REQUESTS',
|
|
108
|
+
RequestTimedOut: 'WD_REQUEST_TIMED_OUT',
|
|
109
|
+
QuotaExceeded: 'WD_DATABASE_QUOTA_EXCEEDED',
|
|
110
|
+
QueryExecutionError: 'WD_QUERY_EXECUTION_ERROR'
|
|
111
|
+
};
|
|
112
|
+
function wixDataError(message, code, details) {
|
|
113
|
+
return errorWithCode(message, code, details);
|
|
114
|
+
}
|
|
115
|
+
function validationError(message) {
|
|
116
|
+
return errorWithCode(message, codes.ValidationError);
|
|
117
|
+
}
|
|
118
|
+
function errorWithCode(message, code, details) {
|
|
119
|
+
const ErrorConstructor = code && code !== codes.UnknownError ? WixDataError : Error;
|
|
120
|
+
// @ts-ignore-next-line
|
|
121
|
+
const error = new ErrorConstructor(message);
|
|
122
|
+
// @ts-ignore-next-line
|
|
123
|
+
error.code = code;
|
|
124
|
+
if (details) {
|
|
125
|
+
// @ts-ignore-next-line
|
|
126
|
+
error.details = details;
|
|
127
|
+
}
|
|
128
|
+
return error;
|
|
129
|
+
}
|
|
130
|
+
class WixDataError extends Error {
|
|
131
|
+
constructor(message) {
|
|
132
|
+
super(message);
|
|
133
|
+
(0, _defineProperty2.default)(this, "name", 'Error');
|
|
134
|
+
// marker for user error
|
|
135
|
+
(0, _defineProperty2.default)(this, "errorGroup", 'User');
|
|
136
|
+
if (Error.captureStackTrace) {
|
|
137
|
+
Error.captureStackTrace(this, WixDataError);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
class BulkError extends Error {
|
|
142
|
+
constructor(message, code, item, name, originalIndex) {
|
|
143
|
+
super(message);
|
|
144
|
+
this.message = message;
|
|
145
|
+
this.code = code;
|
|
146
|
+
this.item = item;
|
|
147
|
+
this.name = name;
|
|
148
|
+
this.originalIndex = originalIndex;
|
|
149
|
+
if (Error.captureStackTrace) {
|
|
150
|
+
Error.captureStackTrace(this, BulkError);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.BulkError = BulkError;
|
|
155
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typeUtils","require","_safeJsonStringify","_interopRequireDefault","messages","exports","collectionNameMustBeAString","itemIdMustBeAString","itemIdsMustBeArrayOfStrings","removeItemsMustBeLessThanThousand","collectionName","fieldNameMustBeAString","itemMustBeAnObject","item","itemsMustBeArrayOfObjects","itemsMustBeLessThanThousand","updateItemInvalid","invalidArgumentLength","method","from","to","actual","aggregateValidations","aggregateInvalid","invalidArguments","join","filterMustBeBuilder","operatorName","filterIsAlreadySet","groupIsAlreadySet","filterBuilderInvalid","groupBuilderInvalid","filterMustBeAnObject","sortBuilderInvalid","optionsInvalid","properties","referenceOperationParameterError","referenceOperationFieldError","fieldName","invalidReferenceError","queryValidations","queryInvalid","isNumber","specifier","operand","typeForDisplay","isPositiveNumber","isNonNegativeNumber","isInteger","isNonEmptyString","notGreaterThan","value","invalidSkipParameter","skipParameter","noPrevPage","noNextPage","arityValidations","arityIsZero","arityIsOne","arityIsTwo","arityIsThree","arityIsAtLeastTwo","arityIsAtLeastOne","filterValidations","typeIsString","typeIsStringNumberOrDate","sameType","first","second","typeIsStringNumberOrDateForAll","validFieldName","field","isInstanceOfSameClass","constructorName","obj","isForCollection","filterTreeValidations","objectType","stringify","arrayType","arrayLength","expectedLength","length","comparisonOperatorType","stringOperatorType","setOperatorItems","inOperatorItems","matchesOperatorRequiredProperty","propertyName","matchesOperatorIgnoreCase","matchesOperatorSpecItems","regexNotAllowed","sortValidations","typeIsStringOrArrayOfStrings","effectiveArgs","map","orderByValidations","sortModelType","sortModelItemType","sortModelItem","internalError","message","serverInvalidResponse","itemDoesNotExist","id","cursorPagingDoesNotSupportSkip","payloadIsTooLarge","safeJsonStringify","codes","ItemDoesNotExist","ItemAlreadyExists","SiteInTemplateMode","UnknownError","ValidationError","CollectionDeleted","SchemaDoesNotExist","PermissionDenied","BadRequest","Unauthorized","TooManyRequests","RequestTimedOut","QuotaExceeded","QueryExecutionError","wixDataError","code","details","errorWithCode","validationError","ErrorConstructor","WixDataError","Error","error","constructor","_defineProperty2","default","captureStackTrace","BulkError","name","originalIndex"],"sources":["../../../src/errors/errors.ts"],"sourcesContent":["import { typeForDisplay } from '../utils/type-utils'\nimport safeJsonStringify from 'safe-json-stringify'\n\n// When adding new messages, update Support article with error code and explanation about the error.\nexport const messages = {\n collectionNameMustBeAString: () =>\n 'WDE0001: Collection name must be a string.',\n itemIdMustBeAString: () => 'WDE0002: ItemId must be a string.',\n itemIdsMustBeArrayOfStrings: () =>\n 'WDE0068: Item ids must be an array of strings',\n removeItemsMustBeLessThanThousand: (collectionName: string) =>\n `WDE0069: Failed to remove items from [${collectionName}].\\nCannot remove more than 1000 items in one request`,\n fieldNameMustBeAString: () => 'WDE0003: FieldName must be a string.',\n itemMustBeAnObject: (item: any, collectionName: string) =>\n `WDE0004: Failed to save [${item}] into [${collectionName}].\\nItems must be JavaScript objects.`,\n itemsMustBeArrayOfObjects: (collectionName: string) =>\n `WDE0005: Failed to bulk save items into [${collectionName}].\\nItems must be an array of JavaScript objects and itemIds must be strings if present.`,\n itemsMustBeLessThanThousand: (collectionName: string) =>\n `WDE0006: Failed to bulk save items into [${collectionName}].\\nCannot insert more than 1000 items in one request`,\n updateItemInvalid: () =>\n 'WDE0007: Invalid update. Updated object must have a string _id property.',\n invalidArgumentLength: (\n method: string,\n from: number,\n to: number,\n actual: number\n ) =>\n `WDE0008: wixData.${method} expects between ${from} and ${to} arguments, but was called with ${actual}.`,\n aggregateValidations: {\n aggregateInvalid: (collectionName: string, invalidArguments: string[]) =>\n `Failed to perform aggregation on [${collectionName}].\\n${invalidArguments.join(\n '\\n'\n )}`,\n filterMustBeBuilder: (operatorName: string) =>\n `WDE0011: Invalid ${operatorName} usage. ${operatorName} requires WixDataFilter.`,\n filterIsAlreadySet: (operatorName: string) =>\n `WDE0012: Invalid ${operatorName} usage. Filter is already set.`,\n groupIsAlreadySet: (operatorName: string) =>\n `WDE0013: Invalid ${operatorName} usage. Group is already set.`,\n },\n filterBuilderInvalid: (invalidArguments: string[]) =>\n `Failed to build a filter.\\n${invalidArguments.join('\\n')}.`,\n groupBuilderInvalid: (invalidArguments: string[]) =>\n `Failed to build group.\\n${invalidArguments.join('\\n')}.`,\n filterMustBeAnObject: () => 'WDE0016: Filter must be an object.',\n sortBuilderInvalid: (invalidArguments: string[]) =>\n `Failed to build a sort.\\n${invalidArguments.join('\\n')}.`,\n optionsInvalid: (properties: string[]) =>\n `WDE0018: Options must be an object with one or all of the following boolean properties: ${properties.join(\n ', '\n )}.`,\n referenceOperationParameterError: () =>\n 'WDE0019: Reference operation takes a string ID or an object with an ID to be connected.',\n referenceOperationFieldError: (fieldName: string) =>\n `WDE0020: Provided property [${fieldName}] is not a multi-reference field.`,\n invalidReferenceError: () => `WDE0021: Invalid reference`,\n queryValidations: {\n queryInvalid: (collectionName: string, invalidArguments: string[]) =>\n `Failed to perform query on [${collectionName}].\\n${invalidArguments.join(\n '\\n'\n )}`,\n isNumber: (operatorName: string, specifier: string, operand: any) =>\n `WDE0032: Invalid ${operatorName} parameter [${typeForDisplay(\n operand\n )}]. ${operatorName} parameter must be a ${specifier} number.`,\n isPositiveNumber: (operatorName: string, operand: number) =>\n `WDE0033: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter must be a positive number.`,\n isNonNegativeNumber: (operatorName: string, operand: number) =>\n `WDE0034: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter must be a non-negative number.`,\n isInteger: (operatorName: string, operand: number) =>\n `WDE0035: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter must be an integer.`,\n isNonEmptyString: (operatorName: string) =>\n `WDE0094: Invalid ${operatorName} parameter. ${operatorName} parameter must be non-empty string.`,\n notGreaterThan: (operatorName: string, operand: number, value: number) =>\n `WDE0036: Invalid ${operatorName} parameter [${operand}]. ${operatorName} parameter cannot exceed ${value}.`,\n invalidSkipParameter: (collectionName: string, skipParameter: number) =>\n `WDE0037: Invalid query on [${collectionName}].\\nInvalid prev positioned query skip on a negative number ${skipParameter}.`,\n noPrevPage: (collectionName: string) =>\n `WDE0159: Invalid query on [${collectionName}].\\nThere is no prev page.`,\n noNextPage: (collectionName: string) =>\n `WDE0165: Invalid query on [${collectionName}].\\nThere is no next page.`,\n },\n arityValidations: {\n arityIsZero: (operatorName: string) =>\n `WDE0038: Invalid ${operatorName} usage. ${operatorName} does not take parameters.`,\n arityIsOne: (operatorName: string) =>\n `WDE0039: Invalid ${operatorName} usage. ${operatorName} requires one parameter.`,\n arityIsTwo: (operatorName: string) =>\n `WDE0040: Invalid ${operatorName} usage. ${operatorName} requires two parameters.`,\n arityIsThree: (operatorName: string) =>\n `WDE0041: Invalid ${operatorName} usage. ${operatorName} requires three parameters.`,\n arityIsAtLeastTwo: (operatorName: string) =>\n `WDE0042: Invalid ${operatorName} usage. ${operatorName} requires at least two parameters.`,\n arityIsAtLeastOne: (operatorName: string) =>\n `WDE0043: Invalid ${operatorName} usage. ${operatorName} requires at least one parameter.`,\n },\n filterValidations: {\n typeIsString: (operatorName: string, value: any) =>\n `WDE0044: Invalid ${operatorName} parameter value [${typeForDisplay(\n value\n )}]. ${operatorName} parameter must be a String.`,\n typeIsStringNumberOrDate: (operatorName: string, value: any) =>\n `WDE0045: Invalid ${operatorName} parameter value [${typeForDisplay(\n value\n )}]. Valid ${operatorName} parameter types are String, Number or Date.`,\n sameType: (operatorName: string, first: any, second: any) =>\n `WDE0046: Invalid ${operatorName} parameter values [${typeForDisplay(\n first\n )}] and [${typeForDisplay(\n second\n )}]. Both parameters must be of the same type.`,\n typeIsStringNumberOrDateForAll: (operatorName: string) =>\n `WDE0047: Invalid ${operatorName} usage. ${operatorName} supports only Number, String or Date items.`,\n validFieldName: (operatorName: string, field: string) =>\n `WDE0048: Invalid ${operatorName} field value [${typeForDisplay(\n field\n )}]. ${operatorName} field must be a String.`,\n isInstanceOfSameClass: (\n operatorName: string,\n constructorName: string,\n obj: any\n ) =>\n `WDE0049: Invalid ${operatorName} parameter [${typeForDisplay(\n obj\n )}]. ${operatorName} expects ${constructorName} only.`,\n isForCollection: (\n operatorName: string,\n constructorName: string,\n collectionName: string\n ) =>\n `WDE0050: Invalid ${operatorName} parameter query for [${collectionName}]. ${operatorName} accepts ${constructorName} for the same collection only.`,\n },\n filterTreeValidations: {\n objectType: (operatorName: string, value: any) =>\n `WDE0056: ${operatorName} should be an Object. Got ${stringify(\n value\n )} instead`,\n arrayType: (operatorName: string, value: any) =>\n `WDE0057: ${operatorName} should be an Array. Got ${stringify(\n value\n )} instead`,\n arrayLength: (operatorName: string, expectedLength: number, value: any[]) =>\n `WDE0057: ${stringify(value)}.length is ${\n value.length\n }. ${operatorName} Array should have length ${expectedLength}`,\n comparisonOperatorType: (operatorName: string, value: any) =>\n `WDE0058: ${operatorName} should be a Date, Number, or String. Got ${stringify(\n value\n )} instead`,\n stringOperatorType: (operatorName: string, value: any) =>\n `WDE0059: ${operatorName} should be a String. Got ${stringify(\n value\n )} instead`,\n setOperatorItems: (operatorName: string, value: any) =>\n `WDE0060: ${operatorName} Array should only contain values of types Date, Number, and String. Got ${stringify(\n value\n )} instead`,\n inOperatorItems: (value: any) =>\n `WDE0061: $in Array should have length 2, and match [String, Number]. Got ${stringify(\n value\n )} instead`,\n matchesOperatorRequiredProperty: (propertyName: string, value: any) =>\n `WDE0062: $matches value ${stringify(\n value\n )} does not have property ${propertyName}`,\n matchesOperatorIgnoreCase: (value: any) =>\n `WDE0063: $matches.ignoreCase should equal true. Got ${stringify(\n value\n )} instead`,\n matchesOperatorSpecItems: (value: any) =>\n `WDE0064: $matches.spec Array values should be either {\"type\":\"anyOf\",\"value\":\" -\"} or {\"type\":\"literal\",\"value\":String}. Got ${stringify(\n value\n )} instead`,\n regexNotAllowed: () => 'WDE0070: $regex keyword is not allowed.',\n },\n sortValidations: {\n typeIsStringOrArrayOfStrings: (\n operatorName: string,\n effectiveArgs: any[]\n ) =>\n `WDE0051: Invalid ${operatorName} parameters [${effectiveArgs.map(\n typeForDisplay\n )}]. Valid ${operatorName} values are String, Array of String or varargs String.`,\n },\n orderByValidations: {\n sortModelType: (value: any) =>\n `WDE0065: Sort Model should be an Array. Got ${stringify(value)} instead`,\n sortModelItemType: (value: any) =>\n `WDE0066: Sort Model Array should contain values of type Object only. Got ${stringify(\n value\n )} instead`,\n sortModelItem: (value: any) =>\n `WDE0067: Sort Model Array items should have a single property with value \"asc\" or \"desc\". Got ${stringify(\n value\n )} instead`,\n },\n internalError: (message: string) =>\n `WDE0053: Internal wixData error: ${message}`,\n serverInvalidResponse: (message: string) =>\n 'WDE0055: Failed to parse server response.' +\n (message ? ` ${message}` : ''),\n itemDoesNotExist: (id: string, collectionName: string) =>\n `WDE0073: Item [${id}] does not exist in collection [${collectionName}].`,\n cursorPagingDoesNotSupportSkip: () =>\n 'WDE0080: Skip is not supported in cursor paging.',\n payloadIsTooLarge: () => 'WDE0109: Payload is too large.',\n}\n\nfunction stringify(obj: any) {\n return safeJsonStringify(obj)\n}\n\nexport const codes = {\n ItemDoesNotExist: 'WD_ITEM_DOES_NOT_EXIST',\n ItemAlreadyExists: 'WD_ITEM_ALREADY_EXISTS',\n SiteInTemplateMode: 'WD_SITE_IN_TEMPLATE_MODE',\n UnknownError: 'WD_UNKNOWN_ERROR',\n ValidationError: 'WD_VALIDATION_ERROR',\n CollectionDeleted: 'WD_COLLECTION_DELETED',\n SchemaDoesNotExist: 'WD_SCHEMA_DOES_NOT_EXIST',\n PermissionDenied: 'WD_PERMISSION_DENIED',\n BadRequest: 'WD_BAD_REQUEST',\n Unauthorized: 'WD_UNAUTHORIZED',\n TooManyRequests: 'WD_TOO_MANY_REQUESTS',\n RequestTimedOut: 'WD_REQUEST_TIMED_OUT',\n QuotaExceeded: 'WD_DATABASE_QUOTA_EXCEEDED',\n QueryExecutionError: 'WD_QUERY_EXECUTION_ERROR',\n}\n\nexport function wixDataError(message: string, code: string, details?: any) {\n return errorWithCode(message, code, details)\n}\n\nexport function validationError(message: string) {\n return errorWithCode(message, codes.ValidationError)\n}\n\nfunction errorWithCode(message: string, code: string, details?: any) {\n const ErrorConstructor =\n code && code !== codes.UnknownError ? WixDataError : Error\n // @ts-ignore-next-line\n const error = new ErrorConstructor(message)\n // @ts-ignore-next-line\n error.code = code\n if (details) {\n // @ts-ignore-next-line\n error.details = details\n }\n return error\n}\n\nclass WixDataError extends Error {\n name = 'Error'\n\n // marker for user error\n errorGroup = 'User'\n\n constructor(message: string) {\n super(message)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, WixDataError)\n }\n }\n}\n\nexport class BulkError extends Error {\n constructor(\n public message: string,\n public code: string,\n public item: any,\n public name: string,\n public originalIndex: number\n ) {\n super(message)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BulkError)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _errors = require("./errors");
|
|
5
|
+
exports.messages = _errors.messages;
|
|
6
|
+
exports.codes = _errors.codes;
|
|
7
|
+
exports.wixDataError = _errors.wixDataError;
|
|
8
|
+
exports.validationError = _errors.validationError;
|
|
9
|
+
exports.BulkError = _errors.BulkError;
|
|
10
|
+
var _validations = require("./validations");
|
|
11
|
+
exports.apiValidator = _validations.apiValidator;
|
|
12
|
+
var _baseValidator = require("./base-validator");
|
|
13
|
+
exports.AggregatingValidator = _baseValidator.AggregatingValidator;
|
|
14
|
+
exports.RejectingValidator = _baseValidator.RejectingValidator;
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_errors","require","exports","messages","codes","wixDataError","validationError","BulkError","_validations","apiValidator","_baseValidator","AggregatingValidator","RejectingValidator"],"sources":["../../../src/errors/index.ts"],"sourcesContent":["import {\n messages,\n codes,\n wixDataError,\n validationError,\n BulkError,\n} from './errors'\nimport { apiValidator } from './validations'\nimport { AggregatingValidator, RejectingValidator } from './base-validator'\n\nexport {\n messages,\n codes,\n wixDataError,\n validationError,\n BulkError,\n apiValidator,\n AggregatingValidator,\n RejectingValidator,\n}\n"],"mappings":";;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAMiBC,OAAA,CAAAC,QAAA,GAAAH,OAAA,CAAAG,QAAA;AAAAD,OAAA,CAAAE,KAAA,GAAAJ,OAAA,CAAAI,KAAA;AAAAF,OAAA,CAAAG,YAAA,GAAAL,OAAA,CAAAK,YAAA;AAAAH,OAAA,CAAAI,eAAA,GAAAN,OAAA,CAAAM,eAAA;AAAAJ,OAAA,CAAAK,SAAA,GAAAP,OAAA,CAAAO,SAAA;AACjB,IAAAC,YAAA,GAAAP,OAAA;AAA4CC,OAAA,CAAAO,YAAA,GAAAD,YAAA,CAAAC,YAAA;AAC5C,IAAAC,cAAA,GAAAT,OAAA;AAA2EC,OAAA,CAAAS,oBAAA,GAAAD,cAAA,CAAAC,oBAAA;AAAAT,OAAA,CAAAU,kBAAA,GAAAF,cAAA,CAAAE,kBAAA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.apiValidator = apiValidator;
|
|
5
|
+
var _errors = require("./errors");
|
|
6
|
+
var _typeUtils = require("../utils/type-utils");
|
|
7
|
+
var _baseValidator = require("./base-validator");
|
|
8
|
+
class ApiValidator extends _baseValidator.RejectingValidator {
|
|
9
|
+
arity(method, args, from, to) {
|
|
10
|
+
return this.addValidation(() => args.length <= to && args.length >= from, () => _errors.messages.invalidArgumentLength(method, from, to, args.length));
|
|
11
|
+
}
|
|
12
|
+
_isObject(item, collectionName) {
|
|
13
|
+
return this.addValidation(() => (0, _typeUtils.isObject)(item), () => _errors.messages.itemMustBeAnObject(item, collectionName));
|
|
14
|
+
}
|
|
15
|
+
item(item, collectionName, requireId) {
|
|
16
|
+
return this._isObject(item, collectionName).addValidation(() => item._id !== undefined ? (0, _typeUtils.isString)(item._id) : !requireId, () => _errors.messages.updateItemInvalid());
|
|
17
|
+
}
|
|
18
|
+
items(items, collectionName) {
|
|
19
|
+
return this.addValidation(() => (0, _typeUtils.isArray)(items) && items.every(item => (0, _typeUtils.isObject)(item) && (item._id === undefined || item._id === null || (0, _typeUtils.isString)(item._id))), () => _errors.messages.itemsMustBeArrayOfObjects(collectionName)).addValidation(() => items.length <= 1000, () => _errors.messages.itemsMustBeLessThanThousand(collectionName));
|
|
20
|
+
}
|
|
21
|
+
fieldName(fieldName) {
|
|
22
|
+
return this.addValidation(() => (0, _typeUtils.isString)(fieldName), () => _errors.messages.fieldNameMustBeAString());
|
|
23
|
+
}
|
|
24
|
+
itemId(itemId) {
|
|
25
|
+
return this.addValidation(() => (0, _typeUtils.isString)(itemId), () => _errors.messages.itemIdMustBeAString());
|
|
26
|
+
}
|
|
27
|
+
itemIds(itemIds, collectionName) {
|
|
28
|
+
return this.addValidation(() => (0, _typeUtils.isArray)(itemIds) && itemIds.every(itemId => (0, _typeUtils.isString)(itemId)), () => _errors.messages.itemIdsMustBeArrayOfStrings()).addValidation(() => itemIds.length <= 1000, () => _errors.messages.removeItemsMustBeLessThanThousand(collectionName));
|
|
29
|
+
}
|
|
30
|
+
_options(options, flags) {
|
|
31
|
+
return this.addValidation(() => {
|
|
32
|
+
const validOptions = (0, _typeUtils.isObject)(options) && flags.every(flag => {
|
|
33
|
+
if (flag === 'language') {
|
|
34
|
+
return isNonEmptyStringIfDefined(options[flag]);
|
|
35
|
+
} else {
|
|
36
|
+
return isBooleanIfDefined(options[flag]);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return options == null || validOptions;
|
|
40
|
+
}, () => _errors.messages.optionsInvalid(flags));
|
|
41
|
+
}
|
|
42
|
+
referenceRemoveParameters(parameters) {
|
|
43
|
+
return this.addValidation(() => (0, _typeUtils.isArray)(parameters) && parameters.every(isRemoveReferenceParameter), _errors.messages.referenceOperationParameterError);
|
|
44
|
+
}
|
|
45
|
+
referenceParameters(parameters) {
|
|
46
|
+
return this.addValidation(() => (0, _typeUtils.isArray)(parameters) && parameters.every(isReferenceParameter), _errors.messages.referenceOperationParameterError);
|
|
47
|
+
}
|
|
48
|
+
referenceParameter(parameter) {
|
|
49
|
+
return this.addValidation(() => isReferenceParameter(parameter), _errors.messages.referenceOperationParameterError);
|
|
50
|
+
}
|
|
51
|
+
isNonEmptyString(operand, operandName) {
|
|
52
|
+
return this.addValidation(() => typeof operand === 'string' && operand.length > 0, () => _errors.messages.queryValidations.isNonEmptyString(operandName));
|
|
53
|
+
}
|
|
54
|
+
references(refs) {
|
|
55
|
+
return this.addValidation(() => (0, _typeUtils.isArray)(refs) && refs.every(ref => (0, _typeUtils.isString)(ref.relationshipName) && isReferenceParameter(ref.left) && isReferenceParameter(ref.right)), _errors.messages.invalidReferenceError);
|
|
56
|
+
}
|
|
57
|
+
options(options) {
|
|
58
|
+
return this._options(options, ['suppressAuth', 'suppressHooks', 'showDrafts', 'consistentRead', 'language']);
|
|
59
|
+
}
|
|
60
|
+
bulkInsertOptions(options) {
|
|
61
|
+
return this._options(options, ['suppressAuth', 'suppressHooks', 'overrideExisting']);
|
|
62
|
+
}
|
|
63
|
+
bulkUpdateOptions(options) {
|
|
64
|
+
return this._options(options, ['suppressAuth', 'suppressHooks', 'showDrafts']);
|
|
65
|
+
}
|
|
66
|
+
bulkRemoveOptions(options) {
|
|
67
|
+
return this._options(options, ['suppressAuth', 'suppressHooks', 'showDrafts']);
|
|
68
|
+
}
|
|
69
|
+
truncateOptions(options) {
|
|
70
|
+
return this._options(options, ['suppressAuth']);
|
|
71
|
+
}
|
|
72
|
+
collectionName(collectionName) {
|
|
73
|
+
return this.addValidation(() => (0, _typeUtils.isString)(collectionName), () => _errors.messages.collectionNameMustBeAString());
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function apiValidator() {
|
|
77
|
+
return new ApiValidator();
|
|
78
|
+
}
|
|
79
|
+
function isNonEmptyStringIfDefined(value) {
|
|
80
|
+
return value == null || (0, _typeUtils.isString)(value) && value.length > 0;
|
|
81
|
+
}
|
|
82
|
+
function isBooleanIfDefined(value) {
|
|
83
|
+
return value == null || (0, _typeUtils.isBoolean)(value);
|
|
84
|
+
}
|
|
85
|
+
function isReferenceParameter(parameter) {
|
|
86
|
+
return (0, _typeUtils.isString)(parameter) && parameter !== '' || (0, _typeUtils.isObject)(parameter) && parameter.hasOwnProperty('_id');
|
|
87
|
+
}
|
|
88
|
+
function isRemoveReferenceParameter(parameter) {
|
|
89
|
+
return (0, _typeUtils.isString)(parameter) || (0, _typeUtils.isObject)(parameter) && parameter.hasOwnProperty('_id');
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=validations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_errors","require","_typeUtils","_baseValidator","ApiValidator","RejectingValidator","arity","method","args","from","to","addValidation","length","messages","invalidArgumentLength","_isObject","item","collectionName","isObject","itemMustBeAnObject","requireId","_id","undefined","isString","updateItemInvalid","items","isArray","every","itemsMustBeArrayOfObjects","itemsMustBeLessThanThousand","fieldName","fieldNameMustBeAString","itemId","itemIdMustBeAString","itemIds","itemIdsMustBeArrayOfStrings","removeItemsMustBeLessThanThousand","_options","options","flags","validOptions","flag","isNonEmptyStringIfDefined","isBooleanIfDefined","optionsInvalid","referenceRemoveParameters","parameters","isRemoveReferenceParameter","referenceOperationParameterError","referenceParameters","isReferenceParameter","referenceParameter","parameter","isNonEmptyString","operand","operandName","queryValidations","references","refs","ref","relationshipName","left","right","invalidReferenceError","bulkInsertOptions","bulkUpdateOptions","bulkRemoveOptions","truncateOptions","collectionNameMustBeAString","apiValidator","value","isBoolean","hasOwnProperty"],"sources":["../../../src/errors/validations.ts"],"sourcesContent":["import { messages } from './errors'\nimport { isString, isBoolean, isObject, isArray } from '../utils/type-utils'\nimport { RejectingValidator } from './base-validator'\n\nclass ApiValidator extends RejectingValidator {\n arity(method: string, args: IArguments, from: number, to: number) {\n return this.addValidation(\n () => args.length <= to && args.length >= from,\n () => messages.invalidArgumentLength(method, from, to, args.length)\n )\n }\n\n _isObject(item: any, collectionName: string) {\n return this.addValidation(\n () => isObject(item),\n () => messages.itemMustBeAnObject(item, collectionName)\n )\n }\n\n item(item: any, collectionName: string, requireId: boolean) {\n return this._isObject(item, collectionName).addValidation(\n () => (item._id !== undefined ? isString(item._id) : !requireId),\n () => messages.updateItemInvalid()\n )\n }\n\n items(items: any, collectionName: string) {\n return this.addValidation(\n () =>\n isArray(items) &&\n items.every(\n (item) =>\n isObject(item) &&\n (item._id === undefined || item._id === null || isString(item._id))\n ),\n () => messages.itemsMustBeArrayOfObjects(collectionName)\n ).addValidation(\n () => items.length <= 1000,\n () => messages.itemsMustBeLessThanThousand(collectionName)\n )\n }\n\n fieldName(fieldName: any) {\n return this.addValidation(\n () => isString(fieldName),\n () => messages.fieldNameMustBeAString()\n )\n }\n\n itemId(itemId: any) {\n return this.addValidation(\n () => isString(itemId),\n () => messages.itemIdMustBeAString()\n )\n }\n\n itemIds(itemIds: any, collectionName: string) {\n return this.addValidation(\n () => isArray(itemIds) && itemIds.every((itemId) => isString(itemId)),\n () => messages.itemIdsMustBeArrayOfStrings()\n ).addValidation(\n () => itemIds.length <= 1000,\n () => messages.removeItemsMustBeLessThanThousand(collectionName)\n )\n }\n\n _options(options: any, flags: string[]) {\n return this.addValidation(\n () => {\n const validOptions =\n isObject(options) &&\n flags.every((flag) => {\n if (flag === 'language') {\n return isNonEmptyStringIfDefined(options[flag])\n } else {\n return isBooleanIfDefined(options[flag])\n }\n })\n return options == null || validOptions\n },\n () => messages.optionsInvalid(flags)\n )\n }\n\n referenceRemoveParameters(parameters: any) {\n return this.addValidation(\n () => isArray(parameters) && parameters.every(isRemoveReferenceParameter),\n messages.referenceOperationParameterError\n )\n }\n\n referenceParameters(parameters: any) {\n return this.addValidation(\n () => isArray(parameters) && parameters.every(isReferenceParameter),\n messages.referenceOperationParameterError\n )\n }\n\n referenceParameter(parameter: any) {\n return this.addValidation(\n () => isReferenceParameter(parameter),\n messages.referenceOperationParameterError\n )\n }\n\n isNonEmptyString(operand: any, operandName: string) {\n return this.addValidation(\n () => typeof operand === 'string' && operand.length > 0,\n () => messages.queryValidations.isNonEmptyString(operandName)\n )\n }\n\n references(refs: any) {\n return this.addValidation(\n () =>\n isArray(refs) &&\n refs.every(\n (ref) =>\n isString(ref.relationshipName) &&\n isReferenceParameter(ref.left) &&\n isReferenceParameter(ref.right)\n ),\n messages.invalidReferenceError\n )\n }\n\n options(options: any) {\n return this._options(options, [\n 'suppressAuth',\n 'suppressHooks',\n 'showDrafts',\n 'consistentRead',\n 'language',\n ])\n }\n\n bulkInsertOptions(options: any) {\n return this._options(options, [\n 'suppressAuth',\n 'suppressHooks',\n 'overrideExisting',\n ])\n }\n\n bulkUpdateOptions(options: any) {\n return this._options(options, [\n 'suppressAuth',\n 'suppressHooks',\n 'showDrafts',\n ])\n }\n\n bulkRemoveOptions(options: any) {\n return this._options(options, [\n 'suppressAuth',\n 'suppressHooks',\n 'showDrafts',\n ])\n }\n\n truncateOptions(options: any) {\n return this._options(options, ['suppressAuth'])\n }\n\n collectionName(collectionName: any) {\n return this.addValidation(\n () => isString(collectionName),\n () => messages.collectionNameMustBeAString()\n )\n }\n}\n\nexport function apiValidator() {\n return new ApiValidator()\n}\n\nfunction isNonEmptyStringIfDefined(value: any) {\n return value == null || (isString(value) && value.length > 0)\n}\n\nfunction isBooleanIfDefined(value: any) {\n return value == null || isBoolean(value)\n}\n\nfunction isReferenceParameter(parameter: any) {\n return (\n (isString(parameter) && parameter !== '') ||\n (isObject(parameter) && parameter.hasOwnProperty('_id'))\n )\n}\n\nfunction isRemoveReferenceParameter(parameter: any) {\n return (\n isString(parameter) ||\n (isObject(parameter) && parameter.hasOwnProperty('_id'))\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/external-types.d.ts"],"sourcesContent":["/// <reference types=\"@wix/yoshi-flow-library/types\" />\n"],"mappings":"AAAA"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.validateFilterOrThrow = validateFilterOrThrow;
|
|
5
|
+
exports.validateFilterTree = validateFilterTree;
|
|
6
|
+
var _errors = require("../errors/errors");
|
|
7
|
+
var _typeUtils = require("../utils/type-utils");
|
|
8
|
+
// [FilterTree] is old format
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
filterTreeValidations: errors
|
|
12
|
+
} = _errors.messages;
|
|
13
|
+
function validateFilterOrThrow(tree) {
|
|
14
|
+
const failures = validateFilterTree(tree);
|
|
15
|
+
if (failures.length === 0) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
throw (0, _errors.validationError)(`Invalid filter:${failures.join('\n')}`);
|
|
19
|
+
}
|
|
20
|
+
function validateFilterTree(tree, path) {
|
|
21
|
+
if (!(0, _typeUtils.isObject)(tree)) {
|
|
22
|
+
return [errors.objectType('Filter Model', tree)];
|
|
23
|
+
}
|
|
24
|
+
const collectedErrors = [];
|
|
25
|
+
for (const key of Object.keys(tree)) {
|
|
26
|
+
const value = tree[key];
|
|
27
|
+
const at = join(path, key);
|
|
28
|
+
switch (key) {
|
|
29
|
+
case '$and':
|
|
30
|
+
case '$or':
|
|
31
|
+
if (!(0, _typeUtils.isArray)(value)) {
|
|
32
|
+
collectedErrors.push(errors.arrayType(at, value));
|
|
33
|
+
}
|
|
34
|
+
if ((0, _typeUtils.isArray)(value)) {
|
|
35
|
+
collectedErrors.push(...value.flatMap(x => validateFilterTree(x, at)));
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
case '$not':
|
|
39
|
+
if (!(0, _typeUtils.isArray)(value)) {
|
|
40
|
+
collectedErrors.push(...validateFilterTree(value, at));
|
|
41
|
+
}
|
|
42
|
+
if ((0, _typeUtils.isArray)(value) && value.length !== 1) {
|
|
43
|
+
collectedErrors.push(errors.arrayLength(at, 1, value));
|
|
44
|
+
}
|
|
45
|
+
if ((0, _typeUtils.isArray)(value) && value.length > 0) {
|
|
46
|
+
collectedErrors.push(...validateFilterTree(value[0], at));
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
if (key.startsWith('$')) {
|
|
51
|
+
collectedErrors.push(`Unexpected operator ${at}`);
|
|
52
|
+
} else {
|
|
53
|
+
collectedErrors.push(...validateOperatorOrValue(value, at));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return collectedErrors;
|
|
58
|
+
}
|
|
59
|
+
function validateOperatorOrValue(value, path) {
|
|
60
|
+
if ((0, _typeUtils.isObject)(value) && !isComparableValue(value) && Object.keys(value).some(op => op.startsWith('$'))) {
|
|
61
|
+
return validateOperator(value, path);
|
|
62
|
+
}
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
function validateOperator(operator, path) {
|
|
66
|
+
if (!(0, _typeUtils.isObject)(operator)) {
|
|
67
|
+
return [errors.objectType(path, operator)];
|
|
68
|
+
}
|
|
69
|
+
const collectedErrors = [];
|
|
70
|
+
for (const key of Object.keys(operator)) {
|
|
71
|
+
const at = join(path, key);
|
|
72
|
+
const value = operator[key];
|
|
73
|
+
switch (key) {
|
|
74
|
+
case '$eq':
|
|
75
|
+
case '$ne':
|
|
76
|
+
break;
|
|
77
|
+
case '$gt':
|
|
78
|
+
case '$gte':
|
|
79
|
+
case '$lt':
|
|
80
|
+
case '$lte':
|
|
81
|
+
if (!isComparableValue(value)) {
|
|
82
|
+
collectedErrors.push(errors.comparisonOperatorType(at, value));
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
case '$startsWith':
|
|
86
|
+
case '$endsWith':
|
|
87
|
+
case '$contains':
|
|
88
|
+
if (!(0, _typeUtils.isString)(value)) {
|
|
89
|
+
collectedErrors.push(errors.stringOperatorType(at, value));
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
case '$exists':
|
|
93
|
+
if (!(0, _typeUtils.isBoolean)(value)) {
|
|
94
|
+
collectedErrors.push(`${at} should be a Boolean`);
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case '$hasSome':
|
|
98
|
+
case '$hasAll':
|
|
99
|
+
case '$in':
|
|
100
|
+
if (!(0, _typeUtils.isArray)(value)) {
|
|
101
|
+
collectedErrors.push(errors.arrayType(at, value));
|
|
102
|
+
}
|
|
103
|
+
if ((0, _typeUtils.isArray)(value) && !value.every(isComparableValue)) {
|
|
104
|
+
collectedErrors.push(errors.setOperatorItems(at, value));
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
case '$matches':
|
|
108
|
+
if (!(0, _typeUtils.isObject)(value)) {
|
|
109
|
+
collectedErrors.push(errors.objectType(at, value));
|
|
110
|
+
}
|
|
111
|
+
if ((0, _typeUtils.isObject)(value) && value.ignoreCase !== true) {
|
|
112
|
+
collectedErrors.push(errors.matchesOperatorIgnoreCase(value));
|
|
113
|
+
}
|
|
114
|
+
if ((0, _typeUtils.isObject)(value) && !(0, _typeUtils.isArray)(value.spec)) {
|
|
115
|
+
collectedErrors.push(errors.arrayType(`${at}.spec`, value.spec));
|
|
116
|
+
}
|
|
117
|
+
if ((0, _typeUtils.isArray)(value == null ? void 0 : value.spec)) {
|
|
118
|
+
const validSpec = spec => {
|
|
119
|
+
if (!(0, _typeUtils.isObject)(spec)) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
if (spec.type === 'anyOf' && spec.value === ' \t\n-') {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
return spec.type === 'literal' && (0, _typeUtils.isString)(spec.value);
|
|
126
|
+
};
|
|
127
|
+
const invalid = value.spec.find(x => !validSpec(x));
|
|
128
|
+
if (invalid !== undefined) {
|
|
129
|
+
collectedErrors.push(errors.matchesOperatorSpecItems(invalid));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
break;
|
|
133
|
+
case '$regex':
|
|
134
|
+
collectedErrors.push(errors.regexNotAllowed());
|
|
135
|
+
break;
|
|
136
|
+
case '$not':
|
|
137
|
+
collectedErrors.push(...validateOperator(value, at));
|
|
138
|
+
break;
|
|
139
|
+
default:
|
|
140
|
+
collectedErrors.push(`Unknown operator ${at}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return collectedErrors;
|
|
144
|
+
}
|
|
145
|
+
function isComparableValue(x) {
|
|
146
|
+
if ((0, _typeUtils.isDate)(x) || (0, _typeUtils.isString)(x) || (0, _typeUtils.isNumber)(x)) {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
return (0, _typeUtils.isObject)(x) && (0, _typeUtils.isString)(x.$date) && Object.keys(x).length === 1;
|
|
150
|
+
}
|
|
151
|
+
function join(prefix, next) {
|
|
152
|
+
return prefix === undefined ? next : `${prefix}.${next}`;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=FilterTree.js.map
|