@strapi/core 0.0.0-experimental.90ca9123352ed07e0a9cedaf4bcad1475e74137f → 0.0.0-experimental.e3e48deb89bd0a1b6cc69b698696566fa7854a95
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/Strapi.d.ts +5 -3
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +19 -7
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +19 -7
- package/dist/Strapi.mjs.map +1 -1
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +4 -4
- package/dist/configuration/index.js.map +1 -1
- package/dist/configuration/index.mjs +1 -1
- package/dist/configuration/index.mjs.map +1 -1
- package/dist/configuration/urls.d.ts +8 -0
- package/dist/configuration/urls.d.ts.map +1 -0
- package/dist/configuration/urls.js +68 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +66 -0
- package/dist/configuration/urls.mjs.map +1 -0
- 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/index.d.ts.map +1 -1
- package/dist/core-api/controller/index.js +6 -1
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +6 -1
- package/dist/core-api/controller/index.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.d.ts +8 -7
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +16 -7
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +16 -7
- 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 +14 -3
- package/dist/core-api/service/single-type.js.map +1 -1
- package/dist/core-api/service/single-type.mjs +14 -3
- package/dist/core-api/service/single-type.mjs.map +1 -1
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +3 -0
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +3 -0
- package/dist/domain/content-type/index.mjs.map +1 -1
- package/dist/domain/content-type/validator.d.ts.map +1 -1
- package/dist/domain/content-type/validator.js +1 -1
- package/dist/domain/content-type/validator.js.map +1 -1
- package/dist/domain/content-type/validator.mjs +2 -2
- package/dist/domain/content-type/validator.mjs.map +1 -1
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +2 -3
- package/dist/domain/module/index.js.map +1 -1
- package/dist/domain/module/index.mjs +2 -3
- package/dist/domain/module/index.mjs.map +1 -1
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs.map +1 -1
- package/dist/loaders/apis.js +1 -1
- package/dist/loaders/apis.js.map +1 -1
- package/dist/loaders/apis.mjs +2 -2
- package/dist/loaders/apis.mjs.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.js +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.mjs +2 -2
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/middlewares/security.js +2 -2
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +2 -2
- package/dist/middlewares/security.mjs.map +1 -1
- package/dist/migrations/draft-publish.d.ts +17 -0
- package/dist/migrations/draft-publish.d.ts.map +1 -0
- package/dist/migrations/draft-publish.js +59 -0
- package/dist/migrations/draft-publish.js.map +1 -0
- package/dist/migrations/draft-publish.mjs +59 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/registries/config.d.ts +2 -2
- package/dist/registries/config.d.ts.map +1 -1
- package/dist/registries/config.js +14 -6
- package/dist/registries/config.js.map +1 -1
- package/dist/registries/config.mjs +15 -5
- package/dist/registries/config.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/draft-and-publish.d.ts +9 -23
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
- package/dist/services/document-service/draft-and-publish.js +37 -9
- package/dist/services/document-service/draft-and-publish.js.map +1 -1
- package/dist/services/document-service/draft-and-publish.mjs +38 -10
- package/dist/services/document-service/draft-and-publish.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/repository.d.ts +3 -0
- package/dist/services/document-service/repository.d.ts.map +1 -0
- package/dist/services/document-service/repository.js +295 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +295 -0
- package/dist/services/document-service/repository.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-map.d.ts +1 -1
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.js +15 -9
- package/dist/services/document-service/transform/id-map.js.map +1 -1
- package/dist/services/document-service/transform/id-map.mjs +16 -10
- package/dist/services/document-service/transform/id-map.mjs.map +1 -1
- package/dist/services/document-service/transform/id-transform.d.ts +4 -25
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-transform.js +19 -43
- package/dist/services/document-service/transform/id-transform.js.map +1 -1
- package/dist/services/document-service/transform/id-transform.mjs +20 -44
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
- package/dist/services/document-service/transform/populate.d.ts +5 -2
- 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 +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 +28 -14
- 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 +28 -14
- 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 +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 +65 -39
- 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 +66 -40
- 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/dp.d.ts +10 -0
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +25 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +25 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- 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 +9 -2
- package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
- package/dist/services/document-service/transform/types.d.ts +1 -1
- package/dist/services/document-service/transform/types.d.ts.map +1 -1
- package/dist/services/document-service/utils/populate.d.ts +8 -1
- package/dist/services/document-service/utils/populate.d.ts.map +1 -1
- package/dist/services/document-service/utils/populate.js +5 -5
- package/dist/services/document-service/utils/populate.js.map +1 -1
- package/dist/services/document-service/utils/populate.mjs +5 -5
- package/dist/services/document-service/utils/populate.mjs.map +1 -1
- package/dist/services/entity-service/components.d.ts +1 -4
- package/dist/services/entity-service/components.d.ts.map +1 -1
- package/dist/services/entity-service/components.js +13 -99
- package/dist/services/entity-service/components.js.map +1 -1
- package/dist/services/entity-service/components.mjs +14 -100
- package/dist/services/entity-service/components.mjs.map +1 -1
- package/dist/services/entity-service/index.d.ts +1 -3
- package/dist/services/entity-service/index.d.ts.map +1 -1
- package/dist/services/entity-service/index.js +34 -199
- package/dist/services/entity-service/index.js.map +1 -1
- package/dist/services/entity-service/index.mjs +27 -192
- package/dist/services/entity-service/index.mjs.map +1 -1
- package/dist/services/entity-service/params.d.ts +4 -4
- package/dist/services/entity-service/params.d.ts.map +1 -1
- package/dist/services/entity-service/params.js +1 -1
- package/dist/services/entity-service/params.js.map +1 -1
- package/dist/services/entity-service/params.mjs +1 -1
- package/dist/services/entity-service/params.mjs.map +1 -1
- package/dist/services/entity-validator/index.js +1 -1
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +1 -1
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/utils/is-initialized.js +1 -1
- package/dist/utils/is-initialized.js.map +1 -1
- package/dist/utils/is-initialized.mjs +1 -1
- package/dist/utils/is-initialized.mjs.map +1 -1
- package/dist/utils/load-config-file.js +1 -1
- package/dist/utils/load-config-file.js.map +1 -1
- package/dist/utils/load-config-file.mjs +2 -2
- package/dist/utils/load-config-file.mjs.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 +0 -145
- package/dist/services/document-service/collection-type.js.map +0 -1
- package/dist/services/document-service/collection-type.mjs +0 -145
- package/dist/services/document-service/collection-type.mjs.map +0 -1
- package/dist/services/document-service/document-engine.d.ts +0 -8
- package/dist/services/document-service/document-engine.d.ts.map +0 -1
- package/dist/services/document-service/document-engine.js +0 -249
- package/dist/services/document-service/document-engine.js.map +0 -1
- package/dist/services/document-service/document-engine.mjs +0 -250
- package/dist/services/document-service/document-engine.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/utils/upload-files.d.ts +0 -8
- package/dist/services/utils/upload-files.d.ts.map +0 -1
- package/dist/services/utils/upload-files.js +0 -64
- package/dist/services/utils/upload-files.js.map +0 -1
- package/dist/services/utils/upload-files.mjs +0 -63
- package/dist/services/utils/upload-files.mjs.map +0 -1
@@ -1,49 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const strapiUtils = require("@strapi/utils");
|
4
|
-
const fields = require("./fields.js");
|
5
|
-
const utils = require("./utils.js");
|
6
|
-
const logicalOperatorIdReplacement = (filter) => {
|
7
|
-
return Object.keys(filter).forEach((key) => {
|
8
|
-
if (key.startsWith("$")) {
|
9
|
-
if (Array.isArray(filter[key])) {
|
10
|
-
filter[key].forEach((item) => {
|
11
|
-
if (typeof item === "object") {
|
12
|
-
logicalOperatorIdReplacement(item);
|
13
|
-
}
|
14
|
-
});
|
15
|
-
} else if (typeof filter[key] === "object") {
|
16
|
-
logicalOperatorIdReplacement(filter[key]);
|
17
|
-
}
|
18
|
-
} else if (key === "id") {
|
19
|
-
utils.switchDocumentIdForId(filter);
|
20
|
-
}
|
21
|
-
});
|
22
|
-
};
|
23
|
-
const transformFilters = async (data, opts) => {
|
24
|
-
utils.switchDocumentIdForId(data);
|
25
|
-
logicalOperatorIdReplacement(data);
|
26
|
-
return strapiUtils.traverse.traverseQueryFilters(
|
27
|
-
async ({ attribute, key, value }, { set }) => {
|
28
|
-
if (!attribute || !value) {
|
29
|
-
return;
|
30
|
-
}
|
31
|
-
if (attribute.type === "relation") {
|
32
|
-
(Array.isArray(value) ? value : [value]).forEach((item) => {
|
33
|
-
if (typeof item === "object") {
|
34
|
-
logicalOperatorIdReplacement(item);
|
35
|
-
}
|
36
|
-
});
|
37
|
-
set(key, value);
|
38
|
-
} else if (key === "filters") {
|
39
|
-
set(key, await transformFilters(value, opts));
|
40
|
-
} else if (key === "fields") {
|
41
|
-
set(key, fields.transformFields(value));
|
42
|
-
}
|
43
|
-
},
|
44
|
-
{ schema: strapi.getModel(opts.uid) },
|
45
|
-
data
|
46
|
-
);
|
47
|
-
};
|
48
|
-
exports.transformFilters = transformFilters;
|
49
|
-
//# sourceMappingURL=filters.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"filters.js","sources":["../../../../src/services/document-service/transform/filters.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { transformFields } from './fields';\n\nimport { type Data, type Options } from './types';\nimport { switchDocumentIdForId } from './utils';\n\nconst logicalOperatorIdReplacement = (filter: Data) => {\n return Object.keys(filter).forEach((key) => {\n // If the key is a logical operator ($and, $or, $nor)\n // recursively call this function on the value of the key\n // To find any nested ids that need to be replaced\n if (key.startsWith('$')) {\n if (Array.isArray(filter[key])) {\n filter[key].forEach((item: Data) => {\n if (typeof item === 'object') {\n logicalOperatorIdReplacement(item);\n }\n });\n } else if (typeof filter[key] === 'object') {\n logicalOperatorIdReplacement(filter[key]);\n }\n } else if (key === 'id') {\n // If the key is 'id', replace it with 'documentId'\n switchDocumentIdForId(filter);\n }\n });\n};\n\nexport const transformFilters = async (data: Data, opts: Options) => {\n // Before doing the filters traversal change any top level 'id' properties to 'documentId'\n switchDocumentIdForId(data);\n logicalOperatorIdReplacement(data);\n\n return traverse.traverseQueryFilters(\n async ({ attribute, key, value }, { set }) => {\n if (!attribute || !value) {\n return;\n }\n\n if (attribute.type === 'relation') {\n /*\n If the attribute is a relation\n and the value is an object\n and the object contains an id field\n then we replace the value with the documentId\n \n If the value is an array of objects\n we apply the same logic to each object in the array\n */\n (Array.isArray(value) ? value : [value]).forEach((item) => {\n if (typeof item === 'object') {\n logicalOperatorIdReplacement(item as Data);\n }\n });\n\n set(key, value);\n } else if (key === 'filters') {\n set(key, await transformFilters(value as any, opts));\n } else if (key === 'fields') {\n set(key, transformFields(value as any) as any);\n }\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n"],"names":["switchDocumentIdForId","traverse","transformFields"],"mappings":";;;;;AAMA,MAAM,+BAA+B,CAAC,WAAiB;AACrD,SAAO,OAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,QAAQ;AAItC,QAAA,IAAI,WAAW,GAAG,GAAG;AACvB,UAAI,MAAM,QAAQ,OAAO,GAAG,CAAC,GAAG;AAC9B,eAAO,GAAG,EAAE,QAAQ,CAAC,SAAe;AAC9B,cAAA,OAAO,SAAS,UAAU;AAC5B,yCAA6B,IAAI;AAAA,UACnC;AAAA,QAAA,CACD;AAAA,MACQ,WAAA,OAAO,OAAO,GAAG,MAAM,UAAU;AACb,qCAAA,OAAO,GAAG,CAAC;AAAA,MAC1C;AAAA,IAAA,WACS,QAAQ,MAAM;AAEvBA,YAAA,sBAAsB,MAAM;AAAA,IAC9B;AAAA,EAAA,CACD;AACH;AAEa,MAAA,mBAAmB,OAAO,MAAY,SAAkB;AAEnEA,QAAA,sBAAsB,IAAI;AAC1B,+BAA6B,IAAI;AAEjC,SAAOC,YAAS,SAAA;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AACxC,UAAA,CAAC,aAAa,CAAC,OAAO;AACxB;AAAA,MACF;AAEI,UAAA,UAAU,SAAS,YAAY;AAUhC,SAAA,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS;AACrD,cAAA,OAAO,SAAS,UAAU;AAC5B,yCAA6B,IAAY;AAAA,UAC3C;AAAA,QAAA,CACD;AAED,YAAI,KAAK,KAAK;AAAA,MAAA,WACL,QAAQ,WAAW;AAC5B,YAAI,KAAK,MAAM,iBAAiB,OAAc,IAAI,CAAC;AAAA,MAAA,WAC1C,QAAQ,UAAU;AACvB,YAAA,KAAKC,uBAAgB,KAAY,CAAQ;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;;"}
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import { traverse } from "@strapi/utils";
|
2
|
-
import { transformFields } from "./fields.mjs";
|
3
|
-
import { switchDocumentIdForId } from "./utils.mjs";
|
4
|
-
const logicalOperatorIdReplacement = (filter) => {
|
5
|
-
return Object.keys(filter).forEach((key) => {
|
6
|
-
if (key.startsWith("$")) {
|
7
|
-
if (Array.isArray(filter[key])) {
|
8
|
-
filter[key].forEach((item) => {
|
9
|
-
if (typeof item === "object") {
|
10
|
-
logicalOperatorIdReplacement(item);
|
11
|
-
}
|
12
|
-
});
|
13
|
-
} else if (typeof filter[key] === "object") {
|
14
|
-
logicalOperatorIdReplacement(filter[key]);
|
15
|
-
}
|
16
|
-
} else if (key === "id") {
|
17
|
-
switchDocumentIdForId(filter);
|
18
|
-
}
|
19
|
-
});
|
20
|
-
};
|
21
|
-
const transformFilters = async (data, opts) => {
|
22
|
-
switchDocumentIdForId(data);
|
23
|
-
logicalOperatorIdReplacement(data);
|
24
|
-
return traverse.traverseQueryFilters(
|
25
|
-
async ({ attribute, key, value }, { set }) => {
|
26
|
-
if (!attribute || !value) {
|
27
|
-
return;
|
28
|
-
}
|
29
|
-
if (attribute.type === "relation") {
|
30
|
-
(Array.isArray(value) ? value : [value]).forEach((item) => {
|
31
|
-
if (typeof item === "object") {
|
32
|
-
logicalOperatorIdReplacement(item);
|
33
|
-
}
|
34
|
-
});
|
35
|
-
set(key, value);
|
36
|
-
} else if (key === "filters") {
|
37
|
-
set(key, await transformFilters(value, opts));
|
38
|
-
} else if (key === "fields") {
|
39
|
-
set(key, transformFields(value));
|
40
|
-
}
|
41
|
-
},
|
42
|
-
{ schema: strapi.getModel(opts.uid) },
|
43
|
-
data
|
44
|
-
);
|
45
|
-
};
|
46
|
-
export {
|
47
|
-
transformFilters
|
48
|
-
};
|
49
|
-
//# sourceMappingURL=filters.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"filters.mjs","sources":["../../../../src/services/document-service/transform/filters.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { transformFields } from './fields';\n\nimport { type Data, type Options } from './types';\nimport { switchDocumentIdForId } from './utils';\n\nconst logicalOperatorIdReplacement = (filter: Data) => {\n return Object.keys(filter).forEach((key) => {\n // If the key is a logical operator ($and, $or, $nor)\n // recursively call this function on the value of the key\n // To find any nested ids that need to be replaced\n if (key.startsWith('$')) {\n if (Array.isArray(filter[key])) {\n filter[key].forEach((item: Data) => {\n if (typeof item === 'object') {\n logicalOperatorIdReplacement(item);\n }\n });\n } else if (typeof filter[key] === 'object') {\n logicalOperatorIdReplacement(filter[key]);\n }\n } else if (key === 'id') {\n // If the key is 'id', replace it with 'documentId'\n switchDocumentIdForId(filter);\n }\n });\n};\n\nexport const transformFilters = async (data: Data, opts: Options) => {\n // Before doing the filters traversal change any top level 'id' properties to 'documentId'\n switchDocumentIdForId(data);\n logicalOperatorIdReplacement(data);\n\n return traverse.traverseQueryFilters(\n async ({ attribute, key, value }, { set }) => {\n if (!attribute || !value) {\n return;\n }\n\n if (attribute.type === 'relation') {\n /*\n If the attribute is a relation\n and the value is an object\n and the object contains an id field\n then we replace the value with the documentId\n \n If the value is an array of objects\n we apply the same logic to each object in the array\n */\n (Array.isArray(value) ? value : [value]).forEach((item) => {\n if (typeof item === 'object') {\n logicalOperatorIdReplacement(item as Data);\n }\n });\n\n set(key, value);\n } else if (key === 'filters') {\n set(key, await transformFilters(value as any, opts));\n } else if (key === 'fields') {\n set(key, transformFields(value as any) as any);\n }\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n"],"names":[],"mappings":";;;AAMA,MAAM,+BAA+B,CAAC,WAAiB;AACrD,SAAO,OAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,QAAQ;AAItC,QAAA,IAAI,WAAW,GAAG,GAAG;AACvB,UAAI,MAAM,QAAQ,OAAO,GAAG,CAAC,GAAG;AAC9B,eAAO,GAAG,EAAE,QAAQ,CAAC,SAAe;AAC9B,cAAA,OAAO,SAAS,UAAU;AAC5B,yCAA6B,IAAI;AAAA,UACnC;AAAA,QAAA,CACD;AAAA,MACQ,WAAA,OAAO,OAAO,GAAG,MAAM,UAAU;AACb,qCAAA,OAAO,GAAG,CAAC;AAAA,MAC1C;AAAA,IAAA,WACS,QAAQ,MAAM;AAEvB,4BAAsB,MAAM;AAAA,IAC9B;AAAA,EAAA,CACD;AACH;AAEa,MAAA,mBAAmB,OAAO,MAAY,SAAkB;AAEnE,wBAAsB,IAAI;AAC1B,+BAA6B,IAAI;AAEjC,SAAO,SAAS;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AACxC,UAAA,CAAC,aAAa,CAAC,OAAO;AACxB;AAAA,MACF;AAEI,UAAA,UAAU,SAAS,YAAY;AAUhC,SAAA,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS;AACrD,cAAA,OAAO,SAAS,UAAU;AAC5B,yCAA6B,IAAY;AAAA,UAC3C;AAAA,QAAA,CACD;AAED,YAAI,KAAK,KAAK;AAAA,MAAA,WACL,QAAQ,WAAW;AAC5B,YAAI,KAAK,MAAM,iBAAiB,OAAc,IAAI,CAAC;AAAA,MAAA,WAC1C,QAAQ,UAAU;AACvB,YAAA,KAAK,gBAAgB,KAAY,CAAQ;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;"}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const strapiUtils = require("@strapi/utils");
|
4
|
-
const _ = require("lodash/fp");
|
5
|
-
const utils = require("../../utils.js");
|
6
|
-
const transformOutputIds = async (uid, output) => {
|
7
|
-
return strapiUtils.traverseEntity(
|
8
|
-
({ key, value, attribute }, { set }) => {
|
9
|
-
if (attribute.type === "relation") {
|
10
|
-
if (Array.isArray(value)) {
|
11
|
-
set(key, value.map(utils.switchIdForDocumentId));
|
12
|
-
return;
|
13
|
-
}
|
14
|
-
if (!_.isObject(value))
|
15
|
-
return;
|
16
|
-
if ("id" in value && "documentId" in value) {
|
17
|
-
set(key, utils.switchIdForDocumentId(value));
|
18
|
-
}
|
19
|
-
}
|
20
|
-
},
|
21
|
-
{ schema: strapi.getModel(uid) },
|
22
|
-
output
|
23
|
-
);
|
24
|
-
};
|
25
|
-
exports.transformOutputIds = transformOutputIds;
|
26
|
-
//# sourceMappingURL=output-ids.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"output-ids.js","sources":["../../../../../../src/services/document-service/transform/relations/transform/output-ids.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { isObject } from 'lodash/fp';\nimport { switchIdForDocumentId } from '../../utils';\n\nconst transformOutputIds = async (uid: Common.UID.Schema, output: Record<string, any>) => {\n return traverseEntity(\n ({ key, value, attribute }, { set }) => {\n // Find relational attributes, and return the document ids\n if (attribute.type === 'relation') {\n // XToMany relations\n if (Array.isArray(value)) {\n // @ts-expect-error - TODO: Fix type\n set(key, value.map(switchIdForDocumentId));\n return;\n }\n\n if (!isObject(value)) return;\n // XToOne relations\n // If document id is in the response, switch it to be the id\n if ('id' in value && 'documentId' in value) {\n set(key, switchIdForDocumentId(value));\n }\n }\n },\n { schema: strapi.getModel(uid) },\n output\n );\n};\n\nexport { transformOutputIds };\n"],"names":["traverseEntity","switchIdForDocumentId","isObject"],"mappings":";;;;;AAKM,MAAA,qBAAqB,OAAO,KAAwB,WAAgC;AACjF,SAAAA,YAAA;AAAA,IACL,CAAC,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU;AAElC,UAAA,UAAU,SAAS,YAAY;AAE7B,YAAA,MAAM,QAAQ,KAAK,GAAG;AAExB,cAAI,KAAK,MAAM,IAAIC,MAAAA,qBAAqB,CAAC;AACzC;AAAA,QACF;AAEI,YAAA,CAACC,WAAS,KAAK;AAAG;AAGlB,YAAA,QAAQ,SAAS,gBAAgB,OAAO;AACtC,cAAA,KAAKD,4BAAsB,KAAK,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,GAAG,EAAE;AAAA,IAC/B;AAAA,EAAA;AAEJ;;"}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { traverseEntity } from "@strapi/utils";
|
2
|
-
import { isObject } from "lodash/fp";
|
3
|
-
import { switchIdForDocumentId } from "../../utils.mjs";
|
4
|
-
const transformOutputIds = async (uid, output) => {
|
5
|
-
return traverseEntity(
|
6
|
-
({ key, value, attribute }, { set }) => {
|
7
|
-
if (attribute.type === "relation") {
|
8
|
-
if (Array.isArray(value)) {
|
9
|
-
set(key, value.map(switchIdForDocumentId));
|
10
|
-
return;
|
11
|
-
}
|
12
|
-
if (!isObject(value))
|
13
|
-
return;
|
14
|
-
if ("id" in value && "documentId" in value) {
|
15
|
-
set(key, switchIdForDocumentId(value));
|
16
|
-
}
|
17
|
-
}
|
18
|
-
},
|
19
|
-
{ schema: strapi.getModel(uid) },
|
20
|
-
output
|
21
|
-
);
|
22
|
-
};
|
23
|
-
export {
|
24
|
-
transformOutputIds
|
25
|
-
};
|
26
|
-
//# sourceMappingURL=output-ids.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"output-ids.mjs","sources":["../../../../../../src/services/document-service/transform/relations/transform/output-ids.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { isObject } from 'lodash/fp';\nimport { switchIdForDocumentId } from '../../utils';\n\nconst transformOutputIds = async (uid: Common.UID.Schema, output: Record<string, any>) => {\n return traverseEntity(\n ({ key, value, attribute }, { set }) => {\n // Find relational attributes, and return the document ids\n if (attribute.type === 'relation') {\n // XToMany relations\n if (Array.isArray(value)) {\n // @ts-expect-error - TODO: Fix type\n set(key, value.map(switchIdForDocumentId));\n return;\n }\n\n if (!isObject(value)) return;\n // XToOne relations\n // If document id is in the response, switch it to be the id\n if ('id' in value && 'documentId' in value) {\n set(key, switchIdForDocumentId(value));\n }\n }\n },\n { schema: strapi.getModel(uid) },\n output\n );\n};\n\nexport { transformOutputIds };\n"],"names":[],"mappings":";;;AAKM,MAAA,qBAAqB,OAAO,KAAwB,WAAgC;AACjF,SAAA;AAAA,IACL,CAAC,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU;AAElC,UAAA,UAAU,SAAS,YAAY;AAE7B,YAAA,MAAM,QAAQ,KAAK,GAAG;AAExB,cAAI,KAAK,MAAM,IAAI,qBAAqB,CAAC;AACzC;AAAA,QACF;AAEI,YAAA,CAAC,SAAS,KAAK;AAAG;AAGlB,YAAA,QAAQ,SAAS,gBAAgB,OAAO;AACtC,cAAA,KAAK,sBAAsB,KAAK,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,GAAG,EAAE;AAAA,IAC/B;AAAA,EAAA;AAEJ;"}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const strapiUtils = require("@strapi/utils");
|
4
|
-
const utils = require("./utils.js");
|
5
|
-
const rootIdReplacement = (sort) => {
|
6
|
-
if (typeof sort === "object") {
|
7
|
-
return utils.switchDocumentIdForId(sort);
|
8
|
-
}
|
9
|
-
if (typeof sort === "string") {
|
10
|
-
let sortCopy = sort;
|
11
|
-
let suffix = "";
|
12
|
-
const match = sort.match(/:(\w+)$/);
|
13
|
-
if (match) {
|
14
|
-
suffix = match[0];
|
15
|
-
sortCopy = sort.replace(suffix, "");
|
16
|
-
}
|
17
|
-
if (sortCopy === "id") {
|
18
|
-
sortCopy = "documentId";
|
19
|
-
} else {
|
20
|
-
sortCopy = sortCopy.split(",").map((value) => value === "id" ? "documentId" : value).join(",");
|
21
|
-
}
|
22
|
-
return sortCopy + suffix;
|
23
|
-
}
|
24
|
-
return sort;
|
25
|
-
};
|
26
|
-
const transformSort = async (sort, opts) => {
|
27
|
-
let mappedSort;
|
28
|
-
if (Array.isArray(sort)) {
|
29
|
-
mappedSort = sort.map(rootIdReplacement);
|
30
|
-
} else {
|
31
|
-
mappedSort = rootIdReplacement(sort);
|
32
|
-
}
|
33
|
-
return strapiUtils.traverse.traverseQuerySort(
|
34
|
-
({ attribute, value, key }, { set }) => {
|
35
|
-
if (attribute?.type === "relation") {
|
36
|
-
set(key, rootIdReplacement(value));
|
37
|
-
}
|
38
|
-
},
|
39
|
-
{ schema: strapi.getModel(opts.uid) },
|
40
|
-
mappedSort
|
41
|
-
);
|
42
|
-
};
|
43
|
-
exports.transformSort = transformSort;
|
44
|
-
//# sourceMappingURL=sort.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"sort.js","sources":["../../../../src/services/document-service/transform/sort.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { Options, Data } from './types';\nimport { switchDocumentIdForId } from './utils';\n\ntype Sort = Data | string;\n\nconst rootIdReplacement = (sort: Sort) => {\n if (typeof sort === 'object') {\n return switchDocumentIdForId(sort);\n }\n\n if (typeof sort === 'string') {\n let sortCopy = sort;\n let suffix = '';\n const match = sort.match(/:(\\w+)$/);\n if (match) {\n suffix = match[0];\n\n // TODO is there a regex to match :ASC or :DESC?\n sortCopy = sort.replace(suffix, '');\n }\n\n if (sortCopy === 'id') {\n sortCopy = 'documentId';\n } else {\n sortCopy = sortCopy\n .split(',')\n .map((value: any) => (value === 'id' ? 'documentId' : value))\n .join(',');\n }\n\n return sortCopy + suffix;\n }\n\n return sort;\n};\n\nexport const transformSort = async (sort: Sort | Sort[], opts: Options) => {\n let mappedSort;\n\n // Replace any top level 'id' properties with 'documentId'\n if (Array.isArray(sort)) {\n mappedSort = sort.map(rootIdReplacement);\n } else {\n mappedSort = rootIdReplacement(sort);\n }\n\n return traverse.traverseQuerySort(\n ({ attribute, value, key }, { set }) => {\n if (attribute?.type === 'relation') {\n // Replace any relation 'id' properties with 'documentId'\n set(key, rootIdReplacement(value as any));\n }\n },\n { schema: strapi.getModel(opts.uid) },\n mappedSort\n );\n};\n"],"names":["switchDocumentIdForId","traverse"],"mappings":";;;;AAMA,MAAM,oBAAoB,CAAC,SAAe;AACpC,MAAA,OAAO,SAAS,UAAU;AAC5B,WAAOA,MAAAA,sBAAsB,IAAI;AAAA,EACnC;AAEI,MAAA,OAAO,SAAS,UAAU;AAC5B,QAAI,WAAW;AACf,QAAI,SAAS;AACP,UAAA,QAAQ,KAAK,MAAM,SAAS;AAClC,QAAI,OAAO;AACT,eAAS,MAAM,CAAC;AAGL,iBAAA,KAAK,QAAQ,QAAQ,EAAE;AAAA,IACpC;AAEA,QAAI,aAAa,MAAM;AACV,iBAAA;AAAA,IAAA,OACN;AACL,iBAAW,SACR,MAAM,GAAG,EACT,IAAI,CAAC,UAAgB,UAAU,OAAO,eAAe,KAAM,EAC3D,KAAK,GAAG;AAAA,IACb;AAEA,WAAO,WAAW;AAAA,EACpB;AAEO,SAAA;AACT;AAEa,MAAA,gBAAgB,OAAO,MAAqB,SAAkB;AACrE,MAAA;AAGA,MAAA,MAAM,QAAQ,IAAI,GAAG;AACV,iBAAA,KAAK,IAAI,iBAAiB;AAAA,EAAA,OAClC;AACL,iBAAa,kBAAkB,IAAI;AAAA,EACrC;AAEA,SAAOC,YAAS,SAAA;AAAA,IACd,CAAC,EAAE,WAAW,OAAO,OAAO,EAAE,UAAU;AAClC,UAAA,WAAW,SAAS,YAAY;AAE9B,YAAA,KAAK,kBAAkB,KAAY,CAAC;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;;"}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
import { traverse } from "@strapi/utils";
|
2
|
-
import { switchDocumentIdForId } from "./utils.mjs";
|
3
|
-
const rootIdReplacement = (sort) => {
|
4
|
-
if (typeof sort === "object") {
|
5
|
-
return switchDocumentIdForId(sort);
|
6
|
-
}
|
7
|
-
if (typeof sort === "string") {
|
8
|
-
let sortCopy = sort;
|
9
|
-
let suffix = "";
|
10
|
-
const match = sort.match(/:(\w+)$/);
|
11
|
-
if (match) {
|
12
|
-
suffix = match[0];
|
13
|
-
sortCopy = sort.replace(suffix, "");
|
14
|
-
}
|
15
|
-
if (sortCopy === "id") {
|
16
|
-
sortCopy = "documentId";
|
17
|
-
} else {
|
18
|
-
sortCopy = sortCopy.split(",").map((value) => value === "id" ? "documentId" : value).join(",");
|
19
|
-
}
|
20
|
-
return sortCopy + suffix;
|
21
|
-
}
|
22
|
-
return sort;
|
23
|
-
};
|
24
|
-
const transformSort = async (sort, opts) => {
|
25
|
-
let mappedSort;
|
26
|
-
if (Array.isArray(sort)) {
|
27
|
-
mappedSort = sort.map(rootIdReplacement);
|
28
|
-
} else {
|
29
|
-
mappedSort = rootIdReplacement(sort);
|
30
|
-
}
|
31
|
-
return traverse.traverseQuerySort(
|
32
|
-
({ attribute, value, key }, { set }) => {
|
33
|
-
if (attribute?.type === "relation") {
|
34
|
-
set(key, rootIdReplacement(value));
|
35
|
-
}
|
36
|
-
},
|
37
|
-
{ schema: strapi.getModel(opts.uid) },
|
38
|
-
mappedSort
|
39
|
-
);
|
40
|
-
};
|
41
|
-
export {
|
42
|
-
transformSort
|
43
|
-
};
|
44
|
-
//# sourceMappingURL=sort.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"sort.mjs","sources":["../../../../src/services/document-service/transform/sort.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport { Options, Data } from './types';\nimport { switchDocumentIdForId } from './utils';\n\ntype Sort = Data | string;\n\nconst rootIdReplacement = (sort: Sort) => {\n if (typeof sort === 'object') {\n return switchDocumentIdForId(sort);\n }\n\n if (typeof sort === 'string') {\n let sortCopy = sort;\n let suffix = '';\n const match = sort.match(/:(\\w+)$/);\n if (match) {\n suffix = match[0];\n\n // TODO is there a regex to match :ASC or :DESC?\n sortCopy = sort.replace(suffix, '');\n }\n\n if (sortCopy === 'id') {\n sortCopy = 'documentId';\n } else {\n sortCopy = sortCopy\n .split(',')\n .map((value: any) => (value === 'id' ? 'documentId' : value))\n .join(',');\n }\n\n return sortCopy + suffix;\n }\n\n return sort;\n};\n\nexport const transformSort = async (sort: Sort | Sort[], opts: Options) => {\n let mappedSort;\n\n // Replace any top level 'id' properties with 'documentId'\n if (Array.isArray(sort)) {\n mappedSort = sort.map(rootIdReplacement);\n } else {\n mappedSort = rootIdReplacement(sort);\n }\n\n return traverse.traverseQuerySort(\n ({ attribute, value, key }, { set }) => {\n if (attribute?.type === 'relation') {\n // Replace any relation 'id' properties with 'documentId'\n set(key, rootIdReplacement(value as any));\n }\n },\n { schema: strapi.getModel(opts.uid) },\n mappedSort\n );\n};\n"],"names":[],"mappings":";;AAMA,MAAM,oBAAoB,CAAC,SAAe;AACpC,MAAA,OAAO,SAAS,UAAU;AAC5B,WAAO,sBAAsB,IAAI;AAAA,EACnC;AAEI,MAAA,OAAO,SAAS,UAAU;AAC5B,QAAI,WAAW;AACf,QAAI,SAAS;AACP,UAAA,QAAQ,KAAK,MAAM,SAAS;AAClC,QAAI,OAAO;AACT,eAAS,MAAM,CAAC;AAGL,iBAAA,KAAK,QAAQ,QAAQ,EAAE;AAAA,IACpC;AAEA,QAAI,aAAa,MAAM;AACV,iBAAA;AAAA,IAAA,OACN;AACL,iBAAW,SACR,MAAM,GAAG,EACT,IAAI,CAAC,UAAgB,UAAU,OAAO,eAAe,KAAM,EAC3D,KAAK,GAAG;AAAA,IACb;AAEA,WAAO,WAAW;AAAA,EACpB;AAEO,SAAA;AACT;AAEa,MAAA,gBAAgB,OAAO,MAAqB,SAAkB;AACrE,MAAA;AAGA,MAAA,MAAM,QAAQ,IAAI,GAAG;AACV,iBAAA,KAAK,IAAI,iBAAiB;AAAA,EAAA,OAClC;AACL,iBAAa,kBAAkB,IAAI;AAAA,EACrC;AAEA,SAAO,SAAS;AAAA,IACd,CAAC,EAAE,WAAW,OAAO,OAAO,EAAE,UAAU;AAClC,UAAA,WAAW,SAAS,YAAY;AAE9B,YAAA,KAAK,kBAAkB,KAAY,CAAC;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;"}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const switchIdForDocumentId = (output) => {
|
4
|
-
const documentId = output?.documentId;
|
5
|
-
if (documentId === void 0) {
|
6
|
-
return output;
|
7
|
-
}
|
8
|
-
delete output.documentId;
|
9
|
-
output.id = documentId;
|
10
|
-
return output;
|
11
|
-
};
|
12
|
-
const switchDocumentIdForId = (output) => {
|
13
|
-
const id = output?.id;
|
14
|
-
if (id === void 0) {
|
15
|
-
return output;
|
16
|
-
}
|
17
|
-
delete output.id;
|
18
|
-
output.documentId = id;
|
19
|
-
return output;
|
20
|
-
};
|
21
|
-
exports.switchDocumentIdForId = switchDocumentIdForId;
|
22
|
-
exports.switchIdForDocumentId = switchIdForDocumentId;
|
23
|
-
//# sourceMappingURL=utils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/services/document-service/transform/utils.ts"],"sourcesContent":["/**\n * Replace the documentId field with id\n */\nexport const switchIdForDocumentId = (output: Record<string, any>) => {\n // Mutating for performance reasons\n const documentId = output?.documentId;\n if (documentId === undefined) {\n return output;\n }\n\n delete output.documentId;\n output.id = documentId;\n return output;\n};\n\n/**\n * Replace the id field for documentId\n */\nexport const switchDocumentIdForId = (output: Record<string, any>) => {\n // Mutating for performance reasons\n const id = output?.id;\n if (id === undefined) {\n return output;\n }\n\n delete output.id;\n output.documentId = id;\n return output;\n};\n"],"names":[],"mappings":";;AAGa,MAAA,wBAAwB,CAAC,WAAgC;AAEpE,QAAM,aAAa,QAAQ;AAC3B,MAAI,eAAe,QAAW;AACrB,WAAA;AAAA,EACT;AAEA,SAAO,OAAO;AACd,SAAO,KAAK;AACL,SAAA;AACT;AAKa,MAAA,wBAAwB,CAAC,WAAgC;AAEpE,QAAM,KAAK,QAAQ;AACnB,MAAI,OAAO,QAAW;AACb,WAAA;AAAA,EACT;AAEA,SAAO,OAAO;AACd,SAAO,aAAa;AACb,SAAA;AACT;;;"}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
const switchIdForDocumentId = (output) => {
|
2
|
-
const documentId = output?.documentId;
|
3
|
-
if (documentId === void 0) {
|
4
|
-
return output;
|
5
|
-
}
|
6
|
-
delete output.documentId;
|
7
|
-
output.id = documentId;
|
8
|
-
return output;
|
9
|
-
};
|
10
|
-
const switchDocumentIdForId = (output) => {
|
11
|
-
const id = output?.id;
|
12
|
-
if (id === void 0) {
|
13
|
-
return output;
|
14
|
-
}
|
15
|
-
delete output.id;
|
16
|
-
output.documentId = id;
|
17
|
-
return output;
|
18
|
-
};
|
19
|
-
export {
|
20
|
-
switchDocumentIdForId,
|
21
|
-
switchIdForDocumentId
|
22
|
-
};
|
23
|
-
//# sourceMappingURL=utils.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../../src/services/document-service/transform/utils.ts"],"sourcesContent":["/**\n * Replace the documentId field with id\n */\nexport const switchIdForDocumentId = (output: Record<string, any>) => {\n // Mutating for performance reasons\n const documentId = output?.documentId;\n if (documentId === undefined) {\n return output;\n }\n\n delete output.documentId;\n output.id = documentId;\n return output;\n};\n\n/**\n * Replace the id field for documentId\n */\nexport const switchDocumentIdForId = (output: Record<string, any>) => {\n // Mutating for performance reasons\n const id = output?.id;\n if (id === undefined) {\n return output;\n }\n\n delete output.id;\n output.documentId = id;\n return output;\n};\n"],"names":[],"mappings":"AAGa,MAAA,wBAAwB,CAAC,WAAgC;AAEpE,QAAM,aAAa,QAAQ;AAC3B,MAAI,eAAe,QAAW;AACrB,WAAA;AAAA,EACT;AAEA,SAAO,OAAO;AACd,SAAO,KAAK;AACL,SAAA;AACT;AAKa,MAAA,wBAAwB,CAAC,WAAgC;AAEpE,QAAM,KAAK,QAAQ;AACnB,MAAI,OAAO,QAAW;AACb,WAAA;AAAA,EACT;AAEA,SAAO,OAAO;AACd,SAAO,aAAa;AACb,SAAA;AACT;"}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import type { Common } from '@strapi/types';
|
2
|
-
export type UploadFile = (uid: Common.UID.Schema, entity: Record<string, unknown>, files: Record<string, unknown>) => Promise<void>;
|
3
|
-
/**
|
4
|
-
* Upload files and link them to an entity
|
5
|
-
*/
|
6
|
-
declare const uploadFile: UploadFile;
|
7
|
-
export default uploadFile;
|
8
|
-
//# sourceMappingURL=upload-files.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"upload-files.d.ts","sourceRoot":"","sources":["../../../src/services/utils/upload-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,MAAM,EAAU,MAAM,eAAe,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,UA0EjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
@@ -1,64 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
const _ = require("lodash");
|
3
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
4
|
-
const ___default = /* @__PURE__ */ _interopDefault(_);
|
5
|
-
const uploadFile = async (uid, entity, files) => {
|
6
|
-
const modelDef = strapi.getModel(uid);
|
7
|
-
if (!___default.default.has(strapi.plugins, "upload")) {
|
8
|
-
return;
|
9
|
-
}
|
10
|
-
const uploadService = strapi.plugin("upload").service("upload");
|
11
|
-
const findModelFromUploadPath = (path) => {
|
12
|
-
if (path.length === 0) {
|
13
|
-
return uid;
|
14
|
-
}
|
15
|
-
const currentPath = [];
|
16
|
-
let tmpModel = modelDef;
|
17
|
-
let modelUID = uid;
|
18
|
-
for (let i = 0; i < path.length; i += 1) {
|
19
|
-
if (!tmpModel) {
|
20
|
-
return {};
|
21
|
-
}
|
22
|
-
const part = path[i];
|
23
|
-
const attr = tmpModel.attributes[part];
|
24
|
-
currentPath.push(part);
|
25
|
-
if (___default.default.isFinite(___default.default.toNumber(path[i]))) {
|
26
|
-
continue;
|
27
|
-
}
|
28
|
-
if (!attr)
|
29
|
-
return {};
|
30
|
-
if (attr.type === "component") {
|
31
|
-
modelUID = attr.component;
|
32
|
-
tmpModel = strapi.components[attr.component];
|
33
|
-
} else if (attr.type === "dynamiczone") {
|
34
|
-
const entryIdx = path[i + 1];
|
35
|
-
const value = ___default.default.get(entity, [...currentPath, entryIdx]);
|
36
|
-
if (!value)
|
37
|
-
return {};
|
38
|
-
modelUID = value.__component;
|
39
|
-
tmpModel = strapi.components[modelUID];
|
40
|
-
} else if (attr.type === "relation") {
|
41
|
-
if (!("target" in attr)) {
|
42
|
-
return {};
|
43
|
-
}
|
44
|
-
modelUID = attr.target;
|
45
|
-
tmpModel = strapi.getModel(modelUID);
|
46
|
-
} else {
|
47
|
-
return;
|
48
|
-
}
|
49
|
-
}
|
50
|
-
return modelUID;
|
51
|
-
};
|
52
|
-
const doUpload = async (key, files2) => {
|
53
|
-
const parts = key.split(".");
|
54
|
-
const [path, field] = [___default.default.initial(parts), ___default.default.last(parts)];
|
55
|
-
const modelUID = findModelFromUploadPath(path);
|
56
|
-
if (modelUID) {
|
57
|
-
const id = ___default.default.get(entity, path.concat("id"));
|
58
|
-
return uploadService.uploadToEntity({ id, model: modelUID, field }, files2);
|
59
|
-
}
|
60
|
-
};
|
61
|
-
await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));
|
62
|
-
};
|
63
|
-
module.exports = uploadFile;
|
64
|
-
//# sourceMappingURL=upload-files.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"upload-files.js","sources":["../../../src/services/utils/upload-files.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Attribute, Common, Schema } from '@strapi/types';\n\nexport type UploadFile = (\n uid: Common.UID.Schema,\n entity: Record<string, unknown>,\n files: Record<string, unknown>\n) => Promise<void>;\n\n/**\n * Upload files and link them to an entity\n */\nconst uploadFile: UploadFile = async (uid, entity, files) => {\n const modelDef = strapi.getModel(uid);\n\n if (!_.has(strapi.plugins, 'upload')) {\n return;\n }\n\n const uploadService = strapi.plugin('upload').service('upload');\n\n const findModelFromUploadPath = (path: string[]) => {\n if (path.length === 0) {\n return uid;\n }\n\n const currentPath = [];\n let tmpModel: Schema.ContentType | Schema.Component = modelDef;\n let modelUID = uid;\n\n for (let i = 0; i < path.length; i += 1) {\n if (!tmpModel) {\n return {};\n }\n\n const part = path[i];\n const attr: Attribute.Any = tmpModel.attributes[part];\n\n currentPath.push(part);\n\n // ignore array indexes => handled in the dynamic zone section\n if (_.isFinite(_.toNumber(path[i]))) {\n continue;\n }\n\n if (!attr) return {};\n\n if (attr.type === 'component') {\n modelUID = attr.component;\n tmpModel = strapi.components[attr.component];\n } else if (attr.type === 'dynamiczone') {\n const entryIdx = path[i + 1]; // get component index\n const value = _.get(entity, [...currentPath, entryIdx]);\n\n if (!value) return {};\n\n modelUID = value.__component; // get component type\n tmpModel = strapi.components[modelUID as Common.UID.Component];\n } else if (attr.type === 'relation') {\n if (!('target' in attr)) {\n return {};\n }\n\n modelUID = attr.target;\n tmpModel = strapi.getModel(modelUID);\n } else {\n return;\n }\n }\n\n return modelUID;\n };\n\n const doUpload = async (key: string, files: unknown) => {\n const parts = key.split('.');\n const [path, field] = [_.initial(parts), _.last(parts)];\n\n const modelUID = findModelFromUploadPath(path);\n\n if (modelUID) {\n const id = _.get(entity, path.concat('id'));\n return uploadService.uploadToEntity({ id, model: modelUID, field }, files);\n }\n };\n\n await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));\n};\n\nexport default uploadFile;\n"],"names":["_","files"],"mappings":";;;;AAYA,MAAM,aAAyB,OAAO,KAAK,QAAQ,UAAU;AACrD,QAAA,WAAW,OAAO,SAAS,GAAG;AAEpC,MAAI,CAACA,WAAE,QAAA,IAAI,OAAO,SAAS,QAAQ,GAAG;AACpC;AAAA,EACF;AAEA,QAAM,gBAAgB,OAAO,OAAO,QAAQ,EAAE,QAAQ,QAAQ;AAExD,QAAA,0BAA0B,CAAC,SAAmB;AAC9C,QAAA,KAAK,WAAW,GAAG;AACd,aAAA;AAAA,IACT;AAEA,UAAM,cAAc,CAAA;AACpB,QAAI,WAAkD;AACtD,QAAI,WAAW;AAEf,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,UAAI,CAAC,UAAU;AACb,eAAO;MACT;AAEM,YAAA,OAAO,KAAK,CAAC;AACb,YAAA,OAAsB,SAAS,WAAW,IAAI;AAEpD,kBAAY,KAAK,IAAI;AAGjB,UAAAA,WAAAA,QAAE,SAASA,WAAE,QAAA,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG;AACnC;AAAA,MACF;AAEA,UAAI,CAAC;AAAM,eAAO;AAEd,UAAA,KAAK,SAAS,aAAa;AAC7B,mBAAW,KAAK;AACL,mBAAA,OAAO,WAAW,KAAK,SAAS;AAAA,MAAA,WAClC,KAAK,SAAS,eAAe;AAChC,cAAA,WAAW,KAAK,IAAI,CAAC;AACrB,cAAA,QAAQA,mBAAE,IAAI,QAAQ,CAAC,GAAG,aAAa,QAAQ,CAAC;AAEtD,YAAI,CAAC;AAAO,iBAAO;AAEnB,mBAAW,MAAM;AACN,mBAAA,OAAO,WAAW,QAAgC;AAAA,MAAA,WACpD,KAAK,SAAS,YAAY;AAC/B,YAAA,EAAE,YAAY,OAAO;AACvB,iBAAO;QACT;AAEA,mBAAW,KAAK;AACL,mBAAA,OAAO,SAAS,QAAQ;AAAA,MAAA,OAC9B;AACL;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,WAAW,OAAO,KAAaC,WAAmB;AAChD,UAAA,QAAQ,IAAI,MAAM,GAAG;AAC3B,UAAM,CAAC,MAAM,KAAK,IAAI,CAACD,WAAAA,QAAE,QAAQ,KAAK,GAAGA,WAAA,QAAE,KAAK,KAAK,CAAC;AAEhD,UAAA,WAAW,wBAAwB,IAAI;AAE7C,QAAI,UAAU;AACZ,YAAM,KAAKA,WAAE,QAAA,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,EAAE,IAAI,OAAO,UAAU,SAASC,MAAK;AAAA,IAC3E;AAAA,EAAA;AAGF,QAAM,QAAQ,IAAI,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9E;;"}
|
@@ -1,63 +0,0 @@
|
|
1
|
-
import _ from "lodash";
|
2
|
-
const uploadFile = async (uid, entity, files) => {
|
3
|
-
const modelDef = strapi.getModel(uid);
|
4
|
-
if (!_.has(strapi.plugins, "upload")) {
|
5
|
-
return;
|
6
|
-
}
|
7
|
-
const uploadService = strapi.plugin("upload").service("upload");
|
8
|
-
const findModelFromUploadPath = (path) => {
|
9
|
-
if (path.length === 0) {
|
10
|
-
return uid;
|
11
|
-
}
|
12
|
-
const currentPath = [];
|
13
|
-
let tmpModel = modelDef;
|
14
|
-
let modelUID = uid;
|
15
|
-
for (let i = 0; i < path.length; i += 1) {
|
16
|
-
if (!tmpModel) {
|
17
|
-
return {};
|
18
|
-
}
|
19
|
-
const part = path[i];
|
20
|
-
const attr = tmpModel.attributes[part];
|
21
|
-
currentPath.push(part);
|
22
|
-
if (_.isFinite(_.toNumber(path[i]))) {
|
23
|
-
continue;
|
24
|
-
}
|
25
|
-
if (!attr)
|
26
|
-
return {};
|
27
|
-
if (attr.type === "component") {
|
28
|
-
modelUID = attr.component;
|
29
|
-
tmpModel = strapi.components[attr.component];
|
30
|
-
} else if (attr.type === "dynamiczone") {
|
31
|
-
const entryIdx = path[i + 1];
|
32
|
-
const value = _.get(entity, [...currentPath, entryIdx]);
|
33
|
-
if (!value)
|
34
|
-
return {};
|
35
|
-
modelUID = value.__component;
|
36
|
-
tmpModel = strapi.components[modelUID];
|
37
|
-
} else if (attr.type === "relation") {
|
38
|
-
if (!("target" in attr)) {
|
39
|
-
return {};
|
40
|
-
}
|
41
|
-
modelUID = attr.target;
|
42
|
-
tmpModel = strapi.getModel(modelUID);
|
43
|
-
} else {
|
44
|
-
return;
|
45
|
-
}
|
46
|
-
}
|
47
|
-
return modelUID;
|
48
|
-
};
|
49
|
-
const doUpload = async (key, files2) => {
|
50
|
-
const parts = key.split(".");
|
51
|
-
const [path, field] = [_.initial(parts), _.last(parts)];
|
52
|
-
const modelUID = findModelFromUploadPath(path);
|
53
|
-
if (modelUID) {
|
54
|
-
const id = _.get(entity, path.concat("id"));
|
55
|
-
return uploadService.uploadToEntity({ id, model: modelUID, field }, files2);
|
56
|
-
}
|
57
|
-
};
|
58
|
-
await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));
|
59
|
-
};
|
60
|
-
export {
|
61
|
-
uploadFile as default
|
62
|
-
};
|
63
|
-
//# sourceMappingURL=upload-files.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"upload-files.mjs","sources":["../../../src/services/utils/upload-files.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Attribute, Common, Schema } from '@strapi/types';\n\nexport type UploadFile = (\n uid: Common.UID.Schema,\n entity: Record<string, unknown>,\n files: Record<string, unknown>\n) => Promise<void>;\n\n/**\n * Upload files and link them to an entity\n */\nconst uploadFile: UploadFile = async (uid, entity, files) => {\n const modelDef = strapi.getModel(uid);\n\n if (!_.has(strapi.plugins, 'upload')) {\n return;\n }\n\n const uploadService = strapi.plugin('upload').service('upload');\n\n const findModelFromUploadPath = (path: string[]) => {\n if (path.length === 0) {\n return uid;\n }\n\n const currentPath = [];\n let tmpModel: Schema.ContentType | Schema.Component = modelDef;\n let modelUID = uid;\n\n for (let i = 0; i < path.length; i += 1) {\n if (!tmpModel) {\n return {};\n }\n\n const part = path[i];\n const attr: Attribute.Any = tmpModel.attributes[part];\n\n currentPath.push(part);\n\n // ignore array indexes => handled in the dynamic zone section\n if (_.isFinite(_.toNumber(path[i]))) {\n continue;\n }\n\n if (!attr) return {};\n\n if (attr.type === 'component') {\n modelUID = attr.component;\n tmpModel = strapi.components[attr.component];\n } else if (attr.type === 'dynamiczone') {\n const entryIdx = path[i + 1]; // get component index\n const value = _.get(entity, [...currentPath, entryIdx]);\n\n if (!value) return {};\n\n modelUID = value.__component; // get component type\n tmpModel = strapi.components[modelUID as Common.UID.Component];\n } else if (attr.type === 'relation') {\n if (!('target' in attr)) {\n return {};\n }\n\n modelUID = attr.target;\n tmpModel = strapi.getModel(modelUID);\n } else {\n return;\n }\n }\n\n return modelUID;\n };\n\n const doUpload = async (key: string, files: unknown) => {\n const parts = key.split('.');\n const [path, field] = [_.initial(parts), _.last(parts)];\n\n const modelUID = findModelFromUploadPath(path);\n\n if (modelUID) {\n const id = _.get(entity, path.concat('id'));\n return uploadService.uploadToEntity({ id, model: modelUID, field }, files);\n }\n };\n\n await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));\n};\n\nexport default uploadFile;\n"],"names":["files"],"mappings":";AAYA,MAAM,aAAyB,OAAO,KAAK,QAAQ,UAAU;AACrD,QAAA,WAAW,OAAO,SAAS,GAAG;AAEpC,MAAI,CAAC,EAAE,IAAI,OAAO,SAAS,QAAQ,GAAG;AACpC;AAAA,EACF;AAEA,QAAM,gBAAgB,OAAO,OAAO,QAAQ,EAAE,QAAQ,QAAQ;AAExD,QAAA,0BAA0B,CAAC,SAAmB;AAC9C,QAAA,KAAK,WAAW,GAAG;AACd,aAAA;AAAA,IACT;AAEA,UAAM,cAAc,CAAA;AACpB,QAAI,WAAkD;AACtD,QAAI,WAAW;AAEf,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,UAAI,CAAC,UAAU;AACb,eAAO;MACT;AAEM,YAAA,OAAO,KAAK,CAAC;AACb,YAAA,OAAsB,SAAS,WAAW,IAAI;AAEpD,kBAAY,KAAK,IAAI;AAGjB,UAAA,EAAE,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG;AACnC;AAAA,MACF;AAEA,UAAI,CAAC;AAAM,eAAO;AAEd,UAAA,KAAK,SAAS,aAAa;AAC7B,mBAAW,KAAK;AACL,mBAAA,OAAO,WAAW,KAAK,SAAS;AAAA,MAAA,WAClC,KAAK,SAAS,eAAe;AAChC,cAAA,WAAW,KAAK,IAAI,CAAC;AACrB,cAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,GAAG,aAAa,QAAQ,CAAC;AAEtD,YAAI,CAAC;AAAO,iBAAO;AAEnB,mBAAW,MAAM;AACN,mBAAA,OAAO,WAAW,QAAgC;AAAA,MAAA,WACpD,KAAK,SAAS,YAAY;AAC/B,YAAA,EAAE,YAAY,OAAO;AACvB,iBAAO;QACT;AAEA,mBAAW,KAAK;AACL,mBAAA,OAAO,SAAS,QAAQ;AAAA,MAAA,OAC9B;AACL;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,WAAW,OAAO,KAAaA,WAAmB;AAChD,UAAA,QAAQ,IAAI,MAAM,GAAG;AAC3B,UAAM,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,KAAK,KAAK,CAAC;AAEhD,UAAA,WAAW,wBAAwB,IAAI;AAE7C,QAAI,UAAU;AACZ,YAAM,KAAK,EAAE,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,EAAE,IAAI,OAAO,UAAU,SAASA,MAAK;AAAA,IAC3E;AAAA,EAAA;AAGF,QAAM,QAAQ,IAAI,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9E;"}
|