@strapi/utils 4.15.0-alpha.0 → 4.15.1
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/dist/async.d.ts +1 -0
- package/dist/async.d.ts.map +1 -0
- package/dist/code-generator.d.ts +1 -0
- package/dist/code-generator.d.ts.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/content-types.d.ts +1 -0
- package/dist/content-types.d.ts.map +1 -0
- package/dist/convert-query-params.d.ts +1 -0
- package/dist/convert-query-params.d.ts.map +1 -0
- package/dist/env-helper.d.ts +1 -0
- package/dist/env-helper.d.ts.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/file.d.ts +1 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/format-yup-error.d.ts +1 -0
- package/dist/format-yup-error.d.ts.map +1 -0
- package/dist/hooks.d.ts +1 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/import-default.d.ts +1 -0
- package/dist/import-default.d.ts.map +1 -0
- package/dist/index.d.ts +20 -143
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3036 -104
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3019 -0
- package/dist/index.mjs.map +1 -0
- package/dist/object-formatting.d.ts +1 -0
- package/dist/object-formatting.d.ts.map +1 -0
- package/dist/operators.d.ts +1 -0
- package/dist/operators.d.ts.map +1 -0
- package/dist/pagination.d.ts +1 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/parse-multipart.d.ts +2 -2
- package/dist/parse-multipart.d.ts.map +1 -0
- package/dist/parse-type.d.ts +1 -0
- package/dist/parse-type.d.ts.map +1 -0
- package/dist/policy.d.ts +1 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/print-value.d.ts +2 -1
- package/dist/print-value.d.ts.map +1 -0
- package/dist/provider-factory.d.ts +1 -0
- package/dist/provider-factory.d.ts.map +1 -0
- package/dist/relations.d.ts +1 -0
- package/dist/relations.d.ts.map +1 -0
- package/dist/sanitize/index.d.ts +1 -0
- package/dist/sanitize/index.d.ts.map +1 -0
- package/dist/sanitize/sanitizers.d.ts +1 -0
- package/dist/sanitize/sanitizers.d.ts.map +1 -0
- package/dist/sanitize/visitors/index.d.ts +1 -0
- package/dist/sanitize/visitors/index.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-disallowed-fields.d.ts +1 -0
- package/dist/sanitize/visitors/remove-disallowed-fields.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.d.ts +1 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.d.ts +1 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-password.d.ts +1 -0
- package/dist/sanitize/visitors/remove-password.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-private.d.ts +1 -0
- package/dist/sanitize/visitors/remove-private.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-restricted-fields.d.ts +1 -0
- package/dist/sanitize/visitors/remove-restricted-fields.d.ts.map +1 -0
- package/dist/sanitize/visitors/remove-restricted-relations.d.ts +1 -0
- package/dist/sanitize/visitors/remove-restricted-relations.d.ts.map +1 -0
- package/dist/set-creator-fields.d.ts +1 -0
- package/dist/set-creator-fields.d.ts.map +1 -0
- package/dist/string-formatting.d.ts +1 -0
- package/dist/string-formatting.d.ts.map +1 -0
- package/dist/template-configuration.d.ts +2 -1
- package/dist/template-configuration.d.ts.map +1 -0
- package/dist/template.d.ts +1 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/traverse/factory.d.ts +1 -0
- package/dist/traverse/factory.d.ts.map +1 -0
- package/dist/traverse/index.d.ts +1 -0
- package/dist/traverse/index.d.ts.map +1 -0
- package/dist/traverse/query-fields.d.ts +1 -0
- package/dist/traverse/query-fields.d.ts.map +1 -0
- package/dist/traverse/query-filters.d.ts +1 -0
- package/dist/traverse/query-filters.d.ts.map +1 -0
- package/dist/traverse/query-populate.d.ts +1 -0
- package/dist/traverse/query-populate.d.ts.map +1 -0
- package/dist/traverse/query-sort.d.ts +1 -0
- package/dist/traverse/query-sort.d.ts.map +1 -0
- package/dist/traverse-entity.d.ts +1 -0
- package/dist/traverse-entity.d.ts.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -0
- package/dist/validate/index.d.ts +1 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/utils.d.ts +1 -0
- package/dist/validate/utils.d.ts.map +1 -0
- package/dist/validate/validators.d.ts +1 -0
- package/dist/validate/validators.d.ts.map +1 -0
- package/dist/validate/visitors/index.d.ts +1 -0
- package/dist/validate/visitors/index.d.ts.map +1 -0
- package/dist/validate/visitors/throw-disallowed-fields.d.ts +1 -0
- package/dist/validate/visitors/throw-disallowed-fields.d.ts.map +1 -0
- package/dist/validate/visitors/throw-dynamic-zones.d.ts +1 -0
- package/dist/validate/visitors/throw-dynamic-zones.d.ts.map +1 -0
- package/dist/validate/visitors/throw-morph-to-relations.d.ts +1 -0
- package/dist/validate/visitors/throw-morph-to-relations.d.ts.map +1 -0
- package/dist/validate/visitors/throw-password.d.ts +1 -0
- package/dist/validate/visitors/throw-password.d.ts.map +1 -0
- package/dist/validate/visitors/throw-private.d.ts +1 -0
- package/dist/validate/visitors/throw-private.d.ts.map +1 -0
- package/dist/validate/visitors/throw-restricted-fields.d.ts +1 -0
- package/dist/validate/visitors/throw-restricted-fields.d.ts.map +1 -0
- package/dist/validate/visitors/throw-restricted-relations.d.ts +1 -0
- package/dist/validate/visitors/throw-restricted-relations.d.ts.map +1 -0
- package/dist/validators.d.ts +1 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/webhook.d.ts +1 -0
- package/dist/webhook.d.ts.map +1 -0
- package/dist/yup.d.ts +1 -0
- package/dist/yup.d.ts.map +1 -0
- package/package.json +13 -13
- package/dist/async.js +0 -33
- package/dist/async.js.map +0 -1
- package/dist/code-generator.js +0 -11
- package/dist/code-generator.js.map +0 -1
- package/dist/config.js +0 -79
- package/dist/config.js.map +0 -1
- package/dist/content-types.js +0 -162
- package/dist/content-types.js.map +0 -1
- package/dist/convert-query-params.js +0 -477
- package/dist/convert-query-params.js.map +0 -1
- package/dist/env-helper.js +0 -84
- package/dist/env-helper.js.map +0 -1
- package/dist/errors.js +0 -101
- package/dist/errors.js.map +0 -1
- package/dist/file.js +0 -54
- package/dist/file.js.map +0 -1
- package/dist/format-yup-error.js +0 -17
- package/dist/format-yup-error.js.map +0 -1
- package/dist/hooks.js +0 -89
- package/dist/hooks.js.map +0 -1
- package/dist/import-default.js +0 -9
- package/dist/import-default.js.map +0 -1
- package/dist/object-formatting.js +0 -14
- package/dist/object-formatting.js.map +0 -1
- package/dist/operators.js +0 -72
- package/dist/operators.js.map +0 -1
- package/dist/pagination.js +0 -80
- package/dist/pagination.js.map +0 -1
- package/dist/parse-multipart.js +0 -36
- package/dist/parse-multipart.js.map +0 -1
- package/dist/parse-type.js +0 -108
- package/dist/parse-type.js.map +0 -1
- package/dist/policy.js +0 -109
- package/dist/policy.js.map +0 -1
- package/dist/print-value.js +0 -50
- package/dist/print-value.js.map +0 -1
- package/dist/provider-factory.js +0 -80
- package/dist/provider-factory.js.map +0 -1
- package/dist/relations.js +0 -23
- package/dist/relations.js.map +0 -1
- package/dist/sanitize/index.js +0 -156
- package/dist/sanitize/index.js.map +0 -1
- package/dist/sanitize/sanitizers.js +0 -147
- package/dist/sanitize/sanitizers.js.map +0 -1
- package/dist/sanitize/visitors/index.js +0 -21
- package/dist/sanitize/visitors/index.js.map +0 -1
- package/dist/sanitize/visitors/remove-disallowed-fields.js +0 -83
- package/dist/sanitize/visitors/remove-disallowed-fields.js.map +0 -1
- package/dist/sanitize/visitors/remove-dynamic-zones.js +0 -10
- package/dist/sanitize/visitors/remove-dynamic-zones.js.map +0 -1
- package/dist/sanitize/visitors/remove-morph-to-relations.js +0 -10
- package/dist/sanitize/visitors/remove-morph-to-relations.js.map +0 -1
- package/dist/sanitize/visitors/remove-password.js +0 -9
- package/dist/sanitize/visitors/remove-password.js.map +0 -1
- package/dist/sanitize/visitors/remove-private.js +0 -14
- package/dist/sanitize/visitors/remove-private.js.map +0 -1
- package/dist/sanitize/visitors/remove-restricted-fields.js +0 -25
- package/dist/sanitize/visitors/remove-restricted-fields.js.map +0 -1
- package/dist/sanitize/visitors/remove-restricted-relations.js +0 -88
- package/dist/sanitize/visitors/remove-restricted-relations.js.map +0 -1
- package/dist/set-creator-fields.js +0 -39
- package/dist/set-creator-fields.js.map +0 -1
- package/dist/string-formatting.js +0 -85
- package/dist/string-formatting.js.map +0 -1
- package/dist/template-configuration.js +0 -30
- package/dist/template-configuration.js.map +0 -1
- package/dist/template.js +0 -20
- package/dist/template.js.map +0 -1
- package/dist/traverse/factory.js +0 -127
- package/dist/traverse/factory.js.map +0 -1
- package/dist/traverse/index.js +0 -17
- package/dist/traverse/index.js.map +0 -1
- package/dist/traverse/query-fields.js +0 -35
- package/dist/traverse/query-fields.js.map +0 -1
- package/dist/traverse/query-filters.js +0 -75
- package/dist/traverse/query-filters.js.map +0 -1
- package/dist/traverse/query-populate.js +0 -171
- package/dist/traverse/query-populate.js.map +0 -1
- package/dist/traverse/query-sort.js +0 -117
- package/dist/traverse/query-sort.js.map +0 -1
- package/dist/traverse-entity.js +0 -134
- package/dist/traverse-entity.js.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/validate/index.js +0 -121
- package/dist/validate/index.js.map +0 -1
- package/dist/validate/utils.js +0 -9
- package/dist/validate/utils.js.map +0 -1
- package/dist/validate/validators.js +0 -111
- package/dist/validate/validators.js.map +0 -1
- package/dist/validate/visitors/index.js +0 -21
- package/dist/validate/visitors/index.js.map +0 -1
- package/dist/validate/visitors/throw-disallowed-fields.js +0 -84
- package/dist/validate/visitors/throw-disallowed-fields.js.map +0 -1
- package/dist/validate/visitors/throw-dynamic-zones.js +0 -11
- package/dist/validate/visitors/throw-dynamic-zones.js.map +0 -1
- package/dist/validate/visitors/throw-morph-to-relations.js +0 -11
- package/dist/validate/visitors/throw-morph-to-relations.js.map +0 -1
- package/dist/validate/visitors/throw-password.js +0 -10
- package/dist/validate/visitors/throw-password.js.map +0 -1
- package/dist/validate/visitors/throw-private.js +0 -15
- package/dist/validate/visitors/throw-private.js.map +0 -1
- package/dist/validate/visitors/throw-restricted-fields.js +0 -24
- package/dist/validate/visitors/throw-restricted-fields.js.map +0 -1
- package/dist/validate/visitors/throw-restricted-relations.js +0 -81
- package/dist/validate/visitors/throw-restricted-relations.js.map +0 -1
- package/dist/validators.js +0 -64
- package/dist/validators.js.map +0 -1
- package/dist/webhook.js +0 -27
- package/dist/webhook.js.map +0 -1
- package/dist/yup.js +0 -108
- package/dist/yup.js.map +0 -1
package/dist/validate/index.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const fp_1 = require("lodash/fp");
|
|
30
|
-
const content_types_1 = require("../content-types");
|
|
31
|
-
const async_1 = require("../async");
|
|
32
|
-
const visitors = __importStar(require("./visitors"));
|
|
33
|
-
const validators = __importStar(require("./validators"));
|
|
34
|
-
const traverse_entity_1 = __importDefault(require("../traverse-entity"));
|
|
35
|
-
const traverse_1 = require("../traverse");
|
|
36
|
-
const createContentAPIValidators = () => {
|
|
37
|
-
const validateInput = async (data, schema, { auth } = {}) => {
|
|
38
|
-
if (!schema) {
|
|
39
|
-
throw new Error('Missing schema in validateInput');
|
|
40
|
-
}
|
|
41
|
-
if ((0, fp_1.isArray)(data)) {
|
|
42
|
-
await Promise.all(data.map((entry) => validateInput(entry, schema, { auth })));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const nonWritableAttributes = (0, content_types_1.getNonWritableAttributes)(schema);
|
|
46
|
-
const transforms = [
|
|
47
|
-
// non writable attributes
|
|
48
|
-
(0, traverse_entity_1.default)(visitors.throwRestrictedFields(nonWritableAttributes), { schema }),
|
|
49
|
-
];
|
|
50
|
-
if (auth) {
|
|
51
|
-
// restricted relations
|
|
52
|
-
transforms.push((0, traverse_entity_1.default)(visitors.throwRestrictedRelations(auth), { schema }));
|
|
53
|
-
}
|
|
54
|
-
// Apply validators from registry if exists
|
|
55
|
-
strapi.validators
|
|
56
|
-
.get('content-api.input')
|
|
57
|
-
.forEach((validator) => transforms.push(validator(schema)));
|
|
58
|
-
(0, async_1.pipeAsync)(...transforms)(data);
|
|
59
|
-
};
|
|
60
|
-
const validateQuery = async (query, schema, { auth } = {}) => {
|
|
61
|
-
if (!schema) {
|
|
62
|
-
throw new Error('Missing schema in validateQuery');
|
|
63
|
-
}
|
|
64
|
-
const { filters, sort, fields } = query;
|
|
65
|
-
if (filters) {
|
|
66
|
-
await validateFilters(filters, schema, { auth });
|
|
67
|
-
}
|
|
68
|
-
if (sort) {
|
|
69
|
-
await validateSort(sort, schema, { auth });
|
|
70
|
-
}
|
|
71
|
-
if (fields) {
|
|
72
|
-
await validateFields(fields, schema);
|
|
73
|
-
}
|
|
74
|
-
// TODO: validate populate
|
|
75
|
-
};
|
|
76
|
-
const validateFilters = async (filters, schema, { auth } = {}) => {
|
|
77
|
-
if (!schema) {
|
|
78
|
-
throw new Error('Missing schema in validateFilters');
|
|
79
|
-
}
|
|
80
|
-
if ((0, fp_1.isArray)(filters)) {
|
|
81
|
-
await Promise.all(filters.map((filter) => validateFilters(filter, schema, { auth })));
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const transforms = [validators.defaultValidateFilters(schema)];
|
|
85
|
-
if (auth) {
|
|
86
|
-
transforms.push((0, traverse_1.traverseQueryFilters)(visitors.throwRestrictedRelations(auth), { schema }));
|
|
87
|
-
}
|
|
88
|
-
return (0, async_1.pipeAsync)(...transforms)(filters);
|
|
89
|
-
};
|
|
90
|
-
const validateSort = async (sort, schema, { auth } = {}) => {
|
|
91
|
-
if (!schema) {
|
|
92
|
-
throw new Error('Missing schema in validateSort');
|
|
93
|
-
}
|
|
94
|
-
const transforms = [validators.defaultValidateSort(schema)];
|
|
95
|
-
if (auth) {
|
|
96
|
-
transforms.push((0, traverse_1.traverseQuerySort)(visitors.throwRestrictedRelations(auth), { schema }));
|
|
97
|
-
}
|
|
98
|
-
return (0, async_1.pipeAsync)(...transforms)(sort);
|
|
99
|
-
};
|
|
100
|
-
const validateFields = (fields, schema) => {
|
|
101
|
-
if (!schema) {
|
|
102
|
-
throw new Error('Missing schema in validateFields');
|
|
103
|
-
}
|
|
104
|
-
const transforms = [validators.defaultValidateFields(schema)];
|
|
105
|
-
return (0, async_1.pipeAsync)(...transforms)(fields);
|
|
106
|
-
};
|
|
107
|
-
return {
|
|
108
|
-
input: validateInput,
|
|
109
|
-
query: validateQuery,
|
|
110
|
-
filters: validateFilters,
|
|
111
|
-
sort: validateSort,
|
|
112
|
-
fields: validateFields,
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
const contentAPI = createContentAPIValidators();
|
|
116
|
-
exports.default = {
|
|
117
|
-
contentAPI,
|
|
118
|
-
validators,
|
|
119
|
-
visitors,
|
|
120
|
-
};
|
|
121
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"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"}
|
package/dist/validate/utils.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.throwInvalidParam = void 0;
|
|
4
|
-
const errors_1 = require("../errors");
|
|
5
|
-
const throwInvalidParam = ({ key }) => {
|
|
6
|
-
throw new errors_1.ValidationError(`Invalid parameter ${key}`);
|
|
7
|
-
};
|
|
8
|
-
exports.throwInvalidParam = throwInvalidParam;
|
|
9
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/validate/utils.ts"],"names":[],"mappings":";;;AAAA,sCAA4C;AAErC,MAAM,iBAAiB,GAAG,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE;IAC5D,MAAM,IAAI,wBAAe,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.defaultValidateFields = exports.defaultValidateSort = exports.defaultValidateFilters = exports.throwPasswords = void 0;
|
|
7
|
-
const fp_1 = require("lodash/fp");
|
|
8
|
-
const async_1 = require("../async");
|
|
9
|
-
const traverse_entity_1 = __importDefault(require("../traverse-entity"));
|
|
10
|
-
const content_types_1 = require("../content-types");
|
|
11
|
-
const traverse_1 = require("../traverse");
|
|
12
|
-
const visitors_1 = require("./visitors");
|
|
13
|
-
const operators_1 = require("../operators");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
const throwPasswords = (schema) => async (entity) => {
|
|
16
|
-
if (!schema) {
|
|
17
|
-
throw new Error('Missing schema in throwPasswords');
|
|
18
|
-
}
|
|
19
|
-
return (0, traverse_entity_1.default)(visitors_1.throwPassword, { schema }, entity);
|
|
20
|
-
};
|
|
21
|
-
exports.throwPasswords = throwPasswords;
|
|
22
|
-
const defaultValidateFilters = (0, fp_1.curry)((schema, filters) => {
|
|
23
|
-
// TODO: schema checks should check that it is a validate schema with yup
|
|
24
|
-
if (!schema) {
|
|
25
|
-
throw new Error('Missing schema in defaultValidateFilters');
|
|
26
|
-
}
|
|
27
|
-
return (0, async_1.pipeAsync)(
|
|
28
|
-
// keys that are not attributes or valid operators
|
|
29
|
-
(0, traverse_1.traverseQueryFilters)(({ key, attribute }) => {
|
|
30
|
-
// ID is not an attribute per se, so we need to make
|
|
31
|
-
// an extra check to ensure we're not removing it
|
|
32
|
-
if (key === 'id') {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const isAttribute = !!attribute;
|
|
36
|
-
if (!isAttribute && !(0, operators_1.isOperator)(key)) {
|
|
37
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
38
|
-
}
|
|
39
|
-
}, { schema }),
|
|
40
|
-
// dynamic zones from filters
|
|
41
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.throwDynamicZones, { schema }),
|
|
42
|
-
// morphTo relations from filters; because you can't have deep filtering on morph relations
|
|
43
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.throwMorphToRelations, { schema }),
|
|
44
|
-
// passwords from filters
|
|
45
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.throwPassword, { schema }),
|
|
46
|
-
// private from filters
|
|
47
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.throwPrivate, { schema })
|
|
48
|
-
// we allow empty objects to validate and only sanitize them out, so that users may write "lazy" queries without checking their params exist
|
|
49
|
-
)(filters);
|
|
50
|
-
});
|
|
51
|
-
exports.defaultValidateFilters = defaultValidateFilters;
|
|
52
|
-
const defaultValidateSort = (0, fp_1.curry)((schema, sort) => {
|
|
53
|
-
if (!schema) {
|
|
54
|
-
throw new Error('Missing schema in defaultValidateSort');
|
|
55
|
-
}
|
|
56
|
-
return (0, async_1.pipeAsync)(
|
|
57
|
-
// non attribute keys
|
|
58
|
-
(0, traverse_1.traverseQuerySort)(({ key, attribute }) => {
|
|
59
|
-
// ID is not an attribute per se, so we need to make
|
|
60
|
-
// an extra check to ensure we're not removing it
|
|
61
|
-
if (key === 'id') {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if (!attribute) {
|
|
65
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
66
|
-
}
|
|
67
|
-
}, { schema }),
|
|
68
|
-
// dynamic zones from sort
|
|
69
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.throwDynamicZones, { schema }),
|
|
70
|
-
// morphTo relations from sort
|
|
71
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.throwMorphToRelations, { schema }),
|
|
72
|
-
// private from sort
|
|
73
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.throwPrivate, { schema }),
|
|
74
|
-
// passwords from filters
|
|
75
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.throwPassword, { schema }),
|
|
76
|
-
// keys for empty non-scalar values
|
|
77
|
-
(0, traverse_1.traverseQuerySort)(({ key, attribute, value }) => {
|
|
78
|
-
// ID is not an attribute per se, so we need to make
|
|
79
|
-
// an extra check to ensure we're not removing it
|
|
80
|
-
if (key === 'id') {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
if (!(0, content_types_1.isScalarAttribute)(attribute) && (0, fp_1.isEmpty)(value)) {
|
|
84
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
85
|
-
}
|
|
86
|
-
}, { schema }))(sort);
|
|
87
|
-
});
|
|
88
|
-
exports.defaultValidateSort = defaultValidateSort;
|
|
89
|
-
const defaultValidateFields = (0, fp_1.curry)((schema, fields) => {
|
|
90
|
-
if (!schema) {
|
|
91
|
-
throw new Error('Missing schema in defaultValidateFields');
|
|
92
|
-
}
|
|
93
|
-
return (0, async_1.pipeAsync)(
|
|
94
|
-
// Only allow scalar attributes
|
|
95
|
-
(0, traverse_1.traverseQueryFields)(({ key, attribute }) => {
|
|
96
|
-
// ID is not an attribute per se, so we need to make
|
|
97
|
-
// an extra check to ensure we're not removing it
|
|
98
|
-
if (key === 'id') {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
if ((0, fp_1.isNil)(attribute) || !(0, content_types_1.isScalarAttribute)(attribute)) {
|
|
102
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
103
|
-
}
|
|
104
|
-
}, { schema }),
|
|
105
|
-
// private fields
|
|
106
|
-
(0, traverse_1.traverseQueryFields)(visitors_1.throwPrivate, { schema }),
|
|
107
|
-
// password fields
|
|
108
|
-
(0, traverse_1.traverseQueryFields)(visitors_1.throwPassword, { schema }))(fields);
|
|
109
|
-
});
|
|
110
|
-
exports.defaultValidateFields = defaultValidateFields;
|
|
111
|
-
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validate/validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.throwRestrictedFields = exports.throwDisallowedFields = exports.throwDynamicZones = exports.throwMorphToRelations = exports.throwRestrictedRelations = exports.throwPrivate = exports.throwPassword = void 0;
|
|
7
|
-
var throw_password_1 = require("./throw-password");
|
|
8
|
-
Object.defineProperty(exports, "throwPassword", { enumerable: true, get: function () { return __importDefault(throw_password_1).default; } });
|
|
9
|
-
var throw_private_1 = require("./throw-private");
|
|
10
|
-
Object.defineProperty(exports, "throwPrivate", { enumerable: true, get: function () { return __importDefault(throw_private_1).default; } });
|
|
11
|
-
var throw_restricted_relations_1 = require("./throw-restricted-relations");
|
|
12
|
-
Object.defineProperty(exports, "throwRestrictedRelations", { enumerable: true, get: function () { return __importDefault(throw_restricted_relations_1).default; } });
|
|
13
|
-
var throw_morph_to_relations_1 = require("./throw-morph-to-relations");
|
|
14
|
-
Object.defineProperty(exports, "throwMorphToRelations", { enumerable: true, get: function () { return __importDefault(throw_morph_to_relations_1).default; } });
|
|
15
|
-
var throw_dynamic_zones_1 = require("./throw-dynamic-zones");
|
|
16
|
-
Object.defineProperty(exports, "throwDynamicZones", { enumerable: true, get: function () { return __importDefault(throw_dynamic_zones_1).default; } });
|
|
17
|
-
var throw_disallowed_fields_1 = require("./throw-disallowed-fields");
|
|
18
|
-
Object.defineProperty(exports, "throwDisallowedFields", { enumerable: true, get: function () { return __importDefault(throw_disallowed_fields_1).default; } });
|
|
19
|
-
var throw_restricted_fields_1 = require("./throw-restricted-fields");
|
|
20
|
-
Object.defineProperty(exports, "throwRestrictedFields", { enumerable: true, get: function () { return __importDefault(throw_restricted_fields_1).default; } });
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validate/visitors/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAChC,2EAAmF;AAA1E,uJAAA,OAAO,OAA4B;AAC5C,uEAA8E;AAArE,kJAAA,OAAO,OAAyB;AACzC,6DAAqE;AAA5D,yIAAA,OAAO,OAAqB;AACrC,qEAA6E;AAApE,iJAAA,OAAO,OAAyB;AACzC,qEAA6E;AAApE,iJAAA,OAAO,OAAyB"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fp_1 = require("lodash/fp");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
exports.default = (allowedFields = null) => ({ key, path: { attribute: path } }) => {
|
|
6
|
-
// All fields are allowed
|
|
7
|
-
if (allowedFields === null) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
// Throw on invalid formats
|
|
11
|
-
if (!((0, fp_1.isArray)(allowedFields) && allowedFields.every(fp_1.isString))) {
|
|
12
|
-
throw new TypeError(`Expected array of strings for allowedFields but got "${typeof allowedFields}"`);
|
|
13
|
-
}
|
|
14
|
-
if ((0, fp_1.isNil)(path)) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const containedPaths = getContainedPaths(path);
|
|
18
|
-
/**
|
|
19
|
-
* Tells if the current path should be kept or not based
|
|
20
|
-
* on the success of the check functions for any of the allowed paths.
|
|
21
|
-
*
|
|
22
|
-
* The check functions are defined as follow:
|
|
23
|
-
*
|
|
24
|
-
* `containedPaths.includes(p)`
|
|
25
|
-
* @example
|
|
26
|
-
* ```js
|
|
27
|
-
* const path = 'foo.bar.field';
|
|
28
|
-
* const p = 'foo.bar';
|
|
29
|
-
* // it should match
|
|
30
|
-
*
|
|
31
|
-
* const path = 'foo.bar.field';
|
|
32
|
-
* const p = 'bar.foo';
|
|
33
|
-
* // it shouldn't match
|
|
34
|
-
*
|
|
35
|
-
* const path = 'foo.bar';
|
|
36
|
-
* const p = 'foo.bar.field';
|
|
37
|
-
* // it should match but isn't handled by this check
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* `p.startsWith(`${path}.`)`
|
|
41
|
-
* @example
|
|
42
|
-
* ```js
|
|
43
|
-
* const path = 'foo.bar';
|
|
44
|
-
* const p = 'foo.bar.field';
|
|
45
|
-
* // it should match
|
|
46
|
-
*
|
|
47
|
-
* const path = 'foo.bar.field';
|
|
48
|
-
* const p = 'bar.foo';
|
|
49
|
-
* // it shouldn't match
|
|
50
|
-
*
|
|
51
|
-
* const path = 'foo.bar.field';
|
|
52
|
-
* const p = 'foo.bar';
|
|
53
|
-
* // it should match but isn't handled by this check
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
const isPathAllowed = allowedFields.some((p) => containedPaths.includes(p) || p.startsWith(`${path}.`));
|
|
57
|
-
if (isPathAllowed) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
// throw otherwise
|
|
61
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Retrieve the list of allowed paths based on the given path
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```js
|
|
68
|
-
* const containedPaths = getContainedPaths('foo');
|
|
69
|
-
* // ['foo']
|
|
70
|
-
*
|
|
71
|
-
* * const containedPaths = getContainedPaths('foo.bar');
|
|
72
|
-
* // ['foo', 'foo.bar']
|
|
73
|
-
*
|
|
74
|
-
* * const containedPaths = getContainedPaths('foo.bar.field');
|
|
75
|
-
* // ['foo', 'foo.bar', 'foo.bar.field']
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
const getContainedPaths = (path) => {
|
|
79
|
-
const parts = (0, fp_1.toPath)(path);
|
|
80
|
-
return parts.reduce((acc, value, index, list) => {
|
|
81
|
-
return [...acc, list.slice(0, index + 1).join('.')];
|
|
82
|
-
}, []);
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=throw-disallowed-fields.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-disallowed-fields.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-disallowed-fields.ts"],"names":[],"mappings":";;AAAA,kCAA6D;AAE7D,oCAA6C;AAE7C,kBAAe,CAAC,gBAAiC,IAAI,EAAW,EAAE,CAChE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACrC,yBAAyB;IACzB,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,OAAO;KACR;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,IAAA,YAAO,EAAC,aAAa,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,aAAQ,CAAC,CAAC,EAAE;QAC9D,MAAM,IAAI,SAAS,CACjB,wDAAwD,OAAO,aAAa,GAAG,CAChF,CAAC;KACH;IAED,IAAI,IAAA,UAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO;KACR;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAC9D,CAAC;IAEF,IAAI,aAAa,EAAE;QACjB,OAAO;KACR;IAED,kBAAkB;IAClB,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;GAcG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,IAAA,WAAM,EAAC,IAAI,CAAC,CAAC;IAE3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,EAAE,EAAc,CAAC,CAAC;AACrB,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const content_types_1 = require("../../content-types");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const visitor = ({ key, attribute }) => {
|
|
6
|
-
if ((0, content_types_1.isDynamicZoneAttribute)(attribute)) {
|
|
7
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
exports.default = visitor;
|
|
11
|
-
//# sourceMappingURL=throw-dynamic-zones.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-dynamic-zones.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-dynamic-zones.ts"],"names":[],"mappings":";;AAAA,uDAA6D;AAC7D,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9C,IAAI,IAAA,sCAAsB,EAAC,SAAS,CAAC,EAAE;QACrC,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const content_types_1 = require("../../content-types");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const visitor = ({ key, attribute }) => {
|
|
6
|
-
if ((0, content_types_1.isMorphToRelationalAttribute)(attribute)) {
|
|
7
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
exports.default = visitor;
|
|
11
|
-
//# sourceMappingURL=throw-morph-to-relations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-morph-to-relations.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-morph-to-relations.ts"],"names":[],"mappings":";;AAAA,uDAAmE;AACnE,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9C,IAAI,IAAA,4CAA4B,EAAC,SAAS,CAAC,EAAE;QAC3C,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("../utils");
|
|
4
|
-
const visitor = ({ key, attribute }) => {
|
|
5
|
-
if (attribute?.type === 'password') {
|
|
6
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
exports.default = visitor;
|
|
10
|
-
//# sourceMappingURL=throw-password.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-password.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-password.ts"],"names":[],"mappings":";;AAAA,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9C,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE;QAClC,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const content_types_1 = require("../../content-types");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const visitor = ({ schema, key, attribute }) => {
|
|
6
|
-
if (!attribute) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
const isPrivate = attribute.private === true || (0, content_types_1.isPrivateAttribute)(schema, key);
|
|
10
|
-
if (isPrivate) {
|
|
11
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
exports.default = visitor;
|
|
15
|
-
//# sourceMappingURL=throw-private.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-private.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-private.ts"],"names":[],"mappings":";;AAAA,uDAAyD;AACzD,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IACtD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO;KACR;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,IAAA,kCAAkB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhF,IAAI,SAAS,EAAE;QACb,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fp_1 = require("lodash/fp");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
exports.default = (restrictedFields = null) => ({ key, path: { attribute: path } }) => {
|
|
6
|
-
// all fields
|
|
7
|
-
if (restrictedFields === null) {
|
|
8
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
9
|
-
}
|
|
10
|
-
// Throw on invalid formats
|
|
11
|
-
if (!((0, fp_1.isArray)(restrictedFields) && restrictedFields.every(fp_1.isString))) {
|
|
12
|
-
throw new TypeError(`Expected array of strings for restrictedFields but got "${typeof restrictedFields}"`);
|
|
13
|
-
}
|
|
14
|
-
// if an exact match was found
|
|
15
|
-
if (restrictedFields.includes(path)) {
|
|
16
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
17
|
-
}
|
|
18
|
-
// nested matches
|
|
19
|
-
const isRestrictedNested = restrictedFields.some((allowedPath) => path?.toString().startsWith(`${allowedPath}.`));
|
|
20
|
-
if (isRestrictedNested) {
|
|
21
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=throw-restricted-fields.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-restricted-fields.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-restricted-fields.ts"],"names":[],"mappings":";;AAAA,kCAA8C;AAE9C,oCAA6C;AAE7C,kBAAe,CAAC,mBAAoC,IAAI,EAAW,EAAE,CACnE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACrC,aAAa;IACb,IAAI,gBAAgB,KAAK,IAAI,EAAE;QAC7B,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,IAAA,YAAO,EAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,aAAQ,CAAC,CAAC,EAAE;QACpE,MAAM,IAAI,SAAS,CACjB,2DAA2D,OAAO,gBAAgB,GAAG,CACtF,CAAC;KACH;IAED,8BAA8B;IAC9B,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAc,CAAC,EAAE;QAC7C,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;IAED,iBAAiB;IACjB,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAC/D,IAAI,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC,CAC/C,CAAC;IACF,IAAI,kBAAkB,EAAE;QACtB,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const contentTypeUtils = __importStar(require("../../content-types"));
|
|
27
|
-
const utils_1 = require("../utils");
|
|
28
|
-
const ACTIONS_TO_VERIFY = ['find'];
|
|
29
|
-
const { CREATED_BY_ATTRIBUTE, UPDATED_BY_ATTRIBUTE } = contentTypeUtils.constants;
|
|
30
|
-
exports.default = (auth) => async ({ data, key, attribute, schema }) => {
|
|
31
|
-
if (!attribute) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const isRelation = attribute.type === 'relation';
|
|
35
|
-
if (!isRelation) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const handleMorphRelation = async () => {
|
|
39
|
-
for (const element of data[key]) {
|
|
40
|
-
const scopes = ACTIONS_TO_VERIFY.map((action) => `${element.__type}.${action}`);
|
|
41
|
-
const isAllowed = await hasAccessToSomeScopes(scopes, auth);
|
|
42
|
-
if (!isAllowed) {
|
|
43
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
const handleRegularRelation = async () => {
|
|
48
|
-
const scopes = ACTIONS_TO_VERIFY.map((action) => `${attribute.target}.${action}`);
|
|
49
|
-
const isAllowed = await hasAccessToSomeScopes(scopes, auth);
|
|
50
|
-
// If the authenticated user don't have access to any of the scopes
|
|
51
|
-
if (!isAllowed) {
|
|
52
|
-
(0, utils_1.throwInvalidParam)({ key });
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const isCreatorRelation = [CREATED_BY_ATTRIBUTE, UPDATED_BY_ATTRIBUTE].includes(key);
|
|
56
|
-
// Polymorphic relations
|
|
57
|
-
if (contentTypeUtils.isMorphToRelationalAttribute(attribute)) {
|
|
58
|
-
await handleMorphRelation();
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
// Creator relations
|
|
62
|
-
if (isCreatorRelation && schema.options?.populateCreatorFields) {
|
|
63
|
-
// do nothing
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
// Regular relations
|
|
67
|
-
await handleRegularRelation();
|
|
68
|
-
};
|
|
69
|
-
const hasAccessToSomeScopes = async (scopes, auth) => {
|
|
70
|
-
for (const scope of scopes) {
|
|
71
|
-
try {
|
|
72
|
-
await strapi.auth.verify(auth, { scope });
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return false;
|
|
80
|
-
};
|
|
81
|
-
//# sourceMappingURL=throw-restricted-relations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-restricted-relations.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-restricted-relations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAAwD;AACxD,oCAA6C;AAG7C,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC;AAIlF,kBAAe,CAAC,IAAa,EAAW,EAAE,CACxC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;IACzC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO;KACR;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;IAEjD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;QACrC,KAAK,MAAM,OAAO,IAAK,IAAmC,CAAC,GAAG,CAAC,EAAE;YAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;YAChF,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAE5D,IAAI,CAAC,SAAS,EAAE;gBACd,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;aAC5B;SACF;IACH,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QAElF,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE5D,mEAAmE;QACnE,IAAI,CAAC,SAAS,EAAE;YACd,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAErF,wBAAwB;IACxB,IAAI,gBAAgB,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE;QAC5D,MAAM,mBAAmB,EAAE,CAAC;QAC5B,OAAO;KACR;IAED,oBAAoB;IACpB,IAAI,iBAAiB,IAAI,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAE;QAC9D,aAAa;QACb,OAAO;KACR;IAED,oBAAoB;IACpB,MAAM,qBAAqB,EAAE,CAAC;AAChC,CAAC,CAAC;AAEJ,MAAM,qBAAqB,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAa,EAAE,EAAE;IACtE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI;YACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,SAAS;SACV;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/dist/validators.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.validateYupSchemaSync = exports.validateYupSchema = exports.handleYupError = void 0;
|
|
27
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
28
|
-
/* eslint-disable no-template-curly-in-string */
|
|
29
|
-
const yup = __importStar(require("yup"));
|
|
30
|
-
const fp_1 = require("lodash/fp");
|
|
31
|
-
const errors_1 = require("./errors");
|
|
32
|
-
const handleYupError = (error, errorMessage) => {
|
|
33
|
-
throw new errors_1.YupValidationError(error, errorMessage);
|
|
34
|
-
};
|
|
35
|
-
exports.handleYupError = handleYupError;
|
|
36
|
-
const defaultValidationParam = { strict: true, abortEarly: false };
|
|
37
|
-
const validateYupSchema = (schema, options = {}) => async (body, errorMessage) => {
|
|
38
|
-
try {
|
|
39
|
-
const optionsWithDefaults = (0, fp_1.defaults)(defaultValidationParam, options);
|
|
40
|
-
const result = await schema.validate(body, optionsWithDefaults);
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
catch (e) {
|
|
44
|
-
if (e instanceof yup.ValidationError) {
|
|
45
|
-
handleYupError(e, errorMessage);
|
|
46
|
-
}
|
|
47
|
-
throw e;
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
exports.validateYupSchema = validateYupSchema;
|
|
51
|
-
const validateYupSchemaSync = (schema, options = {}) => (body, errorMessage) => {
|
|
52
|
-
try {
|
|
53
|
-
const optionsWithDefaults = (0, fp_1.defaults)(defaultValidationParam, options);
|
|
54
|
-
return schema.validateSync(body, optionsWithDefaults);
|
|
55
|
-
}
|
|
56
|
-
catch (e) {
|
|
57
|
-
if (e instanceof yup.ValidationError) {
|
|
58
|
-
handleYupError(e, errorMessage);
|
|
59
|
-
}
|
|
60
|
-
throw e;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
exports.validateYupSchemaSync = validateYupSchemaSync;
|
|
64
|
-
//# sourceMappingURL=validators.js.map
|
package/dist/validators.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,gDAAgD;AAChD,yCAA2B;AAC3B,kCAAqC;AACrC,qCAA8C;AAE9C,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,YAAqB,EAAE,EAAE;IAC3E,MAAM,IAAI,2BAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC,CAAC;AAmCO,wCAAc;AAjCvB,MAAM,sBAAsB,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAEnE,MAAM,iBAAiB,GACrB,CAAC,MAAqB,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CACxC,KAAK,EAAE,IAAa,EAAE,YAAqB,EAAE,EAAE;IAC7C,IAAI;QACF,MAAM,mBAAmB,GAAG,IAAA,aAAQ,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,GAAG,CAAC,eAAe,EAAE;YACpC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;SACjC;QAED,MAAM,CAAC,CAAC;KACT;AACH,CAAC,CAAC;AAiBqB,8CAAiB;AAf1C,MAAM,qBAAqB,GACzB,CAAC,MAAqB,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CACxC,CAAC,IAAa,EAAE,YAAqB,EAAE,EAAE;IACvC,IAAI;QACF,MAAM,mBAAmB,GAAG,IAAA,aAAQ,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;KACvD;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,GAAG,CAAC,eAAe,EAAE;YACpC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;SACjC;QAED,MAAM,CAAC,CAAC;KACT;AACH,CAAC,CAAC;AAEwC,sDAAqB"}
|