@strapi/utils 4.14.2 → 4.14.4
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/index.d.ts +19 -143
- package/dist/index.js +7223 -104
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7206 -0
- package/dist/index.mjs.map +1 -0
- package/dist/parse-multipart.d.ts +1 -2
- package/dist/print-value.d.ts +1 -1
- package/dist/template-configuration.d.ts +1 -1
- package/dist/types.d.ts +1 -1
- 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 -115
- 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/policy.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Policies util
|
|
4
|
-
*/
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createPolicyContext = exports.createPolicy = exports.globalPolicy = exports.resolve = exports.get = void 0;
|
|
10
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
11
|
-
const fp_1 = require("lodash/fp");
|
|
12
|
-
const PLUGIN_PREFIX = 'plugin::';
|
|
13
|
-
const API_PREFIX = 'api::';
|
|
14
|
-
const parsePolicy = (policy) => {
|
|
15
|
-
if (typeof policy === 'string') {
|
|
16
|
-
return { policyName: policy, config: {} };
|
|
17
|
-
}
|
|
18
|
-
const { name, config } = policy;
|
|
19
|
-
return { policyName: name, config };
|
|
20
|
-
};
|
|
21
|
-
const searchLocalPolicy = (policyName, policyContext) => {
|
|
22
|
-
const { pluginName, apiName } = policyContext ?? {};
|
|
23
|
-
if (pluginName) {
|
|
24
|
-
return strapi.policy(`${PLUGIN_PREFIX}${pluginName}.${policyName}`);
|
|
25
|
-
}
|
|
26
|
-
if (apiName) {
|
|
27
|
-
return strapi.policy(`${API_PREFIX}${apiName}.${policyName}`);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const globalPolicy = ({ method, endpoint, controller, action, plugin }) => {
|
|
31
|
-
return async (ctx, next) => {
|
|
32
|
-
ctx.request.route = {
|
|
33
|
-
endpoint: `${method} ${endpoint}`,
|
|
34
|
-
controller: lodash_1.default.toLower(controller),
|
|
35
|
-
action: lodash_1.default.toLower(action),
|
|
36
|
-
verb: lodash_1.default.toLower(method),
|
|
37
|
-
plugin,
|
|
38
|
-
};
|
|
39
|
-
await next();
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
exports.globalPolicy = globalPolicy;
|
|
43
|
-
const resolvePolicies = (config, policyContext) => {
|
|
44
|
-
const { pluginName, apiName } = policyContext ?? {};
|
|
45
|
-
return config.map((policyConfig) => {
|
|
46
|
-
return {
|
|
47
|
-
handler: getPolicy(policyConfig, { pluginName, apiName }),
|
|
48
|
-
config: (typeof policyConfig === 'object' && policyConfig.config) || {},
|
|
49
|
-
};
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
exports.resolve = resolvePolicies;
|
|
53
|
-
const findPolicy = (name, policyContext) => {
|
|
54
|
-
const { pluginName, apiName } = policyContext ?? {};
|
|
55
|
-
const resolvedPolicy = strapi.policy(name);
|
|
56
|
-
if (resolvedPolicy !== undefined) {
|
|
57
|
-
return resolvedPolicy;
|
|
58
|
-
}
|
|
59
|
-
const localPolicy = searchLocalPolicy(name, { pluginName, apiName });
|
|
60
|
-
if (localPolicy !== undefined) {
|
|
61
|
-
return localPolicy;
|
|
62
|
-
}
|
|
63
|
-
throw new Error(`Could not find policy "${name}"`);
|
|
64
|
-
};
|
|
65
|
-
const getPolicy = (policyConfig, policyContext) => {
|
|
66
|
-
const { pluginName, apiName } = policyContext ?? {};
|
|
67
|
-
if (typeof policyConfig === 'function') {
|
|
68
|
-
return policyConfig;
|
|
69
|
-
}
|
|
70
|
-
const { policyName, config } = parsePolicy(policyConfig);
|
|
71
|
-
const policy = findPolicy(policyName, { pluginName, apiName });
|
|
72
|
-
if (typeof policy === 'function') {
|
|
73
|
-
return policy;
|
|
74
|
-
}
|
|
75
|
-
if (policy.validator) {
|
|
76
|
-
policy.validator(config);
|
|
77
|
-
}
|
|
78
|
-
return policy.handler;
|
|
79
|
-
};
|
|
80
|
-
exports.get = getPolicy;
|
|
81
|
-
const createPolicy = (options) => {
|
|
82
|
-
const { name = 'unnamed', validator, handler } = options;
|
|
83
|
-
const wrappedValidator = (config) => {
|
|
84
|
-
if (validator) {
|
|
85
|
-
try {
|
|
86
|
-
validator(config);
|
|
87
|
-
}
|
|
88
|
-
catch (e) {
|
|
89
|
-
throw new Error(`Invalid config passed to "${name}" policy.`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
return {
|
|
94
|
-
name,
|
|
95
|
-
validator: wrappedValidator,
|
|
96
|
-
handler,
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
exports.createPolicy = createPolicy;
|
|
100
|
-
const createPolicyContext = (type, ctx) => {
|
|
101
|
-
return Object.assign({
|
|
102
|
-
is: (0, fp_1.eq)(type),
|
|
103
|
-
get type() {
|
|
104
|
-
return type;
|
|
105
|
-
},
|
|
106
|
-
}, ctx);
|
|
107
|
-
};
|
|
108
|
-
exports.createPolicyContext = createPolicyContext;
|
|
109
|
-
//# sourceMappingURL=policy.js.map
|
package/dist/policy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,oDAAuB;AACvB,kCAA+B;AAG/B,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,UAAU,GAAG,OAAO,CAAC;AAsB3B,MAAM,WAAW,GAAG,CAAC,MAA2B,EAAE,EAAE;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;KAC3C;IAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,aAA4B,EAAE,EAAE;IAC7E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAEpD,IAAI,UAAU,EAAE;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,aAAa,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC,CAAC;KACrE;IAED,IAAI,OAAO,EAAE;QACX,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAa,EAAE,EAAE;IACnF,OAAO,KAAK,EAAE,GAAgB,EAAE,IAAgB,EAAE,EAAE;QAClD,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG;YAClB,QAAQ,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE;YACjC,UAAU,EAAE,gBAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YACjC,MAAM,EAAE,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACvB,MAAM;SACP,CAAC;QAEF,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AA6FA,oCAAY;AA3Fd,MAAM,eAAe,GAAG,CAAC,MAAsB,EAAE,aAA4B,EAAE,EAAE;IAC/E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAEpD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACjC,OAAO;YACL,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YACzD,MAAM,EAAE,CAAC,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;SACxE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAiFmB,kCAAO;AA/E5B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,aAA4B,EAAE,EAAE;IAChE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IACpD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAErE,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,GAAG,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,YAA0B,EAAE,aAA6B,EAAE,EAAE;IAC9E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAEpD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;QACtC,OAAO,YAAY,CAAC;KACrB;IAED,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;QAChC,OAAO,MAAM,CAAC;KACf;IAED,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC,CAAC;AAyCa,wBAAG;AAjClB,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE;IACxC,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEzD,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAAE,EAAE;QAC3C,IAAI,SAAS,EAAE;YACb,IAAI;gBACF,SAAS,CAAC,MAAM,CAAC,CAAC;aACnB;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,WAAW,CAAC,CAAC;aAC/D;SACF;IACH,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,gBAAgB;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAkBA,oCAAY;AAhBd,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE;IACxD,OAAO,MAAM,CAAC,MAAM,CAClB;QACE,EAAE,EAAE,IAAA,OAAE,EAAC,IAAI,CAAC;QACZ,IAAI,IAAI;YACN,OAAO,IAAI,CAAC;QACd,CAAC;KACF,EACD,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAOA,kDAAmB"}
|
package/dist/print-value.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Code copied from the yup library (https://github.com/jquense/yup)
|
|
3
|
-
// https://github.com/jquense/yup/blob/2778b88bdacd5260d593c6468793da2e77daf21f/src/util/printValue.ts
|
|
4
|
-
const { toString } = Object.prototype;
|
|
5
|
-
const errorToString = Error.prototype.toString;
|
|
6
|
-
const regExpToString = RegExp.prototype.toString;
|
|
7
|
-
const symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';
|
|
8
|
-
const SYMBOL_REGEXP = /^Symbol\((.*)\)(.*)$/;
|
|
9
|
-
function printNumber(val) {
|
|
10
|
-
// eslint-disable-next-line eqeqeq
|
|
11
|
-
if (val != +val)
|
|
12
|
-
return 'NaN';
|
|
13
|
-
const isNegativeZero = val === 0 && 1 / val < 0;
|
|
14
|
-
return isNegativeZero ? '-0' : `${val}`;
|
|
15
|
-
}
|
|
16
|
-
function printSimpleValue(val, quoteStrings = false) {
|
|
17
|
-
if (val == null || val === true || val === false)
|
|
18
|
-
return `${val}`;
|
|
19
|
-
if (typeof val === 'number')
|
|
20
|
-
return printNumber(val);
|
|
21
|
-
if (typeof val === 'string')
|
|
22
|
-
return quoteStrings ? `"${val}"` : val;
|
|
23
|
-
if (typeof val === 'function')
|
|
24
|
-
return `[Function ${val.name || 'anonymous'}]`;
|
|
25
|
-
if (typeof val === 'symbol')
|
|
26
|
-
return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');
|
|
27
|
-
const tag = toString.call(val).slice(8, -1);
|
|
28
|
-
if (tag === 'Date') {
|
|
29
|
-
const v = val;
|
|
30
|
-
return Number.isNaN(v.getTime()) ? `${v}` : v.toISOString();
|
|
31
|
-
}
|
|
32
|
-
if (tag === 'Error' || val instanceof Error)
|
|
33
|
-
return `[${errorToString.call(val)}]`;
|
|
34
|
-
if (tag === 'RegExp')
|
|
35
|
-
return regExpToString.call(val);
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
function printValue(value, quoteStrings) {
|
|
39
|
-
const result = printSimpleValue(value, quoteStrings);
|
|
40
|
-
if (result !== null)
|
|
41
|
-
return result;
|
|
42
|
-
return JSON.stringify(value, function replacer(key, value) {
|
|
43
|
-
const result = printSimpleValue(this[key], quoteStrings);
|
|
44
|
-
if (result !== null)
|
|
45
|
-
return result;
|
|
46
|
-
return value;
|
|
47
|
-
}, 2);
|
|
48
|
-
}
|
|
49
|
-
module.exports = printValue;
|
|
50
|
-
//# sourceMappingURL=print-value.js.map
|
package/dist/print-value.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-value.js","sourceRoot":"","sources":["../src/print-value.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,sGAAsG;AAEtG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;AACtC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;AACjD,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;AAE5F,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C,SAAS,WAAW,CAAC,GAAW;IAC9B,kCAAkC;IAClC,IAAI,GAAG,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAChD,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY,EAAE,YAAY,GAAG,KAAK;IAC1D,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,GAAG,GAAG,EAAE,CAAC;IAElE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IACrD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,aAAa,GAAG,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;IAC9E,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAElG,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAI,GAAG,KAAK,MAAM,EAAE;QAClB,MAAM,CAAC,GAAG,GAAW,CAAC;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;KAC7D;IACD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACnF,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,YAAqB;IACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAEnC,OAAO,IAAI,CAAC,SAAS,CACnB,KAAK,EACL,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iBAAS,UAAU,CAAC"}
|
package/dist/provider-factory.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fp_1 = require("lodash/fp");
|
|
4
|
-
const hooks_1 = require("./hooks");
|
|
5
|
-
/**
|
|
6
|
-
* Creates a new object containing various hooks used by the providers
|
|
7
|
-
*/
|
|
8
|
-
const createProviderHooksMap = () => ({
|
|
9
|
-
// Register events
|
|
10
|
-
willRegister: (0, hooks_1.createAsyncSeriesHook)(),
|
|
11
|
-
didRegister: (0, hooks_1.createAsyncParallelHook)(),
|
|
12
|
-
// Delete events
|
|
13
|
-
willDelete: (0, hooks_1.createAsyncParallelHook)(),
|
|
14
|
-
didDelete: (0, hooks_1.createAsyncParallelHook)(),
|
|
15
|
-
});
|
|
16
|
-
/**
|
|
17
|
-
* A Provider factory
|
|
18
|
-
*/
|
|
19
|
-
const providerFactory = (options = {}) => {
|
|
20
|
-
const { throwOnDuplicates = true } = options;
|
|
21
|
-
const state = {
|
|
22
|
-
hooks: createProviderHooksMap(),
|
|
23
|
-
registry: new Map(),
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
hooks: state.hooks,
|
|
27
|
-
async register(key, item) {
|
|
28
|
-
if (throwOnDuplicates && this.has(key)) {
|
|
29
|
-
throw new Error(`Duplicated item key: ${key}`);
|
|
30
|
-
}
|
|
31
|
-
await state.hooks.willRegister.call({ key, value: item });
|
|
32
|
-
state.registry.set(key, item);
|
|
33
|
-
await state.hooks.didRegister.call({ key, value: (0, fp_1.cloneDeep)(item) });
|
|
34
|
-
return this;
|
|
35
|
-
},
|
|
36
|
-
async delete(key) {
|
|
37
|
-
if (this.has(key)) {
|
|
38
|
-
const item = this.get(key);
|
|
39
|
-
await state.hooks.willDelete.call({ key, value: (0, fp_1.cloneDeep)(item) });
|
|
40
|
-
state.registry.delete(key);
|
|
41
|
-
await state.hooks.didDelete.call({ key, value: (0, fp_1.cloneDeep)(item) });
|
|
42
|
-
}
|
|
43
|
-
return this;
|
|
44
|
-
},
|
|
45
|
-
get(key) {
|
|
46
|
-
return state.registry.get(key);
|
|
47
|
-
},
|
|
48
|
-
getWhere(filters = {}) {
|
|
49
|
-
const items = this.values();
|
|
50
|
-
const filtersEntries = Object.entries(filters);
|
|
51
|
-
if (filtersEntries.length === 0) {
|
|
52
|
-
return items;
|
|
53
|
-
}
|
|
54
|
-
return items.filter((item) => {
|
|
55
|
-
return filtersEntries.every(([key, value]) => item[key] === value);
|
|
56
|
-
});
|
|
57
|
-
},
|
|
58
|
-
values() {
|
|
59
|
-
return Array.from(state.registry.values());
|
|
60
|
-
},
|
|
61
|
-
keys() {
|
|
62
|
-
return Array.from(state.registry.keys());
|
|
63
|
-
},
|
|
64
|
-
has(key) {
|
|
65
|
-
return state.registry.has(key);
|
|
66
|
-
},
|
|
67
|
-
size() {
|
|
68
|
-
return state.registry.size;
|
|
69
|
-
},
|
|
70
|
-
async clear() {
|
|
71
|
-
const keys = this.keys();
|
|
72
|
-
for (const key of keys) {
|
|
73
|
-
await this.delete(key);
|
|
74
|
-
}
|
|
75
|
-
return this;
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
exports.default = providerFactory;
|
|
80
|
-
//# sourceMappingURL=provider-factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../src/provider-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/relations.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAnyToMany = exports.isAnyToOne = exports.isManyToAny = exports.isOneToAny = exports.getRelationalFields = exports.constants = void 0;
|
|
4
|
-
const content_types_1 = require("./content-types");
|
|
5
|
-
const MANY_RELATIONS = ['oneToMany', 'manyToMany'];
|
|
6
|
-
const getRelationalFields = (contentType) => {
|
|
7
|
-
return Object.keys(contentType.attributes).filter((attributeName) => {
|
|
8
|
-
return contentType.attributes[attributeName].type === 'relation';
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
exports.getRelationalFields = getRelationalFields;
|
|
12
|
-
const isOneToAny = (attribute) => (0, content_types_1.isRelationalAttribute)(attribute) && ['oneToOne', 'oneToMany'].includes(attribute.relation);
|
|
13
|
-
exports.isOneToAny = isOneToAny;
|
|
14
|
-
const isManyToAny = (attribute) => (0, content_types_1.isRelationalAttribute)(attribute) && ['manyToMany', 'manyToOne'].includes(attribute.relation);
|
|
15
|
-
exports.isManyToAny = isManyToAny;
|
|
16
|
-
const isAnyToOne = (attribute) => (0, content_types_1.isRelationalAttribute)(attribute) && ['oneToOne', 'manyToOne'].includes(attribute.relation);
|
|
17
|
-
exports.isAnyToOne = isAnyToOne;
|
|
18
|
-
const isAnyToMany = (attribute) => (0, content_types_1.isRelationalAttribute)(attribute) && ['oneToMany', 'manyToMany'].includes(attribute.relation);
|
|
19
|
-
exports.isAnyToMany = isAnyToMany;
|
|
20
|
-
exports.constants = {
|
|
21
|
-
MANY_RELATIONS,
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=relations.js.map
|
package/dist/relations.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":";;;AAEA,mDAAwD;AAExD,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAG,CAAC,WAAkB,EAAE,EAAE;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE;QAClE,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAeO,kDAAmB;AAb5B,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAE,EAAE,CAC1C,IAAA,qCAAqB,EAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAY/D,gCAAU;AAXxC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAE,EAAE,CAC3C,IAAA,qCAAqB,EAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAUrD,kCAAW;AATrD,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAE,EAAE,CAC1C,IAAA,qCAAqB,EAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAQtC,gCAAU;AAPjE,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAE,EAAE,CAC3C,IAAA,qCAAqB,EAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAM5B,kCAAW;AAJjE,QAAA,SAAS,GAAG;IACvB,cAAc;CACf,CAAC"}
|
package/dist/sanitize/index.js
DELETED
|
@@ -1,156 +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 sanitizers = __importStar(require("./sanitizers"));
|
|
34
|
-
const traverse_entity_1 = __importDefault(require("../traverse-entity"));
|
|
35
|
-
const traverse_1 = require("../traverse");
|
|
36
|
-
const createContentAPISanitizers = () => {
|
|
37
|
-
const sanitizeInput = (data, schema, { auth } = {}) => {
|
|
38
|
-
if (!schema) {
|
|
39
|
-
throw new Error('Missing schema in sanitizeInput');
|
|
40
|
-
}
|
|
41
|
-
if ((0, fp_1.isArray)(data)) {
|
|
42
|
-
return Promise.all(data.map((entry) => sanitizeInput(entry, schema, { auth })));
|
|
43
|
-
}
|
|
44
|
-
const nonWritableAttributes = (0, content_types_1.getNonWritableAttributes)(schema);
|
|
45
|
-
const transforms = [
|
|
46
|
-
// Remove non writable attributes
|
|
47
|
-
(0, traverse_entity_1.default)(visitors.removeRestrictedFields(nonWritableAttributes), { schema }),
|
|
48
|
-
];
|
|
49
|
-
if (auth) {
|
|
50
|
-
// Remove restricted relations
|
|
51
|
-
transforms.push((0, traverse_entity_1.default)(visitors.removeRestrictedRelations(auth), { schema }));
|
|
52
|
-
}
|
|
53
|
-
// Apply sanitizers from registry if exists
|
|
54
|
-
strapi.sanitizers
|
|
55
|
-
.get('content-api.input')
|
|
56
|
-
.forEach((sanitizer) => transforms.push(sanitizer(schema)));
|
|
57
|
-
return (0, async_1.pipeAsync)(...transforms)(data);
|
|
58
|
-
};
|
|
59
|
-
const sanitizeOutput = async (data, schema, { auth } = {}) => {
|
|
60
|
-
if (!schema) {
|
|
61
|
-
throw new Error('Missing schema in sanitizeOutput');
|
|
62
|
-
}
|
|
63
|
-
if ((0, fp_1.isArray)(data)) {
|
|
64
|
-
const res = new Array(data.length);
|
|
65
|
-
for (let i = 0; i < data.length; i += 1) {
|
|
66
|
-
res[i] = await sanitizeOutput(data[i], schema, { auth });
|
|
67
|
-
}
|
|
68
|
-
return res;
|
|
69
|
-
}
|
|
70
|
-
const transforms = [(data) => sanitizers.defaultSanitizeOutput(schema, data)];
|
|
71
|
-
if (auth) {
|
|
72
|
-
transforms.push((0, traverse_entity_1.default)(visitors.removeRestrictedRelations(auth), { schema }));
|
|
73
|
-
}
|
|
74
|
-
// Apply sanitizers from registry if exists
|
|
75
|
-
strapi.sanitizers
|
|
76
|
-
.get('content-api.output')
|
|
77
|
-
.forEach((sanitizer) => transforms.push(sanitizer(schema)));
|
|
78
|
-
return (0, async_1.pipeAsync)(...transforms)(data);
|
|
79
|
-
};
|
|
80
|
-
const sanitizeQuery = async (query, schema, { auth } = {}) => {
|
|
81
|
-
if (!schema) {
|
|
82
|
-
throw new Error('Missing schema in sanitizeQuery');
|
|
83
|
-
}
|
|
84
|
-
const { filters, sort, fields, populate } = query;
|
|
85
|
-
const sanitizedQuery = (0, fp_1.cloneDeep)(query);
|
|
86
|
-
if (filters) {
|
|
87
|
-
Object.assign(sanitizedQuery, { filters: await sanitizeFilters(filters, schema, { auth }) });
|
|
88
|
-
}
|
|
89
|
-
if (sort) {
|
|
90
|
-
Object.assign(sanitizedQuery, { sort: await sanitizeSort(sort, schema, { auth }) });
|
|
91
|
-
}
|
|
92
|
-
if (fields) {
|
|
93
|
-
Object.assign(sanitizedQuery, { fields: await sanitizeFields(fields, schema) });
|
|
94
|
-
}
|
|
95
|
-
if (populate) {
|
|
96
|
-
Object.assign(sanitizedQuery, { populate: await sanitizePopulate(populate, schema) });
|
|
97
|
-
}
|
|
98
|
-
return sanitizedQuery;
|
|
99
|
-
};
|
|
100
|
-
const sanitizeFilters = (filters, schema, { auth } = {}) => {
|
|
101
|
-
if (!schema) {
|
|
102
|
-
throw new Error('Missing schema in sanitizeFilters');
|
|
103
|
-
}
|
|
104
|
-
if ((0, fp_1.isArray)(filters)) {
|
|
105
|
-
return Promise.all(filters.map((filter) => sanitizeFilters(filter, schema, { auth })));
|
|
106
|
-
}
|
|
107
|
-
const transforms = [sanitizers.defaultSanitizeFilters(schema)];
|
|
108
|
-
if (auth) {
|
|
109
|
-
transforms.push((0, traverse_1.traverseQueryFilters)(visitors.removeRestrictedRelations(auth), { schema }));
|
|
110
|
-
}
|
|
111
|
-
return (0, async_1.pipeAsync)(...transforms)(filters);
|
|
112
|
-
};
|
|
113
|
-
const sanitizeSort = (sort, schema, { auth } = {}) => {
|
|
114
|
-
if (!schema) {
|
|
115
|
-
throw new Error('Missing schema in sanitizeSort');
|
|
116
|
-
}
|
|
117
|
-
const transforms = [sanitizers.defaultSanitizeSort(schema)];
|
|
118
|
-
if (auth) {
|
|
119
|
-
transforms.push((0, traverse_1.traverseQuerySort)(visitors.removeRestrictedRelations(auth), { schema }));
|
|
120
|
-
}
|
|
121
|
-
return (0, async_1.pipeAsync)(...transforms)(sort);
|
|
122
|
-
};
|
|
123
|
-
const sanitizeFields = (fields, schema) => {
|
|
124
|
-
if (!schema) {
|
|
125
|
-
throw new Error('Missing schema in sanitizeFields');
|
|
126
|
-
}
|
|
127
|
-
const transforms = [sanitizers.defaultSanitizeFields(schema)];
|
|
128
|
-
return (0, async_1.pipeAsync)(...transforms)(fields);
|
|
129
|
-
};
|
|
130
|
-
const sanitizePopulate = (populate, schema, { auth } = {}) => {
|
|
131
|
-
if (!schema) {
|
|
132
|
-
throw new Error('Missing schema in sanitizePopulate');
|
|
133
|
-
}
|
|
134
|
-
const transforms = [sanitizers.defaultSanitizePopulate(schema)];
|
|
135
|
-
if (auth) {
|
|
136
|
-
transforms.push((0, traverse_1.traverseQueryPopulate)(visitors.removeRestrictedRelations(auth), { schema }));
|
|
137
|
-
}
|
|
138
|
-
return (0, async_1.pipeAsync)(...transforms)(populate);
|
|
139
|
-
};
|
|
140
|
-
return {
|
|
141
|
-
input: sanitizeInput,
|
|
142
|
-
output: sanitizeOutput,
|
|
143
|
-
query: sanitizeQuery,
|
|
144
|
-
filters: sanitizeFilters,
|
|
145
|
-
sort: sanitizeSort,
|
|
146
|
-
fields: sanitizeFields,
|
|
147
|
-
populate: sanitizePopulate,
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
const contentAPI = createContentAPISanitizers();
|
|
151
|
-
exports.default = {
|
|
152
|
-
contentAPI,
|
|
153
|
-
sanitizers,
|
|
154
|
-
visitors,
|
|
155
|
-
};
|
|
156
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sanitize/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,147 +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.defaultSanitizePopulate = exports.defaultSanitizeFields = exports.defaultSanitizeSort = exports.defaultSanitizeFilters = exports.defaultSanitizeOutput = exports.sanitizePasswords = 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 sanitizePasswords = (schema) => async (entity) => {
|
|
15
|
-
if (!schema) {
|
|
16
|
-
throw new Error('Missing schema in sanitizePasswords');
|
|
17
|
-
}
|
|
18
|
-
return (0, traverse_entity_1.default)(visitors_1.removePassword, { schema }, entity);
|
|
19
|
-
};
|
|
20
|
-
exports.sanitizePasswords = sanitizePasswords;
|
|
21
|
-
const defaultSanitizeOutput = async (schema, entity) => {
|
|
22
|
-
if (!schema) {
|
|
23
|
-
throw new Error('Missing schema in defaultSanitizeOutput');
|
|
24
|
-
}
|
|
25
|
-
return (0, traverse_entity_1.default)((...args) => {
|
|
26
|
-
(0, visitors_1.removePassword)(...args);
|
|
27
|
-
(0, visitors_1.removePrivate)(...args);
|
|
28
|
-
}, { schema }, entity);
|
|
29
|
-
};
|
|
30
|
-
exports.defaultSanitizeOutput = defaultSanitizeOutput;
|
|
31
|
-
const defaultSanitizeFilters = (0, fp_1.curry)((schema, filters) => {
|
|
32
|
-
if (!schema) {
|
|
33
|
-
throw new Error('Missing schema in defaultSanitizeFilters');
|
|
34
|
-
}
|
|
35
|
-
return (0, async_1.pipeAsync)(
|
|
36
|
-
// Remove keys that are not attributes or valid operators
|
|
37
|
-
(0, traverse_1.traverseQueryFilters)(({ key, attribute }, { remove }) => {
|
|
38
|
-
const isAttribute = !!attribute;
|
|
39
|
-
// ID is not an attribute per se, so we need to make
|
|
40
|
-
// an extra check to ensure we're not checking it
|
|
41
|
-
if (key === 'id') {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (!isAttribute && !(0, operators_1.isOperator)(key)) {
|
|
45
|
-
remove(key);
|
|
46
|
-
}
|
|
47
|
-
}, { schema }),
|
|
48
|
-
// Remove dynamic zones from filters
|
|
49
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.removeDynamicZones, { schema }),
|
|
50
|
-
// Remove morpTo relations from filters
|
|
51
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.removeMorphToRelations, { schema }),
|
|
52
|
-
// Remove passwords from filters
|
|
53
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.removePassword, { schema }),
|
|
54
|
-
// Remove private from filters
|
|
55
|
-
(0, traverse_1.traverseQueryFilters)(visitors_1.removePrivate, { schema }),
|
|
56
|
-
// Remove empty objects
|
|
57
|
-
(0, traverse_1.traverseQueryFilters)(({ key, value }, { remove }) => {
|
|
58
|
-
if ((0, fp_1.isObject)(value) && (0, fp_1.isEmpty)(value)) {
|
|
59
|
-
remove(key);
|
|
60
|
-
}
|
|
61
|
-
}, { schema }))(filters);
|
|
62
|
-
});
|
|
63
|
-
exports.defaultSanitizeFilters = defaultSanitizeFilters;
|
|
64
|
-
const defaultSanitizeSort = (0, fp_1.curry)((schema, sort) => {
|
|
65
|
-
if (!schema) {
|
|
66
|
-
throw new Error('Missing schema in defaultSanitizeSort');
|
|
67
|
-
}
|
|
68
|
-
return (0, async_1.pipeAsync)(
|
|
69
|
-
// Remove non attribute keys
|
|
70
|
-
(0, traverse_1.traverseQuerySort)(({ key, attribute }, { remove }) => {
|
|
71
|
-
// ID is not an attribute per se, so we need to make
|
|
72
|
-
// an extra check to ensure we're not checking it
|
|
73
|
-
if (key === 'id') {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (!attribute) {
|
|
77
|
-
remove(key);
|
|
78
|
-
}
|
|
79
|
-
}, { schema }),
|
|
80
|
-
// Remove dynamic zones from sort
|
|
81
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.removeDynamicZones, { schema }),
|
|
82
|
-
// Remove morpTo relations from sort
|
|
83
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.removeMorphToRelations, { schema }),
|
|
84
|
-
// Remove private from sort
|
|
85
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.removePrivate, { schema }),
|
|
86
|
-
// Remove passwords from filters
|
|
87
|
-
(0, traverse_1.traverseQuerySort)(visitors_1.removePassword, { schema }),
|
|
88
|
-
// Remove keys for empty non-scalar values
|
|
89
|
-
(0, traverse_1.traverseQuerySort)(({ key, attribute, value }, { remove }) => {
|
|
90
|
-
// ID is not an attribute per se, so we need to make
|
|
91
|
-
// an extra check to ensure we're not removing it
|
|
92
|
-
if (key === 'id') {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (!(0, content_types_1.isScalarAttribute)(attribute) && (0, fp_1.isEmpty)(value)) {
|
|
96
|
-
remove(key);
|
|
97
|
-
}
|
|
98
|
-
}, { schema }))(sort);
|
|
99
|
-
});
|
|
100
|
-
exports.defaultSanitizeSort = defaultSanitizeSort;
|
|
101
|
-
const defaultSanitizeFields = (0, fp_1.curry)((schema, fields) => {
|
|
102
|
-
if (!schema) {
|
|
103
|
-
throw new Error('Missing schema in defaultSanitizeFields');
|
|
104
|
-
}
|
|
105
|
-
return (0, async_1.pipeAsync)(
|
|
106
|
-
// Only keep scalar attributes
|
|
107
|
-
(0, traverse_1.traverseQueryFields)(({ key, attribute }, { remove }) => {
|
|
108
|
-
// ID is not an attribute per se, so we need to make
|
|
109
|
-
// an extra check to ensure we're not checking it
|
|
110
|
-
if (key === 'id') {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if ((0, fp_1.isNil)(attribute) || !(0, content_types_1.isScalarAttribute)(attribute)) {
|
|
114
|
-
remove(key);
|
|
115
|
-
}
|
|
116
|
-
}, { schema }),
|
|
117
|
-
// Remove private fields
|
|
118
|
-
(0, traverse_1.traverseQueryFields)(visitors_1.removePrivate, { schema }),
|
|
119
|
-
// Remove password fields
|
|
120
|
-
(0, traverse_1.traverseQueryFields)(visitors_1.removePassword, { schema }),
|
|
121
|
-
// Remove nil values from fields array
|
|
122
|
-
(value) => ((0, fp_1.isArray)(value) ? value.filter((field) => !(0, fp_1.isNil)(field)) : value))(fields);
|
|
123
|
-
});
|
|
124
|
-
exports.defaultSanitizeFields = defaultSanitizeFields;
|
|
125
|
-
const defaultSanitizePopulate = (0, fp_1.curry)((schema, populate) => {
|
|
126
|
-
if (!schema) {
|
|
127
|
-
throw new Error('Missing schema in defaultSanitizePopulate');
|
|
128
|
-
}
|
|
129
|
-
return (0, async_1.pipeAsync)((0, traverse_1.traverseQueryPopulate)(async ({ key, value, schema, attribute }, { set }) => {
|
|
130
|
-
if (attribute) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (key === 'sort') {
|
|
134
|
-
set(key, await defaultSanitizeSort(schema, value));
|
|
135
|
-
}
|
|
136
|
-
if (key === 'filters') {
|
|
137
|
-
set(key, await defaultSanitizeFilters(schema, value));
|
|
138
|
-
}
|
|
139
|
-
if (key === 'fields') {
|
|
140
|
-
set(key, await defaultSanitizeFields(schema, value));
|
|
141
|
-
}
|
|
142
|
-
}, { schema }),
|
|
143
|
-
// Remove private fields
|
|
144
|
-
(0, traverse_1.traverseQueryPopulate)(visitors_1.removePrivate, { schema }))(populate);
|
|
145
|
-
});
|
|
146
|
-
exports.defaultSanitizePopulate = defaultSanitizePopulate;
|
|
147
|
-
//# sourceMappingURL=sanitizers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizers.js","sourceRoot":"","sources":["../../src/sanitize/sanitizers.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.removeRestrictedFields = exports.removeDisallowedFields = exports.removeDynamicZones = exports.removeMorphToRelations = exports.removeRestrictedRelations = exports.removePrivate = exports.removePassword = void 0;
|
|
7
|
-
var remove_password_1 = require("./remove-password");
|
|
8
|
-
Object.defineProperty(exports, "removePassword", { enumerable: true, get: function () { return __importDefault(remove_password_1).default; } });
|
|
9
|
-
var remove_private_1 = require("./remove-private");
|
|
10
|
-
Object.defineProperty(exports, "removePrivate", { enumerable: true, get: function () { return __importDefault(remove_private_1).default; } });
|
|
11
|
-
var remove_restricted_relations_1 = require("./remove-restricted-relations");
|
|
12
|
-
Object.defineProperty(exports, "removeRestrictedRelations", { enumerable: true, get: function () { return __importDefault(remove_restricted_relations_1).default; } });
|
|
13
|
-
var remove_morph_to_relations_1 = require("./remove-morph-to-relations");
|
|
14
|
-
Object.defineProperty(exports, "removeMorphToRelations", { enumerable: true, get: function () { return __importDefault(remove_morph_to_relations_1).default; } });
|
|
15
|
-
var remove_dynamic_zones_1 = require("./remove-dynamic-zones");
|
|
16
|
-
Object.defineProperty(exports, "removeDynamicZones", { enumerable: true, get: function () { return __importDefault(remove_dynamic_zones_1).default; } });
|
|
17
|
-
var remove_disallowed_fields_1 = require("./remove-disallowed-fields");
|
|
18
|
-
Object.defineProperty(exports, "removeDisallowedFields", { enumerable: true, get: function () { return __importDefault(remove_disallowed_fields_1).default; } });
|
|
19
|
-
var remove_restricted_fields_1 = require("./remove-restricted-fields");
|
|
20
|
-
Object.defineProperty(exports, "removeRestrictedFields", { enumerable: true, get: function () { return __importDefault(remove_restricted_fields_1).default; } });
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sanitize/visitors/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,6EAAqF;AAA5E,yJAAA,OAAO,OAA6B;AAC7C,yEAAgF;AAAvE,oJAAA,OAAO,OAA0B;AAC1C,+DAAuE;AAA9D,2IAAA,OAAO,OAAsB;AACtC,uEAA+E;AAAtE,mJAAA,OAAO,OAA0B;AAC1C,uEAA+E;AAAtE,mJAAA,OAAO,OAA0B"}
|