@strapi/core 0.0.0-experimental.90ca9123352ed07e0a9cedaf4bcad1475e74137f → 0.0.0-experimental.a407f3bc8fb79a53cf7975140864526b6ddbac4b
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/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs.map +1 -1
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs.map +1 -1
- package/dist/core-api/controller/transform.js +2 -2
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +2 -2
- package/dist/core-api/controller/transform.mjs.map +1 -1
- package/dist/core-api/service/collection-type.d.ts.map +1 -1
- package/dist/core-api/service/collection-type.js.map +1 -1
- package/dist/core-api/service/collection-type.mjs.map +1 -1
- package/dist/core-api/service/single-type.d.ts +3 -2
- package/dist/core-api/service/single-type.d.ts.map +1 -1
- package/dist/core-api/service/single-type.js +15 -3
- package/dist/core-api/service/single-type.js.map +1 -1
- package/dist/core-api/service/single-type.mjs +15 -3
- package/dist/core-api/service/single-type.mjs.map +1 -1
- package/dist/services/document-service/common.d.ts +2 -2
- package/dist/services/document-service/common.d.ts.map +1 -1
- package/dist/services/document-service/common.js.map +1 -1
- package/dist/services/document-service/common.mjs.map +1 -1
- package/dist/services/document-service/document-engine.d.ts.map +1 -1
- package/dist/services/document-service/document-engine.js +12 -20
- package/dist/services/document-service/document-engine.js.map +1 -1
- package/dist/services/document-service/document-engine.mjs +13 -21
- package/dist/services/document-service/document-engine.mjs.map +1 -1
- package/dist/services/document-service/index.d.ts.map +1 -1
- package/dist/services/document-service/index.js +4 -4
- package/dist/services/document-service/index.js.map +1 -1
- package/dist/services/document-service/index.mjs +2 -2
- package/dist/services/document-service/index.mjs.map +1 -1
- package/dist/services/document-service/internationalization.d.ts +2 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +14 -0
- package/dist/services/document-service/internationalization.js.map +1 -1
- package/dist/services/document-service/internationalization.mjs +15 -1
- package/dist/services/document-service/internationalization.mjs.map +1 -1
- package/dist/services/document-service/repositories/content-type.d.ts +3 -0
- package/dist/services/document-service/repositories/content-type.d.ts.map +1 -0
- package/dist/services/document-service/{collection-type.js → repositories/content-type.js} +27 -33
- package/dist/services/document-service/repositories/content-type.js.map +1 -0
- package/dist/services/document-service/{collection-type.mjs → repositories/content-type.mjs} +27 -33
- package/dist/services/document-service/repositories/content-type.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.d.ts.map +1 -1
- package/dist/services/document-service/transform/fields.js +11 -10
- package/dist/services/document-service/transform/fields.js.map +1 -1
- package/dist/services/document-service/transform/fields.mjs +11 -10
- package/dist/services/document-service/transform/fields.mjs.map +1 -1
- package/dist/services/document-service/transform/id-transform.d.ts +2 -9
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-transform.js +2 -32
- package/dist/services/document-service/transform/id-transform.js.map +1 -1
- package/dist/services/document-service/transform/id-transform.mjs +2 -32
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
- package/dist/services/document-service/transform/populate.d.ts.map +1 -1
- package/dist/services/document-service/transform/populate.js +0 -10
- package/dist/services/document-service/transform/populate.js.map +1 -1
- package/dist/services/document-service/transform/populate.mjs +0 -10
- package/dist/services/document-service/transform/populate.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.js +7 -4
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +7 -4
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.js +11 -9
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +11 -9
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/data.d.ts +2 -4
- package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/data.js +1 -1
- package/dist/services/document-service/transform/relations/utils/data.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/data.mjs +1 -1
- package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/types.d.ts +5 -1
- package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.d.ts +174 -3
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +80 -41
- package/dist/utils/transform-content-types-to-models.js.map +1 -1
- package/dist/utils/transform-content-types-to-models.mjs +79 -41
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
- package/package.json +14 -14
- package/dist/services/document-service/collection-type.d.ts +0 -4
- package/dist/services/document-service/collection-type.d.ts.map +0 -1
- package/dist/services/document-service/collection-type.js.map +0 -1
- package/dist/services/document-service/collection-type.mjs.map +0 -1
- package/dist/services/document-service/repository-factory.d.ts +0 -3
- package/dist/services/document-service/repository-factory.d.ts.map +0 -1
- package/dist/services/document-service/repository-factory.js +0 -12
- package/dist/services/document-service/repository-factory.js.map +0 -1
- package/dist/services/document-service/repository-factory.mjs +0 -12
- package/dist/services/document-service/repository-factory.mjs.map +0 -1
- package/dist/services/document-service/single-type.d.ts +0 -4
- package/dist/services/document-service/single-type.d.ts.map +0 -1
- package/dist/services/document-service/single-type.js +0 -92
- package/dist/services/document-service/single-type.js.map +0 -1
- package/dist/services/document-service/single-type.mjs +0 -92
- package/dist/services/document-service/single-type.mjs.map +0 -1
- package/dist/services/document-service/transform/filters.js +0 -49
- package/dist/services/document-service/transform/filters.js.map +0 -1
- package/dist/services/document-service/transform/filters.mjs +0 -49
- package/dist/services/document-service/transform/filters.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/transform/output-ids.js +0 -26
- package/dist/services/document-service/transform/relations/transform/output-ids.js.map +0 -1
- package/dist/services/document-service/transform/relations/transform/output-ids.mjs +0 -26
- package/dist/services/document-service/transform/relations/transform/output-ids.mjs.map +0 -1
- package/dist/services/document-service/transform/sort.js +0 -44
- package/dist/services/document-service/transform/sort.js.map +0 -1
- package/dist/services/document-service/transform/sort.mjs +0 -44
- package/dist/services/document-service/transform/sort.mjs.map +0 -1
- package/dist/services/document-service/transform/utils.js +0 -23
- package/dist/services/document-service/transform/utils.js.map +0 -1
- package/dist/services/document-service/transform/utils.mjs +0 -23
- package/dist/services/document-service/transform/utils.mjs.map +0 -1
package/dist/services/document-service/{collection-type.mjs → repositories/content-type.mjs}
RENAMED
@@ -1,11 +1,11 @@
|
|
1
1
|
import { omit } from "lodash/fp";
|
2
2
|
import { pipeAsync } from "@strapi/utils";
|
3
|
-
import { wrapInTransaction } from "
|
4
|
-
import createDocumentEngine from "
|
5
|
-
import { defaultToDraft, statusToLookup, setStatusToDraft, statusToData, filterDataPublishedAt } from "
|
6
|
-
import { defaultLocale as defaultLocaleCurry, localeToLookup as localeToLookupCurry, localeToData as localeToDataCurry } from "
|
7
|
-
const
|
8
|
-
const
|
3
|
+
import { wrapInTransaction } from "../common.mjs";
|
4
|
+
import createDocumentEngine from "../document-engine.mjs";
|
5
|
+
import { defaultToDraft, statusToLookup, setStatusToDraft, statusToData, filterDataPublishedAt } from "../draft-and-publish.mjs";
|
6
|
+
import { defaultLocale as defaultLocaleCurry, localeToLookup as localeToLookupCurry, multiLocaleToLookup as multiLocaleToLookupCurry, localeToData as localeToDataCurry } from "../internationalization.mjs";
|
7
|
+
const createContentTypeRepository = (uid) => {
|
8
|
+
const contentType = strapi.contentType(uid);
|
9
9
|
const documents = createDocumentEngine({ strapi, db: strapi?.db });
|
10
10
|
async function findMany(params = {}) {
|
11
11
|
const queryParams = await pipeAsync(
|
@@ -35,7 +35,11 @@ const createCollectionTypeRepository = (contentType) => {
|
|
35
35
|
return documents.findOne(uid, id, queryParams);
|
36
36
|
}
|
37
37
|
async function deleteFn(id, params = {}) {
|
38
|
-
const queryParams = await pipeAsync(
|
38
|
+
const queryParams = await pipeAsync(
|
39
|
+
omit("status"),
|
40
|
+
defaultLocaleCurry(contentType),
|
41
|
+
multiLocaleToLookupCurry(contentType)
|
42
|
+
)(params);
|
39
43
|
return documents.delete(uid, id, queryParams);
|
40
44
|
}
|
41
45
|
async function create(params = {}) {
|
@@ -48,14 +52,7 @@ const createCollectionTypeRepository = (contentType) => {
|
|
48
52
|
)(params);
|
49
53
|
const doc = await documents.create(uid, queryParams);
|
50
54
|
if (params.status === "published") {
|
51
|
-
return
|
52
|
-
...queryParams,
|
53
|
-
data: {
|
54
|
-
...queryParams.data,
|
55
|
-
documentId: doc.id,
|
56
|
-
publishedAt: params?.data?.publishedAt ?? /* @__PURE__ */ new Date()
|
57
|
-
}
|
58
|
-
});
|
55
|
+
return publish(doc.documentId, params).then((doc2) => doc2.versions[0]);
|
59
56
|
}
|
60
57
|
return doc;
|
61
58
|
}
|
@@ -88,19 +85,7 @@ const createCollectionTypeRepository = (contentType) => {
|
|
88
85
|
}
|
89
86
|
}
|
90
87
|
if (updatedDraft && params.status === "published") {
|
91
|
-
|
92
|
-
...queryParams,
|
93
|
-
status: "published",
|
94
|
-
lookup: { ...params?.lookup, publishedAt: { $notNull: true } }
|
95
|
-
});
|
96
|
-
return documents.create(uid, {
|
97
|
-
...queryParams,
|
98
|
-
data: {
|
99
|
-
...queryParams.data,
|
100
|
-
documentId: updatedDraft.id,
|
101
|
-
publishedAt: params?.data?.publishedAt ?? /* @__PURE__ */ new Date()
|
102
|
-
}
|
103
|
-
});
|
88
|
+
return publish(id, params).then((doc) => doc.versions[0]);
|
104
89
|
}
|
105
90
|
return updatedDraft;
|
106
91
|
}
|
@@ -114,15 +99,24 @@ const createCollectionTypeRepository = (contentType) => {
|
|
114
99
|
return documents.count(uid, queryParams);
|
115
100
|
}
|
116
101
|
async function publish(id, params = {}) {
|
117
|
-
const queryParams =
|
102
|
+
const queryParams = await pipeAsync(
|
103
|
+
defaultLocaleCurry(contentType),
|
104
|
+
multiLocaleToLookupCurry(contentType)
|
105
|
+
)(params);
|
118
106
|
return documents.publish(uid, id, queryParams);
|
119
107
|
}
|
120
108
|
async function unpublish(id, params = {}) {
|
121
|
-
const queryParams =
|
109
|
+
const queryParams = await pipeAsync(
|
110
|
+
defaultLocaleCurry(contentType),
|
111
|
+
multiLocaleToLookupCurry(contentType)
|
112
|
+
)(params);
|
122
113
|
return documents.unpublish(uid, id, queryParams);
|
123
114
|
}
|
124
115
|
async function discardDraft(id, params = {}) {
|
125
|
-
const queryParams =
|
116
|
+
const queryParams = await pipeAsync(
|
117
|
+
defaultLocaleCurry(contentType),
|
118
|
+
multiLocaleToLookupCurry(contentType)
|
119
|
+
)(params);
|
126
120
|
return documents.discardDraft(uid, id, queryParams);
|
127
121
|
}
|
128
122
|
return {
|
@@ -140,6 +134,6 @@ const createCollectionTypeRepository = (contentType) => {
|
|
140
134
|
};
|
141
135
|
};
|
142
136
|
export {
|
143
|
-
|
137
|
+
createContentTypeRepository
|
144
138
|
};
|
145
|
-
//# sourceMappingURL=
|
139
|
+
//# sourceMappingURL=content-type.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"content-type.mjs","sources":["../../../../src/services/document-service/repositories/content-type.ts"],"sourcesContent":["import { omit } from 'lodash/fp';\n\nimport { pipeAsync } from '@strapi/utils';\n\nimport { wrapInTransaction, type RepositoryFactoryMethod } from '../common';\nimport createDocumentEngine from '../document-engine';\nimport * as DP from '../draft-and-publish';\nimport * as i18n from '../internationalization';\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (uid) => {\n const contentType = strapi.contentType(uid);\n\n // TODO: move the code back into here instead of using the document-engine\n const documents = createDocumentEngine({ strapi, db: strapi?.db });\n\n async function findMany(params = {} as any) {\n // TODO: replace with chaining\n const queryParams = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType)\n )(params);\n\n return documents.findMany(uid, queryParams);\n }\n\n async function findFirst(params = {} as any) {\n const queryParams = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType)\n )(params);\n\n return documents.findFirst(uid, queryParams);\n }\n\n async function findOne(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType)\n )(params);\n\n return documents.findOne(uid, id, queryParams);\n }\n\n async function deleteFn(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n return documents.delete(uid, id, queryParams);\n }\n\n async function create(params = {} as any) {\n const queryParams = await pipeAsync(\n DP.setStatusToDraft,\n DP.statusToData,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await documents.create(uid, queryParams);\n\n if (params.status === 'published') {\n return publish(doc.documentId, params).then((doc) => doc.versions[0]);\n }\n\n return doc;\n }\n\n async function clone(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n DP.filterDataPublishedAt,\n i18n.localeToLookup(contentType)\n )(params);\n\n return documents.clone(uid, id, queryParams);\n }\n\n async function update(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n DP.setStatusToDraft,\n DP.statusToLookup,\n DP.statusToData,\n DP.filterDataPublishedAt,\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n let updatedDraft: any = await documents.update(uid, id, queryParams);\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId: id } });\n\n if (documentExists) {\n updatedDraft = await create({\n ...queryParams,\n data: { ...queryParams.data, documentId: id },\n });\n }\n }\n\n if (updatedDraft && params.status === 'published') {\n return publish(id, params).then((doc) => doc.versions[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const queryParams = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType)\n )(params);\n\n return documents.count(uid, queryParams);\n }\n\n async function publish(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n return documents.publish(uid, id, queryParams);\n }\n\n async function unpublish(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n return documents.unpublish(uid, id, queryParams);\n }\n\n async function discardDraft(id: string, params = {} as any) {\n const queryParams = await pipeAsync(\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n return documents.discardDraft(uid, id, queryParams);\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteFn),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: wrapInTransaction(publish),\n unpublish: wrapInTransaction(unpublish),\n discardDraft: wrapInTransaction(discardDraft),\n };\n};\n"],"names":["DP.defaultToDraft","DP.statusToLookup","i18n.defaultLocale","i18n.localeToLookup","i18n.multiLocaleToLookup","DP.setStatusToDraft","DP.statusToData","DP.filterDataPublishedAt","i18n.localeToData","doc"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE3E,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE3E,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,MAgChD,CAAC"}
|
@@ -2,22 +2,23 @@
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
3
|
const transformFields = (fields) => {
|
4
4
|
if (typeof fields === "string") {
|
5
|
-
if (fields === "*")
|
5
|
+
if (fields === "*") {
|
6
6
|
return fields;
|
7
|
-
|
8
|
-
|
9
|
-
if (fields === "id")
|
7
|
+
}
|
8
|
+
if (fields === "") {
|
10
9
|
return "documentId";
|
11
|
-
|
10
|
+
}
|
11
|
+
if (!fields.split(",").includes("documentId")) {
|
12
|
+
return `${fields},documentId`;
|
13
|
+
}
|
12
14
|
}
|
13
|
-
if (!fields || fields
|
15
|
+
if (!fields || !Array.isArray(fields)) {
|
14
16
|
return fields;
|
15
17
|
}
|
16
|
-
|
17
|
-
|
18
|
-
mappedFields.push("documentId");
|
18
|
+
if (!fields.includes("documentId")) {
|
19
|
+
fields.push("documentId");
|
19
20
|
}
|
20
|
-
return
|
21
|
+
return fields;
|
21
22
|
};
|
22
23
|
exports.transformFields = transformFields;
|
23
24
|
//# sourceMappingURL=fields.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fields.js","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import { Documents, Common } from '@strapi/types';\n\ntype Fields = Documents.Params.Pick<Common.UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n
|
1
|
+
{"version":3,"file":"fields.js","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import { Documents, Common } from '@strapi/types';\n\ntype Fields = Documents.Params.Pick<Common.UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n if (typeof fields === 'string') {\n // '*' => '*'\n if (fields === '*') {\n return fields;\n }\n\n // '' => 'documentId'\n if (fields === '') {\n return 'documentId';\n }\n\n // 'name,description' => 'name,description,documentId'\n if (!fields.split(',').includes('documentId')) {\n return `${fields},documentId`;\n }\n }\n\n // It's not an array, ignore it\n if (!fields || !Array.isArray(fields)) {\n // If fields is empty, return it as is\n return fields;\n }\n\n // Ensure we are always selecting the documentId\n // ['name', 'description'] => ['name', 'description', 'documentId']\n if (!fields.includes('documentId')) {\n fields.push('documentId');\n }\n\n return fields;\n};\n"],"names":[],"mappings":";;AAIa,MAAA,kBAAkB,CAAC,WAA2B;AAErD,MAAA,OAAO,WAAW,UAAU;AAE9B,QAAI,WAAW,KAAK;AACX,aAAA;AAAA,IACT;AAGA,QAAI,WAAW,IAAI;AACV,aAAA;AAAA,IACT;AAGA,QAAI,CAAC,OAAO,MAAM,GAAG,EAAE,SAAS,YAAY,GAAG;AAC7C,aAAO,GAAG,MAAM;AAAA,IAClB;AAAA,EACF;AAGA,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE9B,WAAA;AAAA,EACT;AAIA,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAEO,SAAA;AACT;;"}
|
@@ -1,21 +1,22 @@
|
|
1
1
|
const transformFields = (fields) => {
|
2
2
|
if (typeof fields === "string") {
|
3
|
-
if (fields === "*")
|
3
|
+
if (fields === "*") {
|
4
4
|
return fields;
|
5
|
-
|
6
|
-
|
7
|
-
if (fields === "id")
|
5
|
+
}
|
6
|
+
if (fields === "") {
|
8
7
|
return "documentId";
|
9
|
-
|
8
|
+
}
|
9
|
+
if (!fields.split(",").includes("documentId")) {
|
10
|
+
return `${fields},documentId`;
|
11
|
+
}
|
10
12
|
}
|
11
|
-
if (!fields || fields
|
13
|
+
if (!fields || !Array.isArray(fields)) {
|
12
14
|
return fields;
|
13
15
|
}
|
14
|
-
|
15
|
-
|
16
|
-
mappedFields.push("documentId");
|
16
|
+
if (!fields.includes("documentId")) {
|
17
|
+
fields.push("documentId");
|
17
18
|
}
|
18
|
-
return
|
19
|
+
return fields;
|
19
20
|
};
|
20
21
|
export {
|
21
22
|
transformFields
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fields.mjs","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import { Documents, Common } from '@strapi/types';\n\ntype Fields = Documents.Params.Pick<Common.UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n
|
1
|
+
{"version":3,"file":"fields.mjs","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import { Documents, Common } from '@strapi/types';\n\ntype Fields = Documents.Params.Pick<Common.UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n if (typeof fields === 'string') {\n // '*' => '*'\n if (fields === '*') {\n return fields;\n }\n\n // '' => 'documentId'\n if (fields === '') {\n return 'documentId';\n }\n\n // 'name,description' => 'name,description,documentId'\n if (!fields.split(',').includes('documentId')) {\n return `${fields},documentId`;\n }\n }\n\n // It's not an array, ignore it\n if (!fields || !Array.isArray(fields)) {\n // If fields is empty, return it as is\n return fields;\n }\n\n // Ensure we are always selecting the documentId\n // ['name', 'description'] => ['name', 'description', 'documentId']\n if (!fields.includes('documentId')) {\n fields.push('documentId');\n }\n\n return fields;\n};\n"],"names":[],"mappings":"AAIa,MAAA,kBAAkB,CAAC,WAA2B;AAErD,MAAA,OAAO,WAAW,UAAU;AAE9B,QAAI,WAAW,KAAK;AACX,aAAA;AAAA,IACT;AAGA,QAAI,WAAW,IAAI;AACV,aAAA;AAAA,IACT;AAGA,QAAI,CAAC,OAAO,MAAM,GAAG,EAAE,SAAS,YAAY,GAAG;AAC7C,aAAO,GAAG,MAAM;AAAA,IAClB;AAAA,EACF;AAGA,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE9B,WAAA;AAAA,EACT;AAIA,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAEO,SAAA;AACT;"}
|
@@ -5,22 +5,15 @@ import { Common } from '@strapi/types';
|
|
5
5
|
declare function transformParamsDocumentId(uid: Common.UID.Schema, input: {
|
6
6
|
data?: any;
|
7
7
|
fields?: any;
|
8
|
-
filters?: any;
|
9
8
|
populate?: any;
|
10
|
-
|
9
|
+
[key: string]: any;
|
11
10
|
}, opts: {
|
12
11
|
locale?: string | null;
|
13
12
|
isDraft: boolean;
|
14
13
|
}): Promise<{
|
15
14
|
data: any;
|
16
15
|
fields: any;
|
17
|
-
filters: any;
|
18
16
|
populate: any;
|
19
|
-
sort: any;
|
20
17
|
}>;
|
21
|
-
|
22
|
-
* Transform response of a query to map entity ids to document ids.
|
23
|
-
*/
|
24
|
-
declare function transformOutputDocumentId(uid: Common.UID.Schema, output: Record<string, any> | Record<string, any>[]): Promise<any>;
|
25
|
-
export { transformParamsDocumentId, transformOutputDocumentId };
|
18
|
+
export { transformParamsDocumentId };
|
26
19
|
//# sourceMappingURL=id-transform.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"id-transform.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"id-transform.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC;;GAEG;AACH,iBAAe,yBAAyB,CACtC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EACtB,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACvE,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;;;;GAyBF;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
@@ -1,14 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const
|
4
|
-
const _ = require("lodash/fp");
|
5
|
-
const outputIds = require("./relations/transform/output-ids.js");
|
6
|
-
const utils = require("./utils.js");
|
7
|
-
const filters = require("./filters.js");
|
8
|
-
const sort = require("./sort.js");
|
3
|
+
const data = require("./data.js");
|
9
4
|
const fields = require("./fields.js");
|
10
5
|
const populate = require("./populate.js");
|
11
|
-
const data = require("./data.js");
|
12
6
|
async function transformParamsDocumentId(uid, input, opts) {
|
13
7
|
let data$1 = input.data;
|
14
8
|
if (input.data) {
|
@@ -18,40 +12,16 @@ async function transformParamsDocumentId(uid, input, opts) {
|
|
18
12
|
if (input.fields) {
|
19
13
|
fields$1 = fields.transformFields(input.fields);
|
20
14
|
}
|
21
|
-
let filters$1 = input.filters;
|
22
|
-
if (input.filters) {
|
23
|
-
filters$1 = await filters.transformFilters(input.filters, { ...opts, uid });
|
24
|
-
}
|
25
15
|
let populate$1 = input.populate;
|
26
16
|
if (input.populate) {
|
27
17
|
populate$1 = await populate.transformPopulate(input.populate, { ...opts, uid });
|
28
18
|
}
|
29
|
-
let sort$1 = input.sort;
|
30
|
-
if (input.sort) {
|
31
|
-
sort$1 = await sort.transformSort(input.sort, { ...opts, uid });
|
32
|
-
}
|
33
19
|
return {
|
34
20
|
...input,
|
35
21
|
data: data$1,
|
36
22
|
fields: fields$1,
|
37
|
-
|
38
|
-
populate: populate$1,
|
39
|
-
sort: sort$1
|
23
|
+
populate: populate$1
|
40
24
|
};
|
41
25
|
}
|
42
|
-
async function transformOutputDocumentId(uid, output) {
|
43
|
-
if (Array.isArray(output)) {
|
44
|
-
return strapiUtils.mapAsync(output, (o) => transformOutputDocumentId(uid, o));
|
45
|
-
}
|
46
|
-
if (!_.isObject(output) || !output?.documentId)
|
47
|
-
return output;
|
48
|
-
return strapiUtils.pipeAsync(
|
49
|
-
// Switch top level id -> documentId
|
50
|
-
utils.switchIdForDocumentId,
|
51
|
-
// Switch relations id -> documentId
|
52
|
-
(output2) => outputIds.transformOutputIds(uid, output2)
|
53
|
-
)(output);
|
54
|
-
}
|
55
|
-
exports.transformOutputDocumentId = transformOutputDocumentId;
|
56
26
|
exports.transformParamsDocumentId = transformParamsDocumentId;
|
57
27
|
//# sourceMappingURL=id-transform.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"id-transform.js","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport {
|
1
|
+
{"version":3,"file":"id-transform.js","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport { transformData } from './data';\nimport { transformFields } from './fields';\nimport { transformPopulate } from './populate';\n\n/**\n * Transform input of a query to map document ids to entity ids.\n */\nasync function transformParamsDocumentId(\n uid: Common.UID.Schema,\n input: { data?: any; fields?: any; populate?: any; [key: string]: any },\n opts: {\n locale?: string | null;\n isDraft: boolean;\n }\n) {\n // Transform relational documentIds to entity ids\n let data = input.data;\n if (input.data) {\n data = await transformData(input.data, { ...opts, uid });\n }\n\n // Make sure documentId is always present in the response\n let fields = input.fields;\n if (input.fields) {\n fields = transformFields(input.fields);\n }\n\n let populate = input.populate;\n if (input.populate) {\n populate = await transformPopulate(input.populate, { ...opts, uid });\n }\n\n return {\n ...input,\n data,\n fields,\n populate,\n };\n}\n\nexport { transformParamsDocumentId };\n"],"names":["data","transformData","fields","transformFields","populate","transformPopulate"],"mappings":";;;;;AAQA,eAAe,0BACb,KACA,OACA,MAIA;AAEA,MAAIA,SAAO,MAAM;AACjB,MAAI,MAAM,MAAM;AACPA,aAAA,MAAMC,mBAAc,MAAM,MAAM,EAAE,GAAG,MAAM,KAAK;AAAA,EACzD;AAGA,MAAIC,WAAS,MAAM;AACnB,MAAI,MAAM,QAAQ;AACPA,eAAAC,OAAA,gBAAgB,MAAM,MAAM;AAAA,EACvC;AAEA,MAAIC,aAAW,MAAM;AACrB,MAAI,MAAM,UAAU;AACPA,iBAAA,MAAMC,2BAAkB,MAAM,UAAU,EAAE,GAAG,MAAM,KAAK;AAAA,EACrE;AAEO,SAAA;AAAA,IACL,GAAG;AAAA,IAAA,MACHL;AAAAA,IAAA,QACAE;AAAAA,IAAA,UACAE;AAAAA,EAAA;AAEJ;;"}
|
@@ -1,12 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
import { isObject } from "lodash/fp";
|
3
|
-
import { transformOutputIds } from "./relations/transform/output-ids.mjs";
|
4
|
-
import { switchIdForDocumentId } from "./utils.mjs";
|
5
|
-
import { transformFilters } from "./filters.mjs";
|
6
|
-
import { transformSort } from "./sort.mjs";
|
1
|
+
import { transformData } from "./data.mjs";
|
7
2
|
import { transformFields } from "./fields.mjs";
|
8
3
|
import { transformPopulate } from "./populate.mjs";
|
9
|
-
import { transformData } from "./data.mjs";
|
10
4
|
async function transformParamsDocumentId(uid, input, opts) {
|
11
5
|
let data = input.data;
|
12
6
|
if (input.data) {
|
@@ -16,42 +10,18 @@ async function transformParamsDocumentId(uid, input, opts) {
|
|
16
10
|
if (input.fields) {
|
17
11
|
fields = transformFields(input.fields);
|
18
12
|
}
|
19
|
-
let filters = input.filters;
|
20
|
-
if (input.filters) {
|
21
|
-
filters = await transformFilters(input.filters, { ...opts, uid });
|
22
|
-
}
|
23
13
|
let populate = input.populate;
|
24
14
|
if (input.populate) {
|
25
15
|
populate = await transformPopulate(input.populate, { ...opts, uid });
|
26
16
|
}
|
27
|
-
let sort = input.sort;
|
28
|
-
if (input.sort) {
|
29
|
-
sort = await transformSort(input.sort, { ...opts, uid });
|
30
|
-
}
|
31
17
|
return {
|
32
18
|
...input,
|
33
19
|
data,
|
34
20
|
fields,
|
35
|
-
|
36
|
-
populate,
|
37
|
-
sort
|
21
|
+
populate
|
38
22
|
};
|
39
23
|
}
|
40
|
-
async function transformOutputDocumentId(uid, output) {
|
41
|
-
if (Array.isArray(output)) {
|
42
|
-
return mapAsync(output, (o) => transformOutputDocumentId(uid, o));
|
43
|
-
}
|
44
|
-
if (!isObject(output) || !output?.documentId)
|
45
|
-
return output;
|
46
|
-
return pipeAsync(
|
47
|
-
// Switch top level id -> documentId
|
48
|
-
switchIdForDocumentId,
|
49
|
-
// Switch relations id -> documentId
|
50
|
-
(output2) => transformOutputIds(uid, output2)
|
51
|
-
)(output);
|
52
|
-
}
|
53
24
|
export {
|
54
|
-
transformOutputDocumentId,
|
55
25
|
transformParamsDocumentId
|
56
26
|
};
|
57
27
|
//# sourceMappingURL=id-transform.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"id-transform.mjs","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport {
|
1
|
+
{"version":3,"file":"id-transform.mjs","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport { transformData } from './data';\nimport { transformFields } from './fields';\nimport { transformPopulate } from './populate';\n\n/**\n * Transform input of a query to map document ids to entity ids.\n */\nasync function transformParamsDocumentId(\n uid: Common.UID.Schema,\n input: { data?: any; fields?: any; populate?: any; [key: string]: any },\n opts: {\n locale?: string | null;\n isDraft: boolean;\n }\n) {\n // Transform relational documentIds to entity ids\n let data = input.data;\n if (input.data) {\n data = await transformData(input.data, { ...opts, uid });\n }\n\n // Make sure documentId is always present in the response\n let fields = input.fields;\n if (input.fields) {\n fields = transformFields(input.fields);\n }\n\n let populate = input.populate;\n if (input.populate) {\n populate = await transformPopulate(input.populate, { ...opts, uid });\n }\n\n return {\n ...input,\n data,\n fields,\n populate,\n };\n}\n\nexport { transformParamsDocumentId };\n"],"names":[],"mappings":";;;AAQA,eAAe,0BACb,KACA,OACA,MAIA;AAEA,MAAI,OAAO,MAAM;AACjB,MAAI,MAAM,MAAM;AACP,WAAA,MAAM,cAAc,MAAM,MAAM,EAAE,GAAG,MAAM,KAAK;AAAA,EACzD;AAGA,MAAI,SAAS,MAAM;AACnB,MAAI,MAAM,QAAQ;AACP,aAAA,gBAAgB,MAAM,MAAM;AAAA,EACvC;AAEA,MAAI,WAAW,MAAM;AACrB,MAAI,MAAM,UAAU;AACP,eAAA,MAAM,kBAAkB,MAAM,UAAU,EAAE,GAAG,MAAM,KAAK;AAAA,EACrE;AAEO,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/populate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/populate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,iBAAiB,SAAgB,IAAI,QAAQ,OAAO,qBAqBhE,CAAC"}
|
@@ -1,23 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
3
|
const strapiUtils = require("@strapi/utils");
|
4
|
-
const utils = require("./utils.js");
|
5
|
-
const filters = require("./filters.js");
|
6
4
|
const fields = require("./fields.js");
|
7
5
|
const transformPopulate = async (data, opts) => {
|
8
|
-
utils.switchDocumentIdForId(data);
|
9
|
-
const allKeysAreDocumentId = Object.keys(data).every((key) => key === "documentId");
|
10
|
-
if (allKeysAreDocumentId) {
|
11
|
-
return data;
|
12
|
-
}
|
13
6
|
return strapiUtils.traverse.traverseQueryPopulate(
|
14
7
|
async ({ attribute, key, value }, { set }) => {
|
15
8
|
if (!value || typeof value !== "object" || attribute?.type !== "relation") {
|
16
9
|
return;
|
17
10
|
}
|
18
|
-
if ("filters" in value) {
|
19
|
-
value.filters = await filters.transformFilters(value.filters, opts);
|
20
|
-
}
|
21
11
|
if ("fields" in value && Array.isArray(value.fields)) {
|
22
12
|
value.fields = fields.transformFields(value.fields);
|
23
13
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"populate.js","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { type Data, type Options } from './types';\nimport {
|
1
|
+
{"version":3,"file":"populate.js","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { type Data, type Options } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: Options) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n"],"names":["traverse","transformFields"],"mappings":";;;;AAIa,MAAA,oBAAoB,OAAO,MAAY,SAAkB;AACpE,SAAOA,YAAS,SAAA;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MACF;AAOA,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAASC,OAAAA,gBAAgB,MAAM,MAAM;AAAA,MAC7C;AAEA,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;;"}
|
@@ -1,21 +1,11 @@
|
|
1
1
|
import { traverse } from "@strapi/utils";
|
2
|
-
import { switchDocumentIdForId } from "./utils.mjs";
|
3
|
-
import { transformFilters } from "./filters.mjs";
|
4
2
|
import { transformFields } from "./fields.mjs";
|
5
3
|
const transformPopulate = async (data, opts) => {
|
6
|
-
switchDocumentIdForId(data);
|
7
|
-
const allKeysAreDocumentId = Object.keys(data).every((key) => key === "documentId");
|
8
|
-
if (allKeysAreDocumentId) {
|
9
|
-
return data;
|
10
|
-
}
|
11
4
|
return traverse.traverseQueryPopulate(
|
12
5
|
async ({ attribute, key, value }, { set }) => {
|
13
6
|
if (!value || typeof value !== "object" || attribute?.type !== "relation") {
|
14
7
|
return;
|
15
8
|
}
|
16
|
-
if ("filters" in value) {
|
17
|
-
value.filters = await transformFilters(value.filters, opts);
|
18
|
-
}
|
19
9
|
if ("fields" in value && Array.isArray(value.fields)) {
|
20
10
|
value.fields = transformFields(value.fields);
|
21
11
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { type Data, type Options } from './types';\nimport {
|
1
|
+
{"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { type Data, type Options } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: Options) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n"],"names":[],"mappings":";;AAIa,MAAA,oBAAoB,OAAO,MAAY,SAAkB;AACpE,SAAO,SAAS;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MACF;AAOA,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAAS,gBAAgB,MAAM,MAAM;AAAA,MAC7C;AAEA,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-ids.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,MAAM,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"data-ids.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,MAAM,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAyErC;;;GAGG;AACH,QAAA,MAAM,cAAc,UACX,KAAK,QACN,OAAO,MAAM,EAAE,GAAG,CAAC,QACnB;IAAE,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,qDA6B5E,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
@@ -9,13 +9,16 @@ const handlePrimitive = (relation) => {
|
|
9
9
|
return [];
|
10
10
|
}
|
11
11
|
if (data.isShortHand(relation)) {
|
12
|
-
return [{
|
12
|
+
return [{ documentId: relation }];
|
13
13
|
}
|
14
14
|
if (data.isLongHand(relation)) {
|
15
|
-
|
15
|
+
if ("documentId" in relation) {
|
16
|
+
return [{ documentId: relation.documentId, locale: relation.locale }];
|
17
|
+
}
|
18
|
+
return [];
|
16
19
|
}
|
17
20
|
if (Array.isArray(relation)) {
|
18
|
-
return relation.map((item) => data.isShortHand(item) ? {
|
21
|
+
return relation.map((item) => data.isShortHand(item) ? { documentId: item } : item);
|
19
22
|
}
|
20
23
|
return [];
|
21
24
|
};
|
@@ -57,7 +60,7 @@ const extractDataIds = (idMap, data2, opts) => {
|
|
57
60
|
extractedIds.forEach((relation) => {
|
58
61
|
idMap.add({
|
59
62
|
uid: target,
|
60
|
-
documentId: relation.
|
63
|
+
documentId: relation.documentId,
|
61
64
|
locale: i18n.getRelationTargetLocale(relation, {
|
62
65
|
targetUid: target,
|
63
66
|
sourceUid: opts.uid,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-ids.js","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { EntityService, Attribute, Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { IdMap } from '../../id-map';\nimport { ShortHand, LongHand,
|
1
|
+
{"version":3,"file":"data-ids.js","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { EntityService, Attribute, Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { IdMap } from '../../id-map';\nimport { ShortHand, LongHand, LongHandDocument } from '../utils/types';\nimport { isShortHand, isLongHand } from '../utils/data';\nimport { getRelationTargetLocale } from '../utils/i18n';\n\n/**\n * Get relation ids from primitive representation (id, id[], {id}, {id}[])\n */\nconst handlePrimitive = (\n relation: ShortHand | LongHand | ShortHand[] | LongHand[] | null | undefined | any\n): LongHandDocument[] => {\n if (!relation) {\n return []; // null\n }\n\n if (isShortHand(relation)) {\n return [{ documentId: relation }]; // id\n }\n\n if (isLongHand(relation)) {\n // { documentId, locale? }\n if ('documentId' in relation) {\n return [{ documentId: relation.documentId, locale: relation.locale }];\n }\n // { id }\n return [];\n }\n\n if (Array.isArray(relation)) {\n return relation.map((item) => (isShortHand(item) ? { documentId: item } : item)); // id[]\n }\n\n return [];\n};\n\n/**\n * Get all relations document ids from a relation input value\n */\nconst extractRelationIds = <T extends Attribute.RelationKind.Any>(\n relation: EntityService.Params.Attribute.RelationInputValue<T>\n): LongHandDocument[] => {\n const ids = handlePrimitive(relation);\n if (!isObject(relation)) return ids;\n\n if ('set' in relation) ids.push(...handlePrimitive(relation.set)); // set: id[]\n if ('disconnect' in relation) ids.push(...handlePrimitive(relation.disconnect)); // disconnect: id[]\n if ('connect' in relation) {\n // connect: id[] | { id } | ...\n if (!relation.connect) return [];\n ids.push(...handlePrimitive(relation.connect));\n\n // handle positional arguments\n const connect = Array.isArray(relation.connect) ? relation.connect : [relation.connect];\n connect.forEach((relation) => {\n if (isShortHand(relation) || !('position' in relation)) return;\n\n const { position } = relation;\n\n // { connect: { id: id, position: { before: id } } }\n if (position?.before) {\n ids.push(...handlePrimitive({ ...position, id: position.before }));\n }\n\n // { connect: { id: id, position: { after: id } } }\n if (position?.after) {\n ids.push(...handlePrimitive({ ...position, id: position.after }));\n }\n });\n }\n\n return ids;\n};\n\n/**\n * Iterate over all attributes of a Data object and extract all relational document ids.\n * Those will later be transformed to entity ids.\n */\nconst extractDataIds = (\n idMap: IdMap,\n data: Record<string, any>,\n opts: { uid: Common.UID.Schema; locale?: string | null; isDraft?: boolean }\n) => {\n return traverseEntity(\n ({ value, attribute }) => {\n // Find relational attributes, and return the document ids\n if (attribute.type === 'relation') {\n const extractedIds = extractRelationIds(value as any);\n\n // TODO: Handle morph relations (they have multiple targets)\n const target = attribute.target;\n if (!target) return;\n\n extractedIds.forEach((relation) => {\n idMap.add({\n uid: target,\n documentId: relation.documentId,\n locale: getRelationTargetLocale(relation, {\n targetUid: target as Common.UID.Schema,\n sourceUid: opts.uid,\n sourceLocale: opts.locale,\n }),\n isDraft: opts.isDraft,\n });\n });\n }\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n\nexport { extractDataIds };\n"],"names":["isShortHand","isLongHand","isObject","relation","data","traverseEntity","getRelationTargetLocale"],"mappings":";;;;;;AAWA,MAAM,kBAAkB,CACtB,aACuB;AACvB,MAAI,CAAC,UAAU;AACb,WAAO;EACT;AAEI,MAAAA,KAAAA,YAAY,QAAQ,GAAG;AACzB,WAAO,CAAC,EAAE,YAAY,SAAA,CAAU;AAAA,EAClC;AAEI,MAAAC,KAAAA,WAAW,QAAQ,GAAG;AAExB,QAAI,gBAAgB,UAAU;AACrB,aAAA,CAAC,EAAE,YAAY,SAAS,YAAY,QAAQ,SAAS,QAAQ;AAAA,IACtE;AAEA,WAAO;EACT;AAEI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAA,SAAS,IAAI,CAAC,SAAUD,KAAA,YAAY,IAAI,IAAI,EAAE,YAAY,KAAK,IAAI,IAAK;AAAA,EACjF;AAEA,SAAO;AACT;AAKA,MAAM,qBAAqB,CACzB,aACuB;AACjB,QAAA,MAAM,gBAAgB,QAAQ;AAChC,MAAA,CAACE,WAAS,QAAQ;AAAU,WAAA;AAEhC,MAAI,SAAS;AAAU,QAAI,KAAK,GAAG,gBAAgB,SAAS,GAAG,CAAC;AAChE,MAAI,gBAAgB;AAAU,QAAI,KAAK,GAAG,gBAAgB,SAAS,UAAU,CAAC;AAC9E,MAAI,aAAa,UAAU;AAEzB,QAAI,CAAC,SAAS;AAAS,aAAO;AAC9B,QAAI,KAAK,GAAG,gBAAgB,SAAS,OAAO,CAAC;AAGvC,UAAA,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI,SAAS,UAAU,CAAC,SAAS,OAAO;AAC9E,YAAA,QAAQ,CAACC,cAAa;AAC5B,UAAIH,KAAYG,YAAAA,SAAQ,KAAK,EAAE,cAAcA;AAAW;AAElD,YAAA,EAAE,SAAaA,IAAAA;AAGrB,UAAI,UAAU,QAAQ;AAChB,YAAA,KAAK,GAAG,gBAAgB,EAAE,GAAG,UAAU,IAAI,SAAS,OAAQ,CAAA,CAAC;AAAA,MACnE;AAGA,UAAI,UAAU,OAAO;AACf,YAAA,KAAK,GAAG,gBAAgB,EAAE,GAAG,UAAU,IAAI,SAAS,MAAO,CAAA,CAAC;AAAA,MAClE;AAAA,IAAA,CACD;AAAA,EACH;AAEO,SAAA;AACT;AAMA,MAAM,iBAAiB,CACrB,OACAC,OACA,SACG;AACI,SAAAC,YAAA;AAAA,IACL,CAAC,EAAE,OAAO,gBAAgB;AAEpB,UAAA,UAAU,SAAS,YAAY;AAC3B,cAAA,eAAe,mBAAmB,KAAY;AAGpD,cAAM,SAAS,UAAU;AACzB,YAAI,CAAC;AAAQ;AAEA,qBAAA,QAAQ,CAAC,aAAa;AACjC,gBAAM,IAAI;AAAA,YACR,KAAK;AAAA,YACL,YAAY,SAAS;AAAA,YACrB,QAAQC,6BAAwB,UAAU;AAAA,cACxC,WAAW;AAAA,cACX,WAAW,KAAK;AAAA,cAChB,cAAc,KAAK;AAAA,YAAA,CACpB;AAAA,YACD,SAAS,KAAK;AAAA,UAAA,CACf;AAAA,QAAA,CACF;AAAA,MACH;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpCF;AAAA,EAAA;AAEJ;;"}
|
@@ -7,13 +7,16 @@ const handlePrimitive = (relation) => {
|
|
7
7
|
return [];
|
8
8
|
}
|
9
9
|
if (isShortHand(relation)) {
|
10
|
-
return [{
|
10
|
+
return [{ documentId: relation }];
|
11
11
|
}
|
12
12
|
if (isLongHand(relation)) {
|
13
|
-
|
13
|
+
if ("documentId" in relation) {
|
14
|
+
return [{ documentId: relation.documentId, locale: relation.locale }];
|
15
|
+
}
|
16
|
+
return [];
|
14
17
|
}
|
15
18
|
if (Array.isArray(relation)) {
|
16
|
-
return relation.map((item) => isShortHand(item) ? {
|
19
|
+
return relation.map((item) => isShortHand(item) ? { documentId: item } : item);
|
17
20
|
}
|
18
21
|
return [];
|
19
22
|
};
|
@@ -55,7 +58,7 @@ const extractDataIds = (idMap, data, opts) => {
|
|
55
58
|
extractedIds.forEach((relation) => {
|
56
59
|
idMap.add({
|
57
60
|
uid: target,
|
58
|
-
documentId: relation.
|
61
|
+
documentId: relation.documentId,
|
59
62
|
locale: getRelationTargetLocale(relation, {
|
60
63
|
targetUid: target,
|
61
64
|
sourceUid: opts.uid,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-ids.mjs","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { EntityService, Attribute, Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { IdMap } from '../../id-map';\nimport { ShortHand, LongHand,
|
1
|
+
{"version":3,"file":"data-ids.mjs","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { EntityService, Attribute, Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { IdMap } from '../../id-map';\nimport { ShortHand, LongHand, LongHandDocument } from '../utils/types';\nimport { isShortHand, isLongHand } from '../utils/data';\nimport { getRelationTargetLocale } from '../utils/i18n';\n\n/**\n * Get relation ids from primitive representation (id, id[], {id}, {id}[])\n */\nconst handlePrimitive = (\n relation: ShortHand | LongHand | ShortHand[] | LongHand[] | null | undefined | any\n): LongHandDocument[] => {\n if (!relation) {\n return []; // null\n }\n\n if (isShortHand(relation)) {\n return [{ documentId: relation }]; // id\n }\n\n if (isLongHand(relation)) {\n // { documentId, locale? }\n if ('documentId' in relation) {\n return [{ documentId: relation.documentId, locale: relation.locale }];\n }\n // { id }\n return [];\n }\n\n if (Array.isArray(relation)) {\n return relation.map((item) => (isShortHand(item) ? { documentId: item } : item)); // id[]\n }\n\n return [];\n};\n\n/**\n * Get all relations document ids from a relation input value\n */\nconst extractRelationIds = <T extends Attribute.RelationKind.Any>(\n relation: EntityService.Params.Attribute.RelationInputValue<T>\n): LongHandDocument[] => {\n const ids = handlePrimitive(relation);\n if (!isObject(relation)) return ids;\n\n if ('set' in relation) ids.push(...handlePrimitive(relation.set)); // set: id[]\n if ('disconnect' in relation) ids.push(...handlePrimitive(relation.disconnect)); // disconnect: id[]\n if ('connect' in relation) {\n // connect: id[] | { id } | ...\n if (!relation.connect) return [];\n ids.push(...handlePrimitive(relation.connect));\n\n // handle positional arguments\n const connect = Array.isArray(relation.connect) ? relation.connect : [relation.connect];\n connect.forEach((relation) => {\n if (isShortHand(relation) || !('position' in relation)) return;\n\n const { position } = relation;\n\n // { connect: { id: id, position: { before: id } } }\n if (position?.before) {\n ids.push(...handlePrimitive({ ...position, id: position.before }));\n }\n\n // { connect: { id: id, position: { after: id } } }\n if (position?.after) {\n ids.push(...handlePrimitive({ ...position, id: position.after }));\n }\n });\n }\n\n return ids;\n};\n\n/**\n * Iterate over all attributes of a Data object and extract all relational document ids.\n * Those will later be transformed to entity ids.\n */\nconst extractDataIds = (\n idMap: IdMap,\n data: Record<string, any>,\n opts: { uid: Common.UID.Schema; locale?: string | null; isDraft?: boolean }\n) => {\n return traverseEntity(\n ({ value, attribute }) => {\n // Find relational attributes, and return the document ids\n if (attribute.type === 'relation') {\n const extractedIds = extractRelationIds(value as any);\n\n // TODO: Handle morph relations (they have multiple targets)\n const target = attribute.target;\n if (!target) return;\n\n extractedIds.forEach((relation) => {\n idMap.add({\n uid: target,\n documentId: relation.documentId,\n locale: getRelationTargetLocale(relation, {\n targetUid: target as Common.UID.Schema,\n sourceUid: opts.uid,\n sourceLocale: opts.locale,\n }),\n isDraft: opts.isDraft,\n });\n });\n }\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n\nexport { extractDataIds };\n"],"names":["relation"],"mappings":";;;;AAWA,MAAM,kBAAkB,CACtB,aACuB;AACvB,MAAI,CAAC,UAAU;AACb,WAAO;EACT;AAEI,MAAA,YAAY,QAAQ,GAAG;AACzB,WAAO,CAAC,EAAE,YAAY,SAAA,CAAU;AAAA,EAClC;AAEI,MAAA,WAAW,QAAQ,GAAG;AAExB,QAAI,gBAAgB,UAAU;AACrB,aAAA,CAAC,EAAE,YAAY,SAAS,YAAY,QAAQ,SAAS,QAAQ;AAAA,IACtE;AAEA,WAAO;EACT;AAEI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAA,SAAS,IAAI,CAAC,SAAU,YAAY,IAAI,IAAI,EAAE,YAAY,KAAK,IAAI,IAAK;AAAA,EACjF;AAEA,SAAO;AACT;AAKA,MAAM,qBAAqB,CACzB,aACuB;AACjB,QAAA,MAAM,gBAAgB,QAAQ;AAChC,MAAA,CAAC,SAAS,QAAQ;AAAU,WAAA;AAEhC,MAAI,SAAS;AAAU,QAAI,KAAK,GAAG,gBAAgB,SAAS,GAAG,CAAC;AAChE,MAAI,gBAAgB;AAAU,QAAI,KAAK,GAAG,gBAAgB,SAAS,UAAU,CAAC;AAC9E,MAAI,aAAa,UAAU;AAEzB,QAAI,CAAC,SAAS;AAAS,aAAO;AAC9B,QAAI,KAAK,GAAG,gBAAgB,SAAS,OAAO,CAAC;AAGvC,UAAA,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI,SAAS,UAAU,CAAC,SAAS,OAAO;AAC9E,YAAA,QAAQ,CAACA,cAAa;AAC5B,UAAI,YAAYA,SAAQ,KAAK,EAAE,cAAcA;AAAW;AAElD,YAAA,EAAE,SAAaA,IAAAA;AAGrB,UAAI,UAAU,QAAQ;AAChB,YAAA,KAAK,GAAG,gBAAgB,EAAE,GAAG,UAAU,IAAI,SAAS,OAAQ,CAAA,CAAC;AAAA,MACnE;AAGA,UAAI,UAAU,OAAO;AACf,YAAA,KAAK,GAAG,gBAAgB,EAAE,GAAG,UAAU,IAAI,SAAS,MAAO,CAAA,CAAC;AAAA,MAClE;AAAA,IAAA,CACD;AAAA,EACH;AAEO,SAAA;AACT;AAMA,MAAM,iBAAiB,CACrB,OACA,MACA,SACG;AACI,SAAA;AAAA,IACL,CAAC,EAAE,OAAO,gBAAgB;AAEpB,UAAA,UAAU,SAAS,YAAY;AAC3B,cAAA,eAAe,mBAAmB,KAAY;AAGpD,cAAM,SAAS,UAAU;AACzB,YAAI,CAAC;AAAQ;AAEA,qBAAA,QAAQ,CAAC,aAAa;AACjC,gBAAM,IAAI;AAAA,YACR,KAAK;AAAA,YACL,YAAY,SAAS;AAAA,YACrB,QAAQ,wBAAwB,UAAU;AAAA,cACxC,WAAW;AAAA,cACX,WAAW,KAAK;AAAA,cAChB,cAAc,KAAK;AAAA,YAAA,CACpB;AAAA,YACD,SAAS,KAAK;AAAA,UAAA,CACf;AAAA,QAAA,CACF;AAAA,MACH;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;"}
|