@strapi/utils 4.11.0-exp.9xg4-3qfm-9w8f.1 → 4.11.0
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 +10 -0
- package/dist/async.js +33 -0
- package/dist/async.js.map +1 -0
- package/dist/code-generator.d.ts +2 -0
- package/dist/code-generator.js +11 -0
- package/dist/code-generator.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.js +79 -0
- package/dist/config.js.map +1 -0
- package/dist/content-types.d.ts +60 -0
- package/dist/content-types.js +147 -0
- package/dist/content-types.js.map +1 -0
- package/dist/convert-query-params.d.ts +72 -0
- package/dist/convert-query-params.js +451 -0
- package/dist/convert-query-params.js.map +1 -0
- package/dist/env-helper.d.ts +18 -0
- package/dist/env-helper.js +84 -0
- package/dist/env-helper.js.map +1 -0
- package/dist/errors.d.ts +37 -0
- package/dist/errors.js +100 -0
- package/dist/errors.js.map +1 -0
- package/dist/file.d.ts +16 -0
- package/dist/file.js +54 -0
- package/dist/file.js.map +1 -0
- package/dist/format-yup-error.d.ts +10 -0
- package/dist/format-yup-error.js +17 -0
- package/dist/format-yup-error.js.map +1 -0
- package/dist/hooks.d.ts +92 -0
- package/dist/hooks.js +89 -0
- package/dist/hooks.js.map +1 -0
- package/dist/import-default.d.ts +1 -0
- package/dist/import-default.js +10 -0
- package/dist/import-default.js.map +1 -0
- package/dist/index.d.ts +200 -0
- package/dist/index.js +151 -0
- package/dist/index.js.map +1 -0
- package/dist/object-formatting.d.ts +3 -0
- package/dist/object-formatting.js +14 -0
- package/dist/object-formatting.js.map +1 -0
- package/dist/pagination.d.ts +14 -0
- package/dist/pagination.js +80 -0
- package/dist/pagination.js.map +1 -0
- package/dist/parse-multipart.d.ts +8 -0
- package/dist/parse-multipart.js +36 -0
- package/dist/parse-multipart.js.map +1 -0
- package/dist/parse-type.d.ts +21 -0
- package/dist/parse-type.js +97 -0
- package/dist/parse-type.js.map +1 -0
- package/dist/policy.d.ts +41 -0
- package/dist/policy.js +109 -0
- package/dist/policy.js.map +1 -0
- package/dist/print-value.d.ts +2 -0
- package/dist/print-value.js +50 -0
- package/dist/print-value.js.map +1 -0
- package/dist/provider-factory.d.ts +84 -0
- package/dist/provider-factory.js +88 -0
- package/dist/provider-factory.js.map +1 -0
- package/dist/relations.d.ts +10 -0
- package/dist/relations.js +23 -0
- package/dist/relations.js.map +1 -0
- package/dist/sanitize/index.d.ts +23 -0
- package/dist/sanitize/index.js +135 -0
- package/dist/sanitize/index.js.map +1 -0
- package/dist/sanitize/sanitizers.d.ts +10 -0
- package/dist/sanitize/sanitizers.js +106 -0
- package/dist/sanitize/sanitizers.js.map +1 -0
- package/dist/sanitize/visitors/allowed-fields.d.ts +3 -0
- package/dist/sanitize/visitors/allowed-fields.js +83 -0
- package/dist/sanitize/visitors/allowed-fields.js.map +1 -0
- package/dist/sanitize/visitors/index.d.ts +7 -0
- package/dist/sanitize/visitors/index.js +21 -0
- package/dist/sanitize/visitors/index.js.map +1 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.d.ts +3 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.js +10 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.js.map +1 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.d.ts +3 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.js +10 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.js.map +1 -0
- package/dist/sanitize/visitors/remove-password.d.ts +3 -0
- package/dist/sanitize/visitors/remove-password.js +9 -0
- package/dist/sanitize/visitors/remove-password.js.map +1 -0
- package/dist/sanitize/visitors/remove-private.d.ts +3 -0
- package/dist/sanitize/visitors/remove-private.js +14 -0
- package/dist/sanitize/visitors/remove-private.js.map +1 -0
- package/dist/sanitize/visitors/remove-restricted-relations.d.ts +3 -0
- package/dist/sanitize/visitors/remove-restricted-relations.js +88 -0
- package/dist/sanitize/visitors/remove-restricted-relations.js.map +1 -0
- package/dist/sanitize/visitors/restricted-fields.d.ts +3 -0
- package/dist/sanitize/visitors/restricted-fields.js +25 -0
- package/dist/sanitize/visitors/restricted-fields.js.map +1 -0
- package/dist/set-creator-fields.d.ts +9 -0
- package/dist/set-creator-fields.js +38 -0
- package/dist/set-creator-fields.js.map +1 -0
- package/dist/string-formatting.d.ts +16 -0
- package/dist/string-formatting.js +85 -0
- package/dist/string-formatting.js.map +1 -0
- package/dist/template-configuration.d.ts +5 -0
- package/dist/template-configuration.js +28 -0
- package/dist/template-configuration.js.map +1 -0
- package/dist/template.d.ts +9 -0
- package/dist/template.js +20 -0
- package/dist/template.js.map +1 -0
- package/dist/traverse/factory.d.ts +80 -0
- package/dist/traverse/factory.js +127 -0
- package/dist/traverse/factory.js.map +1 -0
- package/dist/traverse/index.d.ts +5 -0
- package/dist/traverse/index.js +17 -0
- package/dist/traverse/index.js.map +1 -0
- package/dist/traverse/query-fields.d.ts +3 -0
- package/dist/traverse/query-fields.js +35 -0
- package/dist/traverse/query-fields.js.map +1 -0
- package/dist/traverse/query-filters.d.ts +3 -0
- package/dist/traverse/query-filters.js +75 -0
- package/dist/traverse/query-filters.js.map +1 -0
- package/dist/traverse/query-populate.d.ts +3 -0
- package/dist/traverse/query-populate.js +144 -0
- package/dist/traverse/query-populate.js.map +1 -0
- package/dist/traverse/query-sort.d.ts +3 -0
- package/dist/traverse/query-sort.js +116 -0
- package/dist/traverse/query-sort.js.map +1 -0
- package/dist/traverse-entity.d.ts +33 -0
- package/dist/traverse-entity.js +134 -0
- package/dist/traverse-entity.js.map +1 -0
- package/dist/types.d.ts +66 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/validators.d.ts +13 -0
- package/dist/validators.js +120 -0
- package/dist/validators.js.map +1 -0
- package/dist/webhook.d.ts +10 -0
- package/dist/webhook.js +14 -0
- package/dist/webhook.js.map +1 -0
- package/lib/content-types.js +5 -4
- package/package.json +2 -2
package/dist/async.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import pMap from 'p-map';
|
|
2
|
+
type AnyFunc = (...args: any) => any;
|
|
3
|
+
type PipeArgs<F extends AnyFunc[], PrevReturn = Parameters<F[0]>[0]> = F extends [
|
|
4
|
+
(arg: any) => infer B
|
|
5
|
+
] ? [(arg: PrevReturn) => B] : F extends [(arg: any) => infer B, ...infer Tail] ? Tail extends AnyFunc[] ? [(arg: PrevReturn) => B, ...PipeArgs<Tail, B>] : [] : [];
|
|
6
|
+
export declare function pipeAsync<F extends AnyFunc[], FirstFn extends F[0]>(...fns: PipeArgs<F> extends F ? F : PipeArgs<F>): (...args: Parameters<FirstFn>) => Promise<F extends [...AnyFunc[], (...arg: any) => infer R] ? R extends Promise<infer R_1> ? R_1 : R : never>;
|
|
7
|
+
export declare const mapAsync: (...args: any[]) => any;
|
|
8
|
+
export declare const reduceAsync: (mixedArray: any[]) => <T>(iteratee: AnyFunc, initialValue?: T | undefined) => Promise<T | undefined>;
|
|
9
|
+
export declare const forEachAsync: <T, R>(array: T[], func: pMap.Mapper<T, R>, options: pMap.Options) => Promise<void>;
|
|
10
|
+
export {};
|
package/dist/async.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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.forEachAsync = exports.reduceAsync = exports.mapAsync = exports.pipeAsync = void 0;
|
|
7
|
+
const p_map_1 = __importDefault(require("p-map"));
|
|
8
|
+
const fp_1 = require("lodash/fp");
|
|
9
|
+
function pipeAsync(...fns) {
|
|
10
|
+
const [firstFn, ...fnRest] = fns;
|
|
11
|
+
return async (...args) => {
|
|
12
|
+
let res = firstFn(args);
|
|
13
|
+
for (let i = 0; i < fnRest.length; i += 1) {
|
|
14
|
+
res = await fnRest[i](res);
|
|
15
|
+
}
|
|
16
|
+
return res;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
exports.pipeAsync = pipeAsync;
|
|
20
|
+
exports.mapAsync = (0, fp_1.curry)(p_map_1.default);
|
|
21
|
+
const reduceAsync = (mixedArray) => async (iteratee, initialValue) => {
|
|
22
|
+
let acc = initialValue;
|
|
23
|
+
for (let i = 0; i < mixedArray.length; i += 1) {
|
|
24
|
+
acc = await iteratee(acc, await mixedArray[i], i);
|
|
25
|
+
}
|
|
26
|
+
return acc;
|
|
27
|
+
};
|
|
28
|
+
exports.reduceAsync = reduceAsync;
|
|
29
|
+
const forEachAsync = async (array, func, options) => {
|
|
30
|
+
await (0, p_map_1.default)(array, func, options);
|
|
31
|
+
};
|
|
32
|
+
exports.forEachAsync = forEachAsync;
|
|
33
|
+
//# sourceMappingURL=async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,kCAA0C;AAc1C,SAAgB,SAAS,CACvB,GAAG,GAA4C;IAS/C,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC;IAEjC,OAAO,KAAK,EAAE,GAAG,IAAU,EAAoB,EAAE;QAC/C,IAAI,GAAG,GAAY,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC5B;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AArBD,8BAqBC;AAEY,QAAA,QAAQ,GAAG,IAAA,UAAK,EAAC,eAAI,CAAC,CAAC;AAE7B,MAAM,WAAW,GACtB,CAAC,UAAiB,EAAE,EAAE,CACtB,KAAK,EAAK,QAAiB,EAAE,YAAgB,EAAE,EAAE;IAC/C,IAAI,GAAG,GAAG,YAAY,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACnD;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AARS,QAAA,WAAW,eAQpB;AAEG,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAU,EACV,IAAuB,EACvB,OAAqB,EACrB,EAAE;IACF,MAAM,IAAA,eAAI,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateTimestampCode = void 0;
|
|
4
|
+
// Using timestamp (milliseconds) to be sure it is unique
|
|
5
|
+
// + converting timestamp to base 36 for better readibility
|
|
6
|
+
const generateTimestampCode = (date) => {
|
|
7
|
+
const referDate = date || new Date();
|
|
8
|
+
return referDate.getTime().toString(36);
|
|
9
|
+
};
|
|
10
|
+
exports.generateTimestampCode = generateTimestampCode;
|
|
11
|
+
//# sourceMappingURL=code-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../src/code-generator.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,2DAA2D;AAC3D,MAAM,qBAAqB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC3C,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IAErC,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEO,sDAAqB"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Config } from './types';
|
|
2
|
+
export declare const getConfigUrls: (config: Config, forAdminBuild?: boolean) => {
|
|
3
|
+
serverUrl: string;
|
|
4
|
+
adminUrl: any;
|
|
5
|
+
adminPath: any;
|
|
6
|
+
};
|
|
7
|
+
export declare const getAbsoluteAdminUrl: (config: Config, forAdminBuild?: boolean) => any;
|
|
8
|
+
export declare const getAbsoluteServerUrl: (config: Config, forAdminBuild?: boolean) => any;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
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.getAbsoluteServerUrl = exports.getAbsoluteAdminUrl = exports.getConfigUrls = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const string_formatting_1 = require("./string-formatting");
|
|
9
|
+
const getConfigUrls = (config, forAdminBuild = false) => {
|
|
10
|
+
const serverConfig = config.get('server');
|
|
11
|
+
const adminConfig = config.get('admin');
|
|
12
|
+
// Defines serverUrl value
|
|
13
|
+
let serverUrl = lodash_1.default.get(serverConfig, 'url', '');
|
|
14
|
+
serverUrl = lodash_1.default.trim(serverUrl, '/ ');
|
|
15
|
+
if (typeof serverUrl !== 'string') {
|
|
16
|
+
throw new Error('Invalid server url config. Make sure the url is a string.');
|
|
17
|
+
}
|
|
18
|
+
if (serverUrl.startsWith('http')) {
|
|
19
|
+
try {
|
|
20
|
+
serverUrl = lodash_1.default.trim(new URL(serverConfig.url).toString(), '/');
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
throw new Error('Invalid server url config. Make sure the url defined in server.js is valid.');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (serverUrl !== '') {
|
|
27
|
+
serverUrl = `/${serverUrl}`;
|
|
28
|
+
}
|
|
29
|
+
// Defines adminUrl value
|
|
30
|
+
let adminUrl = lodash_1.default.get(adminConfig, 'url', '/admin');
|
|
31
|
+
adminUrl = lodash_1.default.trim(adminUrl, '/ ');
|
|
32
|
+
if (typeof adminUrl !== 'string') {
|
|
33
|
+
throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');
|
|
34
|
+
}
|
|
35
|
+
if (adminUrl.startsWith('http')) {
|
|
36
|
+
try {
|
|
37
|
+
adminUrl = lodash_1.default.trim(new URL(adminUrl).toString(), '/');
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
adminUrl = `${serverUrl}/${adminUrl}`;
|
|
45
|
+
}
|
|
46
|
+
// Defines adminPath value
|
|
47
|
+
let adminPath = adminUrl;
|
|
48
|
+
if (serverUrl.startsWith('http') &&
|
|
49
|
+
adminUrl.startsWith('http') &&
|
|
50
|
+
new URL(adminUrl).origin === new URL(serverUrl).origin &&
|
|
51
|
+
!forAdminBuild) {
|
|
52
|
+
adminPath = adminUrl.replace((0, string_formatting_1.getCommonPath)(serverUrl, adminUrl), '');
|
|
53
|
+
adminPath = `/${lodash_1.default.trim(adminPath, '/')}`;
|
|
54
|
+
}
|
|
55
|
+
else if (adminUrl.startsWith('http')) {
|
|
56
|
+
adminPath = new URL(adminUrl).pathname;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
serverUrl,
|
|
60
|
+
adminUrl,
|
|
61
|
+
adminPath,
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
exports.getConfigUrls = getConfigUrls;
|
|
65
|
+
const getAbsoluteUrl = (adminOrServer) => (config, forAdminBuild = false) => {
|
|
66
|
+
const { serverUrl, adminUrl } = (0, exports.getConfigUrls)(config, forAdminBuild);
|
|
67
|
+
const url = adminOrServer === 'server' ? serverUrl : adminUrl;
|
|
68
|
+
if (url.startsWith('http')) {
|
|
69
|
+
return url;
|
|
70
|
+
}
|
|
71
|
+
const hostname = config.get('environment') === 'development' &&
|
|
72
|
+
['127.0.0.1', '0.0.0.0'].includes(config.get('server.host'))
|
|
73
|
+
? 'localhost'
|
|
74
|
+
: config.get('server.host');
|
|
75
|
+
return `http://${hostname}:${config.get('server.port')}${url}`;
|
|
76
|
+
};
|
|
77
|
+
exports.getAbsoluteAdminUrl = getAbsoluteUrl('admin');
|
|
78
|
+
exports.getAbsoluteServerUrl = getAbsoluteUrl('server');
|
|
79
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,2DAAoD;AAO7C,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,aAAa,GAAG,KAAK,EAAE,EAAE;IACrE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAe,QAAQ,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExC,0BAA0B;IAC1B,IAAI,SAAS,GAAG,gBAAC,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,SAAS,GAAG,gBAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;KAC9E;IACD,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAChC,IAAI;YACF,SAAS,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;SAC/D;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;SACH;KACF;SAAM,IAAI,SAAS,KAAK,EAAE,EAAE;QAC3B,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;KAC7B;IAED,yBAAyB;IACzB,IAAI,QAAQ,GAAG,gBAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,QAAQ,GAAG,gBAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;KACvF;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/B,IAAI;YACF,QAAQ,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;SACtD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;SAC/F;KACF;SAAM;QACL,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;KACvC;IAED,0BAA0B;IAC1B,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,IACE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM;QACtD,CAAC,aAAa,EACd;QACA,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAA,iCAAa,EAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,SAAS,GAAG,IAAI,gBAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;KAC1C;SAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACtC,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;KACxC;IAED,OAAO;QACL,SAAS;QACT,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC,CAAC;AAzDW,QAAA,aAAa,iBAyDxB;AAEF,MAAM,cAAc,GAClB,CAAC,aAAiC,EAAE,EAAE,CACtC,CAAC,MAAc,EAAE,aAAa,GAAG,KAAK,EAAE,EAAE;IACxC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAA,qBAAa,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE9D,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,GAAG,CAAC;KACZ;IAED,MAAM,QAAQ,GACZ,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,aAAa;QAC3C,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEhC,OAAO,UAAU,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE,CAAC;AACjE,CAAC,CAAC;AAES,QAAA,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAA,oBAAoB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Model, Kind, Attribute, RelationalAttribute, ComponentAttribute, DynamicZoneAttribute } from './types';
|
|
2
|
+
declare const constants: {
|
|
3
|
+
ID_ATTRIBUTE: string;
|
|
4
|
+
PUBLISHED_AT_ATTRIBUTE: string;
|
|
5
|
+
CREATED_BY_ATTRIBUTE: string;
|
|
6
|
+
UPDATED_BY_ATTRIBUTE: string;
|
|
7
|
+
CREATED_AT_ATTRIBUTE: string;
|
|
8
|
+
UPDATED_AT_ATTRIBUTE: string;
|
|
9
|
+
DP_PUB_STATES: string[];
|
|
10
|
+
DP_PUB_STATE_LIVE: string;
|
|
11
|
+
DP_PUB_STATE_PREVIEW: string;
|
|
12
|
+
SINGLE_TYPE: string;
|
|
13
|
+
COLLECTION_TYPE: string;
|
|
14
|
+
};
|
|
15
|
+
declare const getTimestamps: (model: Model) => string[];
|
|
16
|
+
declare const getNonWritableAttributes: (model: Model) => string[];
|
|
17
|
+
declare const getWritableAttributes: (model: Model) => string[];
|
|
18
|
+
declare const isWritableAttribute: (model: Model, attributeName: string) => boolean;
|
|
19
|
+
declare const getNonVisibleAttributes: (model: Model) => string[];
|
|
20
|
+
declare const getVisibleAttributes: (model: Model) => string[];
|
|
21
|
+
declare const isVisibleAttribute: (model: Model, attributeName: string) => boolean;
|
|
22
|
+
declare const getOptions: (model: Model) => {
|
|
23
|
+
draftAndPublish: boolean;
|
|
24
|
+
} | ({
|
|
25
|
+
draftAndPublish: boolean;
|
|
26
|
+
} & {
|
|
27
|
+
populateCreatorFields: boolean;
|
|
28
|
+
});
|
|
29
|
+
declare const hasDraftAndPublish: (model: Model) => boolean;
|
|
30
|
+
declare const isDraft: (data: object, model: Model) => boolean;
|
|
31
|
+
declare const isSingleType: ({ kind }: {
|
|
32
|
+
kind?: string | undefined;
|
|
33
|
+
}) => boolean;
|
|
34
|
+
declare const isCollectionType: ({ kind }: {
|
|
35
|
+
kind?: string | undefined;
|
|
36
|
+
}) => boolean;
|
|
37
|
+
declare const isKind: (kind: Kind) => (model: Model) => boolean;
|
|
38
|
+
declare const getPrivateAttributes: (model: Model) => string[];
|
|
39
|
+
declare const isPrivateAttribute: (model: Model, attributeName: string) => boolean;
|
|
40
|
+
declare const isScalarAttribute: (attribute: Attribute) => boolean;
|
|
41
|
+
declare const isMediaAttribute: (attribute: Attribute) => boolean;
|
|
42
|
+
declare const isRelationalAttribute: (attribute: Attribute) => attribute is RelationalAttribute;
|
|
43
|
+
declare const isComponentAttribute: (attribute: Attribute) => attribute is ComponentAttribute;
|
|
44
|
+
declare const isDynamicZoneAttribute: (attribute: Attribute) => attribute is DynamicZoneAttribute;
|
|
45
|
+
declare const isMorphToRelationalAttribute: (attribute: Attribute) => boolean;
|
|
46
|
+
declare const getComponentAttributes: (schema: Model) => string[];
|
|
47
|
+
declare const getScalarAttributes: (schema: Model) => string[];
|
|
48
|
+
/**
|
|
49
|
+
* Checks if an attribute is of type `type`
|
|
50
|
+
* @param {object} attribute
|
|
51
|
+
* @param {string} type
|
|
52
|
+
*/
|
|
53
|
+
declare const isTypedAttribute: (attribute: Attribute, type: string) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Returns a route prefix for a contentType
|
|
56
|
+
* @param {object} contentType
|
|
57
|
+
* @returns {string}
|
|
58
|
+
*/
|
|
59
|
+
declare const getContentTypeRoutePrefix: (contentType: Model) => string;
|
|
60
|
+
export { isScalarAttribute, isMediaAttribute, isRelationalAttribute, isComponentAttribute, isDynamicZoneAttribute, isMorphToRelationalAttribute, isTypedAttribute, getPrivateAttributes, isPrivateAttribute, constants, getNonWritableAttributes, getComponentAttributes, getScalarAttributes, getWritableAttributes, isWritableAttribute, getNonVisibleAttributes, getVisibleAttributes, getTimestamps, isVisibleAttribute, hasDraftAndPublish, getOptions, isDraft, isSingleType, isCollectionType, isKind, getContentTypeRoutePrefix, };
|
|
@@ -0,0 +1,147 @@
|
|
|
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.getContentTypeRoutePrefix = exports.isKind = exports.isCollectionType = exports.isSingleType = exports.isDraft = exports.getOptions = exports.hasDraftAndPublish = exports.isVisibleAttribute = exports.getTimestamps = exports.getVisibleAttributes = exports.getNonVisibleAttributes = exports.isWritableAttribute = exports.getWritableAttributes = exports.getScalarAttributes = exports.getComponentAttributes = exports.getNonWritableAttributes = exports.constants = exports.isPrivateAttribute = exports.getPrivateAttributes = exports.isTypedAttribute = exports.isMorphToRelationalAttribute = exports.isDynamicZoneAttribute = exports.isComponentAttribute = exports.isRelationalAttribute = exports.isMediaAttribute = exports.isScalarAttribute = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const fp_1 = require("lodash/fp");
|
|
9
|
+
const SINGLE_TYPE = 'singleType';
|
|
10
|
+
const COLLECTION_TYPE = 'collectionType';
|
|
11
|
+
const ID_ATTRIBUTE = 'id';
|
|
12
|
+
const PUBLISHED_AT_ATTRIBUTE = 'publishedAt';
|
|
13
|
+
const CREATED_BY_ATTRIBUTE = 'createdBy';
|
|
14
|
+
const UPDATED_BY_ATTRIBUTE = 'updatedBy';
|
|
15
|
+
const CREATED_AT_ATTRIBUTE = 'createdAt';
|
|
16
|
+
const UPDATED_AT_ATTRIBUTE = 'updatedAt';
|
|
17
|
+
const DP_PUB_STATE_LIVE = 'live';
|
|
18
|
+
const DP_PUB_STATE_PREVIEW = 'preview';
|
|
19
|
+
const DP_PUB_STATES = [DP_PUB_STATE_LIVE, DP_PUB_STATE_PREVIEW];
|
|
20
|
+
const constants = {
|
|
21
|
+
ID_ATTRIBUTE,
|
|
22
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
23
|
+
CREATED_BY_ATTRIBUTE,
|
|
24
|
+
UPDATED_BY_ATTRIBUTE,
|
|
25
|
+
CREATED_AT_ATTRIBUTE,
|
|
26
|
+
UPDATED_AT_ATTRIBUTE,
|
|
27
|
+
DP_PUB_STATES,
|
|
28
|
+
DP_PUB_STATE_LIVE,
|
|
29
|
+
DP_PUB_STATE_PREVIEW,
|
|
30
|
+
SINGLE_TYPE,
|
|
31
|
+
COLLECTION_TYPE,
|
|
32
|
+
};
|
|
33
|
+
exports.constants = constants;
|
|
34
|
+
const getTimestamps = (model) => {
|
|
35
|
+
const attributes = [];
|
|
36
|
+
if ((0, fp_1.has)(CREATED_AT_ATTRIBUTE, model.attributes)) {
|
|
37
|
+
attributes.push(CREATED_AT_ATTRIBUTE);
|
|
38
|
+
}
|
|
39
|
+
if ((0, fp_1.has)(UPDATED_AT_ATTRIBUTE, model.attributes)) {
|
|
40
|
+
attributes.push(UPDATED_AT_ATTRIBUTE);
|
|
41
|
+
}
|
|
42
|
+
return attributes;
|
|
43
|
+
};
|
|
44
|
+
exports.getTimestamps = getTimestamps;
|
|
45
|
+
const getNonWritableAttributes = (model) => {
|
|
46
|
+
const nonWritableAttributes = lodash_1.default.reduce(model.attributes, (acc, attr, attrName) => (attr.writable === false ? acc.concat(attrName) : acc), []);
|
|
47
|
+
return lodash_1.default.uniq([ID_ATTRIBUTE, ...getTimestamps(model), ...nonWritableAttributes]);
|
|
48
|
+
};
|
|
49
|
+
exports.getNonWritableAttributes = getNonWritableAttributes;
|
|
50
|
+
const getWritableAttributes = (model) => {
|
|
51
|
+
return lodash_1.default.difference(Object.keys(model.attributes), getNonWritableAttributes(model));
|
|
52
|
+
};
|
|
53
|
+
exports.getWritableAttributes = getWritableAttributes;
|
|
54
|
+
const isWritableAttribute = (model, attributeName) => {
|
|
55
|
+
return getWritableAttributes(model).includes(attributeName);
|
|
56
|
+
};
|
|
57
|
+
exports.isWritableAttribute = isWritableAttribute;
|
|
58
|
+
const getNonVisibleAttributes = (model) => {
|
|
59
|
+
const nonVisibleAttributes = lodash_1.default.reduce(model.attributes, (acc, attr, attrName) => (attr.visible === false ? acc.concat(attrName) : acc), []);
|
|
60
|
+
return lodash_1.default.uniq([ID_ATTRIBUTE, ...getTimestamps(model), ...nonVisibleAttributes]);
|
|
61
|
+
};
|
|
62
|
+
exports.getNonVisibleAttributes = getNonVisibleAttributes;
|
|
63
|
+
const getVisibleAttributes = (model) => {
|
|
64
|
+
return lodash_1.default.difference(lodash_1.default.keys(model.attributes), getNonVisibleAttributes(model));
|
|
65
|
+
};
|
|
66
|
+
exports.getVisibleAttributes = getVisibleAttributes;
|
|
67
|
+
const isVisibleAttribute = (model, attributeName) => {
|
|
68
|
+
return getVisibleAttributes(model).includes(attributeName);
|
|
69
|
+
};
|
|
70
|
+
exports.isVisibleAttribute = isVisibleAttribute;
|
|
71
|
+
const getOptions = (model) => lodash_1.default.assign({ draftAndPublish: false }, lodash_1.default.get(model, 'options', {}));
|
|
72
|
+
exports.getOptions = getOptions;
|
|
73
|
+
const hasDraftAndPublish = (model) => lodash_1.default.get(model, 'options.draftAndPublish', false) === true;
|
|
74
|
+
exports.hasDraftAndPublish = hasDraftAndPublish;
|
|
75
|
+
const isDraft = (data, model) => hasDraftAndPublish(model) && lodash_1.default.get(data, PUBLISHED_AT_ATTRIBUTE) === null;
|
|
76
|
+
exports.isDraft = isDraft;
|
|
77
|
+
const isSingleType = ({ kind = COLLECTION_TYPE }) => kind === SINGLE_TYPE;
|
|
78
|
+
exports.isSingleType = isSingleType;
|
|
79
|
+
const isCollectionType = ({ kind = COLLECTION_TYPE }) => kind === COLLECTION_TYPE;
|
|
80
|
+
exports.isCollectionType = isCollectionType;
|
|
81
|
+
const isKind = (kind) => (model) => model.kind === kind;
|
|
82
|
+
exports.isKind = isKind;
|
|
83
|
+
const getStoredPrivateAttributes = (model) => (0, fp_1.union)((strapi?.config?.get('api.responses.privateAttributes', []) ?? []), (0, fp_1.getOr)([], 'options.privateAttributes', model));
|
|
84
|
+
const getPrivateAttributes = (model) => {
|
|
85
|
+
return lodash_1.default.union(getStoredPrivateAttributes(model), lodash_1.default.keys(lodash_1.default.pickBy(model.attributes, (attr) => !!attr.private)));
|
|
86
|
+
};
|
|
87
|
+
exports.getPrivateAttributes = getPrivateAttributes;
|
|
88
|
+
const isPrivateAttribute = (model, attributeName) => {
|
|
89
|
+
if (model?.attributes?.[attributeName]?.private === true) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return getStoredPrivateAttributes(model).includes(attributeName);
|
|
93
|
+
};
|
|
94
|
+
exports.isPrivateAttribute = isPrivateAttribute;
|
|
95
|
+
const isScalarAttribute = (attribute) => {
|
|
96
|
+
return !['media', 'component', 'relation', 'dynamiczone'].includes(attribute?.type);
|
|
97
|
+
};
|
|
98
|
+
exports.isScalarAttribute = isScalarAttribute;
|
|
99
|
+
const isMediaAttribute = (attribute) => attribute?.type === 'media';
|
|
100
|
+
exports.isMediaAttribute = isMediaAttribute;
|
|
101
|
+
const isRelationalAttribute = (attribute) => attribute?.type === 'relation';
|
|
102
|
+
exports.isRelationalAttribute = isRelationalAttribute;
|
|
103
|
+
const isComponentAttribute = (attribute) => ['component', 'dynamiczone'].includes(attribute?.type);
|
|
104
|
+
exports.isComponentAttribute = isComponentAttribute;
|
|
105
|
+
const isDynamicZoneAttribute = (attribute) => attribute?.type === 'dynamiczone';
|
|
106
|
+
exports.isDynamicZoneAttribute = isDynamicZoneAttribute;
|
|
107
|
+
const isMorphToRelationalAttribute = (attribute) => {
|
|
108
|
+
return isRelationalAttribute(attribute) && attribute?.relation?.startsWith?.('morphTo');
|
|
109
|
+
};
|
|
110
|
+
exports.isMorphToRelationalAttribute = isMorphToRelationalAttribute;
|
|
111
|
+
const getComponentAttributes = (schema) => {
|
|
112
|
+
return lodash_1.default.reduce(schema.attributes, (acc, attr, attrName) => {
|
|
113
|
+
if (isComponentAttribute(attr))
|
|
114
|
+
acc.push(attrName);
|
|
115
|
+
return acc;
|
|
116
|
+
}, []);
|
|
117
|
+
};
|
|
118
|
+
exports.getComponentAttributes = getComponentAttributes;
|
|
119
|
+
const getScalarAttributes = (schema) => {
|
|
120
|
+
return lodash_1.default.reduce(schema.attributes, (acc, attr, attrName) => {
|
|
121
|
+
if (isScalarAttribute(attr))
|
|
122
|
+
acc.push(attrName);
|
|
123
|
+
return acc;
|
|
124
|
+
}, []);
|
|
125
|
+
};
|
|
126
|
+
exports.getScalarAttributes = getScalarAttributes;
|
|
127
|
+
/**
|
|
128
|
+
* Checks if an attribute is of type `type`
|
|
129
|
+
* @param {object} attribute
|
|
130
|
+
* @param {string} type
|
|
131
|
+
*/
|
|
132
|
+
const isTypedAttribute = (attribute, type) => {
|
|
133
|
+
return lodash_1.default.has(attribute, 'type') && attribute.type === type;
|
|
134
|
+
};
|
|
135
|
+
exports.isTypedAttribute = isTypedAttribute;
|
|
136
|
+
/**
|
|
137
|
+
* Returns a route prefix for a contentType
|
|
138
|
+
* @param {object} contentType
|
|
139
|
+
* @returns {string}
|
|
140
|
+
*/
|
|
141
|
+
const getContentTypeRoutePrefix = (contentType) => {
|
|
142
|
+
return isSingleType(contentType)
|
|
143
|
+
? lodash_1.default.kebabCase(contentType.info.singularName)
|
|
144
|
+
: lodash_1.default.kebabCase(contentType.info.pluralName);
|
|
145
|
+
};
|
|
146
|
+
exports.getContentTypeRoutePrefix = getContentTypeRoutePrefix;
|
|
147
|
+
//# sourceMappingURL=content-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-types.js","sourceRoot":"","sources":["../src/content-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Model } from './types';
|
|
2
|
+
type SortOrder = 'asc' | 'desc';
|
|
3
|
+
export interface SortMap {
|
|
4
|
+
[key: string]: SortOrder | SortMap;
|
|
5
|
+
}
|
|
6
|
+
type SortParams = string | string[] | object;
|
|
7
|
+
type FieldsParams = string | string[];
|
|
8
|
+
type FiltersParams = unknown;
|
|
9
|
+
export interface PopulateAttributesParams {
|
|
10
|
+
[key: string]: PopulateObjectParams;
|
|
11
|
+
}
|
|
12
|
+
export interface PopulateObjectParams {
|
|
13
|
+
sort?: SortParams;
|
|
14
|
+
fields?: FieldsParams;
|
|
15
|
+
filters?: FiltersParams;
|
|
16
|
+
populate?: PopulateParams;
|
|
17
|
+
publicationState?: 'live' | 'preview';
|
|
18
|
+
on: PopulateAttributesParams;
|
|
19
|
+
}
|
|
20
|
+
type PopulateParams = string | string[] | PopulateAttributesParams;
|
|
21
|
+
export interface Params {
|
|
22
|
+
sort?: SortParams;
|
|
23
|
+
fields?: FieldsParams;
|
|
24
|
+
filters?: FiltersParams;
|
|
25
|
+
populate?: PopulateParams;
|
|
26
|
+
count: boolean;
|
|
27
|
+
ordering: unknown;
|
|
28
|
+
_q?: string;
|
|
29
|
+
limit?: number | string;
|
|
30
|
+
start?: number | string;
|
|
31
|
+
page?: number | string;
|
|
32
|
+
pageSize?: number | string;
|
|
33
|
+
publicationState?: 'live' | 'preview';
|
|
34
|
+
}
|
|
35
|
+
type FiltersQuery = (options: {
|
|
36
|
+
meta: Model;
|
|
37
|
+
}) => WhereQuery | undefined;
|
|
38
|
+
type OrderByQuery = SortMap | SortMap[];
|
|
39
|
+
type SelectQuery = string | string[];
|
|
40
|
+
export interface WhereQuery {
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}
|
|
43
|
+
type PopulateQuery = boolean | string[] | {
|
|
44
|
+
[key: string]: PopulateQuery;
|
|
45
|
+
};
|
|
46
|
+
export interface Query {
|
|
47
|
+
orderBy?: OrderByQuery;
|
|
48
|
+
select?: SelectQuery;
|
|
49
|
+
where?: WhereQuery;
|
|
50
|
+
filters?: FiltersQuery;
|
|
51
|
+
populate?: PopulateQuery;
|
|
52
|
+
count?: boolean;
|
|
53
|
+
ordering?: unknown;
|
|
54
|
+
_q?: string;
|
|
55
|
+
limit?: number;
|
|
56
|
+
offset?: number;
|
|
57
|
+
page?: number;
|
|
58
|
+
pageSize?: number;
|
|
59
|
+
}
|
|
60
|
+
declare const _default: {
|
|
61
|
+
convertSortQueryParams: (sortQuery: SortParams) => OrderByQuery;
|
|
62
|
+
convertStartQueryParams: (startQuery: unknown) => number;
|
|
63
|
+
convertLimitQueryParams: (limitQuery: unknown) => number | undefined;
|
|
64
|
+
convertPopulateQueryParams: (populate: PopulateParams, schema: Model, depth?: number) => PopulateQuery;
|
|
65
|
+
convertFiltersQueryParams: (filters: unknown, schema: Model) => WhereQuery;
|
|
66
|
+
convertFieldsQueryParams: (fields: FieldsParams, depth?: number) => SelectQuery | undefined;
|
|
67
|
+
convertPublicationStateParams: (schema: Model, params?: {
|
|
68
|
+
publicationState?: "live" | "preview" | undefined;
|
|
69
|
+
}, query?: Query) => void;
|
|
70
|
+
transformParamsToQuery: (uid: string, params: Params) => Query;
|
|
71
|
+
};
|
|
72
|
+
export default _default;
|