@strapi/utils 4.14.3 → 4.14.5
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 +3046 -104
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3029 -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 +12 -12
- 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/traverse-entity.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fp_1 = require("lodash/fp");
|
|
4
|
-
const content_types_1 = require("./content-types");
|
|
5
|
-
const traverseMorphRelationTarget = async (visitor, path, entry) => {
|
|
6
|
-
const targetSchema = strapi.getModel(entry.__type);
|
|
7
|
-
const traverseOptions = { schema: targetSchema, path };
|
|
8
|
-
return traverseEntity(visitor, traverseOptions, entry);
|
|
9
|
-
};
|
|
10
|
-
const traverseRelationTarget = (schema) => async (visitor, path, entry) => {
|
|
11
|
-
const traverseOptions = { schema, path };
|
|
12
|
-
return traverseEntity(visitor, traverseOptions, entry);
|
|
13
|
-
};
|
|
14
|
-
const traverseMediaTarget = async (visitor, path, entry) => {
|
|
15
|
-
const targetSchemaUID = 'plugin::upload.file';
|
|
16
|
-
const targetSchema = strapi.getModel(targetSchemaUID);
|
|
17
|
-
const traverseOptions = { schema: targetSchema, path };
|
|
18
|
-
return traverseEntity(visitor, traverseOptions, entry);
|
|
19
|
-
};
|
|
20
|
-
const traverseComponent = async (visitor, path, schema, entry) => {
|
|
21
|
-
const traverseOptions = { schema, path };
|
|
22
|
-
return traverseEntity(visitor, traverseOptions, entry);
|
|
23
|
-
};
|
|
24
|
-
const visitDynamicZoneEntry = async (visitor, path, entry) => {
|
|
25
|
-
const targetSchema = strapi.getModel(entry.__component);
|
|
26
|
-
const traverseOptions = { schema: targetSchema, path };
|
|
27
|
-
return traverseEntity(visitor, traverseOptions, entry);
|
|
28
|
-
};
|
|
29
|
-
const traverseEntity = async (visitor, options, entity) => {
|
|
30
|
-
const { path = { raw: null, attribute: null }, schema } = options;
|
|
31
|
-
// End recursion
|
|
32
|
-
if (!(0, fp_1.isObject)(entity) || (0, fp_1.isNil)(schema)) {
|
|
33
|
-
return entity;
|
|
34
|
-
}
|
|
35
|
-
// Don't mutate the original entity object
|
|
36
|
-
// only clone at 1st level as the next level will get clone when traversed
|
|
37
|
-
const copy = (0, fp_1.clone)(entity);
|
|
38
|
-
const visitorUtils = createVisitorUtils({ data: copy });
|
|
39
|
-
const keys = Object.keys(copy);
|
|
40
|
-
for (let i = 0; i < keys.length; i += 1) {
|
|
41
|
-
const key = keys[i];
|
|
42
|
-
// Retrieve the attribute definition associated to the key from the schema
|
|
43
|
-
const attribute = schema.attributes[key];
|
|
44
|
-
// If the attribute doesn't exist within the schema, ignore it
|
|
45
|
-
if ((0, fp_1.isNil)(attribute)) {
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
const newPath = { ...path };
|
|
49
|
-
newPath.raw = (0, fp_1.isNil)(path.raw) ? key : `${path.raw}.${key}`;
|
|
50
|
-
if (!(0, fp_1.isNil)(attribute)) {
|
|
51
|
-
newPath.attribute = (0, fp_1.isNil)(path.attribute) ? key : `${path.attribute}.${key}`;
|
|
52
|
-
}
|
|
53
|
-
// Visit the current attribute
|
|
54
|
-
const visitorOptions = {
|
|
55
|
-
data: copy,
|
|
56
|
-
schema,
|
|
57
|
-
key,
|
|
58
|
-
value: copy[key],
|
|
59
|
-
attribute,
|
|
60
|
-
path: newPath,
|
|
61
|
-
};
|
|
62
|
-
await visitor(visitorOptions, visitorUtils);
|
|
63
|
-
// Extract the value for the current key (after calling the visitor)
|
|
64
|
-
const value = copy[key];
|
|
65
|
-
// Ignore Nil values
|
|
66
|
-
if ((0, fp_1.isNil)(value)) {
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
if ((0, content_types_1.isRelationalAttribute)(attribute)) {
|
|
70
|
-
const isMorphRelation = attribute.relation.toLowerCase().startsWith('morph');
|
|
71
|
-
const method = isMorphRelation
|
|
72
|
-
? traverseMorphRelationTarget
|
|
73
|
-
: traverseRelationTarget(strapi.getModel(attribute.target));
|
|
74
|
-
if ((0, fp_1.isArray)(value)) {
|
|
75
|
-
const res = new Array(value.length);
|
|
76
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
77
|
-
res[i] = await method(visitor, newPath, value[i]);
|
|
78
|
-
}
|
|
79
|
-
copy[key] = res;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
copy[key] = await method(visitor, newPath, value);
|
|
83
|
-
}
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
if ((0, content_types_1.isMediaAttribute)(attribute)) {
|
|
87
|
-
// need to update copy
|
|
88
|
-
if ((0, fp_1.isArray)(value)) {
|
|
89
|
-
const res = new Array(value.length);
|
|
90
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
91
|
-
res[i] = await traverseMediaTarget(visitor, newPath, value[i]);
|
|
92
|
-
}
|
|
93
|
-
copy[key] = res;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
copy[key] = await traverseMediaTarget(visitor, newPath, value);
|
|
97
|
-
}
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
if (attribute.type === 'component') {
|
|
101
|
-
const targetSchema = strapi.getModel(attribute.component);
|
|
102
|
-
if ((0, fp_1.isArray)(value)) {
|
|
103
|
-
const res = new Array(value.length);
|
|
104
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
105
|
-
res[i] = await traverseComponent(visitor, newPath, targetSchema, value[i]);
|
|
106
|
-
}
|
|
107
|
-
copy[key] = res;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
copy[key] = await traverseComponent(visitor, newPath, targetSchema, value);
|
|
111
|
-
}
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (attribute.type === 'dynamiczone' && (0, fp_1.isArray)(value)) {
|
|
115
|
-
const res = new Array(value.length);
|
|
116
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
117
|
-
res[i] = await visitDynamicZoneEntry(visitor, newPath, value[i]);
|
|
118
|
-
}
|
|
119
|
-
copy[key] = res;
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return copy;
|
|
124
|
-
};
|
|
125
|
-
const createVisitorUtils = ({ data }) => ({
|
|
126
|
-
remove(key) {
|
|
127
|
-
delete data[key];
|
|
128
|
-
},
|
|
129
|
-
set(key, value) {
|
|
130
|
-
data[key] = value;
|
|
131
|
-
},
|
|
132
|
-
});
|
|
133
|
-
exports.default = (0, fp_1.curry)(traverseEntity);
|
|
134
|
-
//# sourceMappingURL=traverse-entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traverse-entity.js","sourceRoot":"","sources":["../src/traverse-entity.ts"],"names":[],"mappings":";;AAAA,kCAAmE;AAEnE,mDAA0E;AAyB1E,MAAM,2BAA2B,GAAG,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,KAAW,EAAE,EAAE;IACtF,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEvD,OAAO,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAC1B,CAAC,MAAa,EAAE,EAAE,CAAC,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,KAAW,EAAE,EAAE;IACrE,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEzC,OAAO,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAEJ,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,KAAW,EAAE,EAAE;IAC9E,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEvD,OAAO,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,MAAa,EAAE,KAAW,EAAE,EAAE;IAC3F,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEzC,OAAO,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,KAAW,EAAE,EAAE;IAChF,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEvD,OAAO,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,KAAK,EAAE,OAAgB,EAAE,OAAwB,EAAE,MAAY,EAAE,EAAE;IACxF,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAElE,gBAAgB;IAChB,IAAI,CAAC,IAAA,aAAQ,EAAC,MAAM,CAAC,IAAI,IAAA,UAAK,EAAC,MAAM,CAAC,EAAE;QACtC,OAAO,MAAM,CAAC;KACf;IAED,0CAA0C;IAC1C,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAA,UAAK,EAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,0EAA0E;QAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEzC,8DAA8D;QAC9D,IAAI,IAAA,UAAK,EAAC,SAAS,CAAC,EAAE;YACpB,SAAS;SACV;QAED,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAE5B,OAAO,CAAC,GAAG,GAAG,IAAA,UAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QAE3D,IAAI,CAAC,IAAA,UAAK,EAAC,SAAS,CAAC,EAAE;YACrB,OAAO,CAAC,SAAS,GAAG,IAAA,UAAK,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;SAC9E;QAED,8BAA8B;QAC9B,MAAM,cAAc,GAAmB;YACrC,IAAI,EAAE,IAAI;YACV,MAAM;YACN,GAAG;YACH,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YAChB,SAAS;YACT,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,MAAM,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAE5C,oEAAoE;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAExB,oBAAoB;QACpB,IAAI,IAAA,UAAK,EAAC,KAAK,CAAC,EAAE;YAChB,SAAS;SACV;QAED,IAAI,IAAA,qCAAqB,EAAC,SAAS,CAAC,EAAE;YACpC,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7E,MAAM,MAAM,GAAG,eAAe;gBAC5B,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAE9D,IAAI,IAAA,YAAO,EAAC,KAAK,CAAC,EAAE;gBAClB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBACxC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACjB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAa,CAAC,CAAC;aAC3D;YAED,SAAS;SACV;QAED,IAAI,IAAA,gCAAgB,EAAC,SAAS,CAAC,EAAE;YAC/B,sBAAsB;YACtB,IAAI,IAAA,YAAO,EAAC,KAAK,CAAC,EAAE;gBAClB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBACxC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChE;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACjB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAa,CAAC,CAAC;aACxE;YAED,SAAS;SACV;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAE1D,IAAI,IAAA,YAAO,EAAC,KAAK,CAAC,EAAE;gBAClB,MAAM,GAAG,GAAW,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBACxC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5E;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACjB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAa,CAAC,CAAC;aACpF;YAED,SAAS;SACV;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,IAAI,IAAA,YAAO,EAAC,KAAK,CAAC,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACxC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAClE;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAEhB,SAAS;SACV;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAkB,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAW;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;CACF,CAAC,CAAC;AAEH,kBAAe,IAAA,UAAK,EAAC,cAAc,CAAC,CAAC"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
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"}
|