@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.
Files changed (122) hide show
  1. package/dist/index.d.ts +19 -143
  2. package/dist/index.js +7223 -104
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +7206 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/parse-multipart.d.ts +1 -2
  7. package/dist/print-value.d.ts +1 -1
  8. package/dist/template-configuration.d.ts +1 -1
  9. package/dist/types.d.ts +1 -1
  10. package/package.json +12 -12
  11. package/dist/async.js +0 -33
  12. package/dist/async.js.map +0 -1
  13. package/dist/code-generator.js +0 -11
  14. package/dist/code-generator.js.map +0 -1
  15. package/dist/config.js +0 -79
  16. package/dist/config.js.map +0 -1
  17. package/dist/content-types.js +0 -162
  18. package/dist/content-types.js.map +0 -1
  19. package/dist/convert-query-params.js +0 -477
  20. package/dist/convert-query-params.js.map +0 -1
  21. package/dist/env-helper.js +0 -84
  22. package/dist/env-helper.js.map +0 -1
  23. package/dist/errors.js +0 -101
  24. package/dist/errors.js.map +0 -1
  25. package/dist/file.js +0 -54
  26. package/dist/file.js.map +0 -1
  27. package/dist/format-yup-error.js +0 -17
  28. package/dist/format-yup-error.js.map +0 -1
  29. package/dist/hooks.js +0 -89
  30. package/dist/hooks.js.map +0 -1
  31. package/dist/import-default.js +0 -9
  32. package/dist/import-default.js.map +0 -1
  33. package/dist/object-formatting.js +0 -14
  34. package/dist/object-formatting.js.map +0 -1
  35. package/dist/operators.js +0 -72
  36. package/dist/operators.js.map +0 -1
  37. package/dist/pagination.js +0 -80
  38. package/dist/pagination.js.map +0 -1
  39. package/dist/parse-multipart.js +0 -36
  40. package/dist/parse-multipart.js.map +0 -1
  41. package/dist/parse-type.js +0 -108
  42. package/dist/parse-type.js.map +0 -1
  43. package/dist/policy.js +0 -109
  44. package/dist/policy.js.map +0 -1
  45. package/dist/print-value.js +0 -50
  46. package/dist/print-value.js.map +0 -1
  47. package/dist/provider-factory.js +0 -80
  48. package/dist/provider-factory.js.map +0 -1
  49. package/dist/relations.js +0 -23
  50. package/dist/relations.js.map +0 -1
  51. package/dist/sanitize/index.js +0 -156
  52. package/dist/sanitize/index.js.map +0 -1
  53. package/dist/sanitize/sanitizers.js +0 -147
  54. package/dist/sanitize/sanitizers.js.map +0 -1
  55. package/dist/sanitize/visitors/index.js +0 -21
  56. package/dist/sanitize/visitors/index.js.map +0 -1
  57. package/dist/sanitize/visitors/remove-disallowed-fields.js +0 -83
  58. package/dist/sanitize/visitors/remove-disallowed-fields.js.map +0 -1
  59. package/dist/sanitize/visitors/remove-dynamic-zones.js +0 -10
  60. package/dist/sanitize/visitors/remove-dynamic-zones.js.map +0 -1
  61. package/dist/sanitize/visitors/remove-morph-to-relations.js +0 -10
  62. package/dist/sanitize/visitors/remove-morph-to-relations.js.map +0 -1
  63. package/dist/sanitize/visitors/remove-password.js +0 -9
  64. package/dist/sanitize/visitors/remove-password.js.map +0 -1
  65. package/dist/sanitize/visitors/remove-private.js +0 -14
  66. package/dist/sanitize/visitors/remove-private.js.map +0 -1
  67. package/dist/sanitize/visitors/remove-restricted-fields.js +0 -25
  68. package/dist/sanitize/visitors/remove-restricted-fields.js.map +0 -1
  69. package/dist/sanitize/visitors/remove-restricted-relations.js +0 -88
  70. package/dist/sanitize/visitors/remove-restricted-relations.js.map +0 -1
  71. package/dist/set-creator-fields.js +0 -39
  72. package/dist/set-creator-fields.js.map +0 -1
  73. package/dist/string-formatting.js +0 -85
  74. package/dist/string-formatting.js.map +0 -1
  75. package/dist/template-configuration.js +0 -30
  76. package/dist/template-configuration.js.map +0 -1
  77. package/dist/template.js +0 -20
  78. package/dist/template.js.map +0 -1
  79. package/dist/traverse/factory.js +0 -127
  80. package/dist/traverse/factory.js.map +0 -1
  81. package/dist/traverse/index.js +0 -17
  82. package/dist/traverse/index.js.map +0 -1
  83. package/dist/traverse/query-fields.js +0 -35
  84. package/dist/traverse/query-fields.js.map +0 -1
  85. package/dist/traverse/query-filters.js +0 -75
  86. package/dist/traverse/query-filters.js.map +0 -1
  87. package/dist/traverse/query-populate.js +0 -171
  88. package/dist/traverse/query-populate.js.map +0 -1
  89. package/dist/traverse/query-sort.js +0 -117
  90. package/dist/traverse/query-sort.js.map +0 -1
  91. package/dist/traverse-entity.js +0 -134
  92. package/dist/traverse-entity.js.map +0 -1
  93. package/dist/types.js +0 -3
  94. package/dist/types.js.map +0 -1
  95. package/dist/validate/index.js +0 -121
  96. package/dist/validate/index.js.map +0 -1
  97. package/dist/validate/utils.js +0 -9
  98. package/dist/validate/utils.js.map +0 -1
  99. package/dist/validate/validators.js +0 -115
  100. package/dist/validate/validators.js.map +0 -1
  101. package/dist/validate/visitors/index.js +0 -21
  102. package/dist/validate/visitors/index.js.map +0 -1
  103. package/dist/validate/visitors/throw-disallowed-fields.js +0 -84
  104. package/dist/validate/visitors/throw-disallowed-fields.js.map +0 -1
  105. package/dist/validate/visitors/throw-dynamic-zones.js +0 -11
  106. package/dist/validate/visitors/throw-dynamic-zones.js.map +0 -1
  107. package/dist/validate/visitors/throw-morph-to-relations.js +0 -11
  108. package/dist/validate/visitors/throw-morph-to-relations.js.map +0 -1
  109. package/dist/validate/visitors/throw-password.js +0 -10
  110. package/dist/validate/visitors/throw-password.js.map +0 -1
  111. package/dist/validate/visitors/throw-private.js +0 -15
  112. package/dist/validate/visitors/throw-private.js.map +0 -1
  113. package/dist/validate/visitors/throw-restricted-fields.js +0 -24
  114. package/dist/validate/visitors/throw-restricted-fields.js.map +0 -1
  115. package/dist/validate/visitors/throw-restricted-relations.js +0 -81
  116. package/dist/validate/visitors/throw-restricted-relations.js.map +0 -1
  117. package/dist/validators.js +0 -64
  118. package/dist/validators.js.map +0 -1
  119. package/dist/webhook.js +0 -27
  120. package/dist/webhook.js.map +0 -1
  121. package/dist/yup.js +0 -108
  122. package/dist/yup.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  /// <reference types="formidable" />
2
2
  import type Koa from 'koa';
3
- declare const _default: (ctx: Koa.Context) => Koa.Context | {
3
+ export declare const parseMultipartData: (ctx: Koa.Context) => Koa.Context | {
4
4
  data: any;
5
5
  files: import("formidable").Files;
6
6
  };
7
- export = _default;
@@ -1,2 +1,2 @@
1
1
  declare function printValue(value: unknown, quoteStrings: boolean): string;
2
- export = printValue;
2
+ export { printValue };
@@ -2,4 +2,4 @@
2
2
  * Allow dynamic config values through the native ES6 template string function.
3
3
  */
4
4
  declare const templateConfiguration: (obj: Record<string, unknown>, configPath?: string) => Record<string, unknown>;
5
- export = templateConfiguration;
5
+ export { templateConfiguration };
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type * as Koa from 'koa';
2
- type ID = number | `${number}`;
2
+ type ID = number | string;
3
3
  export type Data = {
4
4
  id?: ID;
5
5
  [key: string]: string | number | ID | boolean | null | undefined | Date | Data | Data[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/utils",
3
- "version": "4.14.2",
3
+ "version": "4.14.4",
4
4
  "description": "Shared utilities for the Strapi packages",
5
5
  "keywords": [
6
6
  "strapi",
@@ -28,22 +28,21 @@
28
28
  }
29
29
  ],
30
30
  "main": "./dist/index.js",
31
+ "module": "./dist/index.mjs",
32
+ "source": "./src/index.ts",
31
33
  "types": "./dist/index.d.ts",
32
34
  "files": [
33
35
  "./dist"
34
36
  ],
35
- "directories": {
36
- "lib": "./lib"
37
- },
38
37
  "scripts": {
39
- "build": "run -T tsc",
40
- "build:ts": "run build",
41
- "watch": "run -T tsc -w --preserveWatchOutput",
38
+ "build": "pack-up build",
42
39
  "clean": "run -T rimraf ./dist",
40
+ "lint": "run -T eslint .",
43
41
  "prepublishOnly": "yarn clean && yarn build",
42
+ "test:ts": "run -T tsc --noEmit",
44
43
  "test:unit": "run -T jest",
45
44
  "test:unit:watch": "run -T jest --watch",
46
- "lint": "run -T eslint ."
45
+ "watch": "run -T pack-up watch"
47
46
  },
48
47
  "dependencies": {
49
48
  "@sindresorhus/slugify": "1.1.0",
@@ -54,16 +53,17 @@
54
53
  "yup": "0.32.9"
55
54
  },
56
55
  "devDependencies": {
56
+ "@strapi/pack-up": "4.14.4",
57
57
  "@types/koa": "2.13.4",
58
- "@types/node": "18.11.9",
59
- "eslint-config-custom": "4.14.2",
58
+ "@types/node": "18.18.4",
59
+ "eslint-config-custom": "4.14.4",
60
60
  "koa": "2.13.4",
61
61
  "koa-body": "4.2.0",
62
- "tsconfig": "4.14.2"
62
+ "tsconfig": "4.14.4"
63
63
  },
64
64
  "engines": {
65
65
  "node": ">=16.0.0 <=20.x.x",
66
66
  "npm": ">=6.0.0"
67
67
  },
68
- "gitHead": "5dbbe10fdf99f63e91b78a0439ec84581f3c9c6a"
68
+ "gitHead": "fbd6e3e3014b1c5eee1d7bb8d65e273318662656"
69
69
  }
package/dist/async.js DELETED
@@ -1,33 +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.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 = await firstFn.apply(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
package/dist/async.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,kCAAkC;AAkBlC,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,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEtD,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"}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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.js DELETED
@@ -1,79 +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.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
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,162 +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.getContentTypeRoutePrefix = exports.isKind = exports.isCollectionType = exports.isSingleType = exports.isDraft = exports.getOptions = exports.hasDraftAndPublish = exports.isVisibleAttribute = exports.getCreatorFields = 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 getCreatorFields = (model) => {
46
- const attributes = [];
47
- if ((0, fp_1.has)(CREATED_BY_ATTRIBUTE, model.attributes)) {
48
- attributes.push(CREATED_BY_ATTRIBUTE);
49
- }
50
- if ((0, fp_1.has)(UPDATED_BY_ATTRIBUTE, model.attributes)) {
51
- attributes.push(UPDATED_BY_ATTRIBUTE);
52
- }
53
- return attributes;
54
- };
55
- exports.getCreatorFields = getCreatorFields;
56
- const getNonWritableAttributes = (model) => {
57
- if (!model)
58
- return [];
59
- const nonWritableAttributes = lodash_1.default.reduce(model.attributes, (acc, attr, attrName) => (attr.writable === false ? acc.concat(attrName) : acc), []);
60
- return lodash_1.default.uniq([ID_ATTRIBUTE, ...getTimestamps(model), ...nonWritableAttributes]);
61
- };
62
- exports.getNonWritableAttributes = getNonWritableAttributes;
63
- const getWritableAttributes = (model) => {
64
- if (!model)
65
- return [];
66
- return lodash_1.default.difference(Object.keys(model.attributes), getNonWritableAttributes(model));
67
- };
68
- exports.getWritableAttributes = getWritableAttributes;
69
- const isWritableAttribute = (model, attributeName) => {
70
- return getWritableAttributes(model).includes(attributeName);
71
- };
72
- exports.isWritableAttribute = isWritableAttribute;
73
- const getNonVisibleAttributes = (model) => {
74
- const nonVisibleAttributes = lodash_1.default.reduce(model.attributes, (acc, attr, attrName) => (attr.visible === false ? acc.concat(attrName) : acc), []);
75
- return lodash_1.default.uniq([ID_ATTRIBUTE, ...getTimestamps(model), ...nonVisibleAttributes]);
76
- };
77
- exports.getNonVisibleAttributes = getNonVisibleAttributes;
78
- const getVisibleAttributes = (model) => {
79
- return lodash_1.default.difference(lodash_1.default.keys(model.attributes), getNonVisibleAttributes(model));
80
- };
81
- exports.getVisibleAttributes = getVisibleAttributes;
82
- const isVisibleAttribute = (model, attributeName) => {
83
- return getVisibleAttributes(model).includes(attributeName);
84
- };
85
- exports.isVisibleAttribute = isVisibleAttribute;
86
- const getOptions = (model) => lodash_1.default.assign({ draftAndPublish: false }, lodash_1.default.get(model, 'options', {}));
87
- exports.getOptions = getOptions;
88
- const hasDraftAndPublish = (model) => lodash_1.default.get(model, 'options.draftAndPublish', false) === true;
89
- exports.hasDraftAndPublish = hasDraftAndPublish;
90
- const isDraft = (data, model) => hasDraftAndPublish(model) && lodash_1.default.get(data, PUBLISHED_AT_ATTRIBUTE) === null;
91
- exports.isDraft = isDraft;
92
- const isSingleType = ({ kind = COLLECTION_TYPE }) => kind === SINGLE_TYPE;
93
- exports.isSingleType = isSingleType;
94
- const isCollectionType = ({ kind = COLLECTION_TYPE }) => kind === COLLECTION_TYPE;
95
- exports.isCollectionType = isCollectionType;
96
- const isKind = (kind) => (model) => model.kind === kind;
97
- exports.isKind = isKind;
98
- const getStoredPrivateAttributes = (model) => (0, fp_1.union)((strapi?.config?.get('api.responses.privateAttributes', []) ?? []), (0, fp_1.getOr)([], 'options.privateAttributes', model));
99
- const getPrivateAttributes = (model) => {
100
- return lodash_1.default.union(getStoredPrivateAttributes(model), lodash_1.default.keys(lodash_1.default.pickBy(model.attributes, (attr) => !!attr.private)));
101
- };
102
- exports.getPrivateAttributes = getPrivateAttributes;
103
- const isPrivateAttribute = (model, attributeName) => {
104
- if (model?.attributes?.[attributeName]?.private === true) {
105
- return true;
106
- }
107
- return getStoredPrivateAttributes(model).includes(attributeName);
108
- };
109
- exports.isPrivateAttribute = isPrivateAttribute;
110
- const isScalarAttribute = (attribute) => {
111
- return !['media', 'component', 'relation', 'dynamiczone'].includes(attribute?.type);
112
- };
113
- exports.isScalarAttribute = isScalarAttribute;
114
- const isMediaAttribute = (attribute) => attribute?.type === 'media';
115
- exports.isMediaAttribute = isMediaAttribute;
116
- const isRelationalAttribute = (attribute) => attribute?.type === 'relation';
117
- exports.isRelationalAttribute = isRelationalAttribute;
118
- const isComponentAttribute = (attribute) => ['component', 'dynamiczone'].includes(attribute?.type);
119
- exports.isComponentAttribute = isComponentAttribute;
120
- const isDynamicZoneAttribute = (attribute) => attribute?.type === 'dynamiczone';
121
- exports.isDynamicZoneAttribute = isDynamicZoneAttribute;
122
- const isMorphToRelationalAttribute = (attribute) => {
123
- return isRelationalAttribute(attribute) && attribute?.relation?.startsWith?.('morphTo');
124
- };
125
- exports.isMorphToRelationalAttribute = isMorphToRelationalAttribute;
126
- const getComponentAttributes = (schema) => {
127
- return lodash_1.default.reduce(schema.attributes, (acc, attr, attrName) => {
128
- if (isComponentAttribute(attr))
129
- acc.push(attrName);
130
- return acc;
131
- }, []);
132
- };
133
- exports.getComponentAttributes = getComponentAttributes;
134
- const getScalarAttributes = (schema) => {
135
- return lodash_1.default.reduce(schema.attributes, (acc, attr, attrName) => {
136
- if (isScalarAttribute(attr))
137
- acc.push(attrName);
138
- return acc;
139
- }, []);
140
- };
141
- exports.getScalarAttributes = getScalarAttributes;
142
- /**
143
- * Checks if an attribute is of type `type`
144
- * @param {object} attribute
145
- * @param {string} type
146
- */
147
- const isTypedAttribute = (attribute, type) => {
148
- return lodash_1.default.has(attribute, 'type') && attribute.type === type;
149
- };
150
- exports.isTypedAttribute = isTypedAttribute;
151
- /**
152
- * Returns a route prefix for a contentType
153
- * @param {object} contentType
154
- * @returns {string}
155
- */
156
- const getContentTypeRoutePrefix = (contentType) => {
157
- return isSingleType(contentType)
158
- ? lodash_1.default.kebabCase(contentType.info.singularName)
159
- : lodash_1.default.kebabCase(contentType.info.pluralName);
160
- };
161
- exports.getContentTypeRoutePrefix = getContentTypeRoutePrefix;
162
- //# sourceMappingURL=content-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-types.js","sourceRoot":"","sources":["../src/content-types.ts"],"names":[],"mappings":"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"}