@strapi/core 0.0.0-experimental.3f7b2587c5e3d548262671895cf11d8bf8c9166e → 0.0.0-experimental.8294852592c0a1fb061c5d3576327fa0e80bab5b
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.
Potentially problematic release.
This version of @strapi/core might be problematic. Click here for more details.
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +7 -3
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +6 -2
- package/dist/Strapi.mjs.map +1 -1
- package/dist/core-api/controller/collection-type.d.ts +1 -1
- package/dist/core-api/controller/collection-type.d.ts.map +1 -1
- package/dist/core-api/controller/collection-type.js +9 -20
- package/dist/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs +8 -20
- 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 +2 -2
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +2 -2
- package/dist/core-api/controller/index.mjs.map +1 -1
- package/dist/core-api/controller/single-type.d.ts +1 -1
- package/dist/core-api/controller/single-type.d.ts.map +1 -1
- package/dist/core-api/controller/single-type.js +6 -11
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs +5 -11
- package/dist/core-api/controller/single-type.mjs.map +1 -1
- package/dist/core-api/controller/transform.d.ts +2 -11
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +4 -18
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +4 -18
- package/dist/core-api/controller/transform.mjs.map +1 -1
- package/dist/core-api/service/collection-type.d.ts +28 -5
- package/dist/core-api/service/collection-type.d.ts.map +1 -1
- package/dist/core-api/service/collection-type.js +47 -49
- package/dist/core-api/service/collection-type.js.map +1 -1
- package/dist/core-api/service/collection-type.mjs +47 -50
- package/dist/core-api/service/collection-type.mjs.map +1 -1
- package/dist/core-api/service/core-service.d.ts +4 -0
- package/dist/core-api/service/core-service.d.ts.map +1 -0
- package/dist/core-api/service/core-service.js +12 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +12 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.js +2 -2
- package/dist/core-api/service/index.js.map +1 -1
- package/dist/core-api/service/index.mjs +4 -4
- package/dist/core-api/service/index.mjs.map +1 -1
- package/dist/core-api/service/pagination.d.ts +1 -5
- package/dist/core-api/service/pagination.d.ts.map +1 -1
- package/dist/core-api/service/pagination.js +0 -11
- package/dist/core-api/service/pagination.js.map +1 -1
- package/dist/core-api/service/pagination.mjs +0 -11
- package/dist/core-api/service/pagination.mjs.map +1 -1
- package/dist/core-api/service/single-type.d.ts +14 -8
- package/dist/core-api/service/single-type.d.ts.map +1 -1
- package/dist/core-api/service/single-type.js +36 -50
- package/dist/core-api/service/single-type.js.map +1 -1
- package/dist/core-api/service/single-type.mjs +35 -50
- package/dist/core-api/service/single-type.mjs.map +1 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +2 -12
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +2 -12
- package/dist/factories.mjs.map +1 -1
- package/dist/registries/content-types.d.ts.map +1 -1
- package/dist/registries/content-types.js +1 -2
- package/dist/registries/content-types.js.map +1 -1
- package/dist/registries/content-types.mjs +1 -2
- package/dist/registries/content-types.mjs.map +1 -1
- package/dist/services/document-service/common.d.ts +4 -0
- package/dist/services/document-service/common.d.ts.map +1 -0
- package/dist/services/document-service/common.js +7 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +7 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/document-engine.d.ts.map +1 -1
- package/dist/services/document-service/document-engine.js +117 -76
- package/dist/services/document-service/document-engine.js.map +1 -1
- package/dist/services/document-service/document-engine.mjs +112 -71
- package/dist/services/document-service/document-engine.mjs.map +1 -1
- package/dist/services/document-service/draft-and-publish.d.ts +24 -0
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +41 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +41 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/{document-service.d.ts → index.d.ts} +2 -4
- package/dist/services/document-service/index.d.ts.map +1 -0
- package/dist/services/document-service/index.js +22 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +22 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.d.ts +8 -0
- package/dist/services/document-service/internationalization.d.ts.map +1 -0
- package/dist/services/document-service/internationalization.js +54 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +54 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares.d.ts +8 -0
- package/dist/services/document-service/middlewares.d.ts.map +1 -0
- package/dist/services/document-service/middlewares.js +46 -0
- package/dist/services/document-service/middlewares.js.map +1 -0
- package/dist/services/document-service/middlewares.mjs +46 -0
- package/dist/services/document-service/middlewares.mjs.map +1 -0
- 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/repositories/content-type.js +139 -0
- package/dist/services/document-service/repositories/content-type.js.map +1 -0
- package/dist/services/document-service/repositories/content-type.mjs +139 -0
- package/dist/services/document-service/repositories/content-type.mjs.map +1 -0
- package/dist/services/document-service/transform/data.d.ts +5 -0
- package/dist/services/document-service/transform/data.d.ts.map +1 -0
- package/dist/services/document-service/transform/data.js +13 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +13 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.d.ts +5 -0
- package/dist/services/document-service/transform/fields.d.ts.map +1 -0
- package/dist/services/document-service/transform/fields.js +24 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +24 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/filters.d.ts +3 -0
- package/dist/services/document-service/transform/filters.d.ts.map +1 -0
- package/dist/services/document-service/transform/id-map.d.ts +23 -0
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
- package/dist/services/document-service/transform/id-map.js +72 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +72 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.d.ts +19 -0
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +27 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +27 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.d.ts +3 -0
- package/dist/services/document-service/transform/populate.d.ts.map +1 -0
- package/dist/services/document-service/transform/populate.js +21 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +21 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +13 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +79 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +79 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +10 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +117 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +117 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +4 -0
- package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/data.d.ts +4 -0
- package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/data.js +12 -0
- package/dist/services/document-service/transform/relations/utils/data.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/data.mjs +12 -0
- package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +31 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +31 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/types.d.ts +12 -0
- package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
- package/dist/services/document-service/transform/sort.d.ts +5 -0
- package/dist/services/document-service/transform/sort.d.ts.map +1 -0
- package/dist/services/document-service/transform/types.d.ts +13 -0
- package/dist/services/document-service/transform/types.d.ts.map +1 -0
- package/dist/services/document-service/transform/utils.d.ts +9 -0
- package/dist/services/document-service/transform/utils.d.ts.map +1 -0
- package/dist/services/document-service/utils/populate.d.ts +3 -0
- package/dist/services/document-service/utils/populate.d.ts.map +1 -0
- package/dist/services/document-service/utils/populate.js +41 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +41 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
- package/dist/services/entity-validator/blocks-validator.js +22 -2
- package/dist/services/entity-validator/blocks-validator.js.map +1 -1
- package/dist/services/entity-validator/blocks-validator.mjs +22 -2
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +7 -8
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +7 -8
- package/dist/services/entity-validator/validators.mjs.map +1 -1
- package/dist/services/server/compose-endpoint.d.ts.map +1 -1
- package/dist/services/server/compose-endpoint.js +3 -0
- package/dist/services/server/compose-endpoint.js.map +1 -1
- package/dist/services/server/compose-endpoint.mjs +3 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -1
- package/dist/services/webhook-store.js +2 -2
- package/dist/services/webhook-store.js.map +1 -1
- package/dist/services/webhook-store.mjs +2 -2
- package/dist/services/webhook-store.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/core-api/service/get-fetch-params.d.ts +0 -7
- package/dist/core-api/service/get-fetch-params.d.ts.map +0 -1
- package/dist/core-api/service/get-fetch-params.js +0 -14
- package/dist/core-api/service/get-fetch-params.js.map +0 -1
- package/dist/core-api/service/get-fetch-params.mjs +0 -14
- package/dist/core-api/service/get-fetch-params.mjs.map +0 -1
- package/dist/services/document-service/document-service.d.ts.map +0 -1
- package/dist/services/document-service/document-service.js +0 -132
- package/dist/services/document-service/document-service.js.map +0 -1
- package/dist/services/document-service/document-service.mjs +0 -132
- package/dist/services/document-service/document-service.mjs.map +0 -1
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +0 -26
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +0 -1
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +0 -58
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +0 -1
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +0 -58
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +0 -1
- package/dist/services/document-service/middlewares/defaults/index.d.ts +0 -3
- package/dist/services/document-service/middlewares/defaults/index.d.ts.map +0 -1
- package/dist/services/document-service/middlewares/defaults/index.js +0 -82
- package/dist/services/document-service/middlewares/defaults/index.js.map +0 -1
- package/dist/services/document-service/middlewares/defaults/index.mjs +0 -82
- package/dist/services/document-service/middlewares/defaults/index.mjs.map +0 -1
- package/dist/services/document-service/middlewares/defaults/locales.d.ts +0 -18
- package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +0 -1
- package/dist/services/document-service/middlewares/defaults/locales.js +0 -50
- package/dist/services/document-service/middlewares/defaults/locales.js.map +0 -1
- package/dist/services/document-service/middlewares/defaults/locales.mjs +0 -50
- package/dist/services/document-service/middlewares/defaults/locales.mjs.map +0 -1
- package/dist/services/document-service/middlewares/index.d.ts +0 -11
- package/dist/services/document-service/middlewares/index.d.ts.map +0 -1
- package/dist/services/document-service/middlewares/index.js +0 -59
- package/dist/services/document-service/middlewares/index.js.map +0 -1
- package/dist/services/document-service/middlewares/index.mjs +0 -59
- package/dist/services/document-service/middlewares/index.mjs.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createMiddlewareManager } from "./middlewares.mjs";
|
|
2
|
+
import { createContentTypeRepository } from "./repositories/content-type.mjs";
|
|
3
|
+
const createDocumentService = (strapi) => {
|
|
4
|
+
const repositories = /* @__PURE__ */ new Map();
|
|
5
|
+
const middlewares = createMiddlewareManager();
|
|
6
|
+
const factory = function factory2(uid) {
|
|
7
|
+
if (repositories.has(uid)) {
|
|
8
|
+
return repositories.get(uid);
|
|
9
|
+
}
|
|
10
|
+
const contentType = strapi.contentType(uid);
|
|
11
|
+
const repository = createContentTypeRepository(uid);
|
|
12
|
+
repositories.set(uid, middlewares.wrapObject(repository, { contentType }));
|
|
13
|
+
return repository;
|
|
14
|
+
};
|
|
15
|
+
return Object.assign(factory, {
|
|
16
|
+
use: middlewares.use.bind(middlewares)
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
createDocumentService
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/services/document-service/index.ts"],"sourcesContent":["import { Strapi, Documents } from '@strapi/types';\n\nimport { createMiddlewareManager } from './middlewares';\nimport { createContentTypeRepository } from './repositories/content-type';\n\n/**\n * Repository to :\n * - Access documents via actions (findMany, findOne, create, update, delete, ...)\n * - Execute middlewares on document actions\n * - Apply default parameters to document actions\n *\n * @param strapi\n * @param options.defaults - Default parameters to apply to all actions\n * @param options.parent - Parent repository, used when creating a new repository with .with()\n * @returns DocumentService\n *\n * @example Access documents\n * const article = strapi.documents('api::article.article').create(params)\n * const allArticles = strapi.documents('api::article.article').findMany(params)\n *\n */\n// TODO: support global document service middleware & per repo middlewares\nexport const createDocumentService = (strapi: Strapi): Documents.Service => {\n const repositories = new Map<string, Documents.ServiceInstance>();\n const middlewares = createMiddlewareManager();\n\n const factory = function factory(uid) {\n if (repositories.has(uid)) {\n return repositories.get(uid)!;\n }\n\n const contentType = strapi.contentType(uid);\n const repository = createContentTypeRepository(uid);\n\n repositories.set(uid, middlewares.wrapObject(repository, { contentType }));\n\n return repository;\n } as Documents.Service;\n\n return Object.assign(factory, {\n use: middlewares.use.bind(middlewares),\n });\n};\n"],"names":["factory"],"mappings":";;AAsBa,MAAA,wBAAwB,CAAC,WAAsC;AACpE,QAAA,mCAAmB;AACzB,QAAM,cAAc;AAEd,QAAA,UAAU,SAASA,SAAQ,KAAK;AAChC,QAAA,aAAa,IAAI,GAAG,GAAG;AAClB,aAAA,aAAa,IAAI,GAAG;AAAA,IAC7B;AAEM,UAAA,cAAc,OAAO,YAAY,GAAG;AACpC,UAAA,aAAa,4BAA4B,GAAG;AAErC,iBAAA,IAAI,KAAK,YAAY,WAAW,YAAY,EAAE,YAAa,CAAA,CAAC;AAElE,WAAA;AAAA,EAAA;AAGF,SAAA,OAAO,OAAO,SAAS;AAAA,IAC5B,KAAK,YAAY,IAAI,KAAK,WAAW;AAAA,EAAA,CACtC;AACH;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="lodash" />
|
|
2
|
+
import type { Schema, Documents } from '@strapi/types';
|
|
3
|
+
declare const defaultLocaleCurry: import("lodash").CurriedFunction2<Schema.SingleType | Schema.CollectionType, Documents.Params.All, Promise<Documents.Params.All>>;
|
|
4
|
+
declare const localeToLookupCurry: import("lodash").CurriedFunction2<Schema.SingleType | Schema.CollectionType, Documents.Params.All, Documents.Params.All>;
|
|
5
|
+
declare const multiLocaleToLookupCurry: import("lodash").CurriedFunction2<Schema.SingleType | Schema.CollectionType, Documents.Params.All, Documents.Params.All>;
|
|
6
|
+
declare const localeToDataCurry: import("lodash").CurriedFunction2<Schema.SingleType | Schema.CollectionType, Documents.Params.All, Documents.Params.All>;
|
|
7
|
+
export { defaultLocaleCurry as defaultLocale, localeToLookupCurry as localeToLookup, localeToDataCurry as localeToData, multiLocaleToLookupCurry as multiLocaleToLookup, };
|
|
8
|
+
//# sourceMappingURL=internationalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internationalization.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/internationalization.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA+EvD,QAAA,MAAM,kBAAkB,mIAAuB,CAAC;AAChD,QAAA,MAAM,mBAAmB,0HAAwB,CAAC;AAClD,QAAA,MAAM,wBAAwB,0HAA6B,CAAC;AAC5D,QAAA,MAAM,iBAAiB,0HAAsB,CAAC;AAE9C,OAAO,EACL,kBAAkB,IAAI,aAAa,EACnC,mBAAmB,IAAI,cAAc,EACrC,iBAAiB,IAAI,YAAY,EACjC,wBAAwB,IAAI,mBAAmB,GAChD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const _ = require("lodash/fp");
|
|
4
|
+
const getDefaultLocale = async () => {
|
|
5
|
+
return strapi.plugin("i18n").service("locales").getDefaultLocale();
|
|
6
|
+
};
|
|
7
|
+
const defaultLocale = async (contentType, params) => {
|
|
8
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
9
|
+
return params;
|
|
10
|
+
}
|
|
11
|
+
if (!params.locale) {
|
|
12
|
+
return _.assoc("locale", await getDefaultLocale(), params);
|
|
13
|
+
}
|
|
14
|
+
return params;
|
|
15
|
+
};
|
|
16
|
+
const localeToLookup = (contentType, params) => {
|
|
17
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
18
|
+
return params;
|
|
19
|
+
}
|
|
20
|
+
if (params.locale) {
|
|
21
|
+
return _.assoc(["lookup", "locale"], params.locale, params);
|
|
22
|
+
}
|
|
23
|
+
return params;
|
|
24
|
+
};
|
|
25
|
+
const multiLocaleToLookup = (contentType, params) => {
|
|
26
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
27
|
+
return params;
|
|
28
|
+
}
|
|
29
|
+
if (params.locale) {
|
|
30
|
+
if (params.locale === "*") {
|
|
31
|
+
return params;
|
|
32
|
+
}
|
|
33
|
+
return _.assoc(["lookup", "locale"], params.locale, params);
|
|
34
|
+
}
|
|
35
|
+
return params;
|
|
36
|
+
};
|
|
37
|
+
const localeToData = (contentType, params) => {
|
|
38
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
39
|
+
return params;
|
|
40
|
+
}
|
|
41
|
+
if (params.locale) {
|
|
42
|
+
return _.assoc(["data", "locale"], params.locale, params);
|
|
43
|
+
}
|
|
44
|
+
return params;
|
|
45
|
+
};
|
|
46
|
+
const defaultLocaleCurry = _.curry(defaultLocale);
|
|
47
|
+
const localeToLookupCurry = _.curry(localeToLookup);
|
|
48
|
+
const multiLocaleToLookupCurry = _.curry(multiLocaleToLookup);
|
|
49
|
+
const localeToDataCurry = _.curry(localeToData);
|
|
50
|
+
exports.defaultLocale = defaultLocaleCurry;
|
|
51
|
+
exports.localeToData = localeToDataCurry;
|
|
52
|
+
exports.localeToLookup = localeToLookupCurry;
|
|
53
|
+
exports.multiLocaleToLookup = multiLocaleToLookupCurry;
|
|
54
|
+
//# sourceMappingURL=internationalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internationalization.js","sources":["../../../src/services/document-service/internationalization.ts"],"sourcesContent":["import type { Schema, Documents } from '@strapi/types';\nimport { curry, assoc } from 'lodash/fp';\n\ntype Transform = (\n contentType: Schema.SingleType | Schema.CollectionType,\n params: Documents.Params.All\n) => Documents.Params.All;\n\ntype AsyncTransform = (\n contentType: Schema.SingleType | Schema.CollectionType,\n params: Documents.Params.All\n) => Promise<Documents.Params.All>;\n\nconst getDefaultLocale = async (): Promise<string> => {\n return strapi.plugin('i18n').service('locales').getDefaultLocale();\n};\n\nconst defaultLocale: AsyncTransform = async (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (!params.locale) {\n // TODO: Load default locale from db in i18n\n return assoc('locale', await getDefaultLocale(), params);\n }\n\n return params;\n};\n\n/**\n * Add locale lookup query to the params\n */\nconst localeToLookup: Transform = (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (params.locale) {\n return assoc(['lookup', 'locale'], params.locale, params);\n }\n\n return params;\n};\n\n/**\n * Add locale lookup query to the params\n */\nconst multiLocaleToLookup: Transform = (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (params.locale) {\n if (params.locale === '*') {\n return params;\n }\n\n return assoc(['lookup', 'locale'], params.locale, params);\n }\n\n return params;\n};\n\n/**\n * Translate locale status parameter into the data that will be saved\n */\nconst localeToData: Transform = (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (params.locale) {\n return assoc(['data', 'locale'], params.locale, params);\n }\n\n return params;\n};\n\nconst defaultLocaleCurry = curry(defaultLocale);\nconst localeToLookupCurry = curry(localeToLookup);\nconst multiLocaleToLookupCurry = curry(multiLocaleToLookup);\nconst localeToDataCurry = curry(localeToData);\n\nexport {\n defaultLocaleCurry as defaultLocale,\n localeToLookupCurry as localeToLookup,\n localeToDataCurry as localeToData,\n multiLocaleToLookupCurry as multiLocaleToLookup,\n};\n"],"names":["assoc","curry"],"mappings":";;;AAaA,MAAM,mBAAmB,YAA6B;AACpD,SAAO,OAAO,OAAO,MAAM,EAAE,QAAQ,SAAS,EAAE;AAClD;AAEA,MAAM,gBAAgC,OAAO,aAAa,WAAW;AAC/D,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEI,MAAA,CAAC,OAAO,QAAQ;AAElB,WAAOA,EAAM,MAAA,UAAU,MAAM,oBAAoB,MAAM;AAAA,EACzD;AAEO,SAAA;AACT;AAKA,MAAM,iBAA4B,CAAC,aAAa,WAAW;AACrD,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ;AACjB,WAAOA,EAAAA,MAAM,CAAC,UAAU,QAAQ,GAAG,OAAO,QAAQ,MAAM;AAAA,EAC1D;AAEO,SAAA;AACT;AAKA,MAAM,sBAAiC,CAAC,aAAa,WAAW;AAC1D,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ;AACb,QAAA,OAAO,WAAW,KAAK;AAClB,aAAA;AAAA,IACT;AAEA,WAAOA,EAAAA,MAAM,CAAC,UAAU,QAAQ,GAAG,OAAO,QAAQ,MAAM;AAAA,EAC1D;AAEO,SAAA;AACT;AAKA,MAAM,eAA0B,CAAC,aAAa,WAAW;AACnD,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ;AACjB,WAAOA,EAAAA,MAAM,CAAC,QAAQ,QAAQ,GAAG,OAAO,QAAQ,MAAM;AAAA,EACxD;AAEO,SAAA;AACT;AAEM,MAAA,qBAAqBC,QAAM,aAAa;AACxC,MAAA,sBAAsBA,QAAM,cAAc;AAC1C,MAAA,2BAA2BA,QAAM,mBAAmB;AACpD,MAAA,oBAAoBA,QAAM,YAAY;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { curry, assoc } from "lodash/fp";
|
|
2
|
+
const getDefaultLocale = async () => {
|
|
3
|
+
return strapi.plugin("i18n").service("locales").getDefaultLocale();
|
|
4
|
+
};
|
|
5
|
+
const defaultLocale = async (contentType, params) => {
|
|
6
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
7
|
+
return params;
|
|
8
|
+
}
|
|
9
|
+
if (!params.locale) {
|
|
10
|
+
return assoc("locale", await getDefaultLocale(), params);
|
|
11
|
+
}
|
|
12
|
+
return params;
|
|
13
|
+
};
|
|
14
|
+
const localeToLookup = (contentType, params) => {
|
|
15
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
16
|
+
return params;
|
|
17
|
+
}
|
|
18
|
+
if (params.locale) {
|
|
19
|
+
return assoc(["lookup", "locale"], params.locale, params);
|
|
20
|
+
}
|
|
21
|
+
return params;
|
|
22
|
+
};
|
|
23
|
+
const multiLocaleToLookup = (contentType, params) => {
|
|
24
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
25
|
+
return params;
|
|
26
|
+
}
|
|
27
|
+
if (params.locale) {
|
|
28
|
+
if (params.locale === "*") {
|
|
29
|
+
return params;
|
|
30
|
+
}
|
|
31
|
+
return assoc(["lookup", "locale"], params.locale, params);
|
|
32
|
+
}
|
|
33
|
+
return params;
|
|
34
|
+
};
|
|
35
|
+
const localeToData = (contentType, params) => {
|
|
36
|
+
if (!strapi.plugin("i18n").service("content-types").isLocalizedContentType(contentType)) {
|
|
37
|
+
return params;
|
|
38
|
+
}
|
|
39
|
+
if (params.locale) {
|
|
40
|
+
return assoc(["data", "locale"], params.locale, params);
|
|
41
|
+
}
|
|
42
|
+
return params;
|
|
43
|
+
};
|
|
44
|
+
const defaultLocaleCurry = curry(defaultLocale);
|
|
45
|
+
const localeToLookupCurry = curry(localeToLookup);
|
|
46
|
+
const multiLocaleToLookupCurry = curry(multiLocaleToLookup);
|
|
47
|
+
const localeToDataCurry = curry(localeToData);
|
|
48
|
+
export {
|
|
49
|
+
defaultLocaleCurry as defaultLocale,
|
|
50
|
+
localeToDataCurry as localeToData,
|
|
51
|
+
localeToLookupCurry as localeToLookup,
|
|
52
|
+
multiLocaleToLookupCurry as multiLocaleToLookup
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=internationalization.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internationalization.mjs","sources":["../../../src/services/document-service/internationalization.ts"],"sourcesContent":["import type { Schema, Documents } from '@strapi/types';\nimport { curry, assoc } from 'lodash/fp';\n\ntype Transform = (\n contentType: Schema.SingleType | Schema.CollectionType,\n params: Documents.Params.All\n) => Documents.Params.All;\n\ntype AsyncTransform = (\n contentType: Schema.SingleType | Schema.CollectionType,\n params: Documents.Params.All\n) => Promise<Documents.Params.All>;\n\nconst getDefaultLocale = async (): Promise<string> => {\n return strapi.plugin('i18n').service('locales').getDefaultLocale();\n};\n\nconst defaultLocale: AsyncTransform = async (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (!params.locale) {\n // TODO: Load default locale from db in i18n\n return assoc('locale', await getDefaultLocale(), params);\n }\n\n return params;\n};\n\n/**\n * Add locale lookup query to the params\n */\nconst localeToLookup: Transform = (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (params.locale) {\n return assoc(['lookup', 'locale'], params.locale, params);\n }\n\n return params;\n};\n\n/**\n * Add locale lookup query to the params\n */\nconst multiLocaleToLookup: Transform = (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (params.locale) {\n if (params.locale === '*') {\n return params;\n }\n\n return assoc(['lookup', 'locale'], params.locale, params);\n }\n\n return params;\n};\n\n/**\n * Translate locale status parameter into the data that will be saved\n */\nconst localeToData: Transform = (contentType, params) => {\n if (!strapi.plugin('i18n').service('content-types').isLocalizedContentType(contentType)) {\n return params;\n }\n\n if (params.locale) {\n return assoc(['data', 'locale'], params.locale, params);\n }\n\n return params;\n};\n\nconst defaultLocaleCurry = curry(defaultLocale);\nconst localeToLookupCurry = curry(localeToLookup);\nconst multiLocaleToLookupCurry = curry(multiLocaleToLookup);\nconst localeToDataCurry = curry(localeToData);\n\nexport {\n defaultLocaleCurry as defaultLocale,\n localeToLookupCurry as localeToLookup,\n localeToDataCurry as localeToData,\n multiLocaleToLookupCurry as multiLocaleToLookup,\n};\n"],"names":[],"mappings":";AAaA,MAAM,mBAAmB,YAA6B;AACpD,SAAO,OAAO,OAAO,MAAM,EAAE,QAAQ,SAAS,EAAE;AAClD;AAEA,MAAM,gBAAgC,OAAO,aAAa,WAAW;AAC/D,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEI,MAAA,CAAC,OAAO,QAAQ;AAElB,WAAO,MAAM,UAAU,MAAM,oBAAoB,MAAM;AAAA,EACzD;AAEO,SAAA;AACT;AAKA,MAAM,iBAA4B,CAAC,aAAa,WAAW;AACrD,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ;AACjB,WAAO,MAAM,CAAC,UAAU,QAAQ,GAAG,OAAO,QAAQ,MAAM;AAAA,EAC1D;AAEO,SAAA;AACT;AAKA,MAAM,sBAAiC,CAAC,aAAa,WAAW;AAC1D,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ;AACb,QAAA,OAAO,WAAW,KAAK;AAClB,aAAA;AAAA,IACT;AAEA,WAAO,MAAM,CAAC,UAAU,QAAQ,GAAG,OAAO,QAAQ,MAAM;AAAA,EAC1D;AAEO,SAAA;AACT;AAKA,MAAM,eAA0B,CAAC,aAAa,WAAW;AACnD,MAAA,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,WAAW,GAAG;AAChF,WAAA;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ;AACjB,WAAO,MAAM,CAAC,QAAQ,QAAQ,GAAG,OAAO,QAAQ,MAAM;AAAA,EACxD;AAEO,SAAA;AACT;AAEM,MAAA,qBAAqB,MAAM,aAAa;AACxC,MAAA,sBAAsB,MAAM,cAAc;AAC1C,MAAA,2BAA2B,MAAM,mBAAmB;AACpD,MAAA,oBAAoB,MAAM,YAAY;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type Middleware = (ctx: any, next: () => Promise<void>) => Promise<void>;
|
|
2
|
+
export declare const createMiddlewareManager: () => {
|
|
3
|
+
use(middleware: any): () => Middleware[];
|
|
4
|
+
run(ctx: any, cb: () => void): Promise<void>;
|
|
5
|
+
wrapObject<TSource extends Record<string, any>>(source: TSource, ctxDefaults?: {}): TSource;
|
|
6
|
+
};
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=middlewares.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/middlewares.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzE,eAAO,MAAM,uBAAuB;oBAIhB,GAAG;aAMJ,GAAG,MAAM,MAAM,IAAI;;CA4CrC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const createMiddlewareManager = () => {
|
|
4
|
+
const middlewares = [];
|
|
5
|
+
const manager = {
|
|
6
|
+
use(middleware) {
|
|
7
|
+
middlewares.push(middleware);
|
|
8
|
+
return () => middlewares.splice(middlewares.indexOf(middleware), 1);
|
|
9
|
+
},
|
|
10
|
+
async run(ctx, cb) {
|
|
11
|
+
let index = 0;
|
|
12
|
+
const next = async () => {
|
|
13
|
+
if (index < middlewares.length) {
|
|
14
|
+
return middlewares[index++](ctx, next);
|
|
15
|
+
}
|
|
16
|
+
return cb();
|
|
17
|
+
};
|
|
18
|
+
return next();
|
|
19
|
+
},
|
|
20
|
+
wrapObject(source, ctxDefaults = {}) {
|
|
21
|
+
const facade = {};
|
|
22
|
+
for (const key in source) {
|
|
23
|
+
if (Object.hasOwnProperty.call(source, key)) {
|
|
24
|
+
const prop = source[key];
|
|
25
|
+
if (typeof prop === "function") {
|
|
26
|
+
const newMethod = async (...args) => {
|
|
27
|
+
const ctx = {
|
|
28
|
+
...ctxDefaults,
|
|
29
|
+
action: key,
|
|
30
|
+
args
|
|
31
|
+
};
|
|
32
|
+
return manager.run(ctx, () => prop(...ctx.args));
|
|
33
|
+
};
|
|
34
|
+
facade[key] = newMethod;
|
|
35
|
+
} else {
|
|
36
|
+
facade[key] = prop;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return facade;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return manager;
|
|
44
|
+
};
|
|
45
|
+
exports.createMiddlewareManager = createMiddlewareManager;
|
|
46
|
+
//# sourceMappingURL=middlewares.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewares.js","sources":["../../../src/services/document-service/middlewares.ts"],"sourcesContent":["type Middleware = (ctx: any, next: () => Promise<void>) => Promise<void>;\n\nexport const createMiddlewareManager = () => {\n const middlewares: Middleware[] = [];\n\n const manager = {\n use(middleware: any) {\n middlewares.push(middleware);\n\n return () => middlewares.splice(middlewares.indexOf(middleware), 1);\n },\n\n async run(ctx: any, cb: () => void) {\n let index = 0;\n const next = async () => {\n if (index < middlewares.length) {\n // eslint-disable-next-line no-plusplus\n return middlewares[index++](ctx, next);\n }\n\n return cb();\n };\n\n return next();\n },\n\n wrapObject<TSource extends Record<string, any>>(source: TSource, ctxDefaults = {}): TSource {\n const facade: TSource = {} as TSource;\n\n for (const key in source) {\n if (Object.hasOwnProperty.call(source, key)) {\n const prop = source[key];\n\n if (typeof prop === 'function') {\n const newMethod = async (...args: any[]) => {\n const ctx = {\n ...ctxDefaults,\n action: key,\n args,\n };\n\n return manager.run(ctx, () => prop(...ctx.args));\n };\n\n facade[key] = newMethod as typeof prop;\n } else {\n facade[key] = prop;\n }\n }\n }\n\n return facade;\n },\n };\n\n return manager;\n};\n"],"names":[],"mappings":";;AAEO,MAAM,0BAA0B,MAAM;AAC3C,QAAM,cAA4B,CAAA;AAElC,QAAM,UAAU;AAAA,IACd,IAAI,YAAiB;AACnB,kBAAY,KAAK,UAAU;AAE3B,aAAO,MAAM,YAAY,OAAO,YAAY,QAAQ,UAAU,GAAG,CAAC;AAAA,IACpE;AAAA,IAEA,MAAM,IAAI,KAAU,IAAgB;AAClC,UAAI,QAAQ;AACZ,YAAM,OAAO,YAAY;AACnB,YAAA,QAAQ,YAAY,QAAQ;AAE9B,iBAAO,YAAY,OAAO,EAAE,KAAK,IAAI;AAAA,QACvC;AAEA,eAAO,GAAG;AAAA,MAAA;AAGZ,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,WAAgD,QAAiB,cAAc,IAAa;AAC1F,YAAM,SAAkB,CAAA;AAExB,iBAAW,OAAO,QAAQ;AACxB,YAAI,OAAO,eAAe,KAAK,QAAQ,GAAG,GAAG;AACrC,gBAAA,OAAO,OAAO,GAAG;AAEnB,cAAA,OAAO,SAAS,YAAY;AACxB,kBAAA,YAAY,UAAU,SAAgB;AAC1C,oBAAM,MAAM;AAAA,gBACV,GAAG;AAAA,gBACH,QAAQ;AAAA,gBACR;AAAA,cAAA;AAGK,qBAAA,QAAQ,IAAI,KAAK,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC;AAAA,YAAA;AAGjD,mBAAO,GAAG,IAAI;AAAA,UAAA,OACT;AACL,mBAAO,GAAG,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAGK,SAAA;AACT;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const createMiddlewareManager = () => {
|
|
2
|
+
const middlewares = [];
|
|
3
|
+
const manager = {
|
|
4
|
+
use(middleware) {
|
|
5
|
+
middlewares.push(middleware);
|
|
6
|
+
return () => middlewares.splice(middlewares.indexOf(middleware), 1);
|
|
7
|
+
},
|
|
8
|
+
async run(ctx, cb) {
|
|
9
|
+
let index = 0;
|
|
10
|
+
const next = async () => {
|
|
11
|
+
if (index < middlewares.length) {
|
|
12
|
+
return middlewares[index++](ctx, next);
|
|
13
|
+
}
|
|
14
|
+
return cb();
|
|
15
|
+
};
|
|
16
|
+
return next();
|
|
17
|
+
},
|
|
18
|
+
wrapObject(source, ctxDefaults = {}) {
|
|
19
|
+
const facade = {};
|
|
20
|
+
for (const key in source) {
|
|
21
|
+
if (Object.hasOwnProperty.call(source, key)) {
|
|
22
|
+
const prop = source[key];
|
|
23
|
+
if (typeof prop === "function") {
|
|
24
|
+
const newMethod = async (...args) => {
|
|
25
|
+
const ctx = {
|
|
26
|
+
...ctxDefaults,
|
|
27
|
+
action: key,
|
|
28
|
+
args
|
|
29
|
+
};
|
|
30
|
+
return manager.run(ctx, () => prop(...ctx.args));
|
|
31
|
+
};
|
|
32
|
+
facade[key] = newMethod;
|
|
33
|
+
} else {
|
|
34
|
+
facade[key] = prop;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return facade;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return manager;
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
createMiddlewareManager
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=middlewares.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewares.mjs","sources":["../../../src/services/document-service/middlewares.ts"],"sourcesContent":["type Middleware = (ctx: any, next: () => Promise<void>) => Promise<void>;\n\nexport const createMiddlewareManager = () => {\n const middlewares: Middleware[] = [];\n\n const manager = {\n use(middleware: any) {\n middlewares.push(middleware);\n\n return () => middlewares.splice(middlewares.indexOf(middleware), 1);\n },\n\n async run(ctx: any, cb: () => void) {\n let index = 0;\n const next = async () => {\n if (index < middlewares.length) {\n // eslint-disable-next-line no-plusplus\n return middlewares[index++](ctx, next);\n }\n\n return cb();\n };\n\n return next();\n },\n\n wrapObject<TSource extends Record<string, any>>(source: TSource, ctxDefaults = {}): TSource {\n const facade: TSource = {} as TSource;\n\n for (const key in source) {\n if (Object.hasOwnProperty.call(source, key)) {\n const prop = source[key];\n\n if (typeof prop === 'function') {\n const newMethod = async (...args: any[]) => {\n const ctx = {\n ...ctxDefaults,\n action: key,\n args,\n };\n\n return manager.run(ctx, () => prop(...ctx.args));\n };\n\n facade[key] = newMethod as typeof prop;\n } else {\n facade[key] = prop;\n }\n }\n }\n\n return facade;\n },\n };\n\n return manager;\n};\n"],"names":[],"mappings":"AAEO,MAAM,0BAA0B,MAAM;AAC3C,QAAM,cAA4B,CAAA;AAElC,QAAM,UAAU;AAAA,IACd,IAAI,YAAiB;AACnB,kBAAY,KAAK,UAAU;AAE3B,aAAO,MAAM,YAAY,OAAO,YAAY,QAAQ,UAAU,GAAG,CAAC;AAAA,IACpE;AAAA,IAEA,MAAM,IAAI,KAAU,IAAgB;AAClC,UAAI,QAAQ;AACZ,YAAM,OAAO,YAAY;AACnB,YAAA,QAAQ,YAAY,QAAQ;AAE9B,iBAAO,YAAY,OAAO,EAAE,KAAK,IAAI;AAAA,QACvC;AAEA,eAAO,GAAG;AAAA,MAAA;AAGZ,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,WAAgD,QAAiB,cAAc,IAAa;AAC1F,YAAM,SAAkB,CAAA;AAExB,iBAAW,OAAO,QAAQ;AACxB,YAAI,OAAO,eAAe,KAAK,QAAQ,GAAG,GAAG;AACrC,gBAAA,OAAO,OAAO,GAAG;AAEnB,cAAA,OAAO,SAAS,YAAY;AACxB,kBAAA,YAAY,UAAU,SAAgB;AAC1C,oBAAM,MAAM;AAAA,gBACV,GAAG;AAAA,gBACH,QAAQ;AAAA,gBACR;AAAA,cAAA;AAGK,qBAAA,QAAQ,IAAI,KAAK,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC;AAAA,YAAA;AAGjD,mBAAO,GAAG,IAAI;AAAA,UAAA,OACT;AACL,mBAAO,GAAG,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAGK,SAAA;AACT;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/repositories/content-type.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAK5E,eAAO,MAAM,2BAA2B,EAAE,uBAkKzC,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const _ = require("lodash/fp");
|
|
4
|
+
const strapiUtils = require("@strapi/utils");
|
|
5
|
+
const common = require("../common.js");
|
|
6
|
+
const documentEngine = require("../document-engine.js");
|
|
7
|
+
const draftAndPublish = require("../draft-and-publish.js");
|
|
8
|
+
const internationalization = require("../internationalization.js");
|
|
9
|
+
const createContentTypeRepository = (uid) => {
|
|
10
|
+
const contentType = strapi.contentType(uid);
|
|
11
|
+
const documents = documentEngine({ strapi, db: strapi?.db });
|
|
12
|
+
async function findMany(params = {}) {
|
|
13
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
14
|
+
draftAndPublish.defaultToDraft,
|
|
15
|
+
draftAndPublish.statusToLookup,
|
|
16
|
+
internationalization.defaultLocale(contentType),
|
|
17
|
+
internationalization.localeToLookup(contentType)
|
|
18
|
+
)(params);
|
|
19
|
+
return documents.findMany(uid, queryParams);
|
|
20
|
+
}
|
|
21
|
+
async function findFirst(params = {}) {
|
|
22
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
23
|
+
draftAndPublish.defaultToDraft,
|
|
24
|
+
draftAndPublish.statusToLookup,
|
|
25
|
+
internationalization.defaultLocale(contentType),
|
|
26
|
+
internationalization.localeToLookup(contentType)
|
|
27
|
+
)(params);
|
|
28
|
+
return documents.findFirst(uid, queryParams);
|
|
29
|
+
}
|
|
30
|
+
async function findOne(id, params = {}) {
|
|
31
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
32
|
+
draftAndPublish.defaultToDraft,
|
|
33
|
+
draftAndPublish.statusToLookup,
|
|
34
|
+
internationalization.defaultLocale(contentType),
|
|
35
|
+
internationalization.localeToLookup(contentType)
|
|
36
|
+
)(params);
|
|
37
|
+
return documents.findOne(uid, id, queryParams);
|
|
38
|
+
}
|
|
39
|
+
async function deleteFn(id, params = {}) {
|
|
40
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
41
|
+
_.omit("status"),
|
|
42
|
+
internationalization.defaultLocale(contentType),
|
|
43
|
+
internationalization.multiLocaleToLookup(contentType)
|
|
44
|
+
)(params);
|
|
45
|
+
return documents.delete(uid, id, queryParams);
|
|
46
|
+
}
|
|
47
|
+
async function create(params = {}) {
|
|
48
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
49
|
+
draftAndPublish.setStatusToDraft,
|
|
50
|
+
draftAndPublish.statusToData,
|
|
51
|
+
draftAndPublish.filterDataPublishedAt,
|
|
52
|
+
internationalization.defaultLocale(contentType),
|
|
53
|
+
internationalization.localeToData(contentType)
|
|
54
|
+
)(params);
|
|
55
|
+
const doc = await documents.create(uid, queryParams);
|
|
56
|
+
if (params.status === "published") {
|
|
57
|
+
return publish(doc.documentId, params).then((doc2) => doc2.versions[0]);
|
|
58
|
+
}
|
|
59
|
+
return doc;
|
|
60
|
+
}
|
|
61
|
+
async function clone(id, params = {}) {
|
|
62
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
63
|
+
draftAndPublish.filterDataPublishedAt,
|
|
64
|
+
internationalization.localeToLookup(contentType)
|
|
65
|
+
)(params);
|
|
66
|
+
return documents.clone(uid, id, queryParams);
|
|
67
|
+
}
|
|
68
|
+
async function update(id, params = {}) {
|
|
69
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
70
|
+
draftAndPublish.setStatusToDraft,
|
|
71
|
+
draftAndPublish.statusToLookup,
|
|
72
|
+
draftAndPublish.statusToData,
|
|
73
|
+
draftAndPublish.filterDataPublishedAt,
|
|
74
|
+
// Default locale will be set if not provided
|
|
75
|
+
internationalization.defaultLocale(contentType),
|
|
76
|
+
internationalization.localeToLookup(contentType),
|
|
77
|
+
internationalization.localeToData(contentType)
|
|
78
|
+
)(params);
|
|
79
|
+
let updatedDraft = await documents.update(uid, id, queryParams);
|
|
80
|
+
if (!updatedDraft) {
|
|
81
|
+
const documentExists = await strapi.db.query(contentType.uid).findOne({ where: { documentId: id } });
|
|
82
|
+
if (documentExists) {
|
|
83
|
+
updatedDraft = await create({
|
|
84
|
+
...queryParams,
|
|
85
|
+
data: { ...queryParams.data, documentId: id }
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (updatedDraft && params.status === "published") {
|
|
90
|
+
return publish(id, params).then((doc) => doc.versions[0]);
|
|
91
|
+
}
|
|
92
|
+
return updatedDraft;
|
|
93
|
+
}
|
|
94
|
+
async function count(params = {}) {
|
|
95
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
96
|
+
draftAndPublish.defaultToDraft,
|
|
97
|
+
draftAndPublish.statusToLookup,
|
|
98
|
+
internationalization.defaultLocale(contentType),
|
|
99
|
+
internationalization.localeToLookup(contentType)
|
|
100
|
+
)(params);
|
|
101
|
+
return documents.count(uid, queryParams);
|
|
102
|
+
}
|
|
103
|
+
async function publish(id, params = {}) {
|
|
104
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
105
|
+
internationalization.defaultLocale(contentType),
|
|
106
|
+
internationalization.multiLocaleToLookup(contentType)
|
|
107
|
+
)(params);
|
|
108
|
+
return documents.publish(uid, id, queryParams);
|
|
109
|
+
}
|
|
110
|
+
async function unpublish(id, params = {}) {
|
|
111
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
112
|
+
internationalization.defaultLocale(contentType),
|
|
113
|
+
internationalization.multiLocaleToLookup(contentType)
|
|
114
|
+
)(params);
|
|
115
|
+
return documents.unpublish(uid, id, queryParams);
|
|
116
|
+
}
|
|
117
|
+
async function discardDraft(id, params = {}) {
|
|
118
|
+
const queryParams = await strapiUtils.pipeAsync(
|
|
119
|
+
internationalization.defaultLocale(contentType),
|
|
120
|
+
internationalization.multiLocaleToLookup(contentType)
|
|
121
|
+
)(params);
|
|
122
|
+
return documents.discardDraft(uid, id, queryParams);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
findMany: common.wrapInTransaction(findMany),
|
|
126
|
+
findFirst: common.wrapInTransaction(findFirst),
|
|
127
|
+
findOne: common.wrapInTransaction(findOne),
|
|
128
|
+
delete: common.wrapInTransaction(deleteFn),
|
|
129
|
+
create: common.wrapInTransaction(create),
|
|
130
|
+
clone: common.wrapInTransaction(clone),
|
|
131
|
+
update: common.wrapInTransaction(update),
|
|
132
|
+
count: common.wrapInTransaction(count),
|
|
133
|
+
publish: common.wrapInTransaction(publish),
|
|
134
|
+
unpublish: common.wrapInTransaction(unpublish),
|
|
135
|
+
discardDraft: common.wrapInTransaction(discardDraft)
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
exports.createContentTypeRepository = createContentTypeRepository;
|
|
139
|
+
//# sourceMappingURL=content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.js","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":["createDocumentEngine","pipeAsync","DP.defaultToDraft","DP.statusToLookup","i18n.defaultLocale","i18n.localeToLookup","omit","i18n.multiLocaleToLookup","DP.setStatusToDraft","DP.statusToData","DP.filterDataPublishedAt","i18n.localeToData","doc","wrapInTransaction"],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { omit } from "lodash/fp";
|
|
2
|
+
import { pipeAsync } from "@strapi/utils";
|
|
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
|
+
const documents = createDocumentEngine({ strapi, db: strapi?.db });
|
|
10
|
+
async function findMany(params = {}) {
|
|
11
|
+
const queryParams = await pipeAsync(
|
|
12
|
+
defaultToDraft,
|
|
13
|
+
statusToLookup,
|
|
14
|
+
defaultLocaleCurry(contentType),
|
|
15
|
+
localeToLookupCurry(contentType)
|
|
16
|
+
)(params);
|
|
17
|
+
return documents.findMany(uid, queryParams);
|
|
18
|
+
}
|
|
19
|
+
async function findFirst(params = {}) {
|
|
20
|
+
const queryParams = await pipeAsync(
|
|
21
|
+
defaultToDraft,
|
|
22
|
+
statusToLookup,
|
|
23
|
+
defaultLocaleCurry(contentType),
|
|
24
|
+
localeToLookupCurry(contentType)
|
|
25
|
+
)(params);
|
|
26
|
+
return documents.findFirst(uid, queryParams);
|
|
27
|
+
}
|
|
28
|
+
async function findOne(id, params = {}) {
|
|
29
|
+
const queryParams = await pipeAsync(
|
|
30
|
+
defaultToDraft,
|
|
31
|
+
statusToLookup,
|
|
32
|
+
defaultLocaleCurry(contentType),
|
|
33
|
+
localeToLookupCurry(contentType)
|
|
34
|
+
)(params);
|
|
35
|
+
return documents.findOne(uid, id, queryParams);
|
|
36
|
+
}
|
|
37
|
+
async function deleteFn(id, params = {}) {
|
|
38
|
+
const queryParams = await pipeAsync(
|
|
39
|
+
omit("status"),
|
|
40
|
+
defaultLocaleCurry(contentType),
|
|
41
|
+
multiLocaleToLookupCurry(contentType)
|
|
42
|
+
)(params);
|
|
43
|
+
return documents.delete(uid, id, queryParams);
|
|
44
|
+
}
|
|
45
|
+
async function create(params = {}) {
|
|
46
|
+
const queryParams = await pipeAsync(
|
|
47
|
+
setStatusToDraft,
|
|
48
|
+
statusToData,
|
|
49
|
+
filterDataPublishedAt,
|
|
50
|
+
defaultLocaleCurry(contentType),
|
|
51
|
+
localeToDataCurry(contentType)
|
|
52
|
+
)(params);
|
|
53
|
+
const doc = await documents.create(uid, queryParams);
|
|
54
|
+
if (params.status === "published") {
|
|
55
|
+
return publish(doc.documentId, params).then((doc2) => doc2.versions[0]);
|
|
56
|
+
}
|
|
57
|
+
return doc;
|
|
58
|
+
}
|
|
59
|
+
async function clone(id, params = {}) {
|
|
60
|
+
const queryParams = await pipeAsync(
|
|
61
|
+
filterDataPublishedAt,
|
|
62
|
+
localeToLookupCurry(contentType)
|
|
63
|
+
)(params);
|
|
64
|
+
return documents.clone(uid, id, queryParams);
|
|
65
|
+
}
|
|
66
|
+
async function update(id, params = {}) {
|
|
67
|
+
const queryParams = await pipeAsync(
|
|
68
|
+
setStatusToDraft,
|
|
69
|
+
statusToLookup,
|
|
70
|
+
statusToData,
|
|
71
|
+
filterDataPublishedAt,
|
|
72
|
+
// Default locale will be set if not provided
|
|
73
|
+
defaultLocaleCurry(contentType),
|
|
74
|
+
localeToLookupCurry(contentType),
|
|
75
|
+
localeToDataCurry(contentType)
|
|
76
|
+
)(params);
|
|
77
|
+
let updatedDraft = await documents.update(uid, id, queryParams);
|
|
78
|
+
if (!updatedDraft) {
|
|
79
|
+
const documentExists = await strapi.db.query(contentType.uid).findOne({ where: { documentId: id } });
|
|
80
|
+
if (documentExists) {
|
|
81
|
+
updatedDraft = await create({
|
|
82
|
+
...queryParams,
|
|
83
|
+
data: { ...queryParams.data, documentId: id }
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (updatedDraft && params.status === "published") {
|
|
88
|
+
return publish(id, params).then((doc) => doc.versions[0]);
|
|
89
|
+
}
|
|
90
|
+
return updatedDraft;
|
|
91
|
+
}
|
|
92
|
+
async function count(params = {}) {
|
|
93
|
+
const queryParams = await pipeAsync(
|
|
94
|
+
defaultToDraft,
|
|
95
|
+
statusToLookup,
|
|
96
|
+
defaultLocaleCurry(contentType),
|
|
97
|
+
localeToLookupCurry(contentType)
|
|
98
|
+
)(params);
|
|
99
|
+
return documents.count(uid, queryParams);
|
|
100
|
+
}
|
|
101
|
+
async function publish(id, params = {}) {
|
|
102
|
+
const queryParams = await pipeAsync(
|
|
103
|
+
defaultLocaleCurry(contentType),
|
|
104
|
+
multiLocaleToLookupCurry(contentType)
|
|
105
|
+
)(params);
|
|
106
|
+
return documents.publish(uid, id, queryParams);
|
|
107
|
+
}
|
|
108
|
+
async function unpublish(id, params = {}) {
|
|
109
|
+
const queryParams = await pipeAsync(
|
|
110
|
+
defaultLocaleCurry(contentType),
|
|
111
|
+
multiLocaleToLookupCurry(contentType)
|
|
112
|
+
)(params);
|
|
113
|
+
return documents.unpublish(uid, id, queryParams);
|
|
114
|
+
}
|
|
115
|
+
async function discardDraft(id, params = {}) {
|
|
116
|
+
const queryParams = await pipeAsync(
|
|
117
|
+
defaultLocaleCurry(contentType),
|
|
118
|
+
multiLocaleToLookupCurry(contentType)
|
|
119
|
+
)(params);
|
|
120
|
+
return documents.discardDraft(uid, id, queryParams);
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
findMany: wrapInTransaction(findMany),
|
|
124
|
+
findFirst: wrapInTransaction(findFirst),
|
|
125
|
+
findOne: wrapInTransaction(findOne),
|
|
126
|
+
delete: wrapInTransaction(deleteFn),
|
|
127
|
+
create: wrapInTransaction(create),
|
|
128
|
+
clone: wrapInTransaction(clone),
|
|
129
|
+
update: wrapInTransaction(update),
|
|
130
|
+
count: wrapInTransaction(count),
|
|
131
|
+
publish: wrapInTransaction(publish),
|
|
132
|
+
unpublish: wrapInTransaction(unpublish),
|
|
133
|
+
discardDraft: wrapInTransaction(discardDraft)
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
export {
|
|
137
|
+
createContentTypeRepository
|
|
138
|
+
};
|
|
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":";;;;;;AASa,MAAA,8BAAuD,CAAC,QAAQ;AACrE,QAAA,cAAc,OAAO,YAAY,GAAG;AAG1C,QAAM,YAAY,qBAAqB,EAAE,QAAQ,IAAI,QAAQ,IAAI;AAElD,iBAAA,SAAS,SAAS,IAAW;AAE1C,UAAM,cAAc,MAAM;AAAA,MACxBA;AAAAA,MACAC;AAAAA,MACAC,mBAAmB,WAAW;AAAA,MAC9BC,oBAAoB,WAAW;AAAA,MAC/B,MAAM;AAED,WAAA,UAAU,SAAS,KAAK,WAAW;AAAA,EAC5C;AAEe,iBAAA,UAAU,SAAS,IAAW;AAC3C,UAAM,cAAc,MAAM;AAAA,MACxBH;AAAAA,MACAC;AAAAA,MACAC,mBAAmB,WAAW;AAAA,MAC9BC,oBAAoB,WAAW;AAAA,MAC/B,MAAM;AAED,WAAA,UAAU,UAAU,KAAK,WAAW;AAAA,EAC7C;AAEA,iBAAe,QAAQ,IAAY,SAAS,IAAW;AACrD,UAAM,cAAc,MAAM;AAAA,MACxBH;AAAAA,MACAC;AAAAA,MACAC,mBAAmB,WAAW;AAAA,MAC9BC,oBAAoB,WAAW;AAAA,MAC/B,MAAM;AAER,WAAO,UAAU,QAAQ,KAAK,IAAI,WAAW;AAAA,EAC/C;AAEA,iBAAe,SAAS,IAAY,SAAS,IAAW;AACtD,UAAM,cAAc,MAAM;AAAA,MACxB,KAAK,QAAQ;AAAA,MACbD,mBAAmB,WAAW;AAAA,MAC9BE,yBAAyB,WAAW;AAAA,MACpC,MAAM;AAER,WAAO,UAAU,OAAO,KAAK,IAAI,WAAW;AAAA,EAC9C;AAEe,iBAAA,OAAO,SAAS,IAAW;AACxC,UAAM,cAAc,MAAM;AAAA,MACxBC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAL,mBAAmB,WAAW;AAAA,MAC9BM,kBAAkB,WAAW;AAAA,MAC7B,MAAM;AAER,UAAM,MAAM,MAAM,UAAU,OAAO,KAAK,WAAW;AAE/C,QAAA,OAAO,WAAW,aAAa;AAC1B,aAAA,QAAQ,IAAI,YAAY,MAAM,EAAE,KAAK,CAACC,SAAQA,KAAI,SAAS,CAAC,CAAC;AAAA,IACtE;AAEO,WAAA;AAAA,EACT;AAEA,iBAAe,MAAM,IAAY,SAAS,IAAW;AACnD,UAAM,cAAc,MAAM;AAAA,MACxBF;AAAAA,MACAJ,oBAAoB,WAAW;AAAA,MAC/B,MAAM;AAER,WAAO,UAAU,MAAM,KAAK,IAAI,WAAW;AAAA,EAC7C;AAEA,iBAAe,OAAO,IAAY,SAAS,IAAW;AACpD,UAAM,cAAc,MAAM;AAAA,MACxBE;AAAAA,MACAJ;AAAAA,MACAK;AAAAA,MACAC;AAAAA;AAAAA,MAEAL,mBAAmB,WAAW;AAAA,MAC9BC,oBAAoB,WAAW;AAAA,MAC/BK,kBAAkB,WAAW;AAAA,MAC7B,MAAM;AAER,QAAI,eAAoB,MAAM,UAAU,OAAO,KAAK,IAAI,WAAW;AAEnE,QAAI,CAAC,cAAc;AACjB,YAAM,iBAAiB,MAAM,OAAO,GACjC,MAAM,YAAY,GAAG,EACrB,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAA,EAAM,CAAA;AAExC,UAAI,gBAAgB;AAClB,uBAAe,MAAM,OAAO;AAAA,UAC1B,GAAG;AAAA,UACH,MAAM,EAAE,GAAG,YAAY,MAAM,YAAY,GAAG;AAAA,QAAA,CAC7C;AAAA,MACH;AAAA,IACF;AAEI,QAAA,gBAAgB,OAAO,WAAW,aAAa;AAC1C,aAAA,QAAQ,IAAI,MAAM,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;AAAA,IAC1D;AAEO,WAAA;AAAA,EACT;AAEe,iBAAA,MAAM,SAAS,IAAW;AACvC,UAAM,cAAc,MAAM;AAAA,MACxBR;AAAAA,MACAC;AAAAA,MACAC,mBAAmB,WAAW;AAAA,MAC9BC,oBAAoB,WAAW;AAAA,MAC/B,MAAM;AAED,WAAA,UAAU,MAAM,KAAK,WAAW;AAAA,EACzC;AAEA,iBAAe,QAAQ,IAAY,SAAS,IAAW;AACrD,UAAM,cAAc,MAAM;AAAA,MACxBD,mBAAmB,WAAW;AAAA,MAC9BE,yBAAyB,WAAW;AAAA,MACpC,MAAM;AAER,WAAO,UAAU,QAAQ,KAAK,IAAI,WAAW;AAAA,EAC/C;AAEA,iBAAe,UAAU,IAAY,SAAS,IAAW;AACvD,UAAM,cAAc,MAAM;AAAA,MACxBF,mBAAmB,WAAW;AAAA,MAC9BE,yBAAyB,WAAW;AAAA,MACpC,MAAM;AAER,WAAO,UAAU,UAAU,KAAK,IAAI,WAAW;AAAA,EACjD;AAEA,iBAAe,aAAa,IAAY,SAAS,IAAW;AAC1D,UAAM,cAAc,MAAM;AAAA,MACxBF,mBAAmB,WAAW;AAAA,MAC9BE,yBAAyB,WAAW;AAAA,MACpC,MAAM;AAER,WAAO,UAAU,aAAa,KAAK,IAAI,WAAW;AAAA,EACpD;AAEO,SAAA;AAAA,IACL,UAAU,kBAAkB,QAAQ;AAAA,IACpC,WAAW,kBAAkB,SAAS;AAAA,IACtC,SAAS,kBAAkB,OAAO;AAAA,IAClC,QAAQ,kBAAkB,QAAQ;AAAA,IAClC,QAAQ,kBAAkB,MAAM;AAAA,IAChC,OAAO,kBAAkB,KAAK;AAAA,IAC9B,QAAQ,kBAAkB,MAAM;AAAA,IAChC,OAAO,kBAAkB,KAAK;AAAA,IAC9B,SAAS,kBAAkB,OAAO;AAAA,IAClC,WAAW,kBAAkB,SAAS;AAAA,IACtC,cAAc,kBAAkB,YAAY;AAAA,EAAA;AAEhD;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/data.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,aAAa,SAAgB,GAAG,QAAQ,GAAG,qDAWvD,CAAC"}
|