@strapi/utils 5.0.0-beta.7 → 5.0.0-beta.9
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/content-types.d.ts +2 -1
- package/dist/content-types.d.ts.map +1 -1
- package/dist/convert-query-params.d.ts.map +1 -1
- package/dist/file.d.ts +0 -1
- package/dist/file.d.ts.map +1 -1
- package/dist/index.js +46 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +47 -51
- package/dist/index.mjs.map +1 -1
- package/dist/traverse/query-populate.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/content-types.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ declare const isKind: (kind: Kind) => (model: Model) => boolean;
|
|
|
45
45
|
declare const getPrivateAttributes: (model: Model) => string[];
|
|
46
46
|
declare const isPrivateAttribute: (model: Model, attributeName: string) => boolean;
|
|
47
47
|
declare const isScalarAttribute: (attribute?: Attribute) => boolean | undefined;
|
|
48
|
+
declare const getDoesAttributeRequireValidation: (attribute: Attribute) => any;
|
|
48
49
|
declare const isMediaAttribute: (attribute?: Attribute) => boolean;
|
|
49
50
|
declare const isRelationalAttribute: (attribute?: Attribute) => attribute is RelationalAttribute;
|
|
50
51
|
declare const hasRelationReordering: (attribute?: Attribute) => boolean;
|
|
@@ -66,5 +67,5 @@ declare const isTypedAttribute: (attribute: Attribute, type: string) => boolean;
|
|
|
66
67
|
* @returns {string}
|
|
67
68
|
*/
|
|
68
69
|
declare const getContentTypeRoutePrefix: (contentType: WithRequired<Model, 'info'>) => string;
|
|
69
|
-
export { isSchema, isContentTypeSchema, isComponentSchema, isScalarAttribute, isMediaAttribute, isRelationalAttribute, hasRelationReordering, isComponentAttribute, isDynamicZoneAttribute, isMorphToRelationalAttribute, isTypedAttribute, getPrivateAttributes, isPrivateAttribute, constants, getNonWritableAttributes, getComponentAttributes, getScalarAttributes, getRelationalAttributes, getWritableAttributes, isWritableAttribute, getNonVisibleAttributes, getVisibleAttributes, getTimestamps, getCreatorFields, isVisibleAttribute, getOptions, isDraft, hasDraftAndPublish, isSingleType, isCollectionType, isKind, getContentTypeRoutePrefix, };
|
|
70
|
+
export { isSchema, isContentTypeSchema, isComponentSchema, isScalarAttribute, isMediaAttribute, isRelationalAttribute, hasRelationReordering, isComponentAttribute, isDynamicZoneAttribute, isMorphToRelationalAttribute, isTypedAttribute, getPrivateAttributes, isPrivateAttribute, constants, getNonWritableAttributes, getComponentAttributes, getScalarAttributes, getRelationalAttributes, getWritableAttributes, isWritableAttribute, getNonVisibleAttributes, getVisibleAttributes, getTimestamps, getCreatorFields, isVisibleAttribute, getOptions, isDraft, hasDraftAndPublish, isSingleType, isCollectionType, isKind, getContentTypeRoutePrefix, getDoesAttributeRequireValidation, };
|
|
70
71
|
//# sourceMappingURL=content-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../src/content-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../src/content-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-query-params.d.ts","sourceRoot":"","sources":["../src/convert-query-params.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-query-params.d.ts","sourceRoot":"","sources":["../src/convert-query-params.ts"],"names":[],"mappings":"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"}
|
package/dist/file.d.ts
CHANGED
package/dist/file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;;AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAExD,QAAA,MAAM,aAAa,WAAY,MAAM,WAAkB,CAAC;AACxD,QAAA,MAAM,aAAa,UAAW,MAAM,WAA2C,CAAC;AAChF,QAAA,MAAM,oBAAoB,UAAW,MAAM,WAK1C,CAAC;AAEF,QAAA,MAAM,cAAc,WAAY,qBAAqB,KAAG,QAAQ,MAAM,CAUlE,CAAC;AAEL,QAAA,MAAM,aAAa,WAAY,qBAAqB,qBAShD,CAAC;AAEL;;;GAGG;AACH,iBAAS,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,YAOvD;AAED,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,aAAa,EACb,qBAAqB,GACtB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -341,6 +341,9 @@ const isPrivateAttribute = (model, attributeName) => {
|
|
|
341
341
|
const isScalarAttribute = (attribute) => {
|
|
342
342
|
return attribute && !["media", "component", "relation", "dynamiczone"].includes(attribute.type);
|
|
343
343
|
};
|
|
344
|
+
const getDoesAttributeRequireValidation = (attribute) => {
|
|
345
|
+
return attribute.required || attribute.unique || Object.prototype.hasOwnProperty.call(attribute, "max") || Object.prototype.hasOwnProperty.call(attribute, "min") || Object.prototype.hasOwnProperty.call(attribute, "maxLength") || Object.prototype.hasOwnProperty.call(attribute, "minLength");
|
|
346
|
+
};
|
|
344
347
|
const isMediaAttribute = (attribute) => attribute?.type === "media";
|
|
345
348
|
const isRelationalAttribute = (attribute) => attribute?.type === "relation";
|
|
346
349
|
const HAS_RELATION_REORDERING = ["manyToMany", "manyToOne", "oneToMany"];
|
|
@@ -395,6 +398,7 @@ const contentTypes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.define
|
|
|
395
398
|
getComponentAttributes,
|
|
396
399
|
getContentTypeRoutePrefix,
|
|
397
400
|
getCreatorFields,
|
|
401
|
+
getDoesAttributeRequireValidation,
|
|
398
402
|
getNonVisibleAttributes,
|
|
399
403
|
getNonWritableAttributes,
|
|
400
404
|
getOptions,
|
|
@@ -1047,27 +1051,45 @@ const createTransformer = ({ getModel }) => {
|
|
|
1047
1051
|
}
|
|
1048
1052
|
throw new InvalidPopulateError();
|
|
1049
1053
|
};
|
|
1050
|
-
const
|
|
1054
|
+
const hasPopulateFragmentDefined = (populate2) => {
|
|
1051
1055
|
return typeof populate2 === "object" && "on" in populate2 && !fp.isNil(populate2.on);
|
|
1052
1056
|
};
|
|
1057
|
+
const hasCountDefined = (populate2) => {
|
|
1058
|
+
return typeof populate2 === "object" && "count" in populate2 && typeof populate2.count === "boolean";
|
|
1059
|
+
};
|
|
1053
1060
|
const convertPopulateObject = (populate2, schema) => {
|
|
1054
1061
|
if (!schema) {
|
|
1055
1062
|
return {};
|
|
1056
1063
|
}
|
|
1057
1064
|
const { attributes } = schema;
|
|
1058
1065
|
return Object.entries(populate2).reduce((acc, [key, subPopulate]) => {
|
|
1066
|
+
if (___namespace.default.isString(subPopulate)) {
|
|
1067
|
+
try {
|
|
1068
|
+
const subPopulateAsBoolean = parseType({ type: "boolean", value: subPopulate });
|
|
1069
|
+
return subPopulateAsBoolean === true ? { ...acc, [key]: true } : acc;
|
|
1070
|
+
} catch {
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1059
1073
|
if (___namespace.default.isBoolean(subPopulate)) {
|
|
1060
|
-
return { ...acc, [key]:
|
|
1074
|
+
return subPopulate === true ? { ...acc, [key]: true } : acc;
|
|
1061
1075
|
}
|
|
1062
1076
|
const attribute = attributes[key];
|
|
1063
1077
|
if (!attribute) {
|
|
1064
1078
|
return acc;
|
|
1065
1079
|
}
|
|
1066
|
-
const
|
|
1067
|
-
if (
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1080
|
+
const isMorphLikeRelationalAttribute = isDynamicZoneAttribute(attribute) || isMorphToRelationalAttribute(attribute);
|
|
1081
|
+
if (isMorphLikeRelationalAttribute) {
|
|
1082
|
+
const hasInvalidProperties = Object.keys(subPopulate).some(
|
|
1083
|
+
(key2) => !["on", "count"].includes(key2)
|
|
1084
|
+
);
|
|
1085
|
+
if (hasInvalidProperties) {
|
|
1086
|
+
throw new Error(
|
|
1087
|
+
`Invalid nested populate for ${schema.info?.singularName}.${key} (${schema.uid}). Expected a fragment ("on") or "count" but found ${JSON.stringify(subPopulate)}`
|
|
1088
|
+
);
|
|
1089
|
+
}
|
|
1090
|
+
const newSubPopulate = {};
|
|
1091
|
+
if (hasPopulateFragmentDefined(subPopulate)) {
|
|
1092
|
+
Object.assign(newSubPopulate, {
|
|
1071
1093
|
on: Object.entries(subPopulate.on).reduce(
|
|
1072
1094
|
(acc2, [type, typeSubPopulate]) => ({
|
|
1073
1095
|
...acc2,
|
|
@@ -1075,21 +1097,15 @@ const createTransformer = ({ getModel }) => {
|
|
|
1075
1097
|
}),
|
|
1076
1098
|
{}
|
|
1077
1099
|
)
|
|
1078
|
-
}
|
|
1079
|
-
};
|
|
1080
|
-
}
|
|
1081
|
-
if (isDynamicZoneAttribute(attribute)) {
|
|
1082
|
-
const populates = attribute.components.map((uid) => getModel(uid)).map((schema2) => convertNestedPopulate(subPopulate, schema2)).map((populate22) => populate22 === true ? {} : populate22).filter((populate22) => populate22 !== false);
|
|
1083
|
-
if (fp.isEmpty(populates)) {
|
|
1084
|
-
return acc;
|
|
1100
|
+
});
|
|
1085
1101
|
}
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
};
|
|
1102
|
+
if (hasCountDefined(subPopulate)) {
|
|
1103
|
+
Object.assign(newSubPopulate, { count: subPopulate.count });
|
|
1104
|
+
}
|
|
1105
|
+
return { ...acc, [key]: newSubPopulate };
|
|
1090
1106
|
}
|
|
1091
|
-
if (
|
|
1092
|
-
|
|
1107
|
+
if (!isMorphLikeRelationalAttribute && hasPopulateFragmentDefined(subPopulate)) {
|
|
1108
|
+
throw new Error(`Using fragments is not permitted to populate "${key}" in "${schema.uid}"`);
|
|
1093
1109
|
}
|
|
1094
1110
|
let targetSchemaUID;
|
|
1095
1111
|
if (attribute.type === "relation") {
|
|
@@ -1845,7 +1861,8 @@ const populate = traverseFactory().intercept(isStringArray$1, async (visitor2, o
|
|
|
1845
1861
|
return;
|
|
1846
1862
|
}
|
|
1847
1863
|
const newValue2 = await recurse(visitor2, { schema, path, getModel }, { on: value?.on });
|
|
1848
|
-
set(key,
|
|
1864
|
+
set(key, newValue2);
|
|
1865
|
+
return;
|
|
1849
1866
|
}
|
|
1850
1867
|
const targetSchemaUID = attribute.target;
|
|
1851
1868
|
const targetSchema = getModel(targetSchemaUID);
|
|
@@ -1867,36 +1884,15 @@ const populate = traverseFactory().intercept(isStringArray$1, async (visitor2, o
|
|
|
1867
1884
|
const targetSchema = getModel(attribute.component);
|
|
1868
1885
|
const newValue = await recurse(visitor2, { schema: targetSchema, path, getModel }, value);
|
|
1869
1886
|
set(key, newValue);
|
|
1870
|
-
}).onDynamicZone(
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
return;
|
|
1874
|
-
}
|
|
1875
|
-
if (fp.isObject(value)) {
|
|
1876
|
-
const { components } = attribute;
|
|
1877
|
-
const newValue = {};
|
|
1878
|
-
let newProperties = fp.omit("on", value);
|
|
1879
|
-
for (const componentUID of components) {
|
|
1880
|
-
const componentSchema = getModel(componentUID);
|
|
1881
|
-
const properties = await recurse(
|
|
1882
|
-
visitor2,
|
|
1883
|
-
{ schema: componentSchema, path, getModel },
|
|
1884
|
-
value
|
|
1885
|
-
);
|
|
1886
|
-
newProperties = fp.merge(newProperties, properties);
|
|
1887
|
-
}
|
|
1888
|
-
Object.assign(newValue, newProperties);
|
|
1889
|
-
if ("on" in value && value.on) {
|
|
1890
|
-
const newOn = await recurse(visitor2, { schema, path, getModel }, { on: value.on });
|
|
1891
|
-
Object.assign(newValue, newOn);
|
|
1892
|
-
}
|
|
1893
|
-
set(key, newValue);
|
|
1894
|
-
} else {
|
|
1895
|
-
const newValue = await recurse(visitor2, { schema, path, getModel }, value);
|
|
1896
|
-
set(key, newValue);
|
|
1897
|
-
}
|
|
1887
|
+
}).onDynamicZone(async ({ key, value, schema, visitor: visitor2, path, getModel }, { set, recurse }) => {
|
|
1888
|
+
if (fp.isNil(value) || !fp.isObject(value)) {
|
|
1889
|
+
return;
|
|
1898
1890
|
}
|
|
1899
|
-
)
|
|
1891
|
+
if ("on" in value && value.on) {
|
|
1892
|
+
const newOn = await recurse(visitor2, { schema, path, getModel }, { on: value.on });
|
|
1893
|
+
set(key, newOn);
|
|
1894
|
+
}
|
|
1895
|
+
});
|
|
1900
1896
|
const traverseQueryPopulate = fp.curry(populate.traverse);
|
|
1901
1897
|
const isStringArray = (value) => fp.isArray(value) && value.every(fp.isString);
|
|
1902
1898
|
const fields = traverseFactory().intercept(isStringArray, async (visitor2, options, fields2, { recurse }) => {
|