@strapi/utils 4.14.3 → 4.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/async.d.ts +1 -0
  2. package/dist/async.d.ts.map +1 -0
  3. package/dist/code-generator.d.ts +1 -0
  4. package/dist/code-generator.d.ts.map +1 -0
  5. package/dist/config.d.ts +1 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/content-types.d.ts +1 -0
  8. package/dist/content-types.d.ts.map +1 -0
  9. package/dist/convert-query-params.d.ts +1 -0
  10. package/dist/convert-query-params.d.ts.map +1 -0
  11. package/dist/env-helper.d.ts +1 -0
  12. package/dist/env-helper.d.ts.map +1 -0
  13. package/dist/errors.d.ts +1 -0
  14. package/dist/errors.d.ts.map +1 -0
  15. package/dist/file.d.ts +1 -0
  16. package/dist/file.d.ts.map +1 -0
  17. package/dist/format-yup-error.d.ts +1 -0
  18. package/dist/format-yup-error.d.ts.map +1 -0
  19. package/dist/hooks.d.ts +1 -0
  20. package/dist/hooks.d.ts.map +1 -0
  21. package/dist/import-default.d.ts +1 -0
  22. package/dist/import-default.d.ts.map +1 -0
  23. package/dist/index.d.ts +20 -143
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +3046 -104
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +3029 -0
  28. package/dist/index.mjs.map +1 -0
  29. package/dist/object-formatting.d.ts +1 -0
  30. package/dist/object-formatting.d.ts.map +1 -0
  31. package/dist/operators.d.ts +1 -0
  32. package/dist/operators.d.ts.map +1 -0
  33. package/dist/pagination.d.ts +1 -0
  34. package/dist/pagination.d.ts.map +1 -0
  35. package/dist/parse-multipart.d.ts +2 -2
  36. package/dist/parse-multipart.d.ts.map +1 -0
  37. package/dist/parse-type.d.ts +1 -0
  38. package/dist/parse-type.d.ts.map +1 -0
  39. package/dist/policy.d.ts +1 -0
  40. package/dist/policy.d.ts.map +1 -0
  41. package/dist/print-value.d.ts +2 -1
  42. package/dist/print-value.d.ts.map +1 -0
  43. package/dist/provider-factory.d.ts +1 -0
  44. package/dist/provider-factory.d.ts.map +1 -0
  45. package/dist/relations.d.ts +1 -0
  46. package/dist/relations.d.ts.map +1 -0
  47. package/dist/sanitize/index.d.ts +1 -0
  48. package/dist/sanitize/index.d.ts.map +1 -0
  49. package/dist/sanitize/sanitizers.d.ts +1 -0
  50. package/dist/sanitize/sanitizers.d.ts.map +1 -0
  51. package/dist/sanitize/visitors/index.d.ts +1 -0
  52. package/dist/sanitize/visitors/index.d.ts.map +1 -0
  53. package/dist/sanitize/visitors/remove-disallowed-fields.d.ts +1 -0
  54. package/dist/sanitize/visitors/remove-disallowed-fields.d.ts.map +1 -0
  55. package/dist/sanitize/visitors/remove-dynamic-zones.d.ts +1 -0
  56. package/dist/sanitize/visitors/remove-dynamic-zones.d.ts.map +1 -0
  57. package/dist/sanitize/visitors/remove-morph-to-relations.d.ts +1 -0
  58. package/dist/sanitize/visitors/remove-morph-to-relations.d.ts.map +1 -0
  59. package/dist/sanitize/visitors/remove-password.d.ts +1 -0
  60. package/dist/sanitize/visitors/remove-password.d.ts.map +1 -0
  61. package/dist/sanitize/visitors/remove-private.d.ts +1 -0
  62. package/dist/sanitize/visitors/remove-private.d.ts.map +1 -0
  63. package/dist/sanitize/visitors/remove-restricted-fields.d.ts +1 -0
  64. package/dist/sanitize/visitors/remove-restricted-fields.d.ts.map +1 -0
  65. package/dist/sanitize/visitors/remove-restricted-relations.d.ts +1 -0
  66. package/dist/sanitize/visitors/remove-restricted-relations.d.ts.map +1 -0
  67. package/dist/set-creator-fields.d.ts +1 -0
  68. package/dist/set-creator-fields.d.ts.map +1 -0
  69. package/dist/string-formatting.d.ts +1 -0
  70. package/dist/string-formatting.d.ts.map +1 -0
  71. package/dist/template-configuration.d.ts +2 -1
  72. package/dist/template-configuration.d.ts.map +1 -0
  73. package/dist/template.d.ts +1 -0
  74. package/dist/template.d.ts.map +1 -0
  75. package/dist/traverse/factory.d.ts +1 -0
  76. package/dist/traverse/factory.d.ts.map +1 -0
  77. package/dist/traverse/index.d.ts +1 -0
  78. package/dist/traverse/index.d.ts.map +1 -0
  79. package/dist/traverse/query-fields.d.ts +1 -0
  80. package/dist/traverse/query-fields.d.ts.map +1 -0
  81. package/dist/traverse/query-filters.d.ts +1 -0
  82. package/dist/traverse/query-filters.d.ts.map +1 -0
  83. package/dist/traverse/query-populate.d.ts +1 -0
  84. package/dist/traverse/query-populate.d.ts.map +1 -0
  85. package/dist/traverse/query-sort.d.ts +1 -0
  86. package/dist/traverse/query-sort.d.ts.map +1 -0
  87. package/dist/traverse-entity.d.ts +1 -0
  88. package/dist/traverse-entity.d.ts.map +1 -0
  89. package/dist/types.d.ts +2 -1
  90. package/dist/types.d.ts.map +1 -0
  91. package/dist/validate/index.d.ts +1 -0
  92. package/dist/validate/index.d.ts.map +1 -0
  93. package/dist/validate/utils.d.ts +1 -0
  94. package/dist/validate/utils.d.ts.map +1 -0
  95. package/dist/validate/validators.d.ts +1 -0
  96. package/dist/validate/validators.d.ts.map +1 -0
  97. package/dist/validate/visitors/index.d.ts +1 -0
  98. package/dist/validate/visitors/index.d.ts.map +1 -0
  99. package/dist/validate/visitors/throw-disallowed-fields.d.ts +1 -0
  100. package/dist/validate/visitors/throw-disallowed-fields.d.ts.map +1 -0
  101. package/dist/validate/visitors/throw-dynamic-zones.d.ts +1 -0
  102. package/dist/validate/visitors/throw-dynamic-zones.d.ts.map +1 -0
  103. package/dist/validate/visitors/throw-morph-to-relations.d.ts +1 -0
  104. package/dist/validate/visitors/throw-morph-to-relations.d.ts.map +1 -0
  105. package/dist/validate/visitors/throw-password.d.ts +1 -0
  106. package/dist/validate/visitors/throw-password.d.ts.map +1 -0
  107. package/dist/validate/visitors/throw-private.d.ts +1 -0
  108. package/dist/validate/visitors/throw-private.d.ts.map +1 -0
  109. package/dist/validate/visitors/throw-restricted-fields.d.ts +1 -0
  110. package/dist/validate/visitors/throw-restricted-fields.d.ts.map +1 -0
  111. package/dist/validate/visitors/throw-restricted-relations.d.ts +1 -0
  112. package/dist/validate/visitors/throw-restricted-relations.d.ts.map +1 -0
  113. package/dist/validators.d.ts +1 -0
  114. package/dist/validators.d.ts.map +1 -0
  115. package/dist/webhook.d.ts +1 -0
  116. package/dist/webhook.d.ts.map +1 -0
  117. package/dist/yup.d.ts +1 -0
  118. package/dist/yup.d.ts.map +1 -0
  119. package/package.json +12 -12
  120. package/dist/async.js +0 -33
  121. package/dist/async.js.map +0 -1
  122. package/dist/code-generator.js +0 -11
  123. package/dist/code-generator.js.map +0 -1
  124. package/dist/config.js +0 -79
  125. package/dist/config.js.map +0 -1
  126. package/dist/content-types.js +0 -162
  127. package/dist/content-types.js.map +0 -1
  128. package/dist/convert-query-params.js +0 -477
  129. package/dist/convert-query-params.js.map +0 -1
  130. package/dist/env-helper.js +0 -84
  131. package/dist/env-helper.js.map +0 -1
  132. package/dist/errors.js +0 -101
  133. package/dist/errors.js.map +0 -1
  134. package/dist/file.js +0 -54
  135. package/dist/file.js.map +0 -1
  136. package/dist/format-yup-error.js +0 -17
  137. package/dist/format-yup-error.js.map +0 -1
  138. package/dist/hooks.js +0 -89
  139. package/dist/hooks.js.map +0 -1
  140. package/dist/import-default.js +0 -9
  141. package/dist/import-default.js.map +0 -1
  142. package/dist/object-formatting.js +0 -14
  143. package/dist/object-formatting.js.map +0 -1
  144. package/dist/operators.js +0 -72
  145. package/dist/operators.js.map +0 -1
  146. package/dist/pagination.js +0 -80
  147. package/dist/pagination.js.map +0 -1
  148. package/dist/parse-multipart.js +0 -36
  149. package/dist/parse-multipart.js.map +0 -1
  150. package/dist/parse-type.js +0 -108
  151. package/dist/parse-type.js.map +0 -1
  152. package/dist/policy.js +0 -109
  153. package/dist/policy.js.map +0 -1
  154. package/dist/print-value.js +0 -50
  155. package/dist/print-value.js.map +0 -1
  156. package/dist/provider-factory.js +0 -80
  157. package/dist/provider-factory.js.map +0 -1
  158. package/dist/relations.js +0 -23
  159. package/dist/relations.js.map +0 -1
  160. package/dist/sanitize/index.js +0 -156
  161. package/dist/sanitize/index.js.map +0 -1
  162. package/dist/sanitize/sanitizers.js +0 -147
  163. package/dist/sanitize/sanitizers.js.map +0 -1
  164. package/dist/sanitize/visitors/index.js +0 -21
  165. package/dist/sanitize/visitors/index.js.map +0 -1
  166. package/dist/sanitize/visitors/remove-disallowed-fields.js +0 -83
  167. package/dist/sanitize/visitors/remove-disallowed-fields.js.map +0 -1
  168. package/dist/sanitize/visitors/remove-dynamic-zones.js +0 -10
  169. package/dist/sanitize/visitors/remove-dynamic-zones.js.map +0 -1
  170. package/dist/sanitize/visitors/remove-morph-to-relations.js +0 -10
  171. package/dist/sanitize/visitors/remove-morph-to-relations.js.map +0 -1
  172. package/dist/sanitize/visitors/remove-password.js +0 -9
  173. package/dist/sanitize/visitors/remove-password.js.map +0 -1
  174. package/dist/sanitize/visitors/remove-private.js +0 -14
  175. package/dist/sanitize/visitors/remove-private.js.map +0 -1
  176. package/dist/sanitize/visitors/remove-restricted-fields.js +0 -25
  177. package/dist/sanitize/visitors/remove-restricted-fields.js.map +0 -1
  178. package/dist/sanitize/visitors/remove-restricted-relations.js +0 -88
  179. package/dist/sanitize/visitors/remove-restricted-relations.js.map +0 -1
  180. package/dist/set-creator-fields.js +0 -39
  181. package/dist/set-creator-fields.js.map +0 -1
  182. package/dist/string-formatting.js +0 -85
  183. package/dist/string-formatting.js.map +0 -1
  184. package/dist/template-configuration.js +0 -30
  185. package/dist/template-configuration.js.map +0 -1
  186. package/dist/template.js +0 -20
  187. package/dist/template.js.map +0 -1
  188. package/dist/traverse/factory.js +0 -127
  189. package/dist/traverse/factory.js.map +0 -1
  190. package/dist/traverse/index.js +0 -17
  191. package/dist/traverse/index.js.map +0 -1
  192. package/dist/traverse/query-fields.js +0 -35
  193. package/dist/traverse/query-fields.js.map +0 -1
  194. package/dist/traverse/query-filters.js +0 -75
  195. package/dist/traverse/query-filters.js.map +0 -1
  196. package/dist/traverse/query-populate.js +0 -171
  197. package/dist/traverse/query-populate.js.map +0 -1
  198. package/dist/traverse/query-sort.js +0 -117
  199. package/dist/traverse/query-sort.js.map +0 -1
  200. package/dist/traverse-entity.js +0 -134
  201. package/dist/traverse-entity.js.map +0 -1
  202. package/dist/types.js +0 -3
  203. package/dist/types.js.map +0 -1
  204. package/dist/validate/index.js +0 -121
  205. package/dist/validate/index.js.map +0 -1
  206. package/dist/validate/utils.js +0 -9
  207. package/dist/validate/utils.js.map +0 -1
  208. package/dist/validate/validators.js +0 -111
  209. package/dist/validate/validators.js.map +0 -1
  210. package/dist/validate/visitors/index.js +0 -21
  211. package/dist/validate/visitors/index.js.map +0 -1
  212. package/dist/validate/visitors/throw-disallowed-fields.js +0 -84
  213. package/dist/validate/visitors/throw-disallowed-fields.js.map +0 -1
  214. package/dist/validate/visitors/throw-dynamic-zones.js +0 -11
  215. package/dist/validate/visitors/throw-dynamic-zones.js.map +0 -1
  216. package/dist/validate/visitors/throw-morph-to-relations.js +0 -11
  217. package/dist/validate/visitors/throw-morph-to-relations.js.map +0 -1
  218. package/dist/validate/visitors/throw-password.js +0 -10
  219. package/dist/validate/visitors/throw-password.js.map +0 -1
  220. package/dist/validate/visitors/throw-private.js +0 -15
  221. package/dist/validate/visitors/throw-private.js.map +0 -1
  222. package/dist/validate/visitors/throw-restricted-fields.js +0 -24
  223. package/dist/validate/visitors/throw-restricted-fields.js.map +0 -1
  224. package/dist/validate/visitors/throw-restricted-relations.js +0 -81
  225. package/dist/validate/visitors/throw-restricted-relations.js.map +0 -1
  226. package/dist/validators.js +0 -64
  227. package/dist/validators.js.map +0 -1
  228. package/dist/webhook.js +0 -27
  229. package/dist/webhook.js.map +0 -1
  230. package/dist/yup.js +0 -108
  231. package/dist/yup.js.map +0 -1
@@ -1,134 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fp_1 = require("lodash/fp");
4
- const content_types_1 = require("./content-types");
5
- const traverseMorphRelationTarget = async (visitor, path, entry) => {
6
- const targetSchema = strapi.getModel(entry.__type);
7
- const traverseOptions = { schema: targetSchema, path };
8
- return traverseEntity(visitor, traverseOptions, entry);
9
- };
10
- const traverseRelationTarget = (schema) => async (visitor, path, entry) => {
11
- const traverseOptions = { schema, path };
12
- return traverseEntity(visitor, traverseOptions, entry);
13
- };
14
- const traverseMediaTarget = async (visitor, path, entry) => {
15
- const targetSchemaUID = 'plugin::upload.file';
16
- const targetSchema = strapi.getModel(targetSchemaUID);
17
- const traverseOptions = { schema: targetSchema, path };
18
- return traverseEntity(visitor, traverseOptions, entry);
19
- };
20
- const traverseComponent = async (visitor, path, schema, entry) => {
21
- const traverseOptions = { schema, path };
22
- return traverseEntity(visitor, traverseOptions, entry);
23
- };
24
- const visitDynamicZoneEntry = async (visitor, path, entry) => {
25
- const targetSchema = strapi.getModel(entry.__component);
26
- const traverseOptions = { schema: targetSchema, path };
27
- return traverseEntity(visitor, traverseOptions, entry);
28
- };
29
- const traverseEntity = async (visitor, options, entity) => {
30
- const { path = { raw: null, attribute: null }, schema } = options;
31
- // End recursion
32
- if (!(0, fp_1.isObject)(entity) || (0, fp_1.isNil)(schema)) {
33
- return entity;
34
- }
35
- // Don't mutate the original entity object
36
- // only clone at 1st level as the next level will get clone when traversed
37
- const copy = (0, fp_1.clone)(entity);
38
- const visitorUtils = createVisitorUtils({ data: copy });
39
- const keys = Object.keys(copy);
40
- for (let i = 0; i < keys.length; i += 1) {
41
- const key = keys[i];
42
- // Retrieve the attribute definition associated to the key from the schema
43
- const attribute = schema.attributes[key];
44
- // If the attribute doesn't exist within the schema, ignore it
45
- if ((0, fp_1.isNil)(attribute)) {
46
- continue;
47
- }
48
- const newPath = { ...path };
49
- newPath.raw = (0, fp_1.isNil)(path.raw) ? key : `${path.raw}.${key}`;
50
- if (!(0, fp_1.isNil)(attribute)) {
51
- newPath.attribute = (0, fp_1.isNil)(path.attribute) ? key : `${path.attribute}.${key}`;
52
- }
53
- // Visit the current attribute
54
- const visitorOptions = {
55
- data: copy,
56
- schema,
57
- key,
58
- value: copy[key],
59
- attribute,
60
- path: newPath,
61
- };
62
- await visitor(visitorOptions, visitorUtils);
63
- // Extract the value for the current key (after calling the visitor)
64
- const value = copy[key];
65
- // Ignore Nil values
66
- if ((0, fp_1.isNil)(value)) {
67
- continue;
68
- }
69
- if ((0, content_types_1.isRelationalAttribute)(attribute)) {
70
- const isMorphRelation = attribute.relation.toLowerCase().startsWith('morph');
71
- const method = isMorphRelation
72
- ? traverseMorphRelationTarget
73
- : traverseRelationTarget(strapi.getModel(attribute.target));
74
- if ((0, fp_1.isArray)(value)) {
75
- const res = new Array(value.length);
76
- for (let i = 0; i < value.length; i += 1) {
77
- res[i] = await method(visitor, newPath, value[i]);
78
- }
79
- copy[key] = res;
80
- }
81
- else {
82
- copy[key] = await method(visitor, newPath, value);
83
- }
84
- continue;
85
- }
86
- if ((0, content_types_1.isMediaAttribute)(attribute)) {
87
- // need to update copy
88
- if ((0, fp_1.isArray)(value)) {
89
- const res = new Array(value.length);
90
- for (let i = 0; i < value.length; i += 1) {
91
- res[i] = await traverseMediaTarget(visitor, newPath, value[i]);
92
- }
93
- copy[key] = res;
94
- }
95
- else {
96
- copy[key] = await traverseMediaTarget(visitor, newPath, value);
97
- }
98
- continue;
99
- }
100
- if (attribute.type === 'component') {
101
- const targetSchema = strapi.getModel(attribute.component);
102
- if ((0, fp_1.isArray)(value)) {
103
- const res = new Array(value.length);
104
- for (let i = 0; i < value.length; i += 1) {
105
- res[i] = await traverseComponent(visitor, newPath, targetSchema, value[i]);
106
- }
107
- copy[key] = res;
108
- }
109
- else {
110
- copy[key] = await traverseComponent(visitor, newPath, targetSchema, value);
111
- }
112
- continue;
113
- }
114
- if (attribute.type === 'dynamiczone' && (0, fp_1.isArray)(value)) {
115
- const res = new Array(value.length);
116
- for (let i = 0; i < value.length; i += 1) {
117
- res[i] = await visitDynamicZoneEntry(visitor, newPath, value[i]);
118
- }
119
- copy[key] = res;
120
- continue;
121
- }
122
- }
123
- return copy;
124
- };
125
- const createVisitorUtils = ({ data }) => ({
126
- remove(key) {
127
- delete data[key];
128
- },
129
- set(key, value) {
130
- data[key] = value;
131
- },
132
- });
133
- exports.default = (0, fp_1.curry)(traverseEntity);
134
- //# sourceMappingURL=traverse-entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traverse-entity.js","sourceRoot":"","sources":["../src/traverse-entity.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const fp_1 = require("lodash/fp");
30
- const content_types_1 = require("../content-types");
31
- const async_1 = require("../async");
32
- const visitors = __importStar(require("./visitors"));
33
- const validators = __importStar(require("./validators"));
34
- const traverse_entity_1 = __importDefault(require("../traverse-entity"));
35
- const traverse_1 = require("../traverse");
36
- const createContentAPIValidators = () => {
37
- const validateInput = async (data, schema, { auth } = {}) => {
38
- if (!schema) {
39
- throw new Error('Missing schema in validateInput');
40
- }
41
- if ((0, fp_1.isArray)(data)) {
42
- await Promise.all(data.map((entry) => validateInput(entry, schema, { auth })));
43
- return;
44
- }
45
- const nonWritableAttributes = (0, content_types_1.getNonWritableAttributes)(schema);
46
- const transforms = [
47
- // non writable attributes
48
- (0, traverse_entity_1.default)(visitors.throwRestrictedFields(nonWritableAttributes), { schema }),
49
- ];
50
- if (auth) {
51
- // restricted relations
52
- transforms.push((0, traverse_entity_1.default)(visitors.throwRestrictedRelations(auth), { schema }));
53
- }
54
- // Apply validators from registry if exists
55
- strapi.validators
56
- .get('content-api.input')
57
- .forEach((validator) => transforms.push(validator(schema)));
58
- (0, async_1.pipeAsync)(...transforms)(data);
59
- };
60
- const validateQuery = async (query, schema, { auth } = {}) => {
61
- if (!schema) {
62
- throw new Error('Missing schema in validateQuery');
63
- }
64
- const { filters, sort, fields } = query;
65
- if (filters) {
66
- await validateFilters(filters, schema, { auth });
67
- }
68
- if (sort) {
69
- await validateSort(sort, schema, { auth });
70
- }
71
- if (fields) {
72
- await validateFields(fields, schema);
73
- }
74
- // TODO: validate populate
75
- };
76
- const validateFilters = async (filters, schema, { auth } = {}) => {
77
- if (!schema) {
78
- throw new Error('Missing schema in validateFilters');
79
- }
80
- if ((0, fp_1.isArray)(filters)) {
81
- await Promise.all(filters.map((filter) => validateFilters(filter, schema, { auth })));
82
- return;
83
- }
84
- const transforms = [validators.defaultValidateFilters(schema)];
85
- if (auth) {
86
- transforms.push((0, traverse_1.traverseQueryFilters)(visitors.throwRestrictedRelations(auth), { schema }));
87
- }
88
- return (0, async_1.pipeAsync)(...transforms)(filters);
89
- };
90
- const validateSort = async (sort, schema, { auth } = {}) => {
91
- if (!schema) {
92
- throw new Error('Missing schema in validateSort');
93
- }
94
- const transforms = [validators.defaultValidateSort(schema)];
95
- if (auth) {
96
- transforms.push((0, traverse_1.traverseQuerySort)(visitors.throwRestrictedRelations(auth), { schema }));
97
- }
98
- return (0, async_1.pipeAsync)(...transforms)(sort);
99
- };
100
- const validateFields = (fields, schema) => {
101
- if (!schema) {
102
- throw new Error('Missing schema in validateFields');
103
- }
104
- const transforms = [validators.defaultValidateFields(schema)];
105
- return (0, async_1.pipeAsync)(...transforms)(fields);
106
- };
107
- return {
108
- input: validateInput,
109
- query: validateQuery,
110
- filters: validateFilters,
111
- sort: validateSort,
112
- fields: validateFields,
113
- };
114
- };
115
- const contentAPI = createContentAPIValidators();
116
- exports.default = {
117
- contentAPI,
118
- validators,
119
- visitors,
120
- };
121
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.throwInvalidParam = void 0;
4
- const errors_1 = require("../errors");
5
- const throwInvalidParam = ({ key }) => {
6
- throw new errors_1.ValidationError(`Invalid parameter ${key}`);
7
- };
8
- exports.throwInvalidParam = throwInvalidParam;
9
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/validate/utils.ts"],"names":[],"mappings":";;;AAAA,sCAA4C;AAErC,MAAM,iBAAiB,GAAG,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE;IAC5D,MAAM,IAAI,wBAAe,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.defaultValidateFields = exports.defaultValidateSort = exports.defaultValidateFilters = exports.throwPasswords = void 0;
7
- const fp_1 = require("lodash/fp");
8
- const async_1 = require("../async");
9
- const traverse_entity_1 = __importDefault(require("../traverse-entity"));
10
- const content_types_1 = require("../content-types");
11
- const traverse_1 = require("../traverse");
12
- const visitors_1 = require("./visitors");
13
- const operators_1 = require("../operators");
14
- const utils_1 = require("./utils");
15
- const throwPasswords = (schema) => async (entity) => {
16
- if (!schema) {
17
- throw new Error('Missing schema in throwPasswords');
18
- }
19
- return (0, traverse_entity_1.default)(visitors_1.throwPassword, { schema }, entity);
20
- };
21
- exports.throwPasswords = throwPasswords;
22
- const defaultValidateFilters = (0, fp_1.curry)((schema, filters) => {
23
- // TODO: schema checks should check that it is a validate schema with yup
24
- if (!schema) {
25
- throw new Error('Missing schema in defaultValidateFilters');
26
- }
27
- return (0, async_1.pipeAsync)(
28
- // keys that are not attributes or valid operators
29
- (0, traverse_1.traverseQueryFilters)(({ key, attribute }) => {
30
- // ID is not an attribute per se, so we need to make
31
- // an extra check to ensure we're not removing it
32
- if (key === 'id') {
33
- return;
34
- }
35
- const isAttribute = !!attribute;
36
- if (!isAttribute && !(0, operators_1.isOperator)(key)) {
37
- (0, utils_1.throwInvalidParam)({ key });
38
- }
39
- }, { schema }),
40
- // dynamic zones from filters
41
- (0, traverse_1.traverseQueryFilters)(visitors_1.throwDynamicZones, { schema }),
42
- // morphTo relations from filters; because you can't have deep filtering on morph relations
43
- (0, traverse_1.traverseQueryFilters)(visitors_1.throwMorphToRelations, { schema }),
44
- // passwords from filters
45
- (0, traverse_1.traverseQueryFilters)(visitors_1.throwPassword, { schema }),
46
- // private from filters
47
- (0, traverse_1.traverseQueryFilters)(visitors_1.throwPrivate, { schema })
48
- // we allow empty objects to validate and only sanitize them out, so that users may write "lazy" queries without checking their params exist
49
- )(filters);
50
- });
51
- exports.defaultValidateFilters = defaultValidateFilters;
52
- const defaultValidateSort = (0, fp_1.curry)((schema, sort) => {
53
- if (!schema) {
54
- throw new Error('Missing schema in defaultValidateSort');
55
- }
56
- return (0, async_1.pipeAsync)(
57
- // non attribute keys
58
- (0, traverse_1.traverseQuerySort)(({ key, attribute }) => {
59
- // ID is not an attribute per se, so we need to make
60
- // an extra check to ensure we're not removing it
61
- if (key === 'id') {
62
- return;
63
- }
64
- if (!attribute) {
65
- (0, utils_1.throwInvalidParam)({ key });
66
- }
67
- }, { schema }),
68
- // dynamic zones from sort
69
- (0, traverse_1.traverseQuerySort)(visitors_1.throwDynamicZones, { schema }),
70
- // morphTo relations from sort
71
- (0, traverse_1.traverseQuerySort)(visitors_1.throwMorphToRelations, { schema }),
72
- // private from sort
73
- (0, traverse_1.traverseQuerySort)(visitors_1.throwPrivate, { schema }),
74
- // passwords from filters
75
- (0, traverse_1.traverseQuerySort)(visitors_1.throwPassword, { schema }),
76
- // keys for empty non-scalar values
77
- (0, traverse_1.traverseQuerySort)(({ key, attribute, value }) => {
78
- // ID is not an attribute per se, so we need to make
79
- // an extra check to ensure we're not removing it
80
- if (key === 'id') {
81
- return;
82
- }
83
- if (!(0, content_types_1.isScalarAttribute)(attribute) && (0, fp_1.isEmpty)(value)) {
84
- (0, utils_1.throwInvalidParam)({ key });
85
- }
86
- }, { schema }))(sort);
87
- });
88
- exports.defaultValidateSort = defaultValidateSort;
89
- const defaultValidateFields = (0, fp_1.curry)((schema, fields) => {
90
- if (!schema) {
91
- throw new Error('Missing schema in defaultValidateFields');
92
- }
93
- return (0, async_1.pipeAsync)(
94
- // Only allow scalar attributes
95
- (0, traverse_1.traverseQueryFields)(({ key, attribute }) => {
96
- // ID is not an attribute per se, so we need to make
97
- // an extra check to ensure we're not removing it
98
- if (key === 'id') {
99
- return;
100
- }
101
- if ((0, fp_1.isNil)(attribute) || !(0, content_types_1.isScalarAttribute)(attribute)) {
102
- (0, utils_1.throwInvalidParam)({ key });
103
- }
104
- }, { schema }),
105
- // private fields
106
- (0, traverse_1.traverseQueryFields)(visitors_1.throwPrivate, { schema }),
107
- // password fields
108
- (0, traverse_1.traverseQueryFields)(visitors_1.throwPassword, { schema }))(fields);
109
- });
110
- exports.defaultValidateFields = defaultValidateFields;
111
- //# sourceMappingURL=validators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validate/validators.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.throwRestrictedFields = exports.throwDisallowedFields = exports.throwDynamicZones = exports.throwMorphToRelations = exports.throwRestrictedRelations = exports.throwPrivate = exports.throwPassword = void 0;
7
- var throw_password_1 = require("./throw-password");
8
- Object.defineProperty(exports, "throwPassword", { enumerable: true, get: function () { return __importDefault(throw_password_1).default; } });
9
- var throw_private_1 = require("./throw-private");
10
- Object.defineProperty(exports, "throwPrivate", { enumerable: true, get: function () { return __importDefault(throw_private_1).default; } });
11
- var throw_restricted_relations_1 = require("./throw-restricted-relations");
12
- Object.defineProperty(exports, "throwRestrictedRelations", { enumerable: true, get: function () { return __importDefault(throw_restricted_relations_1).default; } });
13
- var throw_morph_to_relations_1 = require("./throw-morph-to-relations");
14
- Object.defineProperty(exports, "throwMorphToRelations", { enumerable: true, get: function () { return __importDefault(throw_morph_to_relations_1).default; } });
15
- var throw_dynamic_zones_1 = require("./throw-dynamic-zones");
16
- Object.defineProperty(exports, "throwDynamicZones", { enumerable: true, get: function () { return __importDefault(throw_dynamic_zones_1).default; } });
17
- var throw_disallowed_fields_1 = require("./throw-disallowed-fields");
18
- Object.defineProperty(exports, "throwDisallowedFields", { enumerable: true, get: function () { return __importDefault(throw_disallowed_fields_1).default; } });
19
- var throw_restricted_fields_1 = require("./throw-restricted-fields");
20
- Object.defineProperty(exports, "throwRestrictedFields", { enumerable: true, get: function () { return __importDefault(throw_restricted_fields_1).default; } });
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validate/visitors/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAChC,2EAAmF;AAA1E,uJAAA,OAAO,OAA4B;AAC5C,uEAA8E;AAArE,kJAAA,OAAO,OAAyB;AACzC,6DAAqE;AAA5D,yIAAA,OAAO,OAAqB;AACrC,qEAA6E;AAApE,iJAAA,OAAO,OAAyB;AACzC,qEAA6E;AAApE,iJAAA,OAAO,OAAyB"}
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fp_1 = require("lodash/fp");
4
- const utils_1 = require("../utils");
5
- exports.default = (allowedFields = null) => ({ key, path: { attribute: path } }) => {
6
- // All fields are allowed
7
- if (allowedFields === null) {
8
- return;
9
- }
10
- // Throw on invalid formats
11
- if (!((0, fp_1.isArray)(allowedFields) && allowedFields.every(fp_1.isString))) {
12
- throw new TypeError(`Expected array of strings for allowedFields but got "${typeof allowedFields}"`);
13
- }
14
- if ((0, fp_1.isNil)(path)) {
15
- return;
16
- }
17
- const containedPaths = getContainedPaths(path);
18
- /**
19
- * Tells if the current path should be kept or not based
20
- * on the success of the check functions for any of the allowed paths.
21
- *
22
- * The check functions are defined as follow:
23
- *
24
- * `containedPaths.includes(p)`
25
- * @example
26
- * ```js
27
- * const path = 'foo.bar.field';
28
- * const p = 'foo.bar';
29
- * // it should match
30
- *
31
- * const path = 'foo.bar.field';
32
- * const p = 'bar.foo';
33
- * // it shouldn't match
34
- *
35
- * const path = 'foo.bar';
36
- * const p = 'foo.bar.field';
37
- * // it should match but isn't handled by this check
38
- * ```
39
- *
40
- * `p.startsWith(`${path}.`)`
41
- * @example
42
- * ```js
43
- * const path = 'foo.bar';
44
- * const p = 'foo.bar.field';
45
- * // it should match
46
- *
47
- * const path = 'foo.bar.field';
48
- * const p = 'bar.foo';
49
- * // it shouldn't match
50
- *
51
- * const path = 'foo.bar.field';
52
- * const p = 'foo.bar';
53
- * // it should match but isn't handled by this check
54
- * ```
55
- */
56
- const isPathAllowed = allowedFields.some((p) => containedPaths.includes(p) || p.startsWith(`${path}.`));
57
- if (isPathAllowed) {
58
- return;
59
- }
60
- // throw otherwise
61
- (0, utils_1.throwInvalidParam)({ key });
62
- };
63
- /**
64
- * Retrieve the list of allowed paths based on the given path
65
- *
66
- * @example
67
- * ```js
68
- * const containedPaths = getContainedPaths('foo');
69
- * // ['foo']
70
- *
71
- * * const containedPaths = getContainedPaths('foo.bar');
72
- * // ['foo', 'foo.bar']
73
- *
74
- * * const containedPaths = getContainedPaths('foo.bar.field');
75
- * // ['foo', 'foo.bar', 'foo.bar.field']
76
- * ```
77
- */
78
- const getContainedPaths = (path) => {
79
- const parts = (0, fp_1.toPath)(path);
80
- return parts.reduce((acc, value, index, list) => {
81
- return [...acc, list.slice(0, index + 1).join('.')];
82
- }, []);
83
- };
84
- //# sourceMappingURL=throw-disallowed-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throw-disallowed-fields.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-disallowed-fields.ts"],"names":[],"mappings":";;AAAA,kCAA6D;AAE7D,oCAA6C;AAE7C,kBAAe,CAAC,gBAAiC,IAAI,EAAW,EAAE,CAChE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACrC,yBAAyB;IACzB,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,OAAO;KACR;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,IAAA,YAAO,EAAC,aAAa,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,aAAQ,CAAC,CAAC,EAAE;QAC9D,MAAM,IAAI,SAAS,CACjB,wDAAwD,OAAO,aAAa,GAAG,CAChF,CAAC;KACH;IAED,IAAI,IAAA,UAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO;KACR;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAC9D,CAAC;IAEF,IAAI,aAAa,EAAE;QACjB,OAAO;KACR;IAED,kBAAkB;IAClB,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;GAcG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,IAAA,WAAM,EAAC,IAAI,CAAC,CAAC;IAE3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,EAAE,EAAc,CAAC,CAAC;AACrB,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const content_types_1 = require("../../content-types");
4
- const utils_1 = require("../utils");
5
- const visitor = ({ key, attribute }) => {
6
- if ((0, content_types_1.isDynamicZoneAttribute)(attribute)) {
7
- (0, utils_1.throwInvalidParam)({ key });
8
- }
9
- };
10
- exports.default = visitor;
11
- //# sourceMappingURL=throw-dynamic-zones.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throw-dynamic-zones.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-dynamic-zones.ts"],"names":[],"mappings":";;AAAA,uDAA6D;AAC7D,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9C,IAAI,IAAA,sCAAsB,EAAC,SAAS,CAAC,EAAE;QACrC,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const content_types_1 = require("../../content-types");
4
- const utils_1 = require("../utils");
5
- const visitor = ({ key, attribute }) => {
6
- if ((0, content_types_1.isMorphToRelationalAttribute)(attribute)) {
7
- (0, utils_1.throwInvalidParam)({ key });
8
- }
9
- };
10
- exports.default = visitor;
11
- //# sourceMappingURL=throw-morph-to-relations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throw-morph-to-relations.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-morph-to-relations.ts"],"names":[],"mappings":";;AAAA,uDAAmE;AACnE,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9C,IAAI,IAAA,4CAA4B,EAAC,SAAS,CAAC,EAAE;QAC3C,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("../utils");
4
- const visitor = ({ key, attribute }) => {
5
- if (attribute?.type === 'password') {
6
- (0, utils_1.throwInvalidParam)({ key });
7
- }
8
- };
9
- exports.default = visitor;
10
- //# sourceMappingURL=throw-password.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throw-password.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-password.ts"],"names":[],"mappings":";;AAAA,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9C,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE;QAClC,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const content_types_1 = require("../../content-types");
4
- const utils_1 = require("../utils");
5
- const visitor = ({ schema, key, attribute }) => {
6
- if (!attribute) {
7
- return;
8
- }
9
- const isPrivate = attribute.private === true || (0, content_types_1.isPrivateAttribute)(schema, key);
10
- if (isPrivate) {
11
- (0, utils_1.throwInvalidParam)({ key });
12
- }
13
- };
14
- exports.default = visitor;
15
- //# sourceMappingURL=throw-private.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throw-private.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-private.ts"],"names":[],"mappings":";;AAAA,uDAAyD;AACzD,oCAA6C;AAG7C,MAAM,OAAO,GAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IACtD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO;KACR;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,IAAA,kCAAkB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhF,IAAI,SAAS,EAAE;QACb,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fp_1 = require("lodash/fp");
4
- const utils_1 = require("../utils");
5
- exports.default = (restrictedFields = null) => ({ key, path: { attribute: path } }) => {
6
- // all fields
7
- if (restrictedFields === null) {
8
- (0, utils_1.throwInvalidParam)({ key });
9
- }
10
- // Throw on invalid formats
11
- if (!((0, fp_1.isArray)(restrictedFields) && restrictedFields.every(fp_1.isString))) {
12
- throw new TypeError(`Expected array of strings for restrictedFields but got "${typeof restrictedFields}"`);
13
- }
14
- // if an exact match was found
15
- if (restrictedFields.includes(path)) {
16
- (0, utils_1.throwInvalidParam)({ key });
17
- }
18
- // nested matches
19
- const isRestrictedNested = restrictedFields.some((allowedPath) => path?.toString().startsWith(`${allowedPath}.`));
20
- if (isRestrictedNested) {
21
- (0, utils_1.throwInvalidParam)({ key });
22
- }
23
- };
24
- //# sourceMappingURL=throw-restricted-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throw-restricted-fields.js","sourceRoot":"","sources":["../../../src/validate/visitors/throw-restricted-fields.ts"],"names":[],"mappings":";;AAAA,kCAA8C;AAE9C,oCAA6C;AAE7C,kBAAe,CAAC,mBAAoC,IAAI,EAAW,EAAE,CACnE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACrC,aAAa;IACb,IAAI,gBAAgB,KAAK,IAAI,EAAE;QAC7B,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,IAAA,YAAO,EAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,aAAQ,CAAC,CAAC,EAAE;QACpE,MAAM,IAAI,SAAS,CACjB,2DAA2D,OAAO,gBAAgB,GAAG,CACtF,CAAC;KACH;IAED,8BAA8B;IAC9B,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAc,CAAC,EAAE;QAC7C,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;IAED,iBAAiB;IACjB,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAC/D,IAAI,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC,CAC/C,CAAC;IACF,IAAI,kBAAkB,EAAE;QACtB,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC"}