@strapi/core 0.0.0-experimental.3f7b2587c5e3d548262671895cf11d8bf8c → 0.0.0-experimental.651a6b8ded3c452fedf2a8598f08c51c214e6cf7
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/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/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/types.d.ts +13 -0
- package/dist/services/document-service/transform/types.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/service/single-type.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/service/single-type.ts"],"sourcesContent":["import type { Schema, CoreApi } from '@strapi/types';\nimport { CoreService } from './core-service';\n\nexport class SingleTypeService extends CoreService implements CoreApi.Service.SingleType {\n private contentType: Schema.SingleType;\n\n constructor(contentType: Schema.SingleType) {\n super();\n\n this.contentType = contentType;\n }\n\n async getDocumentId(opts = {}) {\n const { uid } = this.contentType;\n\n return strapi\n .documents(uid)\n .findFirst(opts)\n .then((document) => document?.documentId as string);\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findFirst(this.getFetchParams(params));\n }\n\n async createOrUpdate(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n const documentId = await this.getDocumentId({ status: fetchParams.status });\n\n if (documentId) {\n return strapi.documents(uid).update(documentId, this.getFetchParams(params));\n }\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n async delete(params = {}) {\n const { uid } = this.contentType;\n\n const documentId = await this.getDocumentId();\n if (!documentId) return { deletedEntries: 0 };\n\n return strapi.documents(uid).delete(documentId, this.getFetchParams(params));\n }\n}\n\nconst createSingleTypeService = (contentType: Schema.SingleType): CoreApi.Service.SingleType => {\n return new SingleTypeService(contentType);\n};\n\nexport { createSingleTypeService };\n"],"names":[],"mappings":";AAGO,MAAM,0BAA0B,YAAkD;AAAA,EAC/E;AAAA,EAER,YAAY,aAAgC;AACpC;AAEN,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,MAAM,cAAc,OAAO,IAAI;AACvB,UAAA,EAAE,IAAI,IAAI,KAAK;AAEd,WAAA,OACJ,UAAU,GAAG,EACb,UAAU,IAAI,EACd,KAAK,CAAC,aAAa,UAAU,UAAoB;AAAA,EACtD;AAAA,EAEA,MAAM,KAAK,SAAS,IAAI;AAChB,UAAA,EAAE,IAAI,IAAI,KAAK;AAEd,WAAA,OAAO,UAAU,GAAG,EAAE,UAAU,KAAK,eAAe,MAAM,CAAC;AAAA,EACpE;AAAA,EAEA,MAAM,eAAe,SAAS,IAAI;AAC1B,UAAA,EAAE,IAAI,IAAI,KAAK;AAEf,UAAA,cAAc,KAAK,eAAe,MAAM;AACxC,UAAA,aAAa,MAAM,KAAK,cAAc,EAAE,QAAQ,YAAY,QAAQ;AAE1E,QAAI,YAAY;AACP,aAAA,OAAO,UAAU,GAAG,EAAE,OAAO,YAAY,KAAK,eAAe,MAAM,CAAC;AAAA,IAC7E;AAEO,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,KAAK,eAAe,MAAM,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,OAAO,SAAS,IAAI;AAClB,UAAA,EAAE,IAAI,IAAI,KAAK;AAEf,UAAA,aAAa,MAAM,KAAK;AAC9B,QAAI,CAAC;AAAmB,aAAA,EAAE,gBAAgB;AAEnC,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,YAAY,KAAK,eAAe,MAAM,CAAC;AAAA,EAC7E;AACF;AAEM,MAAA,0BAA0B,CAAC,gBAA+D;AACvF,SAAA,IAAI,kBAAkB,WAAW;AAC1C;"}
|
package/dist/factories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAUpE,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAUpE,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAElF,QAAA,MAAM,oBAAoB;YAOM,MAAM;yNAwBrC,CAAC;AAEF,iBAAS,iBAAiB,CACxB,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,WAAW,EACnC,QAAQ,SAAS,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAEjD,GAAG,EAAE,IAAI,EACT,GAAG,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAE9D,MAAM;MAAK,QAAQ,GAAG,QAAQ,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CActF;AAED,iBAAS,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,WAAW,EACxD,GAAG,EAAE,CAAC,EACN,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,CA+BvB;AAED,QAAA,MAAM,kBAAkB,kDAAiD,OAExE,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/factories.js
CHANGED
|
@@ -7,19 +7,9 @@ const index$2 = require("./core-api/routes/index.js");
|
|
|
7
7
|
const symbols = {
|
|
8
8
|
CustomController: Symbol("StrapiCustomCoreController")
|
|
9
9
|
};
|
|
10
|
-
const getContentTypeProxy = (strapi2, uid) => {
|
|
11
|
-
return new Proxy(strapi2.contentType(uid), {
|
|
12
|
-
get(target, prop) {
|
|
13
|
-
const contentType = strapi2.contentType(uid);
|
|
14
|
-
if (prop in contentType) {
|
|
15
|
-
return contentType[prop];
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
10
|
const createCoreController = (uid, cfg) => {
|
|
21
11
|
return ({ strapi: strapi2 }) => {
|
|
22
|
-
const baseController = index.createController({ contentType:
|
|
12
|
+
const baseController = index.createController({ contentType: strapi2.contentType(uid) });
|
|
23
13
|
const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
|
|
24
14
|
for (const methodName of Object.keys(baseController)) {
|
|
25
15
|
if (userCtrl[methodName] === void 0) {
|
|
@@ -40,7 +30,7 @@ const createCoreController = (uid, cfg) => {
|
|
|
40
30
|
};
|
|
41
31
|
function createCoreService(uid, cfg) {
|
|
42
32
|
return ({ strapi: strapi2 }) => {
|
|
43
|
-
const baseService = index$1.createService({ contentType:
|
|
33
|
+
const baseService = index$1.createService({ contentType: strapi2.contentType(uid) });
|
|
44
34
|
const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
|
|
45
35
|
for (const methodName of Object.keys(baseService)) {
|
|
46
36
|
if (userService[methodName] === void 0) {
|
package/dist/factories.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\
|
|
1
|
+
{"version":3,"file":"factories.js","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends Common.UID.ContentType,\n TController extends CoreApi.Controller.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Controller.Extendable<TUID> & TController>>\n) => {\n return ({ strapi }: { strapi: Strapi }): TController & CoreApi.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends Common.UID.ContentType,\n TService extends CoreApi.Service.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>\n) {\n return ({ strapi }: { strapi: Strapi }): TService & CoreApi.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends Common.UID.ContentType>(\n uid: T,\n cfg?: CoreApi.Router.RouterConfig<T>\n): CoreApi.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: CoreApi.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Common.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","createController","createService","createRoutes","pipe","routes","omit","pick"],"mappings":";;;;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QACG;AACH,SAAO,CAAC,EAAE,QAAAA,cAAqF;AACvF,UAAA,iBAAiBC,uBAAiB,EAAE,aAAaD,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC,EAAE,QAAAA,cAA+E;AACjF,UAAA,cAAcE,sBAAc,EAAE,aAAaF,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KACuB;AACjB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgBG,QAAAA,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiBC,EAAA;AAAA,UACrB,CAACC,YAAY,SAASC,EAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,EAAAA,KAAK,MAAMF,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA8B,eAA2B;AAClF,SAAO,QAAQ,oBAAoB;AACrC;;;;;"}
|
package/dist/factories.mjs
CHANGED
|
@@ -5,19 +5,9 @@ import { createRoutes } from "./core-api/routes/index.mjs";
|
|
|
5
5
|
const symbols = {
|
|
6
6
|
CustomController: Symbol("StrapiCustomCoreController")
|
|
7
7
|
};
|
|
8
|
-
const getContentTypeProxy = (strapi2, uid) => {
|
|
9
|
-
return new Proxy(strapi2.contentType(uid), {
|
|
10
|
-
get(target, prop) {
|
|
11
|
-
const contentType = strapi2.contentType(uid);
|
|
12
|
-
if (prop in contentType) {
|
|
13
|
-
return contentType[prop];
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
8
|
const createCoreController = (uid, cfg) => {
|
|
19
9
|
return ({ strapi: strapi2 }) => {
|
|
20
|
-
const baseController = createController({ contentType:
|
|
10
|
+
const baseController = createController({ contentType: strapi2.contentType(uid) });
|
|
21
11
|
const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
|
|
22
12
|
for (const methodName of Object.keys(baseController)) {
|
|
23
13
|
if (userCtrl[methodName] === void 0) {
|
|
@@ -38,7 +28,7 @@ const createCoreController = (uid, cfg) => {
|
|
|
38
28
|
};
|
|
39
29
|
function createCoreService(uid, cfg) {
|
|
40
30
|
return ({ strapi: strapi2 }) => {
|
|
41
|
-
const baseService = createService({ contentType:
|
|
31
|
+
const baseService = createService({ contentType: strapi2.contentType(uid) });
|
|
42
32
|
const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
|
|
43
33
|
for (const methodName of Object.keys(baseService)) {
|
|
44
34
|
if (userService[methodName] === void 0) {
|
package/dist/factories.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.mjs","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\
|
|
1
|
+
{"version":3,"file":"factories.mjs","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends Common.UID.ContentType,\n TController extends CoreApi.Controller.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Controller.Extendable<TUID> & TController>>\n) => {\n return ({ strapi }: { strapi: Strapi }): TController & CoreApi.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends Common.UID.ContentType,\n TService extends CoreApi.Service.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>\n) {\n return ({ strapi }: { strapi: Strapi }): TService & CoreApi.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends Common.UID.ContentType>(\n uid: T,\n cfg?: CoreApi.Router.RouterConfig<T>\n): CoreApi.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: CoreApi.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Common.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","routes"],"mappings":";;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QACG;AACH,SAAO,CAAC,EAAE,QAAAA,cAAqF;AACvF,UAAA,iBAAiB,iBAAiB,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC,EAAE,QAAAA,cAA+E;AACjF,UAAA,cAAc,cAAc,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KACuB;AACjB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgB,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiB;AAAA,UACrB,CAACC,YAAY,SAAS,KAAK,QAAQA,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAO,KAAK,MAAMA,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA8B,eAA2B;AAClF,SAAO,QAAQ,oBAAoB;AACrC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../src/registries/content-types.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAqB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC/D,KAAK,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;AAcnF,QAAA,MAAM,oBAAoB;IAItB;;OAEG;;IAKH;;OAEG;aACM,OAAO,GAAG,CAAC,WAAW;IAI/B;;OAEG;sBACe,MAAM;IAIxB;;OAEG;aACM,OAAO,GAAG,CAAC,WAAW,eAAe,OAAO,WAAW;IAKhE;;OAEG;mBACY,MAAM,mBAAmB,iBAAiB;IAczD;;OAEG;kBACW,OAAO,GAAG,CAAC,WAAW,YAAY,mBAAmB;
|
|
1
|
+
{"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../src/registries/content-types.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAqB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC/D,KAAK,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;AAcnF,QAAA,MAAM,oBAAoB;IAItB;;OAEG;;IAKH;;OAEG;aACM,OAAO,GAAG,CAAC,WAAW;IAI/B;;OAEG;sBACe,MAAM;IAIxB;;OAEG;aACM,OAAO,GAAG,CAAC,WAAW,eAAe,OAAO,WAAW;IAKhE;;OAEG;mBACY,MAAM,mBAAmB,iBAAiB;IAczD;;OAEG;kBACW,OAAO,GAAG,CAAC,WAAW,YAAY,mBAAmB;CAYtE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -61,8 +61,7 @@ const contentTypesRegistry = () => {
|
|
|
61
61
|
if (!currentContentType) {
|
|
62
62
|
throw new Error(`Content-Type ${ctUID} doesn't exist`);
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
contentTypes[ctUID] = newContentType;
|
|
64
|
+
extendFn(currentContentType);
|
|
66
65
|
return this;
|
|
67
66
|
}
|
|
68
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.js","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Schema.ContentType) => Schema.ContentType;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Schema.ContentType> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: Common.UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: Common.UID.ContentType, contentType: Schema.ContentType) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: Common.UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n
|
|
1
|
+
{"version":3,"file":"content-types.js","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Schema.ContentType) => Schema.ContentType;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Schema.ContentType> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: Common.UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: Common.UID.ContentType, contentType: Schema.ContentType) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: Common.UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n extendFn(currentContentType);\n\n return this;\n },\n };\n};\n\nexport default contentTypesRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","addNamespace","has","createContentType"],"mappings":";;;;AAQA,MAAM,gCAAgC,CAAC,iBAAoC;AACzE,aAAW,UAAU,OAAO,KAAK,YAAY,GAAG;AACxC,UAAA,cAAc,aAAa,MAAM;AAEvC,QAAI,WAAW,YAAY,OAAO,KAAK,cAAc;AACnD,YAAM,IAAI;AAAA,QACR,6EAA6E,MAAM,QAAQ,YAAY,OAAO,KAAK,YAAY;AAAA,MAAA;AAAA,IAEnI;AAAA,EACF;AACF;AAEA,MAAM,uBAAuB,MAAM;AACjC,QAAM,eAAmD,CAAA;AAElD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,YAAY;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA6B;AAC/B,aAAO,aAAa,GAAG;AAAA,IACzB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,EAAA,OAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,YAAY;AAAA,IACtE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA6B,aAAiC;AAChE,mBAAa,GAAG,IAAI;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,iBAAoC;AACzD,oCAA8B,eAAe;AAE7C,iBAAW,aAAa,OAAO,KAAK,eAAe,GAAG;AAC9C,cAAA,MAAMI,UAAAA,aAAa,WAAWJ,WAAS;AAEzC,YAAAK,EAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,gBAAgB,GAAG,+BAA+B;AAAA,QACpE;AAEA,qBAAa,GAAG,IAAIC,MAAA,kBAAkB,KAAK,gBAAgB,SAAS,CAAC;AAAA,MACvE;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,OAA+B,UAA+B;AAC7D,YAAA,qBAAqB,KAAK,IAAI,KAAK;AAEzC,UAAI,CAAC,oBAAoB;AACvB,cAAM,IAAI,MAAM,gBAAgB,KAAK,gBAAgB;AAAA,MACvD;AAEA,eAAS,kBAAkB;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
|
|
@@ -60,8 +60,7 @@ const contentTypesRegistry = () => {
|
|
|
60
60
|
if (!currentContentType) {
|
|
61
61
|
throw new Error(`Content-Type ${ctUID} doesn't exist`);
|
|
62
62
|
}
|
|
63
|
-
|
|
64
|
-
contentTypes[ctUID] = newContentType;
|
|
63
|
+
extendFn(currentContentType);
|
|
65
64
|
return this;
|
|
66
65
|
}
|
|
67
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.mjs","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Schema.ContentType) => Schema.ContentType;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Schema.ContentType> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: Common.UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: Common.UID.ContentType, contentType: Schema.ContentType) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: Common.UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n
|
|
1
|
+
{"version":3,"file":"content-types.mjs","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Schema.ContentType) => Schema.ContentType;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Schema.ContentType> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: Common.UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: Common.UID.ContentType, contentType: Schema.ContentType) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: Common.UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n extendFn(currentContentType);\n\n return this;\n },\n };\n};\n\nexport default contentTypesRegistry;\n"],"names":[],"mappings":";;;AAQA,MAAM,gCAAgC,CAAC,iBAAoC;AACzE,aAAW,UAAU,OAAO,KAAK,YAAY,GAAG;AACxC,UAAA,cAAc,aAAa,MAAM;AAEvC,QAAI,WAAW,YAAY,OAAO,KAAK,cAAc;AACnD,YAAM,IAAI;AAAA,QACR,6EAA6E,MAAM,QAAQ,YAAY,OAAO,KAAK,YAAY;AAAA,MAAA;AAAA,IAEnI;AAAA,EACF;AACF;AAEA,MAAM,uBAAuB,MAAM;AACjC,QAAM,eAAmD,CAAA;AAElD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,YAAY;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA6B;AAC/B,aAAO,aAAa,GAAG;AAAA,IACzB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,WAAmB;AACjB,aAAA,OAAO,CAAC,GAAG,QAAQ,aAAa,KAAK,SAAS,CAAC,EAAE,YAAY;AAAA,IACtE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA6B,aAAiC;AAChE,mBAAa,GAAG,IAAI;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,WAAmB,iBAAoC;AACzD,oCAA8B,eAAe;AAE7C,iBAAW,aAAa,OAAO,KAAK,eAAe,GAAG;AAC9C,cAAA,MAAM,aAAa,WAAW,SAAS;AAEzC,YAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,gBAAgB,GAAG,+BAA+B;AAAA,QACpE;AAEA,qBAAa,GAAG,IAAI,kBAAkB,KAAK,gBAAgB,SAAS,CAAC;AAAA,MACvE;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,OAA+B,UAA+B;AAC7D,YAAA,qBAAqB,KAAK,IAAI,KAAK;AAEzC,UAAI,CAAC,oBAAoB;AACvB,cAAM,IAAI,MAAM,gBAAgB,KAAK,gBAAgB;AAAA,MACvD;AAEA,eAAS,kBAAkB;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AAE9E,eAAO,MAAM,iBAAiB,iBAAkB,GAAG,KAAK,GAAG,eACxC,GAAG,EAAE,iBACvB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const wrapInTransaction = (fn) => {
|
|
4
|
+
return (...args) => strapi.db.transaction?.(() => fn(...args));
|
|
5
|
+
};
|
|
6
|
+
exports.wrapInTransaction = wrapInTransaction;
|
|
7
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { Common } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = (uid: Common.UID.CollectionType) => any;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":";;AAIa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.mjs","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { Common } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = (uid: Common.UID.CollectionType) => any;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":"AAIa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-engine.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/document-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"document-engine.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/document-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;8BAkV1C;IAAE,QAAQ,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,KAAG,UAAU,MAAM;AAAxE,wBAKE"}
|
|
@@ -1,104 +1,103 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const strapiUtils = require("@strapi/utils");
|
|
3
3
|
const _ = require("lodash/fp");
|
|
4
|
-
const uploadFiles = require("../utils/upload-files.js");
|
|
5
4
|
const components = require("../entity-service/components.js");
|
|
6
5
|
const transformContentTypesToModels = require("../../utils/transform-content-types-to-models.js");
|
|
7
6
|
const index$1 = require("../entity-service/attributes/index.js");
|
|
8
7
|
const index = require("../entity-validator/index.js");
|
|
9
8
|
const params = require("../entity-service/params.js");
|
|
9
|
+
const idTransform = require("./transform/id-transform.js");
|
|
10
|
+
const populate = require("./utils/populate.js");
|
|
11
|
+
const data = require("./transform/data.js");
|
|
10
12
|
const { transformParamsToQuery } = strapiUtils.convertQueryParams;
|
|
11
|
-
const createPipeline = (
|
|
12
|
-
return index$1.applyTransforms(
|
|
13
|
+
const createPipeline = (data2, context) => {
|
|
14
|
+
return index$1.applyTransforms(data2, context);
|
|
13
15
|
};
|
|
14
|
-
const updatePipeline = (
|
|
15
|
-
return index$1.applyTransforms(
|
|
16
|
+
const updatePipeline = (data2, context) => {
|
|
17
|
+
return index$1.applyTransforms(data2, context);
|
|
16
18
|
};
|
|
17
19
|
const createDocumentEngine = ({
|
|
18
20
|
strapi,
|
|
19
21
|
db
|
|
20
22
|
}) => ({
|
|
21
|
-
uploadFiles,
|
|
22
23
|
async findMany(uid, params2) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
24
|
+
const query = await strapiUtils.pipeAsync(
|
|
25
|
+
(params22) => idTransform.transformParamsDocumentId(uid, params22, { isDraft: params22.status === "draft" }),
|
|
26
|
+
(params22) => transformParamsToQuery(uid, params22),
|
|
27
|
+
(query2) => _.set("where", { ...params2?.lookup, ...query2.where }, query2)
|
|
28
|
+
)(params2 || {});
|
|
29
29
|
return db.query(uid).findMany(query);
|
|
30
30
|
},
|
|
31
31
|
async findFirst(uid, params2) {
|
|
32
|
-
const query =
|
|
32
|
+
const query = await strapiUtils.pipeAsync(
|
|
33
|
+
(params22) => idTransform.transformParamsDocumentId(uid, params22, { isDraft: params22.status === "draft" }),
|
|
34
|
+
(params22) => transformParamsToQuery(uid, params22)
|
|
35
|
+
)(params2 || {});
|
|
33
36
|
return db.query(uid).findOne({ ...query, where: { ...params2?.lookup, ...query.where } });
|
|
34
37
|
},
|
|
35
38
|
async findOne(uid, documentId, params2) {
|
|
36
|
-
const query =
|
|
39
|
+
const query = await strapiUtils.pipeAsync(
|
|
40
|
+
(params22) => idTransform.transformParamsDocumentId(uid, params22, { isDraft: params22.status === "draft" }),
|
|
41
|
+
(params22) => transformParamsToQuery(uid, params22)
|
|
42
|
+
)(params2 || {});
|
|
37
43
|
return db.query(uid).findOne({ ...query, where: { ...params2?.lookup, ...query.where, documentId } });
|
|
38
44
|
},
|
|
39
45
|
async delete(uid, documentId, params2 = {}) {
|
|
40
|
-
const query =
|
|
46
|
+
const query = await strapiUtils.pipeAsync(
|
|
47
|
+
(params22) => transformParamsToQuery(uid, params22),
|
|
48
|
+
(query2) => _.set("where", { ...params2?.lookup, ...query2.where, documentId }, query2)
|
|
49
|
+
)(params2);
|
|
41
50
|
if (params2.status === "draft") {
|
|
42
51
|
throw new Error("Cannot delete a draft document");
|
|
43
52
|
}
|
|
44
|
-
const entriesToDelete = await db.query(uid).findMany(
|
|
45
|
-
...query,
|
|
46
|
-
where: {
|
|
47
|
-
...params2.lookup,
|
|
48
|
-
...query?.where,
|
|
49
|
-
documentId
|
|
50
|
-
}
|
|
51
|
-
});
|
|
53
|
+
const entriesToDelete = await db.query(uid).findMany(query);
|
|
52
54
|
await strapiUtils.mapAsync(entriesToDelete, async (entryToDelete) => {
|
|
53
|
-
|
|
54
|
-
await db.query(uid).delete({ where: { id: entryToDelete.id } });
|
|
55
|
-
await components.deleteComponents(uid, componentsToDelete, { loadComponents: false });
|
|
55
|
+
await this.deleteEntry(uid, entryToDelete.id);
|
|
56
56
|
});
|
|
57
|
-
return {
|
|
57
|
+
return { deletedEntries: entriesToDelete.length };
|
|
58
58
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
queryParams = { filter: { documentID: { $in: paramsOrIds } } };
|
|
64
|
-
} else {
|
|
65
|
-
queryParams = paramsOrIds;
|
|
66
|
-
}
|
|
67
|
-
const query = transformParamsToQuery(uid, queryParams || {});
|
|
68
|
-
return db.query(uid).deleteMany(query);
|
|
59
|
+
async deleteEntry(uid, entryId) {
|
|
60
|
+
const componentsToDelete = await components.getComponents(uid, { id: entryId });
|
|
61
|
+
await db.query(uid).delete({ where: { id: entryId } });
|
|
62
|
+
await components.deleteComponents(uid, componentsToDelete, { loadComponents: false });
|
|
69
63
|
},
|
|
70
64
|
async create(uid, params$1) {
|
|
71
|
-
const { data } = params$1
|
|
72
|
-
|
|
65
|
+
const { data: data2, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1, {
|
|
66
|
+
locale: params$1.locale,
|
|
67
|
+
// @ts-expect-error - published at is not always present
|
|
68
|
+
// User can not set publishedAt on create, but other methods in the engine can (publish)
|
|
69
|
+
isDraft: !params$1.data?.publishedAt
|
|
70
|
+
});
|
|
71
|
+
const query = transformParamsToQuery(uid, params.pickSelectionParams(restParams));
|
|
72
|
+
if (!params$1.data) {
|
|
73
73
|
throw new Error("Create requires data attribute");
|
|
74
74
|
}
|
|
75
|
-
const
|
|
76
|
-
const validData = await index.validateEntityCreation(
|
|
77
|
-
isDraft:
|
|
75
|
+
const contentType = strapi.contentType(uid);
|
|
76
|
+
const validData = await index.validateEntityCreation(contentType, data2, {
|
|
77
|
+
isDraft: !data2.publishedAt,
|
|
78
78
|
locale: params$1?.locale
|
|
79
79
|
});
|
|
80
80
|
const componentData = await components.createComponents(uid, validData);
|
|
81
81
|
const entryData = createPipeline(
|
|
82
|
-
Object.assign(components.omitComponentData(
|
|
83
|
-
{
|
|
84
|
-
contentType: model
|
|
85
|
-
}
|
|
82
|
+
Object.assign(components.omitComponentData(contentType, validData), componentData),
|
|
83
|
+
{ contentType }
|
|
86
84
|
);
|
|
87
|
-
const query = transformParamsToQuery(uid, params.pickSelectionParams(params$1));
|
|
88
85
|
return db.query(uid).create({ ...query, data: entryData });
|
|
89
86
|
},
|
|
90
87
|
// NOTE: What happens if user doesn't provide specific publications state and locale to update?
|
|
91
88
|
async update(uid, documentId, params$1) {
|
|
92
|
-
const { data } = params$1 || {}
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
const { data: data2, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1 || {}, {
|
|
90
|
+
isDraft: true,
|
|
91
|
+
locale: params$1?.locale
|
|
92
|
+
});
|
|
93
|
+
const query = transformParamsToQuery(uid, params.pickSelectionParams(restParams || {}));
|
|
94
|
+
const model = strapi.contentType(uid);
|
|
95
95
|
const entryToUpdate = await db.query(uid).findOne({ ...query, where: { ...params$1?.lookup, ...query?.where, documentId } });
|
|
96
|
-
if (!entryToUpdate)
|
|
96
|
+
if (!entryToUpdate)
|
|
97
97
|
return null;
|
|
98
|
-
}
|
|
99
98
|
const validData = await index.validateEntityUpdate(
|
|
100
99
|
model,
|
|
101
|
-
|
|
100
|
+
data2,
|
|
102
101
|
{
|
|
103
102
|
isDraft: true,
|
|
104
103
|
// Always update the draft version
|
|
@@ -114,14 +113,19 @@ const createDocumentEngine = ({
|
|
|
114
113
|
return db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });
|
|
115
114
|
},
|
|
116
115
|
async count(uid, params2 = void 0) {
|
|
117
|
-
const query =
|
|
118
|
-
|
|
116
|
+
const query = await strapiUtils.pipeAsync(
|
|
117
|
+
(params22) => transformParamsToQuery(uid, params22),
|
|
118
|
+
(query2) => _.set("where", { ...params2?.lookup, ...query2.where }, query2)
|
|
119
|
+
)(params2 || {});
|
|
119
120
|
return db.query(uid).count(query);
|
|
120
121
|
},
|
|
121
122
|
async clone(uid, documentId, params$1) {
|
|
122
|
-
const { data
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
const { data: data2, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1 || {}, {
|
|
124
|
+
isDraft: true,
|
|
125
|
+
locale: params$1?.locale
|
|
126
|
+
});
|
|
127
|
+
const query = transformParamsToQuery(uid, params.pickSelectionParams(restParams));
|
|
128
|
+
const model = strapi.contentType(uid);
|
|
125
129
|
const entries = await db.query(uid).findMany({
|
|
126
130
|
...query,
|
|
127
131
|
where: { ...params$1?.lookup, ...query.where, documentId }
|
|
@@ -131,11 +135,11 @@ const createDocumentEngine = ({
|
|
|
131
135
|
}
|
|
132
136
|
const newDocumentId = transformContentTypesToModels.createDocumentId();
|
|
133
137
|
const versions = await strapiUtils.mapAsync(entries, async (entryToClone) => {
|
|
134
|
-
const isDraft = strapiUtils.contentTypes.isDraft(
|
|
138
|
+
const isDraft = strapiUtils.contentTypes.isDraft(data2);
|
|
135
139
|
const validData = await index.validateEntityUpdate(
|
|
136
140
|
model,
|
|
137
141
|
// Omit id fields, the cloned entity id will be generated by the database
|
|
138
|
-
_.omit(["id"],
|
|
142
|
+
_.omit(["id"], data2),
|
|
139
143
|
{ isDraft, ...params$1?.lookup },
|
|
140
144
|
entryToClone
|
|
141
145
|
);
|
|
@@ -150,7 +154,7 @@ const createDocumentEngine = ({
|
|
|
150
154
|
data: { documentId: newDocumentId, ...entityData, locale: entryToClone.locale }
|
|
151
155
|
});
|
|
152
156
|
});
|
|
153
|
-
return {
|
|
157
|
+
return { documentId: newDocumentId, versions };
|
|
154
158
|
},
|
|
155
159
|
// TODO: Handle relations so they target the published version
|
|
156
160
|
async publish(uid, documentId, params2) {
|
|
@@ -158,23 +162,44 @@ const createDocumentEngine = ({
|
|
|
158
162
|
...params2,
|
|
159
163
|
lookup: { ...params2?.lookup, publishedAt: { $ne: null } }
|
|
160
164
|
});
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
const entriesToPublish = await strapi.db?.query(uid).findMany({
|
|
166
|
+
where: {
|
|
167
|
+
...params2?.lookup,
|
|
168
|
+
documentId,
|
|
169
|
+
publishedAt: null
|
|
170
|
+
},
|
|
171
|
+
populate: populate.getDeepPopulate(uid)
|
|
165
172
|
});
|
|
166
|
-
|
|
173
|
+
const publishedEntries = await strapiUtils.mapAsync(
|
|
174
|
+
entriesToPublish,
|
|
175
|
+
strapiUtils.pipeAsync(
|
|
176
|
+
_.set("publishedAt", /* @__PURE__ */ new Date()),
|
|
177
|
+
_.set("documentId", documentId),
|
|
178
|
+
_.omit("id"),
|
|
179
|
+
// Transform relations to target published versions
|
|
180
|
+
(entry) => {
|
|
181
|
+
const opts = { uid, locale: entry.locale, isDraft: false, allowMissingId: true };
|
|
182
|
+
return data.transformData(entry, opts);
|
|
183
|
+
},
|
|
184
|
+
// Create the published entry
|
|
185
|
+
(data2) => this.create(uid, { ...params2, data: data2, locale: data2.locale })
|
|
186
|
+
)
|
|
187
|
+
);
|
|
188
|
+
return { versions: publishedEntries };
|
|
167
189
|
},
|
|
168
190
|
async unpublish(uid, documentId, params2) {
|
|
169
191
|
return this.delete(uid, documentId, {
|
|
170
192
|
...params2,
|
|
171
193
|
lookup: { ...params2?.lookup, publishedAt: { $ne: null } }
|
|
172
|
-
});
|
|
194
|
+
}).then(({ deletedEntries }) => ({ versions: deletedEntries }));
|
|
173
195
|
},
|
|
174
196
|
/**
|
|
175
197
|
* Steps:
|
|
176
198
|
* - Delete the matching draft versions (publishedAt = null)
|
|
177
199
|
* - Clone the matching published versions into draft versions
|
|
200
|
+
*
|
|
201
|
+
* If the document has a published version, the draft version will be created from the published version.
|
|
202
|
+
* If the document has no published version, the version will be removed.
|
|
178
203
|
*/
|
|
179
204
|
async discardDraft(uid, documentId, params2) {
|
|
180
205
|
await this.delete(uid, documentId, {
|
|
@@ -182,19 +207,35 @@ const createDocumentEngine = ({
|
|
|
182
207
|
// Delete all drafts that match query
|
|
183
208
|
lookup: { ...params2?.lookup, publishedAt: null }
|
|
184
209
|
});
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
210
|
+
const entriesToDraft = await strapi.db?.query(uid).findMany({
|
|
211
|
+
where: {
|
|
212
|
+
...params2?.lookup,
|
|
213
|
+
documentId,
|
|
214
|
+
publishedAt: { $ne: null }
|
|
215
|
+
},
|
|
216
|
+
populate: populate.getDeepPopulate(uid)
|
|
191
217
|
});
|
|
192
|
-
|
|
218
|
+
const draftEntries = await strapiUtils.mapAsync(
|
|
219
|
+
entriesToDraft,
|
|
220
|
+
strapiUtils.pipeAsync(
|
|
221
|
+
_.set("publishedAt", null),
|
|
222
|
+
_.set("documentId", documentId),
|
|
223
|
+
_.omit("id"),
|
|
224
|
+
// Transform relations to target draft versions
|
|
225
|
+
(entry) => {
|
|
226
|
+
const opts = { uid, locale: entry.locale, isDraft: true, allowMissingId: true };
|
|
227
|
+
return data.transformData(entry, opts);
|
|
228
|
+
},
|
|
229
|
+
// Create the draft entry
|
|
230
|
+
(data2) => this.create(uid, { ...params2, locale: data2.locale, data: data2 })
|
|
231
|
+
)
|
|
232
|
+
);
|
|
233
|
+
return { versions: draftEntries };
|
|
193
234
|
}
|
|
194
235
|
});
|
|
195
|
-
const
|
|
236
|
+
const createDocumentEngine$1 = (ctx) => {
|
|
196
237
|
const implementation = createDocumentEngine(ctx);
|
|
197
238
|
return implementation;
|
|
198
239
|
};
|
|
199
|
-
module.exports =
|
|
240
|
+
module.exports = createDocumentEngine$1;
|
|
200
241
|
//# sourceMappingURL=document-engine.js.map
|