@strapi/content-manager 5.60.0 → 5.61.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/constants/customOrder.js +14 -0
- package/dist/admin/constants/customOrder.js.map +1 -0
- package/dist/admin/constants/customOrder.mjs +10 -0
- package/dist/admin/constants/customOrder.mjs.map +1 -0
- package/dist/admin/hooks/useDocument.js +22 -11
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocument.mjs +22 -11
- package/dist/admin/hooks/useDocument.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
- package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -1
- package/dist/admin/hooks/useHasBeenNearViewport.js +70 -0
- package/dist/admin/hooks/useHasBeenNearViewport.js.map +1 -0
- package/dist/admin/hooks/useHasBeenNearViewport.mjs +46 -0
- package/dist/admin/hooks/useHasBeenNearViewport.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +102 -32
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs +104 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js +20 -17
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs +20 -17
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +15 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +17 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js +21 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs +22 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +4 -7
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +4 -7
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +46 -10
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +47 -11
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +201 -51
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +202 -53
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Settings.js +31 -2
- package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Settings.mjs +31 -2
- package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +196 -132
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +196 -132
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/CustomOrder.js +571 -0
- package/dist/admin/pages/ListView/components/CustomOrder.js.map +1 -0
- package/dist/admin/pages/ListView/components/CustomOrder.mjs +546 -0
- package/dist/admin/pages/ListView/components/CustomOrder.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableActions.js +4 -1
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs +4 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/services/documents.js +22 -1
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +21 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/src/constants/customOrder.d.ts +8 -0
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +4 -0
- package/dist/admin/src/hooks/useDocumentLayout.d.ts +6 -2
- package/dist/admin/src/hooks/useHasBeenNearViewport.d.ts +13 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +13 -1
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +11 -1
- package/dist/admin/src/pages/ListView/components/CustomOrder.d.ts +72 -0
- package/dist/admin/src/services/documents.d.ts +10 -2
- package/dist/admin/translations/en.json.js +9 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +9 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/audit-logs.js +36 -0
- package/dist/server/audit-logs.js.map +1 -0
- package/dist/server/audit-logs.mjs +33 -0
- package/dist/server/audit-logs.mjs.map +1 -0
- package/dist/server/bootstrap.js +8 -0
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +8 -0
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/controllers/collection-types.js +8 -0
- package/dist/server/controllers/collection-types.js.map +1 -1
- package/dist/server/controllers/collection-types.mjs +8 -0
- package/dist/server/controllers/collection-types.mjs.map +1 -1
- package/dist/server/controllers/content-types.js +15 -0
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +16 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +2 -0
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/relations.js +5 -1
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +5 -1
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/single-types.js +10 -1
- package/dist/server/controllers/single-types.js.map +1 -1
- package/dist/server/controllers/single-types.mjs +10 -1
- package/dist/server/controllers/single-types.mjs.map +1 -1
- package/dist/server/controllers/validation/model-configuration.js +2 -1
- package/dist/server/controllers/validation/model-configuration.js.map +1 -1
- package/dist/server/controllers/validation/model-configuration.mjs +2 -1
- package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
- package/dist/server/custom-order/constants.js +21 -0
- package/dist/server/custom-order/constants.js.map +1 -0
- package/dist/server/custom-order/constants.mjs +17 -0
- package/dist/server/custom-order/constants.mjs.map +1 -0
- package/dist/server/custom-order/controllers/custom-order.js +77 -0
- package/dist/server/custom-order/controllers/custom-order.js.map +1 -0
- package/dist/server/custom-order/controllers/custom-order.mjs +75 -0
- package/dist/server/custom-order/controllers/custom-order.mjs.map +1 -0
- package/dist/server/custom-order/controllers/index.js +10 -0
- package/dist/server/custom-order/controllers/index.js.map +1 -0
- package/dist/server/custom-order/controllers/index.mjs +8 -0
- package/dist/server/custom-order/controllers/index.mjs.map +1 -0
- package/dist/server/custom-order/index.js +71 -0
- package/dist/server/custom-order/index.js.map +1 -0
- package/dist/server/custom-order/index.mjs +69 -0
- package/dist/server/custom-order/index.mjs.map +1 -0
- package/dist/server/custom-order/routes/custom-order.js +38 -0
- package/dist/server/custom-order/routes/custom-order.js.map +1 -0
- package/dist/server/custom-order/routes/custom-order.mjs +36 -0
- package/dist/server/custom-order/routes/custom-order.mjs.map +1 -0
- package/dist/server/custom-order/routes/index.js +13 -0
- package/dist/server/custom-order/routes/index.js.map +1 -0
- package/dist/server/custom-order/routes/index.mjs +11 -0
- package/dist/server/custom-order/routes/index.mjs.map +1 -0
- package/dist/server/custom-order/services/custom-order.js +286 -0
- package/dist/server/custom-order/services/custom-order.js.map +1 -0
- package/dist/server/custom-order/services/custom-order.mjs +284 -0
- package/dist/server/custom-order/services/custom-order.mjs.map +1 -0
- package/dist/server/custom-order/services/document-middleware.js +83 -0
- package/dist/server/custom-order/services/document-middleware.js.map +1 -0
- package/dist/server/custom-order/services/document-middleware.mjs +81 -0
- package/dist/server/custom-order/services/document-middleware.mjs.map +1 -0
- package/dist/server/custom-order/services/index.js +10 -0
- package/dist/server/custom-order/services/index.js.map +1 -0
- package/dist/server/custom-order/services/index.mjs +8 -0
- package/dist/server/custom-order/services/index.mjs.map +1 -0
- package/dist/server/custom-order/services/utils.js +152 -0
- package/dist/server/custom-order/services/utils.js.map +1 -0
- package/dist/server/custom-order/services/utils.mjs +148 -0
- package/dist/server/custom-order/services/utils.mjs.map +1 -0
- package/dist/server/custom-order/utils.js +13 -0
- package/dist/server/custom-order/utils.js.map +1 -0
- package/dist/server/custom-order/utils.mjs +10 -0
- package/dist/server/custom-order/utils.mjs.map +1 -0
- package/dist/server/history/constants.js +2 -1
- package/dist/server/history/constants.js.map +1 -1
- package/dist/server/history/constants.mjs +2 -1
- package/dist/server/history/constants.mjs.map +1 -1
- package/dist/server/history/controllers/history-version.js +6 -2
- package/dist/server/history/controllers/history-version.js.map +1 -1
- package/dist/server/history/controllers/history-version.mjs +6 -2
- package/dist/server/history/controllers/history-version.mjs.map +1 -1
- package/dist/server/history/services/history.js +23 -6
- package/dist/server/history/services/history.js.map +1 -1
- package/dist/server/history/services/history.mjs +24 -7
- package/dist/server/history/services/history.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +2 -16
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +2 -16
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/register.js +4 -0
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs +4 -0
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/index.js +3 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +2 -0
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/content-types.js +2 -2
- package/dist/server/services/content-types.js.map +1 -1
- package/dist/server/services/content-types.mjs +2 -2
- package/dist/server/services/content-types.mjs.map +1 -1
- package/dist/server/services/document-manager.js +13 -0
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +14 -1
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +2 -0
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/utils/configuration/settings.js +2 -1
- package/dist/server/services/utils/configuration/settings.js.map +1 -1
- package/dist/server/services/utils/configuration/settings.mjs +2 -1
- package/dist/server/services/utils/configuration/settings.mjs.map +1 -1
- package/dist/server/src/audit-logs.d.ts +40 -0
- package/dist/server/src/audit-logs.d.ts.map +1 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +21 -3
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts +19 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/single-types.d.ts +1 -1
- package/dist/server/src/controllers/single-types.d.ts.map +1 -1
- package/dist/server/src/custom-order/constants.d.ts +18 -0
- package/dist/server/src/custom-order/constants.d.ts.map +1 -0
- package/dist/server/src/custom-order/controllers/custom-order.d.ts +8 -0
- package/dist/server/src/custom-order/controllers/custom-order.d.ts.map +1 -0
- package/dist/server/src/custom-order/controllers/index.d.ts +3 -0
- package/dist/server/src/custom-order/controllers/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/index.d.ts +8 -0
- package/dist/server/src/custom-order/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/routes/custom-order.d.ts +4 -0
- package/dist/server/src/custom-order/routes/custom-order.d.ts.map +1 -0
- package/dist/server/src/custom-order/routes/index.d.ts +10 -0
- package/dist/server/src/custom-order/routes/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/custom-order.d.ts +43 -0
- package/dist/server/src/custom-order/services/custom-order.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/document-middleware.d.ts +16 -0
- package/dist/server/src/custom-order/services/document-middleware.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/index.d.ts +24 -0
- package/dist/server/src/custom-order/services/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/utils.d.ts +34 -0
- package/dist/server/src/custom-order/services/utils.d.ts.map +1 -0
- package/dist/server/src/custom-order/utils.d.ts +6 -0
- package/dist/server/src/custom-order/utils.d.ts.map +1 -0
- package/dist/server/src/history/constants.d.ts.map +1 -1
- package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +22 -6
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/content-types.d.ts +1 -3
- package/dist/server/src/services/content-types.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -3
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
- package/dist/shared/contracts/content-types.d.ts +5 -0
- package/dist/shared/contracts/content-types.d.ts.map +1 -1
- package/dist/shared/contracts/custom-order.d.ts +33 -0
- package/dist/shared/contracts/custom-order.d.ts.map +1 -0
- package/dist/shared/contracts/custom-order.js +3 -0
- package/dist/shared/contracts/custom-order.js.map +1 -0
- package/dist/shared/contracts/custom-order.mjs +2 -0
- package/dist/shared/contracts/custom-order.mjs.map +1 -0
- package/dist/shared/contracts/history-versions.d.ts +0 -1
- package/dist/shared/contracts/history-versions.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/index.js +2 -0
- package/dist/shared/contracts/index.js.map +1 -1
- package/dist/shared/contracts/index.mjs +2 -0
- package/dist/shared/contracts/index.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.js","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import { mapValues } from 'lodash';\n\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { UID, Struct, Core } from '@strapi/types';\n\nimport type { ConfigurationUpdate } from './configuration';\n\nimport { getService } from '../utils';\nimport storeUtils from './utils/store';\nimport createConfigurationService from './configuration';\n\nconst configurationService = createConfigurationService({\n storeUtils,\n prefix: 'content_types',\n getModels() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return mapValues(strapi.contentTypes, (value) => toContentManagerModel(value));\n },\n});\n\nconst service = ({ strapi }: { strapi: Core.Strapi }) => ({\n findAllContentTypes() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return Object.values(strapi.contentTypes).map(toContentManagerModel);\n },\n\n findContentType(uid: UID.ContentType) {\n const { toContentManagerModel } = getService('data-mapper');\n\n const contentType = strapi.contentTypes[uid];\n\n return contentType == null ? contentType : toContentManagerModel(contentType);\n },\n\n findDisplayedContentTypes() {\n return this.findAllContentTypes().filter(\n // TODO\n // @ts-expect-error should be resolved from data-mapper types\n ({ isDisplayed }: { isDisplayed: boolean }) => isDisplayed === true\n );\n },\n\n findContentTypesByKind(kind:
|
|
1
|
+
{"version":3,"file":"content-types.js","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import { mapValues } from 'lodash';\n\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { UID, Struct, Core } from '@strapi/types';\n\nimport type { ConfigurationUpdate } from './configuration';\n\nimport { getService } from '../utils';\nimport storeUtils from './utils/store';\nimport createConfigurationService from './configuration';\n\nconst configurationService = createConfigurationService({\n storeUtils,\n prefix: 'content_types',\n getModels() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return mapValues(strapi.contentTypes, (value) => toContentManagerModel(value));\n },\n});\n\nconst service = ({ strapi }: { strapi: Core.Strapi }) => ({\n findAllContentTypes() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return Object.values(strapi.contentTypes).map(toContentManagerModel);\n },\n\n findContentType(uid: UID.ContentType) {\n const { toContentManagerModel } = getService('data-mapper');\n\n const contentType = strapi.contentTypes[uid];\n\n return contentType == null ? contentType : toContentManagerModel(contentType);\n },\n\n findDisplayedContentTypes() {\n return this.findAllContentTypes().filter(\n // TODO\n // @ts-expect-error should be resolved from data-mapper types\n ({ isDisplayed }: { isDisplayed: boolean }) => isDisplayed === true\n );\n },\n\n findContentTypesByKind(kind: Struct.ContentTypeKind | null | undefined) {\n if (kind === undefined || kind === null) {\n return this.findAllContentTypes();\n }\n\n // @ts-expect-error should be resolved from data-mapper types\n return this.findAllContentTypes().filter(contentTypesUtils.isKind(kind));\n },\n\n async findConfiguration(contentType: Struct.ContentTypeSchema) {\n const configuration = await configurationService.getConfiguration(contentType.uid);\n\n return {\n uid: contentType.uid,\n ...configuration,\n };\n },\n\n async updateConfiguration(\n contentType: Struct.ContentTypeSchema,\n newConfiguration: ConfigurationUpdate\n ) {\n await configurationService.setConfiguration(contentType.uid, newConfiguration);\n\n return this.findConfiguration(contentType);\n },\n\n findComponentsConfigurations(contentType: Struct.ContentTypeSchema) {\n // delegate to componentService\n return getService('components').findComponentsConfigurations(contentType);\n },\n\n syncConfigurations() {\n return configurationService.syncConfigurations();\n },\n});\n\nexport default service;\n"],"names":["configurationService","createConfigurationService","storeUtils","prefix","getModels","toContentManagerModel","getService","mapValues","strapi","contentTypes","value","service","findAllContentTypes","Object","values","map","findContentType","uid","contentType","findDisplayedContentTypes","filter","isDisplayed","findContentTypesByKind","kind","undefined","contentTypesUtils","isKind","findConfiguration","configuration","getConfiguration","updateConfiguration","newConfiguration","setConfiguration","findComponentsConfigurations","syncConfigurations"],"mappings":";;;;;;;;AAYA,MAAMA,uBAAuBC,aAAAA,CAA2B;AACtDC,gBAAAA,KAAAA;IACAC,MAAAA,EAAQ,eAAA;AACRC,IAAAA,SAAAA,CAAAA,GAAAA;AACE,QAAA,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,gBAAAA,CAAW,aAAA,CAAA;AAE7C,QAAA,OAAOC,YAAUC,MAAAA,CAAOC,YAAY,EAAE,CAACC,QAAUL,qBAAAA,CAAsBK,KAAAA,CAAAA,CAAAA;AACzE,IAAA;AACF,CAAA,CAAA;AAEA,MAAMC,UAAU,CAAC,EAAEH,QAAAA,OAAM,EAA2B,IAAM;AACxDI,QAAAA,mBAAAA,CAAAA,GAAAA;AACE,YAAA,MAAM,EAAEP,qBAAqB,EAAE,GAAGC,gBAAAA,CAAW,aAAA,CAAA;AAE7C,YAAA,OAAOO,OAAOC,MAAM,CAACN,QAAOC,YAAY,CAAA,CAAEM,GAAG,CAACV,qBAAAA,CAAAA;AAChD,QAAA,CAAA;AAEAW,QAAAA,eAAAA,CAAAA,CAAgBC,GAAoB,EAAA;AAClC,YAAA,MAAM,EAAEZ,qBAAqB,EAAE,GAAGC,gBAAAA,CAAW,aAAA,CAAA;AAE7C,YAAA,MAAMY,WAAAA,GAAcV,OAAAA,CAAOC,YAAY,CAACQ,GAAAA,CAAI;YAE5C,OAAOC,WAAAA,IAAe,IAAA,GAAOA,WAAAA,GAAcb,qBAAAA,CAAsBa,WAAAA,CAAAA;AACnE,QAAA,CAAA;AAEAC,QAAAA,yBAAAA,CAAAA,GAAAA;AACE,YAAA,OAAO,IAAI,CAACP,mBAAmB,EAAA,CAAGQ,MAAM;;AAGtC,YAAA,CAAC,EAAEC,WAAW,EAA4B,GAAKA,WAAAA,KAAgB,IAAA,CAAA;AAEnE,QAAA,CAAA;AAEAC,QAAAA,sBAAAA,CAAAA,CAAuBC,IAA+C,EAAA;YACpE,IAAIA,IAAAA,KAASC,SAAAA,IAAaD,IAAAA,KAAS,IAAA,EAAM;gBACvC,OAAO,IAAI,CAACX,mBAAmB,EAAA;AACjC,YAAA;;YAGA,OAAO,IAAI,CAACA,mBAAmB,EAAA,CAAGQ,MAAM,CAACK,wBAAAA,CAAkBC,MAAM,CAACH,IAAAA,CAAAA,CAAAA;AACpE,QAAA,CAAA;AAEA,QAAA,MAAMI,mBAAkBT,WAAqC,EAAA;AAC3D,YAAA,MAAMU,gBAAgB,MAAM5B,oBAAAA,CAAqB6B,gBAAgB,CAACX,YAAYD,GAAG,CAAA;YAEjF,OAAO;AACLA,gBAAAA,GAAAA,EAAKC,YAAYD,GAAG;AACpB,gBAAA,GAAGW;AACL,aAAA;AACF,QAAA,CAAA;QAEA,MAAME,mBAAAA,CAAAA,CACJZ,WAAqC,EACrCa,gBAAqC,EAAA;AAErC,YAAA,MAAM/B,oBAAAA,CAAqBgC,gBAAgB,CAACd,WAAAA,CAAYD,GAAG,EAAEc,gBAAAA,CAAAA;YAE7D,OAAO,IAAI,CAACJ,iBAAiB,CAACT,WAAAA,CAAAA;AAChC,QAAA,CAAA;AAEAe,QAAAA,4BAAAA,CAAAA,CAA6Bf,WAAqC,EAAA;;YAEhE,OAAOZ,gBAAAA,CAAW,YAAA,CAAA,CAAc2B,4BAA4B,CAACf,WAAAA,CAAAA;AAC/D,QAAA,CAAA;AAEAgB,QAAAA,kBAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOlC,qBAAqBkC,kBAAkB,EAAA;AAChD,QAAA;KACF;;;;"}
|
|
@@ -28,10 +28,10 @@ const service = ({ strapi: strapi1 })=>({
|
|
|
28
28
|
({ isDisplayed })=>isDisplayed === true);
|
|
29
29
|
},
|
|
30
30
|
findContentTypesByKind (kind) {
|
|
31
|
-
if (
|
|
31
|
+
if (kind === undefined || kind === null) {
|
|
32
32
|
return this.findAllContentTypes();
|
|
33
33
|
}
|
|
34
|
-
// @ts-expect-error
|
|
34
|
+
// @ts-expect-error should be resolved from data-mapper types
|
|
35
35
|
return this.findAllContentTypes().filter(contentTypes.isKind(kind));
|
|
36
36
|
},
|
|
37
37
|
async findConfiguration (contentType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.mjs","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import { mapValues } from 'lodash';\n\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { UID, Struct, Core } from '@strapi/types';\n\nimport type { ConfigurationUpdate } from './configuration';\n\nimport { getService } from '../utils';\nimport storeUtils from './utils/store';\nimport createConfigurationService from './configuration';\n\nconst configurationService = createConfigurationService({\n storeUtils,\n prefix: 'content_types',\n getModels() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return mapValues(strapi.contentTypes, (value) => toContentManagerModel(value));\n },\n});\n\nconst service = ({ strapi }: { strapi: Core.Strapi }) => ({\n findAllContentTypes() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return Object.values(strapi.contentTypes).map(toContentManagerModel);\n },\n\n findContentType(uid: UID.ContentType) {\n const { toContentManagerModel } = getService('data-mapper');\n\n const contentType = strapi.contentTypes[uid];\n\n return contentType == null ? contentType : toContentManagerModel(contentType);\n },\n\n findDisplayedContentTypes() {\n return this.findAllContentTypes().filter(\n // TODO\n // @ts-expect-error should be resolved from data-mapper types\n ({ isDisplayed }: { isDisplayed: boolean }) => isDisplayed === true\n );\n },\n\n findContentTypesByKind(kind:
|
|
1
|
+
{"version":3,"file":"content-types.mjs","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import { mapValues } from 'lodash';\n\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { UID, Struct, Core } from '@strapi/types';\n\nimport type { ConfigurationUpdate } from './configuration';\n\nimport { getService } from '../utils';\nimport storeUtils from './utils/store';\nimport createConfigurationService from './configuration';\n\nconst configurationService = createConfigurationService({\n storeUtils,\n prefix: 'content_types',\n getModels() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return mapValues(strapi.contentTypes, (value) => toContentManagerModel(value));\n },\n});\n\nconst service = ({ strapi }: { strapi: Core.Strapi }) => ({\n findAllContentTypes() {\n const { toContentManagerModel } = getService('data-mapper');\n\n return Object.values(strapi.contentTypes).map(toContentManagerModel);\n },\n\n findContentType(uid: UID.ContentType) {\n const { toContentManagerModel } = getService('data-mapper');\n\n const contentType = strapi.contentTypes[uid];\n\n return contentType == null ? contentType : toContentManagerModel(contentType);\n },\n\n findDisplayedContentTypes() {\n return this.findAllContentTypes().filter(\n // TODO\n // @ts-expect-error should be resolved from data-mapper types\n ({ isDisplayed }: { isDisplayed: boolean }) => isDisplayed === true\n );\n },\n\n findContentTypesByKind(kind: Struct.ContentTypeKind | null | undefined) {\n if (kind === undefined || kind === null) {\n return this.findAllContentTypes();\n }\n\n // @ts-expect-error should be resolved from data-mapper types\n return this.findAllContentTypes().filter(contentTypesUtils.isKind(kind));\n },\n\n async findConfiguration(contentType: Struct.ContentTypeSchema) {\n const configuration = await configurationService.getConfiguration(contentType.uid);\n\n return {\n uid: contentType.uid,\n ...configuration,\n };\n },\n\n async updateConfiguration(\n contentType: Struct.ContentTypeSchema,\n newConfiguration: ConfigurationUpdate\n ) {\n await configurationService.setConfiguration(contentType.uid, newConfiguration);\n\n return this.findConfiguration(contentType);\n },\n\n findComponentsConfigurations(contentType: Struct.ContentTypeSchema) {\n // delegate to componentService\n return getService('components').findComponentsConfigurations(contentType);\n },\n\n syncConfigurations() {\n return configurationService.syncConfigurations();\n },\n});\n\nexport default service;\n"],"names":["configurationService","createConfigurationService","storeUtils","prefix","getModels","toContentManagerModel","getService","mapValues","strapi","contentTypes","value","service","findAllContentTypes","Object","values","map","findContentType","uid","contentType","findDisplayedContentTypes","filter","isDisplayed","findContentTypesByKind","kind","undefined","contentTypesUtils","isKind","findConfiguration","configuration","getConfiguration","updateConfiguration","newConfiguration","setConfiguration","findComponentsConfigurations","syncConfigurations"],"mappings":";;;;;;AAYA,MAAMA,uBAAuBC,0BAAAA,CAA2B;AACtDC,IAAAA,UAAAA;IACAC,MAAAA,EAAQ,eAAA;AACRC,IAAAA,SAAAA,CAAAA,GAAAA;AACE,QAAA,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,UAAAA,CAAW,aAAA,CAAA;AAE7C,QAAA,OAAOC,UAAUC,MAAAA,CAAOC,YAAY,EAAE,CAACC,QAAUL,qBAAAA,CAAsBK,KAAAA,CAAAA,CAAAA;AACzE,IAAA;AACF,CAAA,CAAA;AAEA,MAAMC,UAAU,CAAC,EAAEH,QAAAA,OAAM,EAA2B,IAAM;AACxDI,QAAAA,mBAAAA,CAAAA,GAAAA;AACE,YAAA,MAAM,EAAEP,qBAAqB,EAAE,GAAGC,UAAAA,CAAW,aAAA,CAAA;AAE7C,YAAA,OAAOO,OAAOC,MAAM,CAACN,QAAOC,YAAY,CAAA,CAAEM,GAAG,CAACV,qBAAAA,CAAAA;AAChD,QAAA,CAAA;AAEAW,QAAAA,eAAAA,CAAAA,CAAgBC,GAAoB,EAAA;AAClC,YAAA,MAAM,EAAEZ,qBAAqB,EAAE,GAAGC,UAAAA,CAAW,aAAA,CAAA;AAE7C,YAAA,MAAMY,WAAAA,GAAcV,OAAAA,CAAOC,YAAY,CAACQ,GAAAA,CAAI;YAE5C,OAAOC,WAAAA,IAAe,IAAA,GAAOA,WAAAA,GAAcb,qBAAAA,CAAsBa,WAAAA,CAAAA;AACnE,QAAA,CAAA;AAEAC,QAAAA,yBAAAA,CAAAA,GAAAA;AACE,YAAA,OAAO,IAAI,CAACP,mBAAmB,EAAA,CAAGQ,MAAM;;AAGtC,YAAA,CAAC,EAAEC,WAAW,EAA4B,GAAKA,WAAAA,KAAgB,IAAA,CAAA;AAEnE,QAAA,CAAA;AAEAC,QAAAA,sBAAAA,CAAAA,CAAuBC,IAA+C,EAAA;YACpE,IAAIA,IAAAA,KAASC,SAAAA,IAAaD,IAAAA,KAAS,IAAA,EAAM;gBACvC,OAAO,IAAI,CAACX,mBAAmB,EAAA;AACjC,YAAA;;YAGA,OAAO,IAAI,CAACA,mBAAmB,EAAA,CAAGQ,MAAM,CAACK,YAAAA,CAAkBC,MAAM,CAACH,IAAAA,CAAAA,CAAAA;AACpE,QAAA,CAAA;AAEA,QAAA,MAAMI,mBAAkBT,WAAqC,EAAA;AAC3D,YAAA,MAAMU,gBAAgB,MAAM5B,oBAAAA,CAAqB6B,gBAAgB,CAACX,YAAYD,GAAG,CAAA;YAEjF,OAAO;AACLA,gBAAAA,GAAAA,EAAKC,YAAYD,GAAG;AACpB,gBAAA,GAAGW;AACL,aAAA;AACF,QAAA,CAAA;QAEA,MAAME,mBAAAA,CAAAA,CACJZ,WAAqC,EACrCa,gBAAqC,EAAA;AAErC,YAAA,MAAM/B,oBAAAA,CAAqBgC,gBAAgB,CAACd,WAAAA,CAAYD,GAAG,EAAEc,gBAAAA,CAAAA;YAE7D,OAAO,IAAI,CAACJ,iBAAiB,CAACT,WAAAA,CAAAA;AAChC,QAAA,CAAA;AAEAe,QAAAA,4BAAAA,CAAAA,CAA6Bf,WAAqC,EAAA;;YAEhE,OAAOZ,UAAAA,CAAW,YAAA,CAAA,CAAc2B,4BAA4B,CAACf,WAAAA,CAAAA;AAC/D,QAAA,CAAA;AAEAgB,QAAAA,kBAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOlC,qBAAqBkC,kBAAkB,EAAA;AAChD,QAAA;KACF;;;;"}
|
|
@@ -10,6 +10,14 @@ const { PUBLISHED_AT_ATTRIBUTE } = strapiUtils.contentTypes.constants;
|
|
|
10
10
|
const omitPublishedAtField = (document)=>_.omit(document, PUBLISHED_AT_ATTRIBUTE);
|
|
11
11
|
const omitIdField = (document)=>_.omit(document, 'id');
|
|
12
12
|
const documentManager = ({ strapi })=>{
|
|
13
|
+
/**
|
|
14
|
+
* The document service has no publish, unpublish or discardDraft methods
|
|
15
|
+
* for content types without draft and publish
|
|
16
|
+
*/ const assertDraftAndPublish = (uid)=>{
|
|
17
|
+
if (strapiUtils.contentTypes.hasDraftAndPublish(strapi.getModel(uid)) === false) {
|
|
18
|
+
throw new strapiUtils.errors.ValidationError('Draft and publish is not enabled for this content type');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
13
21
|
return {
|
|
14
22
|
async findOne (id, uid, opts = {}) {
|
|
15
23
|
return strapi.documents(uid).findOne({
|
|
@@ -141,6 +149,7 @@ const documentManager = ({ strapi })=>{
|
|
|
141
149
|
};
|
|
142
150
|
},
|
|
143
151
|
async publish (id, uid, opts = {}) {
|
|
152
|
+
assertDraftAndPublish(uid);
|
|
144
153
|
const populate$1 = opts.populate ?? await populate.buildDeepPopulate(uid);
|
|
145
154
|
const params = {
|
|
146
155
|
...opts,
|
|
@@ -152,6 +161,7 @@ const documentManager = ({ strapi })=>{
|
|
|
152
161
|
}).then((result)=>result?.entries);
|
|
153
162
|
},
|
|
154
163
|
async publishMany (uid, documentIds, locale) {
|
|
164
|
+
assertDraftAndPublish(uid);
|
|
155
165
|
return strapi.db.transaction(async ()=>{
|
|
156
166
|
const results = await Promise.all(documentIds.map((documentId)=>this.publish(documentId, uid, {
|
|
157
167
|
locale,
|
|
@@ -162,6 +172,7 @@ const documentManager = ({ strapi })=>{
|
|
|
162
172
|
});
|
|
163
173
|
},
|
|
164
174
|
async unpublishMany (documentIds, uid, opts = {}) {
|
|
175
|
+
assertDraftAndPublish(uid);
|
|
165
176
|
const unpublishedEntries = await strapi.db.transaction(async ()=>{
|
|
166
177
|
return Promise.all(documentIds.map((id)=>strapi.documents(uid).unpublish({
|
|
167
178
|
...opts,
|
|
@@ -176,6 +187,7 @@ const documentManager = ({ strapi })=>{
|
|
|
176
187
|
};
|
|
177
188
|
},
|
|
178
189
|
async unpublish (id, uid, opts = {}) {
|
|
190
|
+
assertDraftAndPublish(uid);
|
|
179
191
|
const populate$1 = opts.populate ?? await populate.buildDeepPopulate(uid);
|
|
180
192
|
const params = {
|
|
181
193
|
...opts,
|
|
@@ -187,6 +199,7 @@ const documentManager = ({ strapi })=>{
|
|
|
187
199
|
}).then((result)=>result?.entries.at(0));
|
|
188
200
|
},
|
|
189
201
|
async discardDraft (id, uid, opts = {}) {
|
|
202
|
+
assertDraftAndPublish(uid);
|
|
190
203
|
const populate$1 = opts.populate ?? await populate.buildDeepPopulate(uid);
|
|
191
204
|
const params = {
|
|
192
205
|
...opts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-manager.js","sources":["../../../server/src/services/document-manager.ts"],"sourcesContent":["import { omit, flow } from 'lodash';\n\nimport { contentTypes, pagination } from '@strapi/utils';\nimport type { Core, Modules, UID } from '@strapi/types';\n\nimport { buildDeepPopulate, getDeepPopulate, getDeepPopulateDraftCount } from './utils/populate';\nimport { EMPTY_DRAFT_RELATION_COUNTS } from './utils/draft-relations';\nimport { sumDraftCounts } from './utils/draft';\n\ntype DocService = Modules.Documents.ServiceInstance;\ntype DocServiceParams<TAction extends keyof DocService> = Parameters<DocService[TAction]>[0];\nexport type Document = Modules.Documents.Result<UID.ContentType>;\n\nconst { PUBLISHED_AT_ATTRIBUTE } = contentTypes.constants;\n\nconst omitPublishedAtField = <T extends object>(document: T) =>\n omit(document, PUBLISHED_AT_ATTRIBUTE);\nconst omitIdField = <T extends object>(document: T) => omit(document, 'id');\n\nconst documentManager = ({ strapi }: { strapi: Core.Strapi }) => {\n return {\n async findOne(\n id: string,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'findOne'>, 'documentId'> = {}\n ) {\n return strapi.documents(uid).findOne({ ...opts, documentId: id });\n },\n\n /**\n * Find multiple (or all) locales for a document\n */\n async findLocales(\n id: string | string[] | undefined,\n uid: UID.CollectionType,\n opts: {\n populate?: Modules.Documents.Params.Pick<any, 'populate'>;\n locale?: string | string[] | '*';\n isPublished?: boolean;\n }\n ) {\n // Will look for a specific locale by default\n const where: any = {};\n\n // Might not have an id if querying a single type\n if (id) {\n where.documentId = id;\n }\n\n // Search in array of locales\n if (Array.isArray(opts.locale)) {\n where.locale = { $in: opts.locale };\n } else if (opts.locale && opts.locale !== '*') {\n // Look for a specific locale, ignore if looking for all locales\n where.locale = opts.locale;\n }\n\n // Published is passed, so we filter on it, otherwise we don't filter\n if (typeof opts.isPublished === 'boolean') {\n where.publishedAt = { $notNull: opts.isPublished };\n }\n\n return strapi.db.query(uid).findMany({ populate: opts.populate, where });\n },\n\n async findMany(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = { ...opts, populate: getDeepPopulate(uid) } as typeof opts;\n return strapi.documents(uid).findMany(params);\n },\n\n async findPage(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = pagination.withDefaultPagination(opts || {}, {\n maxLimit: 1000,\n });\n\n const { populate: _populate, sort: _sort, ...countParams } = params;\n const [documents, total = 0] = await Promise.all([\n strapi.documents(uid).findMany(params),\n strapi.documents(uid).count(countParams),\n ]);\n\n return {\n results: documents,\n pagination: pagination.transformPagedPaginationInfo(params, total),\n };\n },\n\n async create(uid: UID.CollectionType, opts: DocServiceParams<'create'> = {} as any) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, status: 'draft' as const, populate };\n\n return strapi.documents(uid).create(params);\n },\n\n async update(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'update'>, 'documentId'> = {} as any\n ) {\n const publishData = flow(omitPublishedAtField, omitIdField)(opts.data || {});\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, data: publishData, populate, status: 'draft' };\n\n return strapi.documents(uid).update({ ...params, documentId: id });\n },\n\n async clone(\n id: Modules.Documents.ID,\n body: Partial<Modules.Documents.Params.Data.Input<UID.CollectionType>>,\n uid: UID.CollectionType\n ) {\n const populate = await buildDeepPopulate(uid);\n\n // Extract the locale to pass it as a plain param\n const locale = body?.locale;\n const params = {\n // Ensure id and documentId are not copied to the clone\n data: omit(body, ['id', 'documentId']),\n locale,\n populate,\n };\n\n return strapi\n .documents(uid)\n .clone({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n /**\n * Check if a document exists\n */\n async exists(uid: UID.CollectionType, id?: string) {\n // Collection type\n if (id) {\n const count = await strapi.db.query(uid).count({ where: { documentId: id } });\n return count > 0;\n }\n\n // Single type\n const count = await strapi.db.query(uid).count();\n return count > 0;\n },\n\n async delete(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'delete'>, 'documentId'> = {} as any\n ) {\n await strapi.documents(uid).delete({\n ...opts,\n documentId: id,\n });\n return {};\n },\n\n // FIXME: handle relations\n async deleteMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: DocServiceParams<'findMany'> & { locale?: string } = {}\n ) {\n const deletedEntries = await strapi.db.transaction(async () => {\n return Promise.all(documentIds.map(async (id) => this.delete(id, uid, opts)));\n });\n\n return { count: deletedEntries.length };\n },\n\n async publish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'publish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .publish({ ...params, documentId: id })\n .then((result) => result?.entries);\n },\n\n async publishMany(uid: UID.ContentType, documentIds: string[], locale?: string | string[]) {\n return strapi.db.transaction(async () => {\n const results = await Promise.all(\n documentIds.map((documentId) => this.publish(documentId, uid, { locale, populate: {} }))\n );\n\n const publishedEntitiesCount = results.flat().filter(Boolean).length;\n return publishedEntitiesCount;\n });\n },\n\n async unpublishMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> = {} as any\n ) {\n const unpublishedEntries = await strapi.db.transaction(async () => {\n return Promise.all(\n documentIds.map((id) =>\n strapi\n .documents(uid)\n .unpublish({ ...opts, documentId: id, populate: {} })\n .then((result) => result?.entries)\n )\n );\n });\n\n const unpublishedEntitiesCount = unpublishedEntries.flat().filter(Boolean).length;\n\n // Return the number of unpublished entities\n return { count: unpublishedEntitiesCount };\n },\n\n async unpublish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .unpublish({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async discardDraft(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'discardDraft'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .discardDraft({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async countDraftRelations(id: string, uid: UID.ContentType, locale: string) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n const document = await strapi.documents(uid).findOne({ documentId: id, populate, locale });\n if (!document) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n return sumDraftCounts(strapi, document, uid);\n },\n\n async countManyEntriesDraftRelations(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n locale: string | string[]\n ) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return 0;\n }\n\n const entities = await strapi.documents(uid).findMany({\n populate,\n filters: { documentId: { $in: documentIds } } as any,\n locale,\n status: 'draft',\n });\n\n const counts = await Promise.all(\n entities.map((entity: Document) => sumDraftCounts(strapi, entity, uid))\n );\n\n return counts.reduce(\n (total, entityCounts) =>\n total + entityCounts.unpublishedRelations + entityCounts.draftM2mLinks,\n 0\n );\n },\n };\n};\n\nexport type DocumentManagerService = typeof documentManager;\n\nexport default documentManager;\n"],"names":["PUBLISHED_AT_ATTRIBUTE","contentTypes","constants","omitPublishedAtField","document","omit","omitIdField","documentManager","strapi","findOne","id","uid","opts","documents","documentId","findLocales","where","Array","isArray","locale","$in","isPublished","publishedAt","$notNull","db","query","findMany","populate","params","getDeepPopulate","findPage","pagination","withDefaultPagination","maxLimit","_populate","sort","_sort","countParams","total","Promise","all","count","results","transformPagedPaginationInfo","create","buildDeepPopulate","status","update","publishData","flow","data","clone","body","then","result","entries","at","exists","delete","deleteMany","documentIds","deletedEntries","transaction","map","length","publish","publishMany","publishedEntitiesCount","flat","filter","Boolean","unpublishMany","unpublishedEntries","unpublish","unpublishedEntitiesCount","discardDraft","countDraftRelations","hasRelations","getDeepPopulateDraftCount","EMPTY_DRAFT_RELATION_COUNTS","sumDraftCounts","countManyEntriesDraftRelations","entities","filters","counts","entity","reduce","entityCounts","unpublishedRelations","draftM2mLinks"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-manager.js","sources":["../../../server/src/services/document-manager.ts"],"sourcesContent":["import { omit, flow } from 'lodash';\n\nimport { contentTypes, errors, pagination } from '@strapi/utils';\nimport type { Core, Modules, UID } from '@strapi/types';\n\nimport { buildDeepPopulate, getDeepPopulate, getDeepPopulateDraftCount } from './utils/populate';\nimport { EMPTY_DRAFT_RELATION_COUNTS } from './utils/draft-relations';\nimport { sumDraftCounts } from './utils/draft';\n\ntype DocService = Modules.Documents.ServiceInstance;\ntype DocServiceParams<TAction extends keyof DocService> = Parameters<DocService[TAction]>[0];\nexport type Document = Modules.Documents.Result<UID.ContentType>;\n\nconst { PUBLISHED_AT_ATTRIBUTE } = contentTypes.constants;\n\nconst omitPublishedAtField = <T extends object>(document: T) =>\n omit(document, PUBLISHED_AT_ATTRIBUTE);\nconst omitIdField = <T extends object>(document: T) => omit(document, 'id');\n\nconst documentManager = ({ strapi }: { strapi: Core.Strapi }) => {\n /**\n * The document service has no publish, unpublish or discardDraft methods\n * for content types without draft and publish\n */\n const assertDraftAndPublish = (uid: UID.ContentType) => {\n if (contentTypes.hasDraftAndPublish(strapi.getModel(uid)) === false) {\n throw new errors.ValidationError('Draft and publish is not enabled for this content type');\n }\n };\n\n return {\n async findOne(\n id: string,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'findOne'>, 'documentId'> = {}\n ) {\n return strapi.documents(uid).findOne({ ...opts, documentId: id });\n },\n\n /**\n * Find multiple (or all) locales for a document\n */\n async findLocales(\n id: string | string[] | undefined,\n uid: UID.CollectionType,\n opts: {\n populate?: Modules.Documents.Params.Pick<any, 'populate'>;\n locale?: string | string[] | '*';\n isPublished?: boolean;\n }\n ) {\n // Will look for a specific locale by default\n const where: any = {};\n\n // Might not have an id if querying a single type\n if (id) {\n where.documentId = id;\n }\n\n // Search in array of locales\n if (Array.isArray(opts.locale)) {\n where.locale = { $in: opts.locale };\n } else if (opts.locale && opts.locale !== '*') {\n // Look for a specific locale, ignore if looking for all locales\n where.locale = opts.locale;\n }\n\n // Published is passed, so we filter on it, otherwise we don't filter\n if (typeof opts.isPublished === 'boolean') {\n where.publishedAt = { $notNull: opts.isPublished };\n }\n\n return strapi.db.query(uid).findMany({ populate: opts.populate, where });\n },\n\n async findMany(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = { ...opts, populate: getDeepPopulate(uid) } as typeof opts;\n return strapi.documents(uid).findMany(params);\n },\n\n async findPage(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = pagination.withDefaultPagination(opts || {}, {\n maxLimit: 1000,\n });\n\n const { populate: _populate, sort: _sort, ...countParams } = params;\n const [documents, total = 0] = await Promise.all([\n strapi.documents(uid).findMany(params),\n strapi.documents(uid).count(countParams),\n ]);\n\n return {\n results: documents,\n pagination: pagination.transformPagedPaginationInfo(params, total),\n };\n },\n\n async create(uid: UID.CollectionType, opts: DocServiceParams<'create'> = {} as any) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, status: 'draft' as const, populate };\n\n return strapi.documents(uid).create(params);\n },\n\n async update(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'update'>, 'documentId'> = {} as any\n ) {\n const publishData = flow(omitPublishedAtField, omitIdField)(opts.data || {});\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, data: publishData, populate, status: 'draft' };\n\n return strapi.documents(uid).update({ ...params, documentId: id });\n },\n\n async clone(\n id: Modules.Documents.ID,\n body: Partial<Modules.Documents.Params.Data.Input<UID.CollectionType>>,\n uid: UID.CollectionType\n ) {\n const populate = await buildDeepPopulate(uid);\n\n // Extract the locale to pass it as a plain param\n const locale = body?.locale;\n const params = {\n // Ensure id and documentId are not copied to the clone\n data: omit(body, ['id', 'documentId']),\n locale,\n populate,\n };\n\n return strapi\n .documents(uid)\n .clone({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n /**\n * Check if a document exists\n */\n async exists(uid: UID.CollectionType, id?: string) {\n // Collection type\n if (id) {\n const count = await strapi.db.query(uid).count({ where: { documentId: id } });\n return count > 0;\n }\n\n // Single type\n const count = await strapi.db.query(uid).count();\n return count > 0;\n },\n\n async delete(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'delete'>, 'documentId'> = {} as any\n ) {\n await strapi.documents(uid).delete({\n ...opts,\n documentId: id,\n });\n return {};\n },\n\n // FIXME: handle relations\n async deleteMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: DocServiceParams<'findMany'> & { locale?: string } = {}\n ) {\n const deletedEntries = await strapi.db.transaction(async () => {\n return Promise.all(documentIds.map(async (id) => this.delete(id, uid, opts)));\n });\n\n return { count: deletedEntries.length };\n },\n\n async publish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'publish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .publish({ ...params, documentId: id })\n .then((result) => result?.entries);\n },\n\n async publishMany(uid: UID.ContentType, documentIds: string[], locale?: string | string[]) {\n assertDraftAndPublish(uid);\n\n return strapi.db.transaction(async () => {\n const results = await Promise.all(\n documentIds.map((documentId) => this.publish(documentId, uid, { locale, populate: {} }))\n );\n\n const publishedEntitiesCount = results.flat().filter(Boolean).length;\n return publishedEntitiesCount;\n });\n },\n\n async unpublishMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const unpublishedEntries = await strapi.db.transaction(async () => {\n return Promise.all(\n documentIds.map((id) =>\n strapi\n .documents(uid)\n .unpublish({ ...opts, documentId: id, populate: {} })\n .then((result) => result?.entries)\n )\n );\n });\n\n const unpublishedEntitiesCount = unpublishedEntries.flat().filter(Boolean).length;\n\n // Return the number of unpublished entities\n return { count: unpublishedEntitiesCount };\n },\n\n async unpublish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .unpublish({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async discardDraft(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'discardDraft'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .discardDraft({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async countDraftRelations(id: string, uid: UID.ContentType, locale: string) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n const document = await strapi.documents(uid).findOne({ documentId: id, populate, locale });\n if (!document) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n return sumDraftCounts(strapi, document, uid);\n },\n\n async countManyEntriesDraftRelations(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n locale: string | string[]\n ) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return 0;\n }\n\n const entities = await strapi.documents(uid).findMany({\n populate,\n filters: { documentId: { $in: documentIds } } as any,\n locale,\n status: 'draft',\n });\n\n const counts = await Promise.all(\n entities.map((entity: Document) => sumDraftCounts(strapi, entity, uid))\n );\n\n return counts.reduce(\n (total, entityCounts) =>\n total + entityCounts.unpublishedRelations + entityCounts.draftM2mLinks,\n 0\n );\n },\n };\n};\n\nexport type DocumentManagerService = typeof documentManager;\n\nexport default documentManager;\n"],"names":["PUBLISHED_AT_ATTRIBUTE","contentTypes","constants","omitPublishedAtField","document","omit","omitIdField","documentManager","strapi","assertDraftAndPublish","uid","hasDraftAndPublish","getModel","errors","ValidationError","findOne","id","opts","documents","documentId","findLocales","where","Array","isArray","locale","$in","isPublished","publishedAt","$notNull","db","query","findMany","populate","params","getDeepPopulate","findPage","pagination","withDefaultPagination","maxLimit","_populate","sort","_sort","countParams","total","Promise","all","count","results","transformPagedPaginationInfo","create","buildDeepPopulate","status","update","publishData","flow","data","clone","body","then","result","entries","at","exists","delete","deleteMany","documentIds","deletedEntries","transaction","map","length","publish","publishMany","publishedEntitiesCount","flat","filter","Boolean","unpublishMany","unpublishedEntries","unpublish","unpublishedEntitiesCount","discardDraft","countDraftRelations","hasRelations","getDeepPopulateDraftCount","EMPTY_DRAFT_RELATION_COUNTS","sumDraftCounts","countManyEntriesDraftRelations","entities","filters","counts","entity","reduce","entityCounts","unpublishedRelations","draftM2mLinks"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { omit, flow } from 'lodash';
|
|
2
|
-
import { contentTypes, pagination } from '@strapi/utils';
|
|
2
|
+
import { contentTypes, pagination, errors } from '@strapi/utils';
|
|
3
3
|
import { getDeepPopulateDraftCount, buildDeepPopulate, getDeepPopulate } from './utils/populate.mjs';
|
|
4
4
|
import { EMPTY_DRAFT_RELATION_COUNTS } from './utils/draft-relations.mjs';
|
|
5
5
|
import { sumDraftCounts } from './utils/draft.mjs';
|
|
@@ -8,6 +8,14 @@ const { PUBLISHED_AT_ATTRIBUTE } = contentTypes.constants;
|
|
|
8
8
|
const omitPublishedAtField = (document)=>omit(document, PUBLISHED_AT_ATTRIBUTE);
|
|
9
9
|
const omitIdField = (document)=>omit(document, 'id');
|
|
10
10
|
const documentManager = ({ strapi })=>{
|
|
11
|
+
/**
|
|
12
|
+
* The document service has no publish, unpublish or discardDraft methods
|
|
13
|
+
* for content types without draft and publish
|
|
14
|
+
*/ const assertDraftAndPublish = (uid)=>{
|
|
15
|
+
if (contentTypes.hasDraftAndPublish(strapi.getModel(uid)) === false) {
|
|
16
|
+
throw new errors.ValidationError('Draft and publish is not enabled for this content type');
|
|
17
|
+
}
|
|
18
|
+
};
|
|
11
19
|
return {
|
|
12
20
|
async findOne (id, uid, opts = {}) {
|
|
13
21
|
return strapi.documents(uid).findOne({
|
|
@@ -139,6 +147,7 @@ const documentManager = ({ strapi })=>{
|
|
|
139
147
|
};
|
|
140
148
|
},
|
|
141
149
|
async publish (id, uid, opts = {}) {
|
|
150
|
+
assertDraftAndPublish(uid);
|
|
142
151
|
const populate = opts.populate ?? await buildDeepPopulate(uid);
|
|
143
152
|
const params = {
|
|
144
153
|
...opts,
|
|
@@ -150,6 +159,7 @@ const documentManager = ({ strapi })=>{
|
|
|
150
159
|
}).then((result)=>result?.entries);
|
|
151
160
|
},
|
|
152
161
|
async publishMany (uid, documentIds, locale) {
|
|
162
|
+
assertDraftAndPublish(uid);
|
|
153
163
|
return strapi.db.transaction(async ()=>{
|
|
154
164
|
const results = await Promise.all(documentIds.map((documentId)=>this.publish(documentId, uid, {
|
|
155
165
|
locale,
|
|
@@ -160,6 +170,7 @@ const documentManager = ({ strapi })=>{
|
|
|
160
170
|
});
|
|
161
171
|
},
|
|
162
172
|
async unpublishMany (documentIds, uid, opts = {}) {
|
|
173
|
+
assertDraftAndPublish(uid);
|
|
163
174
|
const unpublishedEntries = await strapi.db.transaction(async ()=>{
|
|
164
175
|
return Promise.all(documentIds.map((id)=>strapi.documents(uid).unpublish({
|
|
165
176
|
...opts,
|
|
@@ -174,6 +185,7 @@ const documentManager = ({ strapi })=>{
|
|
|
174
185
|
};
|
|
175
186
|
},
|
|
176
187
|
async unpublish (id, uid, opts = {}) {
|
|
188
|
+
assertDraftAndPublish(uid);
|
|
177
189
|
const populate = opts.populate ?? await buildDeepPopulate(uid);
|
|
178
190
|
const params = {
|
|
179
191
|
...opts,
|
|
@@ -185,6 +197,7 @@ const documentManager = ({ strapi })=>{
|
|
|
185
197
|
}).then((result)=>result?.entries.at(0));
|
|
186
198
|
},
|
|
187
199
|
async discardDraft (id, uid, opts = {}) {
|
|
200
|
+
assertDraftAndPublish(uid);
|
|
188
201
|
const populate = opts.populate ?? await buildDeepPopulate(uid);
|
|
189
202
|
const params = {
|
|
190
203
|
...opts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-manager.mjs","sources":["../../../server/src/services/document-manager.ts"],"sourcesContent":["import { omit, flow } from 'lodash';\n\nimport { contentTypes, pagination } from '@strapi/utils';\nimport type { Core, Modules, UID } from '@strapi/types';\n\nimport { buildDeepPopulate, getDeepPopulate, getDeepPopulateDraftCount } from './utils/populate';\nimport { EMPTY_DRAFT_RELATION_COUNTS } from './utils/draft-relations';\nimport { sumDraftCounts } from './utils/draft';\n\ntype DocService = Modules.Documents.ServiceInstance;\ntype DocServiceParams<TAction extends keyof DocService> = Parameters<DocService[TAction]>[0];\nexport type Document = Modules.Documents.Result<UID.ContentType>;\n\nconst { PUBLISHED_AT_ATTRIBUTE } = contentTypes.constants;\n\nconst omitPublishedAtField = <T extends object>(document: T) =>\n omit(document, PUBLISHED_AT_ATTRIBUTE);\nconst omitIdField = <T extends object>(document: T) => omit(document, 'id');\n\nconst documentManager = ({ strapi }: { strapi: Core.Strapi }) => {\n return {\n async findOne(\n id: string,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'findOne'>, 'documentId'> = {}\n ) {\n return strapi.documents(uid).findOne({ ...opts, documentId: id });\n },\n\n /**\n * Find multiple (or all) locales for a document\n */\n async findLocales(\n id: string | string[] | undefined,\n uid: UID.CollectionType,\n opts: {\n populate?: Modules.Documents.Params.Pick<any, 'populate'>;\n locale?: string | string[] | '*';\n isPublished?: boolean;\n }\n ) {\n // Will look for a specific locale by default\n const where: any = {};\n\n // Might not have an id if querying a single type\n if (id) {\n where.documentId = id;\n }\n\n // Search in array of locales\n if (Array.isArray(opts.locale)) {\n where.locale = { $in: opts.locale };\n } else if (opts.locale && opts.locale !== '*') {\n // Look for a specific locale, ignore if looking for all locales\n where.locale = opts.locale;\n }\n\n // Published is passed, so we filter on it, otherwise we don't filter\n if (typeof opts.isPublished === 'boolean') {\n where.publishedAt = { $notNull: opts.isPublished };\n }\n\n return strapi.db.query(uid).findMany({ populate: opts.populate, where });\n },\n\n async findMany(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = { ...opts, populate: getDeepPopulate(uid) } as typeof opts;\n return strapi.documents(uid).findMany(params);\n },\n\n async findPage(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = pagination.withDefaultPagination(opts || {}, {\n maxLimit: 1000,\n });\n\n const { populate: _populate, sort: _sort, ...countParams } = params;\n const [documents, total = 0] = await Promise.all([\n strapi.documents(uid).findMany(params),\n strapi.documents(uid).count(countParams),\n ]);\n\n return {\n results: documents,\n pagination: pagination.transformPagedPaginationInfo(params, total),\n };\n },\n\n async create(uid: UID.CollectionType, opts: DocServiceParams<'create'> = {} as any) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, status: 'draft' as const, populate };\n\n return strapi.documents(uid).create(params);\n },\n\n async update(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'update'>, 'documentId'> = {} as any\n ) {\n const publishData = flow(omitPublishedAtField, omitIdField)(opts.data || {});\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, data: publishData, populate, status: 'draft' };\n\n return strapi.documents(uid).update({ ...params, documentId: id });\n },\n\n async clone(\n id: Modules.Documents.ID,\n body: Partial<Modules.Documents.Params.Data.Input<UID.CollectionType>>,\n uid: UID.CollectionType\n ) {\n const populate = await buildDeepPopulate(uid);\n\n // Extract the locale to pass it as a plain param\n const locale = body?.locale;\n const params = {\n // Ensure id and documentId are not copied to the clone\n data: omit(body, ['id', 'documentId']),\n locale,\n populate,\n };\n\n return strapi\n .documents(uid)\n .clone({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n /**\n * Check if a document exists\n */\n async exists(uid: UID.CollectionType, id?: string) {\n // Collection type\n if (id) {\n const count = await strapi.db.query(uid).count({ where: { documentId: id } });\n return count > 0;\n }\n\n // Single type\n const count = await strapi.db.query(uid).count();\n return count > 0;\n },\n\n async delete(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'delete'>, 'documentId'> = {} as any\n ) {\n await strapi.documents(uid).delete({\n ...opts,\n documentId: id,\n });\n return {};\n },\n\n // FIXME: handle relations\n async deleteMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: DocServiceParams<'findMany'> & { locale?: string } = {}\n ) {\n const deletedEntries = await strapi.db.transaction(async () => {\n return Promise.all(documentIds.map(async (id) => this.delete(id, uid, opts)));\n });\n\n return { count: deletedEntries.length };\n },\n\n async publish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'publish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .publish({ ...params, documentId: id })\n .then((result) => result?.entries);\n },\n\n async publishMany(uid: UID.ContentType, documentIds: string[], locale?: string | string[]) {\n return strapi.db.transaction(async () => {\n const results = await Promise.all(\n documentIds.map((documentId) => this.publish(documentId, uid, { locale, populate: {} }))\n );\n\n const publishedEntitiesCount = results.flat().filter(Boolean).length;\n return publishedEntitiesCount;\n });\n },\n\n async unpublishMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> = {} as any\n ) {\n const unpublishedEntries = await strapi.db.transaction(async () => {\n return Promise.all(\n documentIds.map((id) =>\n strapi\n .documents(uid)\n .unpublish({ ...opts, documentId: id, populate: {} })\n .then((result) => result?.entries)\n )\n );\n });\n\n const unpublishedEntitiesCount = unpublishedEntries.flat().filter(Boolean).length;\n\n // Return the number of unpublished entities\n return { count: unpublishedEntitiesCount };\n },\n\n async unpublish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .unpublish({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async discardDraft(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'discardDraft'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .discardDraft({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async countDraftRelations(id: string, uid: UID.ContentType, locale: string) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n const document = await strapi.documents(uid).findOne({ documentId: id, populate, locale });\n if (!document) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n return sumDraftCounts(strapi, document, uid);\n },\n\n async countManyEntriesDraftRelations(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n locale: string | string[]\n ) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return 0;\n }\n\n const entities = await strapi.documents(uid).findMany({\n populate,\n filters: { documentId: { $in: documentIds } } as any,\n locale,\n status: 'draft',\n });\n\n const counts = await Promise.all(\n entities.map((entity: Document) => sumDraftCounts(strapi, entity, uid))\n );\n\n return counts.reduce(\n (total, entityCounts) =>\n total + entityCounts.unpublishedRelations + entityCounts.draftM2mLinks,\n 0\n );\n },\n };\n};\n\nexport type DocumentManagerService = typeof documentManager;\n\nexport default documentManager;\n"],"names":["PUBLISHED_AT_ATTRIBUTE","contentTypes","constants","omitPublishedAtField","document","omit","omitIdField","documentManager","strapi","findOne","id","uid","opts","documents","documentId","findLocales","where","Array","isArray","locale","$in","isPublished","publishedAt","$notNull","db","query","findMany","populate","params","getDeepPopulate","findPage","pagination","withDefaultPagination","maxLimit","_populate","sort","_sort","countParams","total","Promise","all","count","results","transformPagedPaginationInfo","create","buildDeepPopulate","status","update","publishData","flow","data","clone","body","then","result","entries","at","exists","delete","deleteMany","documentIds","deletedEntries","transaction","map","length","publish","publishMany","publishedEntitiesCount","flat","filter","Boolean","unpublishMany","unpublishedEntries","unpublish","unpublishedEntitiesCount","discardDraft","countDraftRelations","hasRelations","getDeepPopulateDraftCount","EMPTY_DRAFT_RELATION_COUNTS","sumDraftCounts","countManyEntriesDraftRelations","entities","filters","counts","entity","reduce","entityCounts","unpublishedRelations","draftM2mLinks"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-manager.mjs","sources":["../../../server/src/services/document-manager.ts"],"sourcesContent":["import { omit, flow } from 'lodash';\n\nimport { contentTypes, errors, pagination } from '@strapi/utils';\nimport type { Core, Modules, UID } from '@strapi/types';\n\nimport { buildDeepPopulate, getDeepPopulate, getDeepPopulateDraftCount } from './utils/populate';\nimport { EMPTY_DRAFT_RELATION_COUNTS } from './utils/draft-relations';\nimport { sumDraftCounts } from './utils/draft';\n\ntype DocService = Modules.Documents.ServiceInstance;\ntype DocServiceParams<TAction extends keyof DocService> = Parameters<DocService[TAction]>[0];\nexport type Document = Modules.Documents.Result<UID.ContentType>;\n\nconst { PUBLISHED_AT_ATTRIBUTE } = contentTypes.constants;\n\nconst omitPublishedAtField = <T extends object>(document: T) =>\n omit(document, PUBLISHED_AT_ATTRIBUTE);\nconst omitIdField = <T extends object>(document: T) => omit(document, 'id');\n\nconst documentManager = ({ strapi }: { strapi: Core.Strapi }) => {\n /**\n * The document service has no publish, unpublish or discardDraft methods\n * for content types without draft and publish\n */\n const assertDraftAndPublish = (uid: UID.ContentType) => {\n if (contentTypes.hasDraftAndPublish(strapi.getModel(uid)) === false) {\n throw new errors.ValidationError('Draft and publish is not enabled for this content type');\n }\n };\n\n return {\n async findOne(\n id: string,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'findOne'>, 'documentId'> = {}\n ) {\n return strapi.documents(uid).findOne({ ...opts, documentId: id });\n },\n\n /**\n * Find multiple (or all) locales for a document\n */\n async findLocales(\n id: string | string[] | undefined,\n uid: UID.CollectionType,\n opts: {\n populate?: Modules.Documents.Params.Pick<any, 'populate'>;\n locale?: string | string[] | '*';\n isPublished?: boolean;\n }\n ) {\n // Will look for a specific locale by default\n const where: any = {};\n\n // Might not have an id if querying a single type\n if (id) {\n where.documentId = id;\n }\n\n // Search in array of locales\n if (Array.isArray(opts.locale)) {\n where.locale = { $in: opts.locale };\n } else if (opts.locale && opts.locale !== '*') {\n // Look for a specific locale, ignore if looking for all locales\n where.locale = opts.locale;\n }\n\n // Published is passed, so we filter on it, otherwise we don't filter\n if (typeof opts.isPublished === 'boolean') {\n where.publishedAt = { $notNull: opts.isPublished };\n }\n\n return strapi.db.query(uid).findMany({ populate: opts.populate, where });\n },\n\n async findMany(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = { ...opts, populate: getDeepPopulate(uid) } as typeof opts;\n return strapi.documents(uid).findMany(params);\n },\n\n async findPage(opts: DocServiceParams<'findMany'>, uid: UID.CollectionType) {\n const params = pagination.withDefaultPagination(opts || {}, {\n maxLimit: 1000,\n });\n\n const { populate: _populate, sort: _sort, ...countParams } = params;\n const [documents, total = 0] = await Promise.all([\n strapi.documents(uid).findMany(params),\n strapi.documents(uid).count(countParams),\n ]);\n\n return {\n results: documents,\n pagination: pagination.transformPagedPaginationInfo(params, total),\n };\n },\n\n async create(uid: UID.CollectionType, opts: DocServiceParams<'create'> = {} as any) {\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, status: 'draft' as const, populate };\n\n return strapi.documents(uid).create(params);\n },\n\n async update(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'update'>, 'documentId'> = {} as any\n ) {\n const publishData = flow(omitPublishedAtField, omitIdField)(opts.data || {});\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, data: publishData, populate, status: 'draft' };\n\n return strapi.documents(uid).update({ ...params, documentId: id });\n },\n\n async clone(\n id: Modules.Documents.ID,\n body: Partial<Modules.Documents.Params.Data.Input<UID.CollectionType>>,\n uid: UID.CollectionType\n ) {\n const populate = await buildDeepPopulate(uid);\n\n // Extract the locale to pass it as a plain param\n const locale = body?.locale;\n const params = {\n // Ensure id and documentId are not copied to the clone\n data: omit(body, ['id', 'documentId']),\n locale,\n populate,\n };\n\n return strapi\n .documents(uid)\n .clone({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n /**\n * Check if a document exists\n */\n async exists(uid: UID.CollectionType, id?: string) {\n // Collection type\n if (id) {\n const count = await strapi.db.query(uid).count({ where: { documentId: id } });\n return count > 0;\n }\n\n // Single type\n const count = await strapi.db.query(uid).count();\n return count > 0;\n },\n\n async delete(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'delete'>, 'documentId'> = {} as any\n ) {\n await strapi.documents(uid).delete({\n ...opts,\n documentId: id,\n });\n return {};\n },\n\n // FIXME: handle relations\n async deleteMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: DocServiceParams<'findMany'> & { locale?: string } = {}\n ) {\n const deletedEntries = await strapi.db.transaction(async () => {\n return Promise.all(documentIds.map(async (id) => this.delete(id, uid, opts)));\n });\n\n return { count: deletedEntries.length };\n },\n\n async publish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'publish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .publish({ ...params, documentId: id })\n .then((result) => result?.entries);\n },\n\n async publishMany(uid: UID.ContentType, documentIds: string[], locale?: string | string[]) {\n assertDraftAndPublish(uid);\n\n return strapi.db.transaction(async () => {\n const results = await Promise.all(\n documentIds.map((documentId) => this.publish(documentId, uid, { locale, populate: {} }))\n );\n\n const publishedEntitiesCount = results.flat().filter(Boolean).length;\n return publishedEntitiesCount;\n });\n },\n\n async unpublishMany(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const unpublishedEntries = await strapi.db.transaction(async () => {\n return Promise.all(\n documentIds.map((id) =>\n strapi\n .documents(uid)\n .unpublish({ ...opts, documentId: id, populate: {} })\n .then((result) => result?.entries)\n )\n );\n });\n\n const unpublishedEntitiesCount = unpublishedEntries.flat().filter(Boolean).length;\n\n // Return the number of unpublished entities\n return { count: unpublishedEntitiesCount };\n },\n\n async unpublish(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'unpublish'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .unpublish({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async discardDraft(\n id: Modules.Documents.ID,\n uid: UID.CollectionType,\n opts: Omit<DocServiceParams<'discardDraft'>, 'documentId'> & { populate?: object } = {} as any\n ) {\n assertDraftAndPublish(uid);\n\n const populate = opts.populate ?? (await buildDeepPopulate(uid));\n const params = { ...opts, populate };\n\n return strapi\n .documents(uid)\n .discardDraft({ ...params, documentId: id })\n .then((result) => result?.entries.at(0));\n },\n\n async countDraftRelations(id: string, uid: UID.ContentType, locale: string) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n const document = await strapi.documents(uid).findOne({ documentId: id, populate, locale });\n if (!document) {\n return EMPTY_DRAFT_RELATION_COUNTS;\n }\n\n return sumDraftCounts(strapi, document, uid);\n },\n\n async countManyEntriesDraftRelations(\n documentIds: Modules.Documents.ID[],\n uid: UID.CollectionType,\n locale: string | string[]\n ) {\n const { populate, hasRelations } = getDeepPopulateDraftCount(uid);\n\n if (!hasRelations) {\n return 0;\n }\n\n const entities = await strapi.documents(uid).findMany({\n populate,\n filters: { documentId: { $in: documentIds } } as any,\n locale,\n status: 'draft',\n });\n\n const counts = await Promise.all(\n entities.map((entity: Document) => sumDraftCounts(strapi, entity, uid))\n );\n\n return counts.reduce(\n (total, entityCounts) =>\n total + entityCounts.unpublishedRelations + entityCounts.draftM2mLinks,\n 0\n );\n },\n };\n};\n\nexport type DocumentManagerService = typeof documentManager;\n\nexport default documentManager;\n"],"names":["PUBLISHED_AT_ATTRIBUTE","contentTypes","constants","omitPublishedAtField","document","omit","omitIdField","documentManager","strapi","assertDraftAndPublish","uid","hasDraftAndPublish","getModel","errors","ValidationError","findOne","id","opts","documents","documentId","findLocales","where","Array","isArray","locale","$in","isPublished","publishedAt","$notNull","db","query","findMany","populate","params","getDeepPopulate","findPage","pagination","withDefaultPagination","maxLimit","_populate","sort","_sort","countParams","total","Promise","all","count","results","transformPagedPaginationInfo","create","buildDeepPopulate","status","update","publishData","flow","data","clone","body","then","result","entries","at","exists","delete","deleteMany","documentIds","deletedEntries","transaction","map","length","publish","publishMany","publishedEntitiesCount","flat","filter","Boolean","unpublishMany","unpublishedEntries","unpublish","unpublishedEntitiesCount","discardDraft","countDraftRelations","hasRelations","getDeepPopulateDraftCount","EMPTY_DRAFT_RELATION_COUNTS","sumDraftCounts","countManyEntriesDraftRelations","entities","filters","counts","entity","reduce","entityCounts","unpublishedRelations","draftM2mLinks"],"mappings":"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"}
|
|
@@ -11,8 +11,9 @@ var permission = require('./permission.js');
|
|
|
11
11
|
var populateBuilder = require('./populate-builder.js');
|
|
12
12
|
var uid = require('./uid.js');
|
|
13
13
|
var index = require('../history/index.js');
|
|
14
|
-
var index$
|
|
14
|
+
var index$3 = require('../preview/index.js');
|
|
15
15
|
var index$1 = require('../homepage/index.js');
|
|
16
|
+
var index$2 = require('../custom-order/index.js');
|
|
16
17
|
var documentMetadata = require('./document-metadata.js');
|
|
17
18
|
var documentManager = require('./document-manager.js');
|
|
18
19
|
|
|
@@ -30,6 +31,7 @@ var services = {
|
|
|
30
31
|
'populate-builder': populateBuilder,
|
|
31
32
|
uid,
|
|
32
33
|
...index.services ? index.services : {},
|
|
34
|
+
...index$3.services ? index$3.services : {},
|
|
33
35
|
...index$2.services ? index$2.services : {},
|
|
34
36
|
...index$1.services
|
|
35
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentStructure from './content-structure';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-structure': contentStructure,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentStructure","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","homepage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentStructure from './content-structure';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport customOrder from '../custom-order';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-structure': contentStructure,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...(customOrder.services ? customOrder.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentStructure","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","customOrder","homepage"],"mappings":";;;;;;;;;;;;;;;;;;;AAiBA,eAAe;AACbA,IAAAA,UAAAA;IACA,mBAAA,EAAqBC,gBAAAA;IACrB,eAAA,EAAiBC,YAAAA;IACjB,aAAA,EAAeC,UAAAA;IACf,mBAAA,EAAqBC,gBAAAA;IACrB,kBAAA,EAAoBC,eAAAA;IACpB,aAAA,EAAeC,UAAAA;AACfC,IAAAA,OAAAA;IACA,oBAAA,EAAsBC,yBAAAA;AACtBC,IAAAA,UAAAA;IACA,kBAAA,EAAoBC,eAAAA;AACpBC,IAAAA,GAAAA;AACA,IAAA,GAAIC,MAAQC,QAAQ,GAAGD,MAAQC,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIC,QAAQD,QAAQ,GAAGC,QAAQD,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIE,QAAYF,QAAQ,GAAGE,QAAYF,QAAQ,GAAG,EAAE;AACpD,IAAA,GAAGG,QAASH;AACd,CAAA;;;;"}
|
|
@@ -11,6 +11,7 @@ import uid from './uid.mjs';
|
|
|
11
11
|
import history from '../history/index.mjs';
|
|
12
12
|
import preview from '../preview/index.mjs';
|
|
13
13
|
import homepage from '../homepage/index.mjs';
|
|
14
|
+
import feature from '../custom-order/index.mjs';
|
|
14
15
|
import documentMetadata from './document-metadata.mjs';
|
|
15
16
|
import documentManager from './document-manager.mjs';
|
|
16
17
|
|
|
@@ -29,6 +30,7 @@ var services = {
|
|
|
29
30
|
uid,
|
|
30
31
|
...history.services ? history.services : {},
|
|
31
32
|
...preview.services ? preview.services : {},
|
|
33
|
+
...feature.services ? feature.services : {},
|
|
32
34
|
...homepage.services
|
|
33
35
|
};
|
|
34
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentStructure from './content-structure';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-structure': contentStructure,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentStructure","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","homepage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentStructure from './content-structure';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport customOrder from '../custom-order';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-structure': contentStructure,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...(customOrder.services ? customOrder.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentStructure","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","customOrder","homepage"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,eAAe;AACbA,IAAAA,UAAAA;IACA,mBAAA,EAAqBC,6BAAAA;IACrB,eAAA,EAAiBC,OAAAA;IACjB,aAAA,EAAeC,UAAAA;IACf,mBAAA,EAAqBC,gBAAAA;IACrB,kBAAA,EAAoBC,eAAAA;IACpB,aAAA,EAAeC,uBAAAA;AACfC,IAAAA,OAAAA;IACA,oBAAA,EAAsBC,iBAAAA;AACtBC,IAAAA,UAAAA;IACA,kBAAA,EAAoBC,eAAAA;AACpBC,IAAAA,GAAAA;AACA,IAAA,GAAIC,QAAQC,QAAQ,GAAGD,QAAQC,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIC,QAAQD,QAAQ,GAAGC,QAAQD,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIE,QAAYF,QAAQ,GAAGE,QAAYF,QAAQ,GAAG,EAAE;AACpD,IAAA,GAAGG,SAASH;AACd,CAAA;;;;"}
|
|
@@ -24,7 +24,8 @@ const settingsFields = [
|
|
|
24
24
|
'mainField',
|
|
25
25
|
'defaultSortBy',
|
|
26
26
|
'defaultSortOrder',
|
|
27
|
-
'relationOpenMode'
|
|
27
|
+
'relationOpenMode',
|
|
28
|
+
'customOrder'
|
|
28
29
|
];
|
|
29
30
|
const getModelSettings = (model)=>_.pick(_.get(model, 'config.settings', {}), settingsFields);
|
|
30
31
|
async function isValidDefaultSort(schema, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sources":["../../../../../server/src/services/utils/configuration/settings.ts"],"sourcesContent":["import { get, pick, isEmpty, isEqual } from 'lodash';\n\nimport { traverse } from '@strapi/utils';\nimport qs from 'qs';\nimport { isSortable, getDefaultMainField, getSortableAttributes } from './attributes';\n\n/** General settings */\nconst DEFAULT_SETTINGS = {\n bulkable: true,\n filterable: true,\n searchable: true,\n pageSize: 10,\n relationOpenMode: 'modal' as const,\n};\n\nconst settingsFields = [\n 'searchable',\n 'filterable',\n 'bulkable',\n 'pageSize',\n 'mainField',\n 'defaultSortBy',\n 'defaultSortOrder',\n 'relationOpenMode',\n];\n\nconst getModelSettings = (model: unknown) =>\n pick(get(model, 'config.settings', {}), settingsFields);\n\nasync function isValidDefaultSort(schema: any, value: any) {\n const parsedValue = qs.parse(value);\n\n const omitNonSortableAttributes = ({ schema, key }: any, { remove }: any) => {\n const sortableAttributes = getSortableAttributes(schema);\n if (!sortableAttributes.includes(key)) {\n remove(key);\n }\n };\n\n const sanitizedValue = await traverse.traverseQuerySort(\n omitNonSortableAttributes,\n { schema, getModel: strapi.getModel.bind(strapi) },\n parsedValue\n );\n\n // If any of the keys has been removed, the sort attribute is not valid\n return isEqual(parsedValue, sanitizedValue);\n}\n\nconst createDefaultSettings = async (schema: any) => {\n const defaultField = getDefaultMainField(schema);\n\n return {\n ...DEFAULT_SETTINGS,\n mainField: defaultField,\n defaultSortBy: defaultField,\n defaultSortOrder: 'ASC',\n ...getModelSettings(schema),\n };\n};\n\nconst syncSettings = async (configuration: any, schema: any) => {\n if (isEmpty(configuration.settings)) return createDefaultSettings(schema);\n\n const defaultField = getDefaultMainField(schema);\n\n const { mainField = defaultField, defaultSortBy = defaultField } = configuration.settings || {};\n\n return {\n ...configuration.settings,\n mainField: isSortable(schema, mainField) ? mainField : defaultField,\n defaultSortBy: (await isValidDefaultSort(schema, defaultSortBy)) ? defaultSortBy : defaultField,\n };\n};\n\nexport { isValidDefaultSort, createDefaultSettings, syncSettings };\n"],"names":["DEFAULT_SETTINGS","bulkable","filterable","searchable","pageSize","relationOpenMode","settingsFields","getModelSettings","model","pick","get","isValidDefaultSort","schema","value","parsedValue","qs","parse","omitNonSortableAttributes","key","remove","sortableAttributes","getSortableAttributes","includes","sanitizedValue","traverse","traverseQuerySort","getModel","strapi","bind","isEqual","createDefaultSettings","defaultField","getDefaultMainField","mainField","defaultSortBy","defaultSortOrder","syncSettings","configuration","isEmpty","settings","isSortable"],"mappings":";;;;;;;;;;;AAMA,wBACA,MAAMA,gBAAAA,GAAmB;IACvBC,QAAAA,EAAU,IAAA;IACVC,UAAAA,EAAY,IAAA;IACZC,UAAAA,EAAY,IAAA;IACZC,QAAAA,EAAU,EAAA;IACVC,gBAAAA,EAAkB;AACpB,CAAA;AAEA,MAAMC,cAAAA,GAAiB;AACrB,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA,eAAA;AACA,IAAA,kBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,gBAAAA,GAAmB,CAACC,KAAAA,GACxBC,MAAAA,CAAKC,MAAIF,KAAAA,EAAO,iBAAA,EAAmB,EAAC,CAAA,EAAIF,cAAAA,CAAAA;AAE1C,eAAeK,kBAAAA,CAAmBC,MAAW,EAAEC,KAAU,EAAA;IACvD,MAAMC,WAAAA,GAAcC,mBAAAA,CAAGC,KAAK,CAACH,KAAAA,CAAAA;IAE7B,MAAMI,yBAAAA,GAA4B,CAAC,EAAEL,MAAM,EAAEM,GAAG,EAAO,EAAE,EAAEC,MAAM,EAAO,GAAA;AACtE,QAAA,MAAMC,qBAAqBC,gCAAAA,CAAsBT,MAAAA,CAAAA;AACjD,QAAA,IAAI,CAACQ,kBAAAA,CAAmBE,QAAQ,CAACJ,GAAAA,CAAAA,EAAM;YACrCC,MAAAA,CAAOD,GAAAA,CAAAA;AACT,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMK,cAAAA,GAAiB,MAAMC,oBAAAA,CAASC,iBAAiB,CACrDR,yBAAAA,EACA;AAAEL,QAAAA,MAAAA;AAAQc,QAAAA,QAAAA,EAAUC,MAAAA,CAAOD,QAAQ,CAACE,IAAI,CAACD,MAAAA;KAAQ,EACjDb,WAAAA,CAAAA;;AAIF,IAAA,OAAOe,UAAQf,WAAAA,EAAaS,cAAAA,CAAAA;AAC9B;AAEA,MAAMO,wBAAwB,OAAOlB,MAAAA,GAAAA;AACnC,IAAA,MAAMmB,eAAeC,8BAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,OAAO;AACL,QAAA,GAAGZ,gBAAgB;QACnBiC,SAAAA,EAAWF,YAAAA;QACXG,aAAAA,EAAeH,YAAAA;QACfI,gBAAAA,EAAkB,KAAA;AAClB,QAAA,GAAG5B,iBAAiBK,MAAAA;AACtB,KAAA;AACF;AAEA,MAAMwB,YAAAA,GAAe,OAAOC,aAAAA,EAAoBzB,MAAAA,GAAAA;AAC9C,IAAA,IAAI0B,SAAAA,CAAQD,aAAAA,CAAcE,QAAQ,CAAA,EAAG,OAAOT,qBAAAA,CAAsBlB,MAAAA,CAAAA;AAElE,IAAA,MAAMmB,eAAeC,8BAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,MAAM,EAAEqB,SAAAA,GAAYF,YAAY,EAAEG,aAAAA,GAAgBH,YAAY,EAAE,GAAGM,aAAAA,CAAcE,QAAQ,IAAI,EAAC;IAE9F,OAAO;AACL,QAAA,GAAGF,cAAcE,QAAQ;QACzBN,SAAAA,EAAWO,qBAAAA,CAAW5B,MAAAA,EAAQqB,SAAAA,CAAAA,GAAaA,SAAAA,GAAYF,YAAAA;AACvDG,QAAAA,aAAAA,EAAe,MAAOvB,kBAAAA,CAAmBC,MAAAA,EAAQsB,iBAAkBA,aAAAA,GAAgBH;AACrF,KAAA;AACF;;;;;;"}
|
|
1
|
+
{"version":3,"file":"settings.js","sources":["../../../../../server/src/services/utils/configuration/settings.ts"],"sourcesContent":["import { get, pick, isEmpty, isEqual } from 'lodash';\n\nimport { traverse } from '@strapi/utils';\nimport qs from 'qs';\nimport { isSortable, getDefaultMainField, getSortableAttributes } from './attributes';\n\n/** General settings */\nconst DEFAULT_SETTINGS = {\n bulkable: true,\n filterable: true,\n searchable: true,\n pageSize: 10,\n relationOpenMode: 'modal' as const,\n};\n\nconst settingsFields = [\n 'searchable',\n 'filterable',\n 'bulkable',\n 'pageSize',\n 'mainField',\n 'defaultSortBy',\n 'defaultSortOrder',\n 'relationOpenMode',\n 'customOrder',\n];\n\nconst getModelSettings = (model: unknown) =>\n pick(get(model, 'config.settings', {}), settingsFields);\n\nasync function isValidDefaultSort(schema: any, value: any) {\n const parsedValue = qs.parse(value);\n\n const omitNonSortableAttributes = ({ schema, key }: any, { remove }: any) => {\n const sortableAttributes = getSortableAttributes(schema);\n if (!sortableAttributes.includes(key)) {\n remove(key);\n }\n };\n\n const sanitizedValue = await traverse.traverseQuerySort(\n omitNonSortableAttributes,\n { schema, getModel: strapi.getModel.bind(strapi) },\n parsedValue\n );\n\n // If any of the keys has been removed, the sort attribute is not valid\n return isEqual(parsedValue, sanitizedValue);\n}\n\nconst createDefaultSettings = async (schema: any) => {\n const defaultField = getDefaultMainField(schema);\n\n return {\n ...DEFAULT_SETTINGS,\n mainField: defaultField,\n defaultSortBy: defaultField,\n defaultSortOrder: 'ASC',\n ...getModelSettings(schema),\n };\n};\n\nconst syncSettings = async (configuration: any, schema: any) => {\n if (isEmpty(configuration.settings)) return createDefaultSettings(schema);\n\n const defaultField = getDefaultMainField(schema);\n\n const { mainField = defaultField, defaultSortBy = defaultField } = configuration.settings || {};\n\n return {\n ...configuration.settings,\n mainField: isSortable(schema, mainField) ? mainField : defaultField,\n defaultSortBy: (await isValidDefaultSort(schema, defaultSortBy)) ? defaultSortBy : defaultField,\n };\n};\n\nexport { isValidDefaultSort, createDefaultSettings, syncSettings };\n"],"names":["DEFAULT_SETTINGS","bulkable","filterable","searchable","pageSize","relationOpenMode","settingsFields","getModelSettings","model","pick","get","isValidDefaultSort","schema","value","parsedValue","qs","parse","omitNonSortableAttributes","key","remove","sortableAttributes","getSortableAttributes","includes","sanitizedValue","traverse","traverseQuerySort","getModel","strapi","bind","isEqual","createDefaultSettings","defaultField","getDefaultMainField","mainField","defaultSortBy","defaultSortOrder","syncSettings","configuration","isEmpty","settings","isSortable"],"mappings":";;;;;;;;;;;AAMA,wBACA,MAAMA,gBAAAA,GAAmB;IACvBC,QAAAA,EAAU,IAAA;IACVC,UAAAA,EAAY,IAAA;IACZC,UAAAA,EAAY,IAAA;IACZC,QAAAA,EAAU,EAAA;IACVC,gBAAAA,EAAkB;AACpB,CAAA;AAEA,MAAMC,cAAAA,GAAiB;AACrB,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA,eAAA;AACA,IAAA,kBAAA;AACA,IAAA,kBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,gBAAAA,GAAmB,CAACC,KAAAA,GACxBC,MAAAA,CAAKC,MAAIF,KAAAA,EAAO,iBAAA,EAAmB,EAAC,CAAA,EAAIF,cAAAA,CAAAA;AAE1C,eAAeK,kBAAAA,CAAmBC,MAAW,EAAEC,KAAU,EAAA;IACvD,MAAMC,WAAAA,GAAcC,mBAAAA,CAAGC,KAAK,CAACH,KAAAA,CAAAA;IAE7B,MAAMI,yBAAAA,GAA4B,CAAC,EAAEL,MAAM,EAAEM,GAAG,EAAO,EAAE,EAAEC,MAAM,EAAO,GAAA;AACtE,QAAA,MAAMC,qBAAqBC,gCAAAA,CAAsBT,MAAAA,CAAAA;AACjD,QAAA,IAAI,CAACQ,kBAAAA,CAAmBE,QAAQ,CAACJ,GAAAA,CAAAA,EAAM;YACrCC,MAAAA,CAAOD,GAAAA,CAAAA;AACT,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMK,cAAAA,GAAiB,MAAMC,oBAAAA,CAASC,iBAAiB,CACrDR,yBAAAA,EACA;AAAEL,QAAAA,MAAAA;AAAQc,QAAAA,QAAAA,EAAUC,MAAAA,CAAOD,QAAQ,CAACE,IAAI,CAACD,MAAAA;KAAQ,EACjDb,WAAAA,CAAAA;;AAIF,IAAA,OAAOe,UAAQf,WAAAA,EAAaS,cAAAA,CAAAA;AAC9B;AAEA,MAAMO,wBAAwB,OAAOlB,MAAAA,GAAAA;AACnC,IAAA,MAAMmB,eAAeC,8BAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,OAAO;AACL,QAAA,GAAGZ,gBAAgB;QACnBiC,SAAAA,EAAWF,YAAAA;QACXG,aAAAA,EAAeH,YAAAA;QACfI,gBAAAA,EAAkB,KAAA;AAClB,QAAA,GAAG5B,iBAAiBK,MAAAA;AACtB,KAAA;AACF;AAEA,MAAMwB,YAAAA,GAAe,OAAOC,aAAAA,EAAoBzB,MAAAA,GAAAA;AAC9C,IAAA,IAAI0B,SAAAA,CAAQD,aAAAA,CAAcE,QAAQ,CAAA,EAAG,OAAOT,qBAAAA,CAAsBlB,MAAAA,CAAAA;AAElE,IAAA,MAAMmB,eAAeC,8BAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,MAAM,EAAEqB,SAAAA,GAAYF,YAAY,EAAEG,aAAAA,GAAgBH,YAAY,EAAE,GAAGM,aAAAA,CAAcE,QAAQ,IAAI,EAAC;IAE9F,OAAO;AACL,QAAA,GAAGF,cAAcE,QAAQ;QACzBN,SAAAA,EAAWO,qBAAAA,CAAW5B,MAAAA,EAAQqB,SAAAA,CAAAA,GAAaA,SAAAA,GAAYF,YAAAA;AACvDG,QAAAA,aAAAA,EAAe,MAAOvB,kBAAAA,CAAmBC,MAAAA,EAAQsB,iBAAkBA,aAAAA,GAAgBH;AACrF,KAAA;AACF;;;;;;"}
|
|
@@ -18,7 +18,8 @@ const settingsFields = [
|
|
|
18
18
|
'mainField',
|
|
19
19
|
'defaultSortBy',
|
|
20
20
|
'defaultSortOrder',
|
|
21
|
-
'relationOpenMode'
|
|
21
|
+
'relationOpenMode',
|
|
22
|
+
'customOrder'
|
|
22
23
|
];
|
|
23
24
|
const getModelSettings = (model)=>pick(get(model, 'config.settings', {}), settingsFields);
|
|
24
25
|
async function isValidDefaultSort(schema, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.mjs","sources":["../../../../../server/src/services/utils/configuration/settings.ts"],"sourcesContent":["import { get, pick, isEmpty, isEqual } from 'lodash';\n\nimport { traverse } from '@strapi/utils';\nimport qs from 'qs';\nimport { isSortable, getDefaultMainField, getSortableAttributes } from './attributes';\n\n/** General settings */\nconst DEFAULT_SETTINGS = {\n bulkable: true,\n filterable: true,\n searchable: true,\n pageSize: 10,\n relationOpenMode: 'modal' as const,\n};\n\nconst settingsFields = [\n 'searchable',\n 'filterable',\n 'bulkable',\n 'pageSize',\n 'mainField',\n 'defaultSortBy',\n 'defaultSortOrder',\n 'relationOpenMode',\n];\n\nconst getModelSettings = (model: unknown) =>\n pick(get(model, 'config.settings', {}), settingsFields);\n\nasync function isValidDefaultSort(schema: any, value: any) {\n const parsedValue = qs.parse(value);\n\n const omitNonSortableAttributes = ({ schema, key }: any, { remove }: any) => {\n const sortableAttributes = getSortableAttributes(schema);\n if (!sortableAttributes.includes(key)) {\n remove(key);\n }\n };\n\n const sanitizedValue = await traverse.traverseQuerySort(\n omitNonSortableAttributes,\n { schema, getModel: strapi.getModel.bind(strapi) },\n parsedValue\n );\n\n // If any of the keys has been removed, the sort attribute is not valid\n return isEqual(parsedValue, sanitizedValue);\n}\n\nconst createDefaultSettings = async (schema: any) => {\n const defaultField = getDefaultMainField(schema);\n\n return {\n ...DEFAULT_SETTINGS,\n mainField: defaultField,\n defaultSortBy: defaultField,\n defaultSortOrder: 'ASC',\n ...getModelSettings(schema),\n };\n};\n\nconst syncSettings = async (configuration: any, schema: any) => {\n if (isEmpty(configuration.settings)) return createDefaultSettings(schema);\n\n const defaultField = getDefaultMainField(schema);\n\n const { mainField = defaultField, defaultSortBy = defaultField } = configuration.settings || {};\n\n return {\n ...configuration.settings,\n mainField: isSortable(schema, mainField) ? mainField : defaultField,\n defaultSortBy: (await isValidDefaultSort(schema, defaultSortBy)) ? defaultSortBy : defaultField,\n };\n};\n\nexport { isValidDefaultSort, createDefaultSettings, syncSettings };\n"],"names":["DEFAULT_SETTINGS","bulkable","filterable","searchable","pageSize","relationOpenMode","settingsFields","getModelSettings","model","pick","get","isValidDefaultSort","schema","value","parsedValue","qs","parse","omitNonSortableAttributes","key","remove","sortableAttributes","getSortableAttributes","includes","sanitizedValue","traverse","traverseQuerySort","getModel","strapi","bind","isEqual","createDefaultSettings","defaultField","getDefaultMainField","mainField","defaultSortBy","defaultSortOrder","syncSettings","configuration","isEmpty","settings","isSortable"],"mappings":";;;;;AAMA,wBACA,MAAMA,gBAAAA,GAAmB;IACvBC,QAAAA,EAAU,IAAA;IACVC,UAAAA,EAAY,IAAA;IACZC,UAAAA,EAAY,IAAA;IACZC,QAAAA,EAAU,EAAA;IACVC,gBAAAA,EAAkB;AACpB,CAAA;AAEA,MAAMC,cAAAA,GAAiB;AACrB,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA,eAAA;AACA,IAAA,kBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,gBAAAA,GAAmB,CAACC,KAAAA,GACxBC,IAAAA,CAAKC,IAAIF,KAAAA,EAAO,iBAAA,EAAmB,EAAC,CAAA,EAAIF,cAAAA,CAAAA;AAE1C,eAAeK,kBAAAA,CAAmBC,MAAW,EAAEC,KAAU,EAAA;IACvD,MAAMC,WAAAA,GAAcC,EAAAA,CAAGC,KAAK,CAACH,KAAAA,CAAAA;IAE7B,MAAMI,yBAAAA,GAA4B,CAAC,EAAEL,MAAM,EAAEM,GAAG,EAAO,EAAE,EAAEC,MAAM,EAAO,GAAA;AACtE,QAAA,MAAMC,qBAAqBC,qBAAAA,CAAsBT,MAAAA,CAAAA;AACjD,QAAA,IAAI,CAACQ,kBAAAA,CAAmBE,QAAQ,CAACJ,GAAAA,CAAAA,EAAM;YACrCC,MAAAA,CAAOD,GAAAA,CAAAA;AACT,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMK,cAAAA,GAAiB,MAAMC,QAAAA,CAASC,iBAAiB,CACrDR,yBAAAA,EACA;AAAEL,QAAAA,MAAAA;AAAQc,QAAAA,QAAAA,EAAUC,MAAAA,CAAOD,QAAQ,CAACE,IAAI,CAACD,MAAAA;KAAQ,EACjDb,WAAAA,CAAAA;;AAIF,IAAA,OAAOe,QAAQf,WAAAA,EAAaS,cAAAA,CAAAA;AAC9B;AAEA,MAAMO,wBAAwB,OAAOlB,MAAAA,GAAAA;AACnC,IAAA,MAAMmB,eAAeC,mBAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,OAAO;AACL,QAAA,GAAGZ,gBAAgB;QACnBiC,SAAAA,EAAWF,YAAAA;QACXG,aAAAA,EAAeH,YAAAA;QACfI,gBAAAA,EAAkB,KAAA;AAClB,QAAA,GAAG5B,iBAAiBK,MAAAA;AACtB,KAAA;AACF;AAEA,MAAMwB,YAAAA,GAAe,OAAOC,aAAAA,EAAoBzB,MAAAA,GAAAA;AAC9C,IAAA,IAAI0B,OAAAA,CAAQD,aAAAA,CAAcE,QAAQ,CAAA,EAAG,OAAOT,qBAAAA,CAAsBlB,MAAAA,CAAAA;AAElE,IAAA,MAAMmB,eAAeC,mBAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,MAAM,EAAEqB,SAAAA,GAAYF,YAAY,EAAEG,aAAAA,GAAgBH,YAAY,EAAE,GAAGM,aAAAA,CAAcE,QAAQ,IAAI,EAAC;IAE9F,OAAO;AACL,QAAA,GAAGF,cAAcE,QAAQ;QACzBN,SAAAA,EAAWO,UAAAA,CAAW5B,MAAAA,EAAQqB,SAAAA,CAAAA,GAAaA,SAAAA,GAAYF,YAAAA;AACvDG,QAAAA,aAAAA,EAAe,MAAOvB,kBAAAA,CAAmBC,MAAAA,EAAQsB,iBAAkBA,aAAAA,GAAgBH;AACrF,KAAA;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"settings.mjs","sources":["../../../../../server/src/services/utils/configuration/settings.ts"],"sourcesContent":["import { get, pick, isEmpty, isEqual } from 'lodash';\n\nimport { traverse } from '@strapi/utils';\nimport qs from 'qs';\nimport { isSortable, getDefaultMainField, getSortableAttributes } from './attributes';\n\n/** General settings */\nconst DEFAULT_SETTINGS = {\n bulkable: true,\n filterable: true,\n searchable: true,\n pageSize: 10,\n relationOpenMode: 'modal' as const,\n};\n\nconst settingsFields = [\n 'searchable',\n 'filterable',\n 'bulkable',\n 'pageSize',\n 'mainField',\n 'defaultSortBy',\n 'defaultSortOrder',\n 'relationOpenMode',\n 'customOrder',\n];\n\nconst getModelSettings = (model: unknown) =>\n pick(get(model, 'config.settings', {}), settingsFields);\n\nasync function isValidDefaultSort(schema: any, value: any) {\n const parsedValue = qs.parse(value);\n\n const omitNonSortableAttributes = ({ schema, key }: any, { remove }: any) => {\n const sortableAttributes = getSortableAttributes(schema);\n if (!sortableAttributes.includes(key)) {\n remove(key);\n }\n };\n\n const sanitizedValue = await traverse.traverseQuerySort(\n omitNonSortableAttributes,\n { schema, getModel: strapi.getModel.bind(strapi) },\n parsedValue\n );\n\n // If any of the keys has been removed, the sort attribute is not valid\n return isEqual(parsedValue, sanitizedValue);\n}\n\nconst createDefaultSettings = async (schema: any) => {\n const defaultField = getDefaultMainField(schema);\n\n return {\n ...DEFAULT_SETTINGS,\n mainField: defaultField,\n defaultSortBy: defaultField,\n defaultSortOrder: 'ASC',\n ...getModelSettings(schema),\n };\n};\n\nconst syncSettings = async (configuration: any, schema: any) => {\n if (isEmpty(configuration.settings)) return createDefaultSettings(schema);\n\n const defaultField = getDefaultMainField(schema);\n\n const { mainField = defaultField, defaultSortBy = defaultField } = configuration.settings || {};\n\n return {\n ...configuration.settings,\n mainField: isSortable(schema, mainField) ? mainField : defaultField,\n defaultSortBy: (await isValidDefaultSort(schema, defaultSortBy)) ? defaultSortBy : defaultField,\n };\n};\n\nexport { isValidDefaultSort, createDefaultSettings, syncSettings };\n"],"names":["DEFAULT_SETTINGS","bulkable","filterable","searchable","pageSize","relationOpenMode","settingsFields","getModelSettings","model","pick","get","isValidDefaultSort","schema","value","parsedValue","qs","parse","omitNonSortableAttributes","key","remove","sortableAttributes","getSortableAttributes","includes","sanitizedValue","traverse","traverseQuerySort","getModel","strapi","bind","isEqual","createDefaultSettings","defaultField","getDefaultMainField","mainField","defaultSortBy","defaultSortOrder","syncSettings","configuration","isEmpty","settings","isSortable"],"mappings":";;;;;AAMA,wBACA,MAAMA,gBAAAA,GAAmB;IACvBC,QAAAA,EAAU,IAAA;IACVC,UAAAA,EAAY,IAAA;IACZC,UAAAA,EAAY,IAAA;IACZC,QAAAA,EAAU,EAAA;IACVC,gBAAAA,EAAkB;AACpB,CAAA;AAEA,MAAMC,cAAAA,GAAiB;AACrB,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA,eAAA;AACA,IAAA,kBAAA;AACA,IAAA,kBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,gBAAAA,GAAmB,CAACC,KAAAA,GACxBC,IAAAA,CAAKC,IAAIF,KAAAA,EAAO,iBAAA,EAAmB,EAAC,CAAA,EAAIF,cAAAA,CAAAA;AAE1C,eAAeK,kBAAAA,CAAmBC,MAAW,EAAEC,KAAU,EAAA;IACvD,MAAMC,WAAAA,GAAcC,EAAAA,CAAGC,KAAK,CAACH,KAAAA,CAAAA;IAE7B,MAAMI,yBAAAA,GAA4B,CAAC,EAAEL,MAAM,EAAEM,GAAG,EAAO,EAAE,EAAEC,MAAM,EAAO,GAAA;AACtE,QAAA,MAAMC,qBAAqBC,qBAAAA,CAAsBT,MAAAA,CAAAA;AACjD,QAAA,IAAI,CAACQ,kBAAAA,CAAmBE,QAAQ,CAACJ,GAAAA,CAAAA,EAAM;YACrCC,MAAAA,CAAOD,GAAAA,CAAAA;AACT,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMK,cAAAA,GAAiB,MAAMC,QAAAA,CAASC,iBAAiB,CACrDR,yBAAAA,EACA;AAAEL,QAAAA,MAAAA;AAAQc,QAAAA,QAAAA,EAAUC,MAAAA,CAAOD,QAAQ,CAACE,IAAI,CAACD,MAAAA;KAAQ,EACjDb,WAAAA,CAAAA;;AAIF,IAAA,OAAOe,QAAQf,WAAAA,EAAaS,cAAAA,CAAAA;AAC9B;AAEA,MAAMO,wBAAwB,OAAOlB,MAAAA,GAAAA;AACnC,IAAA,MAAMmB,eAAeC,mBAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,OAAO;AACL,QAAA,GAAGZ,gBAAgB;QACnBiC,SAAAA,EAAWF,YAAAA;QACXG,aAAAA,EAAeH,YAAAA;QACfI,gBAAAA,EAAkB,KAAA;AAClB,QAAA,GAAG5B,iBAAiBK,MAAAA;AACtB,KAAA;AACF;AAEA,MAAMwB,YAAAA,GAAe,OAAOC,aAAAA,EAAoBzB,MAAAA,GAAAA;AAC9C,IAAA,IAAI0B,OAAAA,CAAQD,aAAAA,CAAcE,QAAQ,CAAA,EAAG,OAAOT,qBAAAA,CAAsBlB,MAAAA,CAAAA;AAElE,IAAA,MAAMmB,eAAeC,mBAAAA,CAAoBpB,MAAAA,CAAAA;IAEzC,MAAM,EAAEqB,SAAAA,GAAYF,YAAY,EAAEG,aAAAA,GAAgBH,YAAY,EAAE,GAAGM,aAAAA,CAAcE,QAAQ,IAAI,EAAC;IAE9F,OAAO;AACL,QAAA,GAAGF,cAAcE,QAAQ;QACzBN,SAAAA,EAAWO,UAAAA,CAAW5B,MAAAA,EAAQqB,SAAAA,CAAAA,GAAaA,SAAAA,GAAYF,YAAAA;AACvDG,QAAAA,aAAAA,EAAe,MAAOvB,kBAAAA,CAAmBC,MAAAA,EAAQsB,iBAAkBA,aAAAA,GAAgBH;AACrF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Data, Modules, UID } from '@strapi/types';
|
|
2
|
+
export declare const AUDITED_EVENTS: {
|
|
3
|
+
readonly ENTRY_DRAFT_DISCARD: "entry.draft-discard";
|
|
4
|
+
readonly ENTRY_HISTORY_RESTORE: "entry.history.restore";
|
|
5
|
+
};
|
|
6
|
+
/** The payload of the existing entry.draft-discard event, emitted by the document service. */
|
|
7
|
+
export interface DraftDiscardEvent {
|
|
8
|
+
uid: UID.ContentType;
|
|
9
|
+
entry: {
|
|
10
|
+
documentId: string;
|
|
11
|
+
locale?: string | null;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface DraftDiscardDetails {
|
|
15
|
+
locale: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface HistoryRestoreEvent {
|
|
18
|
+
uid: UID.ContentType;
|
|
19
|
+
documentId: string;
|
|
20
|
+
locale: string | null;
|
|
21
|
+
versionId: Data.ID;
|
|
22
|
+
versionCreatedAt: string;
|
|
23
|
+
}
|
|
24
|
+
export interface HistoryRestoreDetails {
|
|
25
|
+
locale: string | null;
|
|
26
|
+
version: {
|
|
27
|
+
id: Data.ID;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The part of the audit-logs lifecycle service used by this plugin.
|
|
33
|
+
* The full service type lives in the Admin EE package and cannot be imported here.
|
|
34
|
+
*/
|
|
35
|
+
interface AuditLogsLifecycle {
|
|
36
|
+
registerEvent<TDetails, TResource extends Modules.AuditLogs.Resource>(name: string, transform: Modules.AuditLogs.EventTransformer<TDetails, TResource>): void;
|
|
37
|
+
}
|
|
38
|
+
export declare const registerAuditEvents: (auditLogsLifecycle: AuditLogsLifecycle) => void;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=audit-logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-logs.d.ts","sourceRoot":"","sources":["../../../server/src/audit-logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAExD,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAQX,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC;IACrB,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE;QAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,aAAa,CAAC,QAAQ,EAAE,SAAS,SAAS,OAAO,CAAC,SAAS,CAAC,QAAQ,EAClE,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACjE,IAAI,CAAC;CACT;AAED,eAAO,MAAM,mBAAmB,GAAI,oBAAoB,kBAAkB,SAmBzE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":";AAQA,wBAmBE"}
|
|
@@ -2,7 +2,7 @@ declare const _default: {
|
|
|
2
2
|
find(ctx: any): Promise<any>;
|
|
3
3
|
findOne(ctx: any): Promise<any>;
|
|
4
4
|
create(ctx: any): Promise<void>;
|
|
5
|
-
update(ctx: any): Promise<
|
|
5
|
+
update(ctx: any): Promise<any>;
|
|
6
6
|
clone(ctx: any): Promise<any>;
|
|
7
7
|
autoClone(ctx: any): Promise<any>;
|
|
8
8
|
delete(ctx: any): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-types.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/collection-types.ts"],"names":[],"mappings":";cAuTkB,GAAG;iBAmIA,GAAG;gBA2DJ,GAAG;gBA0BH,GAAG;
|
|
1
|
+
{"version":3,"file":"collection-types.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/collection-types.ts"],"names":[],"mappings":";cAuTkB,GAAG;iBAmIA,GAAG;gBA2DJ,GAAG;gBA0BH,GAAG;eAiBJ,GAAG;mBAiDC,GAAG;gBAmBN,GAAG;IAoCrB;;;OAGG;iBACgB,GAAG;+BA+FW,GAAG;qBA4Bb,GAAG;uBA8CD,GAAG;mBAyCP,GAAG;iBAyDL,GAAG;oBAwCA,GAAG;6BAgDM,GAAG;wCA2DQ,GAAG;;AApvB/C,wBA+wBE"}
|