@akbarsafari00/bonyan-content-manager 5.52.1-fa.2
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/LICENSE +37 -0
- package/README.md +9 -0
- package/dist/admin/components/ActionsDrawer.js +209 -0
- package/dist/admin/components/ActionsDrawer.js.map +1 -0
- package/dist/admin/components/ActionsDrawer.mjs +186 -0
- package/dist/admin/components/ActionsDrawer.mjs.map +1 -0
- package/dist/admin/components/ComponentIcon.js +180 -0
- package/dist/admin/components/ComponentIcon.js.map +1 -0
- package/dist/admin/components/ComponentIcon.mjs +156 -0
- package/dist/admin/components/ComponentIcon.mjs.map +1 -0
- package/dist/admin/components/ConfigurationForm/EditFieldForm.js +262 -0
- package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -0
- package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +240 -0
- package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -0
- package/dist/admin/components/ConfigurationForm/Fields.js +704 -0
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -0
- package/dist/admin/components/ConfigurationForm/Fields.mjs +680 -0
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -0
- package/dist/admin/components/ConfigurationForm/Form.js +287 -0
- package/dist/admin/components/ConfigurationForm/Form.js.map +1 -0
- package/dist/admin/components/ConfigurationForm/Form.mjs +262 -0
- package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -0
- package/dist/admin/components/DragLayer.js +50 -0
- package/dist/admin/components/DragLayer.js.map +1 -0
- package/dist/admin/components/DragLayer.mjs +48 -0
- package/dist/admin/components/DragLayer.mjs.map +1 -0
- package/dist/admin/components/DragPreviews/CardDragPreview.js +84 -0
- package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -0
- package/dist/admin/components/DragPreviews/CardDragPreview.mjs +82 -0
- package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -0
- package/dist/admin/components/DragPreviews/ComponentDragPreview.js +85 -0
- package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -0
- package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +83 -0
- package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -0
- package/dist/admin/components/DragPreviews/RelationDragPreview.js +75 -0
- package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -0
- package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +73 -0
- package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -0
- package/dist/admin/components/FieldTypeIcon.js +58 -0
- package/dist/admin/components/FieldTypeIcon.js.map +1 -0
- package/dist/admin/components/FieldTypeIcon.mjs +56 -0
- package/dist/admin/components/FieldTypeIcon.mjs.map +1 -0
- package/dist/admin/components/InjectionZone.js +44 -0
- package/dist/admin/components/InjectionZone.js.map +1 -0
- package/dist/admin/components/InjectionZone.mjs +40 -0
- package/dist/admin/components/InjectionZone.mjs.map +1 -0
- package/dist/admin/components/LeftMenu.js +194 -0
- package/dist/admin/components/LeftMenu.js.map +1 -0
- package/dist/admin/components/LeftMenu.mjs +172 -0
- package/dist/admin/components/LeftMenu.mjs.map +1 -0
- package/dist/admin/components/RelativeTime.js +77 -0
- package/dist/admin/components/RelativeTime.js.map +1 -0
- package/dist/admin/components/RelativeTime.mjs +55 -0
- package/dist/admin/components/RelativeTime.mjs.map +1 -0
- package/dist/admin/components/Widgets.js +438 -0
- package/dist/admin/components/Widgets.js.map +1 -0
- package/dist/admin/components/Widgets.mjs +414 -0
- package/dist/admin/components/Widgets.mjs.map +1 -0
- package/dist/admin/constants/attributes.js +48 -0
- package/dist/admin/constants/attributes.js.map +1 -0
- package/dist/admin/constants/attributes.mjs +38 -0
- package/dist/admin/constants/attributes.mjs.map +1 -0
- package/dist/admin/constants/collections.js +8 -0
- package/dist/admin/constants/collections.js.map +1 -0
- package/dist/admin/constants/collections.mjs +5 -0
- package/dist/admin/constants/collections.mjs.map +1 -0
- package/dist/admin/constants/dragAndDrop.js +13 -0
- package/dist/admin/constants/dragAndDrop.js.map +1 -0
- package/dist/admin/constants/dragAndDrop.mjs +11 -0
- package/dist/admin/constants/dragAndDrop.mjs.map +1 -0
- package/dist/admin/constants/hooks.js +32 -0
- package/dist/admin/constants/hooks.js.map +1 -0
- package/dist/admin/constants/hooks.mjs +30 -0
- package/dist/admin/constants/hooks.mjs.map +1 -0
- package/dist/admin/constants/plugin.js +14 -0
- package/dist/admin/constants/plugin.js.map +1 -0
- package/dist/admin/constants/plugin.mjs +11 -0
- package/dist/admin/constants/plugin.mjs.map +1 -0
- package/dist/admin/content-manager.js +184 -0
- package/dist/admin/content-manager.js.map +1 -0
- package/dist/admin/content-manager.mjs +182 -0
- package/dist/admin/content-manager.mjs.map +1 -0
- package/dist/admin/features/DocumentRBAC.js +135 -0
- package/dist/admin/features/DocumentRBAC.js.map +1 -0
- package/dist/admin/features/DocumentRBAC.mjs +112 -0
- package/dist/admin/features/DocumentRBAC.mjs.map +1 -0
- package/dist/admin/history/components/HistoryAction.js +61 -0
- package/dist/admin/history/components/HistoryAction.js.map +1 -0
- package/dist/admin/history/components/HistoryAction.mjs +59 -0
- package/dist/admin/history/components/HistoryAction.mjs.map +1 -0
- package/dist/admin/history/components/VersionContent.js +346 -0
- package/dist/admin/history/components/VersionContent.js.map +1 -0
- package/dist/admin/history/components/VersionContent.mjs +320 -0
- package/dist/admin/history/components/VersionContent.mjs.map +1 -0
- package/dist/admin/history/components/VersionHeader.js +221 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -0
- package/dist/admin/history/components/VersionHeader.mjs +199 -0
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -0
- package/dist/admin/history/components/VersionInputRenderer.js +529 -0
- package/dist/admin/history/components/VersionInputRenderer.js.map +1 -0
- package/dist/admin/history/components/VersionInputRenderer.mjs +505 -0
- package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -0
- package/dist/admin/history/components/VersionsList.js +295 -0
- package/dist/admin/history/components/VersionsList.js.map +1 -0
- package/dist/admin/history/components/VersionsList.mjs +293 -0
- package/dist/admin/history/components/VersionsList.mjs.map +1 -0
- package/dist/admin/history/index.js +21 -0
- package/dist/admin/history/index.js.map +1 -0
- package/dist/admin/history/index.mjs +19 -0
- package/dist/admin/history/index.mjs.map +1 -0
- package/dist/admin/history/pages/History.js +239 -0
- package/dist/admin/history/pages/History.js.map +1 -0
- package/dist/admin/history/pages/History.mjs +215 -0
- package/dist/admin/history/pages/History.mjs.map +1 -0
- package/dist/admin/history/routes.js +42 -0
- package/dist/admin/history/routes.js.map +1 -0
- package/dist/admin/history/routes.mjs +20 -0
- package/dist/admin/history/routes.mjs.map +1 -0
- package/dist/admin/history/services/historyVersion.js +46 -0
- package/dist/admin/history/services/historyVersion.js.map +1 -0
- package/dist/admin/history/services/historyVersion.mjs +43 -0
- package/dist/admin/history/services/historyVersion.mjs.map +1 -0
- package/dist/admin/hooks/useContentManagerInitData.js +184 -0
- package/dist/admin/hooks/useContentManagerInitData.js.map +1 -0
- package/dist/admin/hooks/useContentManagerInitData.mjs +182 -0
- package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -0
- package/dist/admin/hooks/useContentTypeSchema.js +139 -0
- package/dist/admin/hooks/useContentTypeSchema.js.map +1 -0
- package/dist/admin/hooks/useContentTypeSchema.mjs +116 -0
- package/dist/admin/hooks/useContentTypeSchema.mjs.map +1 -0
- package/dist/admin/hooks/useDebounce.js +22 -0
- package/dist/admin/hooks/useDebounce.js.map +1 -0
- package/dist/admin/hooks/useDebounce.mjs +20 -0
- package/dist/admin/hooks/useDebounce.mjs.map +1 -0
- package/dist/admin/hooks/useDocument.js +344 -0
- package/dist/admin/hooks/useDocument.js.map +1 -0
- package/dist/admin/hooks/useDocument.mjs +320 -0
- package/dist/admin/hooks/useDocument.mjs.map +1 -0
- package/dist/admin/hooks/useDocumentActions.js +634 -0
- package/dist/admin/hooks/useDocumentActions.js.map +1 -0
- package/dist/admin/hooks/useDocumentActions.mjs +612 -0
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -0
- package/dist/admin/hooks/useDocumentContext.js +58 -0
- package/dist/admin/hooks/useDocumentContext.js.map +1 -0
- package/dist/admin/hooks/useDocumentContext.mjs +36 -0
- package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
- package/dist/admin/hooks/useDocumentLayout.js +390 -0
- package/dist/admin/hooks/useDocumentLayout.js.map +1 -0
- package/dist/admin/hooks/useDocumentLayout.mjs +364 -0
- package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -0
- package/dist/admin/hooks/useDragAndDrop.js +192 -0
- package/dist/admin/hooks/useDragAndDrop.js.map +1 -0
- package/dist/admin/hooks/useDragAndDrop.mjs +168 -0
- package/dist/admin/hooks/useDragAndDrop.mjs.map +1 -0
- package/dist/admin/hooks/useKeyboardDragAndDrop.js +95 -0
- package/dist/admin/hooks/useKeyboardDragAndDrop.js.map +1 -0
- package/dist/admin/hooks/useKeyboardDragAndDrop.mjs +73 -0
- package/dist/admin/hooks/useKeyboardDragAndDrop.mjs.map +1 -0
- package/dist/admin/hooks/useLazyComponents.js +61 -0
- package/dist/admin/hooks/useLazyComponents.js.map +1 -0
- package/dist/admin/hooks/useLazyComponents.mjs +59 -0
- package/dist/admin/hooks/useLazyComponents.mjs.map +1 -0
- package/dist/admin/hooks/useOnce.js +29 -0
- package/dist/admin/hooks/useOnce.js.map +1 -0
- package/dist/admin/hooks/useOnce.mjs +7 -0
- package/dist/admin/hooks/useOnce.mjs.map +1 -0
- package/dist/admin/hooks/usePersistentQueryParams.js +88 -0
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -0
- package/dist/admin/hooks/usePersistentQueryParams.mjs +81 -0
- package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -0
- package/dist/admin/hooks/usePrev.js +16 -0
- package/dist/admin/hooks/usePrev.js.map +1 -0
- package/dist/admin/hooks/usePrev.mjs +14 -0
- package/dist/admin/hooks/usePrev.mjs.map +1 -0
- package/dist/admin/index.js +204 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +191 -0
- package/dist/admin/index.mjs.map +1 -0
- package/dist/admin/layout.js +221 -0
- package/dist/admin/layout.js.map +1 -0
- package/dist/admin/layout.mjs +199 -0
- package/dist/admin/layout.mjs.map +1 -0
- package/dist/admin/modules/app.js +33 -0
- package/dist/admin/modules/app.js.map +1 -0
- package/dist/admin/modules/app.mjs +30 -0
- package/dist/admin/modules/app.mjs.map +1 -0
- package/dist/admin/modules/hooks.js +10 -0
- package/dist/admin/modules/hooks.js.map +1 -0
- package/dist/admin/modules/hooks.mjs +7 -0
- package/dist/admin/modules/hooks.mjs.map +1 -0
- package/dist/admin/modules/reducers.js +11 -0
- package/dist/admin/modules/reducers.js.map +1 -0
- package/dist/admin/modules/reducers.mjs +9 -0
- package/dist/admin/modules/reducers.mjs.map +1 -0
- package/dist/admin/pages/ComponentConfigurationPage.js +213 -0
- package/dist/admin/pages/ComponentConfigurationPage.js.map +1 -0
- package/dist/admin/pages/ComponentConfigurationPage.mjs +190 -0
- package/dist/admin/pages/ComponentConfigurationPage.mjs.map +1 -0
- package/dist/admin/pages/EditConfigurationPage.js +165 -0
- package/dist/admin/pages/EditConfigurationPage.js.map +1 -0
- package/dist/admin/pages/EditConfigurationPage.mjs +142 -0
- package/dist/admin/pages/EditConfigurationPage.mjs.map +1 -0
- package/dist/admin/pages/EditView/EditViewPage.js +321 -0
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -0
- package/dist/admin/pages/EditView/EditViewPage.mjs +297 -0
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/Blocker.js +18 -0
- package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
- package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
- package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/DocumentActions.js +1358 -0
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -0
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +1330 -0
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/DocumentStatus.js +34 -0
- package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -0
- package/dist/admin/pages/EditView/components/DocumentStatus.mjs +32 -0
- package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +153 -0
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -0
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs +131 -0
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js +265 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs +241 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.js +189 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.mjs +187 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +244 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs +222 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +462 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +439 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js +422 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs +420 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.js +95 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.mjs +93 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js +49 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs +47 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +555 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +533 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +281 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +256 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +65 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.mjs +43 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +771 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +747 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/DefaultBlocksStore.js +22 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/DefaultBlocksStore.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/DefaultBlocksStore.mjs +20 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/DefaultBlocksStore.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +89 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +87 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js +181 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs +179 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js +32 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs +30 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/constants.js +223 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/constants.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/constants.mjs +221 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/constants.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.js +48 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.mjs +45 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.js +64 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.mjs +62 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.js +14 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.mjs +10 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js +59 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs +57 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +107 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +85 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +103 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +81 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +506 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +484 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/ComponentContext.js +21 -0
- package/dist/admin/pages/EditView/components/FormInputs/ComponentContext.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/ComponentContext.mjs +18 -0
- package/dist/admin/pages/EditView/components/FormInputs/ComponentContext.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.js +66 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.mjs +64 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +221 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +196 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js +75 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs +73 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +421 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +396 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.js +73 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.mjs +71 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +322 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +296 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/NotAllowed.js +38 -0
- package/dist/admin/pages/EditView/components/FormInputs/NotAllowed.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/NotAllowed.mjs +36 -0
- package/dist/admin/pages/EditView/components/FormInputs/NotAllowed.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +674 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +647 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +1058 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +1033 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +299 -0
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +277 -0
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +490 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +465 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +115 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +112 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +140 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.mjs +118 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +198 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs +176 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.js +43 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.mjs +41 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +513 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +510 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js +42 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs +40 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js +88 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.mjs +82 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js +58 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.mjs +43 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js +77 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.mjs +71 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js +366 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs +357 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormLayout.js +127 -0
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormLayout.mjs +103 -0
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/Header.js +637 -0
- package/dist/admin/pages/EditView/components/Header.js.map +1 -0
- package/dist/admin/pages/EditView/components/Header.mjs +614 -0
- package/dist/admin/pages/EditView/components/Header.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/InputRenderer.js +325 -0
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -0
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +302 -0
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/Panels.js +194 -0
- package/dist/admin/pages/EditView/components/Panels.js.map +1 -0
- package/dist/admin/pages/EditView/components/Panels.mjs +168 -0
- package/dist/admin/pages/EditView/components/Panels.mjs.map +1 -0
- package/dist/admin/pages/EditView/utils/data.js +372 -0
- package/dist/admin/pages/EditView/utils/data.js.map +1 -0
- package/dist/admin/pages/EditView/utils/data.mjs +360 -0
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -0
- package/dist/admin/pages/EditView/utils/draftRelationCounts.js +124 -0
- package/dist/admin/pages/EditView/utils/draftRelationCounts.js.map +1 -0
- package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs +115 -0
- package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs.map +1 -0
- package/dist/admin/pages/EditView/utils/forms.js +32 -0
- package/dist/admin/pages/EditView/utils/forms.js.map +1 -0
- package/dist/admin/pages/EditView/utils/forms.mjs +30 -0
- package/dist/admin/pages/EditView/utils/forms.mjs.map +1 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.js +35 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.js.map +1 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs +33 -0
- package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +201 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +178 -0
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +202 -0
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs +180 -0
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +159 -0
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs +137 -0
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/Header.js +45 -0
- package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/Header.mjs +43 -0
- package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/Settings.js +202 -0
- package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/Settings.mjs +180 -0
- package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js +168 -0
- package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js.map +1 -0
- package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.mjs +146 -0
- package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.mjs.map +1 -0
- package/dist/admin/pages/ListView/ListViewPage.js +657 -0
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -0
- package/dist/admin/pages/ListView/ListViewPage.mjs +634 -0
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js +89 -0
- package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -0
- package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs +87 -0
- package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js +225 -0
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -0
- package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +201 -0
- package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +157 -0
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -0
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +134 -0
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +594 -0
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -0
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +570 -0
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/Filters.js +336 -0
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -0
- package/dist/admin/pages/ListView/components/Filters.mjs +314 -0
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableActions.js +265 -0
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -0
- package/dist/admin/pages/ListView/components/TableActions.mjs +242 -0
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js +162 -0
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +155 -0
- package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/CellValue.js +66 -0
- package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/CellValue.mjs +59 -0
- package/dist/admin/pages/ListView/components/TableCells/CellValue.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/Components.js +65 -0
- package/dist/admin/pages/ListView/components/TableCells/Components.js.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/Components.mjs +62 -0
- package/dist/admin/pages/ListView/components/TableCells/Components.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/Media.js +79 -0
- package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/Media.mjs +76 -0
- package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/Relations.js +133 -0
- package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -0
- package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +110 -0
- package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +157 -0
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -0
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +155 -0
- package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -0
- package/dist/admin/pages/NoContentTypePage.js +50 -0
- package/dist/admin/pages/NoContentTypePage.js.map +1 -0
- package/dist/admin/pages/NoContentTypePage.mjs +48 -0
- package/dist/admin/pages/NoContentTypePage.mjs.map +1 -0
- package/dist/admin/pages/NoPermissionsPage.js +26 -0
- package/dist/admin/pages/NoPermissionsPage.js.map +1 -0
- package/dist/admin/pages/NoPermissionsPage.mjs +24 -0
- package/dist/admin/pages/NoPermissionsPage.mjs.map +1 -0
- package/dist/admin/pages/formatComponentConfigurationEditLayout.js +64 -0
- package/dist/admin/pages/formatComponentConfigurationEditLayout.js.map +1 -0
- package/dist/admin/pages/formatComponentConfigurationEditLayout.mjs +62 -0
- package/dist/admin/pages/formatComponentConfigurationEditLayout.mjs.map +1 -0
- package/dist/admin/preview/components/InputPopover.js +193 -0
- package/dist/admin/preview/components/InputPopover.js.map +1 -0
- package/dist/admin/preview/components/InputPopover.mjs +170 -0
- package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
- package/dist/admin/preview/components/PreviewHeader.js +259 -0
- package/dist/admin/preview/components/PreviewHeader.js.map +1 -0
- package/dist/admin/preview/components/PreviewHeader.mjs +257 -0
- package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -0
- package/dist/admin/preview/components/PreviewSidePanel.js +155 -0
- package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -0
- package/dist/admin/preview/components/PreviewSidePanel.mjs +133 -0
- package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.js +102 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.mjs +80 -0
- package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
- package/dist/admin/preview/index.js +21 -0
- package/dist/admin/preview/index.js.map +1 -0
- package/dist/admin/preview/index.mjs +19 -0
- package/dist/admin/preview/index.mjs.map +1 -0
- package/dist/admin/preview/pages/Preview.js +429 -0
- package/dist/admin/preview/pages/Preview.js.map +1 -0
- package/dist/admin/preview/pages/Preview.mjs +406 -0
- package/dist/admin/preview/pages/Preview.mjs.map +1 -0
- package/dist/admin/preview/routes.js +40 -0
- package/dist/admin/preview/routes.js.map +1 -0
- package/dist/admin/preview/routes.mjs +18 -0
- package/dist/admin/preview/routes.mjs.map +1 -0
- package/dist/admin/preview/services/preview.js +23 -0
- package/dist/admin/preview/services/preview.js.map +1 -0
- package/dist/admin/preview/services/preview.mjs +21 -0
- package/dist/admin/preview/services/preview.mjs.map +1 -0
- package/dist/admin/preview/utils/constants.js +57 -0
- package/dist/admin/preview/utils/constants.js.map +1 -0
- package/dist/admin/preview/utils/constants.mjs +53 -0
- package/dist/admin/preview/utils/constants.mjs.map +1 -0
- package/dist/admin/preview/utils/fieldUtils.js +107 -0
- package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
- package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
- package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
- package/dist/admin/preview/utils/getSendMessage.js +22 -0
- package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
- package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
- package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
- package/dist/admin/router.js +86 -0
- package/dist/admin/router.js.map +1 -0
- package/dist/admin/router.mjs +82 -0
- package/dist/admin/router.mjs.map +1 -0
- package/dist/admin/services/api.js +24 -0
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/services/api.mjs +22 -0
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/services/components.js +43 -0
- package/dist/admin/services/components.js.map +1 -0
- package/dist/admin/services/components.mjs +40 -0
- package/dist/admin/services/components.mjs.map +1 -0
- package/dist/admin/services/contentTypes.js +64 -0
- package/dist/admin/services/contentTypes.js.map +1 -0
- package/dist/admin/services/contentTypes.mjs +60 -0
- package/dist/admin/services/contentTypes.mjs.map +1 -0
- package/dist/admin/services/documents.js +457 -0
- package/dist/admin/services/documents.js.map +1 -0
- package/dist/admin/services/documents.mjs +439 -0
- package/dist/admin/services/documents.mjs.map +1 -0
- package/dist/admin/services/homepage.js +30 -0
- package/dist/admin/services/homepage.js.map +1 -0
- package/dist/admin/services/homepage.mjs +28 -0
- package/dist/admin/services/homepage.mjs.map +1 -0
- package/dist/admin/services/init.js +19 -0
- package/dist/admin/services/init.js.map +1 -0
- package/dist/admin/services/init.mjs +17 -0
- package/dist/admin/services/init.mjs.map +1 -0
- package/dist/admin/services/relations.js +144 -0
- package/dist/admin/services/relations.js.map +1 -0
- package/dist/admin/services/relations.mjs +141 -0
- package/dist/admin/services/relations.mjs.map +1 -0
- package/dist/admin/services/uid.js +54 -0
- package/dist/admin/services/uid.js.map +1 -0
- package/dist/admin/services/uid.mjs +50 -0
- package/dist/admin/services/uid.mjs.map +1 -0
- package/dist/admin/src/components/ActionsDrawer.d.ts +35 -0
- package/dist/admin/src/components/ComponentIcon.d.ts +12 -0
- package/dist/admin/src/components/ConfigurationForm/EditFieldForm.d.ts +9 -0
- package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +23 -0
- package/dist/admin/src/components/ConfigurationForm/Form.d.ts +32 -0
- package/dist/admin/src/components/DragLayer.d.ts +13 -0
- package/dist/admin/src/components/DragPreviews/CardDragPreview.d.ts +7 -0
- package/dist/admin/src/components/DragPreviews/ComponentDragPreview.d.ts +6 -0
- package/dist/admin/src/components/DragPreviews/RelationDragPreview.d.ts +11 -0
- package/dist/admin/src/components/FieldTypeIcon.d.ts +9 -0
- package/dist/admin/src/components/InjectionZone.d.ts +50 -0
- package/dist/admin/src/components/LeftMenu.d.ts +4 -0
- package/dist/admin/src/components/RelativeTime.d.ts +28 -0
- package/dist/admin/src/components/Widgets.d.ts +8 -0
- package/dist/admin/src/constants/attributes.d.ts +14 -0
- package/dist/admin/src/constants/collections.d.ts +3 -0
- package/dist/admin/src/constants/dragAndDrop.d.ts +8 -0
- package/dist/admin/src/constants/hooks.d.ts +49 -0
- package/dist/admin/src/constants/plugin.d.ts +3 -0
- package/dist/admin/src/content-manager.d.ts +163 -0
- package/dist/admin/src/exports.d.ts +16 -0
- package/dist/admin/src/features/DocumentRBAC.d.ts +37 -0
- package/dist/admin/src/history/components/HistoryAction.d.ts +3 -0
- package/dist/admin/src/history/components/VersionContent.d.ts +17 -0
- package/dist/admin/src/history/components/VersionHeader.d.ts +5 -0
- package/dist/admin/src/history/components/VersionInputRenderer.d.ts +45 -0
- package/dist/admin/src/history/components/VersionsList.d.ts +2 -0
- package/dist/admin/src/history/index.d.ts +3 -0
- package/dist/admin/src/history/pages/History.d.ts +27 -0
- package/dist/admin/src/history/routes.d.ts +6 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +12 -0
- package/dist/admin/src/hooks/useContentManagerInitData.d.ts +15 -0
- package/dist/admin/src/hooks/useContentTypeSchema.d.ts +25 -0
- package/dist/admin/src/hooks/useDebounce.d.ts +1 -0
- package/dist/admin/src/hooks/useDocument.d.ts +140 -0
- package/dist/admin/src/hooks/useDocumentActions.d.ts +125 -0
- package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
- package/dist/admin/src/hooks/useDocumentLayout.d.ts +157 -0
- package/dist/admin/src/hooks/useDragAndDrop.d.ts +51 -0
- package/dist/admin/src/hooks/useKeyboardDragAndDrop.d.ts +14 -0
- package/dist/admin/src/hooks/useLazyComponents.d.ts +13 -0
- package/dist/admin/src/hooks/useOnce.d.ts +2 -0
- package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +11 -0
- package/dist/admin/src/hooks/usePrev.d.ts +1 -0
- package/dist/admin/src/index.d.ts +19 -0
- package/dist/admin/src/layout.d.ts +2 -0
- package/dist/admin/src/modules/app.d.ts +20 -0
- package/dist/admin/src/modules/hooks.d.ts +10 -0
- package/dist/admin/src/modules/reducers.d.ts +6 -0
- package/dist/admin/src/pages/ComponentConfigurationPage.d.ts +3 -0
- package/dist/admin/src/pages/EditConfigurationPage.d.ts +3 -0
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +93 -0
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +16 -0
- package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +58 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.d.ts +3 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +3 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.d.ts +3 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.d.ts +3 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.d.ts +3 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.d.ts +6 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +83 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.d.ts +10 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/DefaultBlocksStore.d.ts +3 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +10 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Modifiers.d.ts +16 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.d.ts +8 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +13 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.d.ts +6 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/types.d.ts +8 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Initializer.d.ts +9 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Input.d.ts +18 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +6 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +6 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +41 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCard.d.ts +9 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +17 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.d.ts +9 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +28 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.d.ts +12 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +17 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/NotAllowed.d.ts +7 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +83 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +57 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +10 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/Editor.d.ts +17 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +16 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +7 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +21 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +49 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.d.ts +4 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.d.ts +2 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.d.ts +22 -0
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +56 -0
- package/dist/admin/src/pages/EditView/components/Header.d.ts +50 -0
- package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +20 -0
- package/dist/admin/src/pages/EditView/components/Panels.d.ts +22 -0
- package/dist/admin/src/pages/EditView/utils/data.d.ts +57 -0
- package/dist/admin/src/pages/EditView/utils/draftRelationCounts.d.ts +27 -0
- package/dist/admin/src/pages/EditView/utils/forms.d.ts +9 -0
- package/dist/admin/src/pages/EditView/utils/keyboardShortcuts.d.ts +18 -0
- package/dist/admin/src/pages/ListConfiguration/ListConfigurationPage.d.ts +10 -0
- package/dist/admin/src/pages/ListConfiguration/components/DraggableCard.d.ts +12 -0
- package/dist/admin/src/pages/ListConfiguration/components/EditFieldForm.d.ts +8 -0
- package/dist/admin/src/pages/ListConfiguration/components/Header.d.ts +8 -0
- package/dist/admin/src/pages/ListConfiguration/components/Settings.d.ts +19 -0
- package/dist/admin/src/pages/ListConfiguration/components/SortDisplayedFields.d.ts +6 -0
- package/dist/admin/src/pages/ListView/ListViewPage.d.ts +3 -0
- package/dist/admin/src/pages/ListView/components/AutoCloneFailureModal.d.ts +7 -0
- package/dist/admin/src/pages/ListView/components/BulkActions/Actions.d.ts +24 -0
- package/dist/admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +15 -0
- package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +17 -0
- package/dist/admin/src/pages/ListView/components/Filters.d.ts +20 -0
- package/dist/admin/src/pages/ListView/components/TableActions.d.ts +8 -0
- package/dist/admin/src/pages/ListView/components/TableCells/CellContent.d.ts +18 -0
- package/dist/admin/src/pages/ListView/components/TableCells/CellValue.d.ts +9 -0
- package/dist/admin/src/pages/ListView/components/TableCells/Components.d.ts +12 -0
- package/dist/admin/src/pages/ListView/components/TableCells/Media.d.ts +23 -0
- package/dist/admin/src/pages/ListView/components/TableCells/Relations.d.ts +9 -0
- package/dist/admin/src/pages/ListView/components/ViewSettingsMenu.d.ts +10 -0
- package/dist/admin/src/pages/NoContentTypePage.d.ts +2 -0
- package/dist/admin/src/pages/NoPermissionsPage.d.ts +2 -0
- package/dist/admin/src/pages/formatComponentConfigurationEditLayout.d.ts +17 -0
- package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
- package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
- package/dist/admin/src/preview/index.d.ts +3 -0
- package/dist/admin/src/preview/pages/Preview.d.ts +26 -0
- package/dist/admin/src/preview/routes.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +3 -0
- package/dist/admin/src/preview/utils/constants.d.ts +53 -0
- package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
- package/dist/admin/src/preview/utils/getSendMessage.d.ts +10 -0
- package/dist/admin/src/router.d.ts +5 -0
- package/dist/admin/src/services/api.d.ts +2 -0
- package/dist/admin/src/services/components.d.ts +5 -0
- package/dist/admin/src/services/contentTypes.d.ts +17 -0
- package/dist/admin/src/services/documents.d.ts +71 -0
- package/dist/admin/src/services/homepage.d.ts +5 -0
- package/dist/admin/src/services/init.d.ts +9 -0
- package/dist/admin/src/services/relations.d.ts +35 -0
- package/dist/admin/src/services/uid.d.ts +32 -0
- package/dist/admin/src/utils/api.d.ts +24 -0
- package/dist/admin/src/utils/attributes.d.ts +19 -0
- package/dist/admin/src/utils/conditionalFields.d.ts +13 -0
- package/dist/admin/src/utils/layouts/normalizeContentManagerLayout.d.ts +24 -0
- package/dist/admin/src/utils/objects.d.ts +36 -0
- package/dist/admin/src/utils/previewImage.d.ts +3 -0
- package/dist/admin/src/utils/relations.d.ts +12 -0
- package/dist/admin/src/utils/strings.d.ts +2 -0
- package/dist/admin/src/utils/translations.d.ts +4 -0
- package/dist/admin/src/utils/urls.d.ts +2 -0
- package/dist/admin/src/utils/users.d.ts +6 -0
- package/dist/admin/src/utils/validation.d.ts +12 -0
- package/dist/admin/translations/ar.json.js +229 -0
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/translations/ar.json.mjs +222 -0
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/translations/ca.json.js +204 -0
- package/dist/admin/translations/ca.json.js.map +1 -0
- package/dist/admin/translations/ca.json.mjs +197 -0
- package/dist/admin/translations/ca.json.mjs.map +1 -0
- package/dist/admin/translations/cs.json.js +362 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +355 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/de.json.js +335 -0
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/translations/de.json.mjs +328 -0
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +358 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +351 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +340 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +333 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/eu.json.js +205 -0
- package/dist/admin/translations/eu.json.js.map +1 -0
- package/dist/admin/translations/eu.json.mjs +198 -0
- package/dist/admin/translations/eu.json.mjs.map +1 -0
- package/dist/admin/translations/fa.json.js +358 -0
- package/dist/admin/translations/fa.json.js.map +1 -0
- package/dist/admin/translations/fa.json.mjs +351 -0
- package/dist/admin/translations/fa.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +305 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +298 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/gu.json.js +203 -0
- package/dist/admin/translations/gu.json.js.map +1 -0
- package/dist/admin/translations/gu.json.mjs +196 -0
- package/dist/admin/translations/gu.json.mjs.map +1 -0
- package/dist/admin/translations/hi.json.js +203 -0
- package/dist/admin/translations/hi.json.js.map +1 -0
- package/dist/admin/translations/hi.json.mjs +196 -0
- package/dist/admin/translations/hi.json.mjs.map +1 -0
- package/dist/admin/translations/hu.json.js +205 -0
- package/dist/admin/translations/hu.json.js.map +1 -0
- package/dist/admin/translations/hu.json.mjs +198 -0
- package/dist/admin/translations/hu.json.mjs.map +1 -0
- package/dist/admin/translations/id.json.js +163 -0
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/translations/id.json.mjs +156 -0
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/translations/it.json.js +165 -0
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/translations/it.json.mjs +158 -0
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/translations/ja.json.js +374 -0
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/translations/ja.json.mjs +367 -0
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/translations/ko.json.js +377 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +370 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/ml.json.js +203 -0
- package/dist/admin/translations/ml.json.js.map +1 -0
- package/dist/admin/translations/ml.json.mjs +196 -0
- package/dist/admin/translations/ml.json.mjs.map +1 -0
- package/dist/admin/translations/ms.json.js +147 -0
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/translations/ms.json.mjs +140 -0
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/translations/nl.json.js +374 -0
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/translations/nl.json.mjs +367 -0
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +352 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +345 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/pt-BR.json.js +204 -0
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/translations/pt-BR.json.mjs +197 -0
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/translations/pt.json.js +98 -0
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/translations/pt.json.mjs +93 -0
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +240 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +233 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/sa.json.js +203 -0
- package/dist/admin/translations/sa.json.js.map +1 -0
- package/dist/admin/translations/sa.json.mjs +196 -0
- package/dist/admin/translations/sa.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +372 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +365 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/sv.json.js +205 -0
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/translations/sv.json.mjs +198 -0
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/translations/th.json.js +151 -0
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/translations/th.json.mjs +144 -0
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/translations/tr.json.js +202 -0
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/translations/tr.json.mjs +195 -0
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +319 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +312 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/vi.json.js +114 -0
- package/dist/admin/translations/vi.json.js.map +1 -0
- package/dist/admin/translations/vi.json.mjs +108 -0
- package/dist/admin/translations/vi.json.mjs.map +1 -0
- package/dist/admin/translations/zh-Hans.json.js +911 -0
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/translations/zh-Hans.json.mjs +890 -0
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/translations/zh.json.js +212 -0
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/translations/zh.json.mjs +205 -0
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/api.js +27 -0
- package/dist/admin/utils/api.js.map +1 -0
- package/dist/admin/utils/api.mjs +24 -0
- package/dist/admin/utils/api.mjs.map +1 -0
- package/dist/admin/utils/attributes.js +49 -0
- package/dist/admin/utils/attributes.js.map +1 -0
- package/dist/admin/utils/attributes.mjs +46 -0
- package/dist/admin/utils/attributes.mjs.map +1 -0
- package/dist/admin/utils/conditionalFields.js +76 -0
- package/dist/admin/utils/conditionalFields.js.map +1 -0
- package/dist/admin/utils/conditionalFields.mjs +69 -0
- package/dist/admin/utils/conditionalFields.mjs.map +1 -0
- package/dist/admin/utils/layouts/normalizeContentManagerLayout.js +329 -0
- package/dist/admin/utils/layouts/normalizeContentManagerLayout.js.map +1 -0
- package/dist/admin/utils/layouts/normalizeContentManagerLayout.mjs +321 -0
- package/dist/admin/utils/layouts/normalizeContentManagerLayout.mjs.map +1 -0
- package/dist/admin/utils/objects.js +115 -0
- package/dist/admin/utils/objects.js.map +1 -0
- package/dist/admin/utils/objects.mjs +105 -0
- package/dist/admin/utils/objects.mjs.map +1 -0
- package/dist/admin/utils/previewImage.js +14 -0
- package/dist/admin/utils/previewImage.js.map +1 -0
- package/dist/admin/utils/previewImage.mjs +12 -0
- package/dist/admin/utils/previewImage.mjs.map +1 -0
- package/dist/admin/utils/relations.js +23 -0
- package/dist/admin/utils/relations.js.map +1 -0
- package/dist/admin/utils/relations.mjs +21 -0
- package/dist/admin/utils/relations.mjs.map +1 -0
- package/dist/admin/utils/strings.js +6 -0
- package/dist/admin/utils/strings.js.map +1 -0
- package/dist/admin/utils/strings.mjs +4 -0
- package/dist/admin/utils/strings.mjs.map +1 -0
- package/dist/admin/utils/translations.js +13 -0
- package/dist/admin/utils/translations.js.map +1 -0
- package/dist/admin/utils/translations.mjs +10 -0
- package/dist/admin/utils/translations.mjs.map +1 -0
- package/dist/admin/utils/urls.js +8 -0
- package/dist/admin/utils/urls.js.map +1 -0
- package/dist/admin/utils/urls.mjs +6 -0
- package/dist/admin/utils/urls.mjs.map +1 -0
- package/dist/admin/utils/users.js +17 -0
- package/dist/admin/utils/users.js.map +1 -0
- package/dist/admin/utils/users.mjs +15 -0
- package/dist/admin/utils/users.mjs.map +1 -0
- package/dist/admin/utils/validation.js +306 -0
- package/dist/admin/utils/validation.js.map +1 -0
- package/dist/admin/utils/validation.mjs +281 -0
- package/dist/admin/utils/validation.mjs.map +1 -0
- package/dist/server/bootstrap.js +29 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +27 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants/index.js +9 -0
- package/dist/server/constants/index.js.map +1 -0
- package/dist/server/constants/index.mjs +7 -0
- package/dist/server/constants/index.mjs.map +1 -0
- package/dist/server/controllers/collection-types.js +936 -0
- package/dist/server/controllers/collection-types.js.map +1 -0
- package/dist/server/controllers/collection-types.mjs +934 -0
- package/dist/server/controllers/collection-types.mjs.map +1 -0
- package/dist/server/controllers/components.js +60 -0
- package/dist/server/controllers/components.js.map +1 -0
- package/dist/server/controllers/components.mjs +58 -0
- package/dist/server/controllers/components.mjs.map +1 -0
- package/dist/server/controllers/content-types.js +118 -0
- package/dist/server/controllers/content-types.js.map +1 -0
- package/dist/server/controllers/content-types.mjs +116 -0
- package/dist/server/controllers/content-types.mjs.map +1 -0
- package/dist/server/controllers/index.js +28 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +26 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/init.js +22 -0
- package/dist/server/controllers/init.js.map +1 -0
- package/dist/server/controllers/init.mjs +20 -0
- package/dist/server/controllers/init.mjs.map +1 -0
- package/dist/server/controllers/relations.js +438 -0
- package/dist/server/controllers/relations.js.map +1 -0
- package/dist/server/controllers/relations.mjs +436 -0
- package/dist/server/controllers/relations.mjs.map +1 -0
- package/dist/server/controllers/single-types.js +337 -0
- package/dist/server/controllers/single-types.js.map +1 -0
- package/dist/server/controllers/single-types.mjs +335 -0
- package/dist/server/controllers/single-types.mjs.map +1 -0
- package/dist/server/controllers/uid.js +48 -0
- package/dist/server/controllers/uid.js.map +1 -0
- package/dist/server/controllers/uid.mjs +46 -0
- package/dist/server/controllers/uid.mjs.map +1 -0
- package/dist/server/controllers/utils/clone.js +138 -0
- package/dist/server/controllers/utils/clone.js.map +1 -0
- package/dist/server/controllers/utils/clone.mjs +135 -0
- package/dist/server/controllers/utils/clone.mjs.map +1 -0
- package/dist/server/controllers/utils/document-status.js +28 -0
- package/dist/server/controllers/utils/document-status.js.map +1 -0
- package/dist/server/controllers/utils/document-status.mjs +26 -0
- package/dist/server/controllers/utils/document-status.mjs.map +1 -0
- package/dist/server/controllers/utils/metadata.js +26 -0
- package/dist/server/controllers/utils/metadata.js.map +1 -0
- package/dist/server/controllers/utils/metadata.mjs +24 -0
- package/dist/server/controllers/utils/metadata.mjs.map +1 -0
- package/dist/server/controllers/validation/dimensions.js +40 -0
- package/dist/server/controllers/validation/dimensions.js.map +1 -0
- package/dist/server/controllers/validation/dimensions.mjs +38 -0
- package/dist/server/controllers/validation/dimensions.mjs.map +1 -0
- package/dist/server/controllers/validation/index.js +74 -0
- package/dist/server/controllers/validation/index.js.map +1 -0
- package/dist/server/controllers/validation/index.mjs +64 -0
- package/dist/server/controllers/validation/index.mjs.map +1 -0
- package/dist/server/controllers/validation/model-configuration.js +88 -0
- package/dist/server/controllers/validation/model-configuration.js.map +1 -0
- package/dist/server/controllers/validation/model-configuration.mjs +86 -0
- package/dist/server/controllers/validation/model-configuration.mjs.map +1 -0
- package/dist/server/controllers/validation/relations.js +34 -0
- package/dist/server/controllers/validation/relations.js.map +1 -0
- package/dist/server/controllers/validation/relations.mjs +31 -0
- package/dist/server/controllers/validation/relations.mjs.map +1 -0
- package/dist/server/destroy.js +12 -0
- package/dist/server/destroy.js.map +1 -0
- package/dist/server/destroy.mjs +10 -0
- package/dist/server/destroy.mjs.map +1 -0
- package/dist/server/history/constants.js +16 -0
- package/dist/server/history/constants.js.map +1 -0
- package/dist/server/history/constants.mjs +13 -0
- package/dist/server/history/constants.mjs.map +1 -0
- package/dist/server/history/controllers/history-version.js +107 -0
- package/dist/server/history/controllers/history-version.js.map +1 -0
- package/dist/server/history/controllers/history-version.mjs +105 -0
- package/dist/server/history/controllers/history-version.mjs.map +1 -0
- package/dist/server/history/controllers/index.js +10 -0
- package/dist/server/history/controllers/index.js.map +1 -0
- package/dist/server/history/controllers/index.mjs +8 -0
- package/dist/server/history/controllers/index.mjs.map +1 -0
- package/dist/server/history/controllers/validation/history-version.js +11 -0
- package/dist/server/history/controllers/validation/history-version.js.map +1 -0
- package/dist/server/history/controllers/validation/history-version.mjs +9 -0
- package/dist/server/history/controllers/validation/history-version.mjs.map +1 -0
- package/dist/server/history/index.js +42 -0
- package/dist/server/history/index.js.map +1 -0
- package/dist/server/history/index.mjs +40 -0
- package/dist/server/history/index.mjs.map +1 -0
- package/dist/server/history/models/history-version.js +59 -0
- package/dist/server/history/models/history-version.js.map +1 -0
- package/dist/server/history/models/history-version.mjs +57 -0
- package/dist/server/history/models/history-version.mjs.map +1 -0
- package/dist/server/history/routes/history-version.js +36 -0
- package/dist/server/history/routes/history-version.js.map +1 -0
- package/dist/server/history/routes/history-version.mjs +34 -0
- package/dist/server/history/routes/history-version.mjs.map +1 -0
- package/dist/server/history/routes/index.js +13 -0
- package/dist/server/history/routes/index.js.map +1 -0
- package/dist/server/history/routes/index.mjs +11 -0
- package/dist/server/history/routes/index.mjs.map +1 -0
- package/dist/server/history/services/history.js +221 -0
- package/dist/server/history/services/history.js.map +1 -0
- package/dist/server/history/services/history.mjs +219 -0
- package/dist/server/history/services/history.mjs.map +1 -0
- package/dist/server/history/services/index.js +12 -0
- package/dist/server/history/services/index.js.map +1 -0
- package/dist/server/history/services/index.mjs +10 -0
- package/dist/server/history/services/index.mjs.map +1 -0
- package/dist/server/history/services/lifecycles.js +178 -0
- package/dist/server/history/services/lifecycles.js.map +1 -0
- package/dist/server/history/services/lifecycles.mjs +176 -0
- package/dist/server/history/services/lifecycles.mjs.map +1 -0
- package/dist/server/history/services/utils.js +281 -0
- package/dist/server/history/services/utils.js.map +1 -0
- package/dist/server/history/services/utils.mjs +279 -0
- package/dist/server/history/services/utils.mjs.map +1 -0
- package/dist/server/history/utils.js +9 -0
- package/dist/server/history/utils.js.map +1 -0
- package/dist/server/history/utils.mjs +7 -0
- package/dist/server/history/utils.mjs.map +1 -0
- package/dist/server/homepage/controllers/homepage.js +42 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -0
- package/dist/server/homepage/controllers/homepage.mjs +40 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
- package/dist/server/homepage/controllers/index.js +10 -0
- package/dist/server/homepage/controllers/index.js.map +1 -0
- package/dist/server/homepage/controllers/index.mjs +8 -0
- package/dist/server/homepage/controllers/index.mjs.map +1 -0
- package/dist/server/homepage/index.js +14 -0
- package/dist/server/homepage/index.js.map +1 -0
- package/dist/server/homepage/index.mjs +12 -0
- package/dist/server/homepage/index.mjs.map +1 -0
- package/dist/server/homepage/routes/homepage.js +36 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -0
- package/dist/server/homepage/routes/homepage.mjs +34 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -0
- package/dist/server/homepage/routes/index.js +13 -0
- package/dist/server/homepage/routes/index.js.map +1 -0
- package/dist/server/homepage/routes/index.mjs +11 -0
- package/dist/server/homepage/routes/index.mjs.map +1 -0
- package/dist/server/homepage/services/homepage-query-utils.js +56 -0
- package/dist/server/homepage/services/homepage-query-utils.js.map +1 -0
- package/dist/server/homepage/services/homepage-query-utils.mjs +50 -0
- package/dist/server/homepage/services/homepage-query-utils.mjs.map +1 -0
- package/dist/server/homepage/services/homepage.js +249 -0
- package/dist/server/homepage/services/homepage.js.map +1 -0
- package/dist/server/homepage/services/homepage.mjs +247 -0
- package/dist/server/homepage/services/homepage.mjs.map +1 -0
- package/dist/server/homepage/services/index.js +10 -0
- package/dist/server/homepage/services/index.js.map +1 -0
- package/dist/server/homepage/services/index.mjs +8 -0
- package/dist/server/homepage/services/index.mjs.map +1 -0
- package/dist/server/index.js +24 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +22 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/mcp/derive-content-type-mcp-tools.js +524 -0
- package/dist/server/mcp/derive-content-type-mcp-tools.js.map +1 -0
- package/dist/server/mcp/derive-content-type-mcp-tools.mjs +518 -0
- package/dist/server/mcp/derive-content-type-mcp-tools.mjs.map +1 -0
- package/dist/server/mcp/handlers/collection-handlers.js +401 -0
- package/dist/server/mcp/handlers/collection-handlers.js.map +1 -0
- package/dist/server/mcp/handlers/collection-handlers.mjs +392 -0
- package/dist/server/mcp/handlers/collection-handlers.mjs.map +1 -0
- package/dist/server/mcp/handlers/constants.js +10 -0
- package/dist/server/mcp/handlers/constants.js.map +1 -0
- package/dist/server/mcp/handlers/constants.mjs +6 -0
- package/dist/server/mcp/handlers/constants.mjs.map +1 -0
- package/dist/server/mcp/handlers/single-type-handlers.js +344 -0
- package/dist/server/mcp/handlers/single-type-handlers.js.map +1 -0
- package/dist/server/mcp/handlers/single-type-handlers.mjs +336 -0
- package/dist/server/mcp/handlers/single-type-handlers.mjs.map +1 -0
- package/dist/server/mcp/permissions.js +138 -0
- package/dist/server/mcp/permissions.js.map +1 -0
- package/dist/server/mcp/permissions.mjs +131 -0
- package/dist/server/mcp/permissions.mjs.map +1 -0
- package/dist/server/mcp/register-content-manager-mcp-tools.js +33 -0
- package/dist/server/mcp/register-content-manager-mcp-tools.js.map +1 -0
- package/dist/server/mcp/register-content-manager-mcp-tools.mjs +31 -0
- package/dist/server/mcp/register-content-manager-mcp-tools.mjs.map +1 -0
- package/dist/server/mcp/sanitizers/shape-relations.js +108 -0
- package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -0
- package/dist/server/mcp/sanitizers/shape-relations.mjs +103 -0
- package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -0
- package/dist/server/mcp/schemas/blocks-schema.js +124 -0
- package/dist/server/mcp/schemas/blocks-schema.js.map +1 -0
- package/dist/server/mcp/schemas/blocks-schema.mjs +122 -0
- package/dist/server/mcp/schemas/blocks-schema.mjs.map +1 -0
- package/dist/server/mcp/schemas/data-schema.js +254 -0
- package/dist/server/mcp/schemas/data-schema.js.map +1 -0
- package/dist/server/mcp/schemas/data-schema.mjs +250 -0
- package/dist/server/mcp/schemas/data-schema.mjs.map +1 -0
- package/dist/server/mcp/schemas/filters-schema.js +111 -0
- package/dist/server/mcp/schemas/filters-schema.js.map +1 -0
- package/dist/server/mcp/schemas/filters-schema.mjs +107 -0
- package/dist/server/mcp/schemas/filters-schema.mjs.map +1 -0
- package/dist/server/mcp/schemas/input-schemas.js +18 -0
- package/dist/server/mcp/schemas/input-schemas.js.map +1 -0
- package/dist/server/mcp/schemas/input-schemas.mjs +13 -0
- package/dist/server/mcp/schemas/input-schemas.mjs.map +1 -0
- package/dist/server/mcp/schemas/output-schemas.js +74 -0
- package/dist/server/mcp/schemas/output-schemas.js.map +1 -0
- package/dist/server/mcp/schemas/output-schemas.mjs +70 -0
- package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -0
- package/dist/server/mcp/schemas/sort-schema.js +80 -0
- package/dist/server/mcp/schemas/sort-schema.js.map +1 -0
- package/dist/server/mcp/schemas/sort-schema.mjs +76 -0
- package/dist/server/mcp/schemas/sort-schema.mjs.map +1 -0
- package/dist/server/mcp/utils.js +72 -0
- package/dist/server/mcp/utils.js.map +1 -0
- package/dist/server/mcp/utils.mjs +67 -0
- package/dist/server/mcp/utils.mjs.map +1 -0
- package/dist/server/middlewares/routing.js +44 -0
- package/dist/server/middlewares/routing.js.map +1 -0
- package/dist/server/middlewares/routing.mjs +38 -0
- package/dist/server/middlewares/routing.mjs.map +1 -0
- package/dist/server/policies/hasPermissions.js +24 -0
- package/dist/server/policies/hasPermissions.js.map +1 -0
- package/dist/server/policies/hasPermissions.mjs +22 -0
- package/dist/server/policies/hasPermissions.mjs.map +1 -0
- package/dist/server/policies/index.js +10 -0
- package/dist/server/policies/index.js.map +1 -0
- package/dist/server/policies/index.mjs +8 -0
- package/dist/server/policies/index.mjs.map +1 -0
- package/dist/server/preview/controllers/index.js +10 -0
- package/dist/server/preview/controllers/index.js.map +1 -0
- package/dist/server/preview/controllers/index.mjs +8 -0
- package/dist/server/preview/controllers/index.mjs.map +1 -0
- package/dist/server/preview/controllers/preview.js +43 -0
- package/dist/server/preview/controllers/preview.js.map +1 -0
- package/dist/server/preview/controllers/preview.mjs +41 -0
- package/dist/server/preview/controllers/preview.mjs.map +1 -0
- package/dist/server/preview/controllers/previewScript.js +1450 -0
- package/dist/server/preview/controllers/validation/preview.js +50 -0
- package/dist/server/preview/controllers/validation/preview.js.map +1 -0
- package/dist/server/preview/controllers/validation/preview.mjs +48 -0
- package/dist/server/preview/controllers/validation/preview.mjs.map +1 -0
- package/dist/server/preview/index.js +27 -0
- package/dist/server/preview/index.js.map +1 -0
- package/dist/server/preview/index.mjs +25 -0
- package/dist/server/preview/index.mjs.map +1 -0
- package/dist/server/preview/routes/index.js +13 -0
- package/dist/server/preview/routes/index.js.map +1 -0
- package/dist/server/preview/routes/index.mjs +11 -0
- package/dist/server/preview/routes/index.mjs.map +1 -0
- package/dist/server/preview/routes/preview.js +36 -0
- package/dist/server/preview/routes/preview.js.map +1 -0
- package/dist/server/preview/routes/preview.mjs +34 -0
- package/dist/server/preview/routes/preview.mjs.map +1 -0
- package/dist/server/preview/services/index.js +12 -0
- package/dist/server/preview/services/index.js.map +1 -0
- package/dist/server/preview/services/index.mjs +10 -0
- package/dist/server/preview/services/index.mjs.map +1 -0
- package/dist/server/preview/services/preview-config.js +70 -0
- package/dist/server/preview/services/preview-config.js.map +1 -0
- package/dist/server/preview/services/preview-config.mjs +68 -0
- package/dist/server/preview/services/preview-config.mjs.map +1 -0
- package/dist/server/preview/services/preview.js +31 -0
- package/dist/server/preview/services/preview.js.map +1 -0
- package/dist/server/preview/services/preview.mjs +29 -0
- package/dist/server/preview/services/preview.mjs.map +1 -0
- package/dist/server/preview/utils.js +9 -0
- package/dist/server/preview/utils.js.map +1 -0
- package/dist/server/preview/utils.mjs +7 -0
- package/dist/server/preview/utils.mjs.map +1 -0
- package/dist/server/register.js +16 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +14 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/admin.js +620 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +618 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/index.js +16 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +14 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/components.js +121 -0
- package/dist/server/services/components.js.map +1 -0
- package/dist/server/services/components.mjs +119 -0
- package/dist/server/services/components.mjs.map +1 -0
- package/dist/server/services/configuration.js +58 -0
- package/dist/server/services/configuration.js.map +1 -0
- package/dist/server/services/configuration.mjs +56 -0
- package/dist/server/services/configuration.mjs.map +1 -0
- package/dist/server/services/content-types.js +60 -0
- package/dist/server/services/content-types.js.map +1 -0
- package/dist/server/services/content-types.mjs +58 -0
- package/dist/server/services/content-types.mjs.map +1 -0
- package/dist/server/services/data-mapper.js +69 -0
- package/dist/server/services/data-mapper.js.map +1 -0
- package/dist/server/services/data-mapper.mjs +67 -0
- package/dist/server/services/data-mapper.mjs.map +1 -0
- package/dist/server/services/document-manager.js +237 -0
- package/dist/server/services/document-manager.js.map +1 -0
- package/dist/server/services/document-manager.mjs +235 -0
- package/dist/server/services/document-manager.mjs.map +1 -0
- package/dist/server/services/document-metadata.js +368 -0
- package/dist/server/services/document-metadata.js.map +1 -0
- package/dist/server/services/document-metadata.mjs +366 -0
- package/dist/server/services/document-metadata.mjs.map +1 -0
- package/dist/server/services/field-sizes.js +90 -0
- package/dist/server/services/field-sizes.js.map +1 -0
- package/dist/server/services/field-sizes.mjs +88 -0
- package/dist/server/services/field-sizes.mjs.map +1 -0
- package/dist/server/services/index.js +36 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +34 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/metrics.js +31 -0
- package/dist/server/services/metrics.js.map +1 -0
- package/dist/server/services/metrics.mjs +29 -0
- package/dist/server/services/metrics.mjs.map +1 -0
- package/dist/server/services/permission-checker.js +138 -0
- package/dist/server/services/permission-checker.js.map +1 -0
- package/dist/server/services/permission-checker.mjs +133 -0
- package/dist/server/services/permission-checker.mjs.map +1 -0
- package/dist/server/services/permission.js +94 -0
- package/dist/server/services/permission.js.map +1 -0
- package/dist/server/services/permission.mjs +92 -0
- package/dist/server/services/permission.mjs.map +1 -0
- package/dist/server/services/populate-builder.js +86 -0
- package/dist/server/services/populate-builder.js.map +1 -0
- package/dist/server/services/populate-builder.mjs +84 -0
- package/dist/server/services/populate-builder.mjs.map +1 -0
- package/dist/server/services/uid.js +90 -0
- package/dist/server/services/uid.js.map +1 -0
- package/dist/server/services/uid.mjs +83 -0
- package/dist/server/services/uid.mjs.map +1 -0
- package/dist/server/services/utils/configuration/attributes.js +190 -0
- package/dist/server/services/utils/configuration/attributes.js.map +1 -0
- package/dist/server/services/utils/configuration/attributes.mjs +176 -0
- package/dist/server/services/utils/configuration/attributes.mjs.map +1 -0
- package/dist/server/services/utils/configuration/index.js +37 -0
- package/dist/server/services/utils/configuration/index.js.map +1 -0
- package/dist/server/services/utils/configuration/index.mjs +34 -0
- package/dist/server/services/utils/configuration/index.mjs.map +1 -0
- package/dist/server/services/utils/configuration/layouts.js +124 -0
- package/dist/server/services/utils/configuration/layouts.js.map +1 -0
- package/dist/server/services/utils/configuration/layouts.mjs +117 -0
- package/dist/server/services/utils/configuration/layouts.mjs.map +1 -0
- package/dist/server/services/utils/configuration/metadatas.js +159 -0
- package/dist/server/services/utils/configuration/metadatas.js.map +1 -0
- package/dist/server/services/utils/configuration/metadatas.mjs +152 -0
- package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -0
- package/dist/server/services/utils/configuration/settings.js +72 -0
- package/dist/server/services/utils/configuration/settings.js.map +1 -0
- package/dist/server/services/utils/configuration/settings.mjs +64 -0
- package/dist/server/services/utils/configuration/settings.mjs.map +1 -0
- package/dist/server/services/utils/draft-relations.js +14 -0
- package/dist/server/services/utils/draft-relations.js.map +1 -0
- package/dist/server/services/utils/draft-relations.mjs +11 -0
- package/dist/server/services/utils/draft-relations.mjs.map +1 -0
- package/dist/server/services/utils/draft.js +171 -0
- package/dist/server/services/utils/draft.js.map +1 -0
- package/dist/server/services/utils/draft.mjs +149 -0
- package/dist/server/services/utils/draft.mjs.map +1 -0
- package/dist/server/services/utils/populate.js +398 -0
- package/dist/server/services/utils/populate.js.map +1 -0
- package/dist/server/services/utils/populate.mjs +371 -0
- package/dist/server/services/utils/populate.mjs.map +1 -0
- package/dist/server/services/utils/store.js +122 -0
- package/dist/server/services/utils/store.js.map +1 -0
- package/dist/server/services/utils/store.mjs +116 -0
- package/dist/server/services/utils/store.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts +3 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/config.d.ts +6 -0
- package/dist/server/src/config.d.ts.map +1 -0
- package/dist/server/src/constants/index.d.ts +6 -0
- package/dist/server/src/constants/index.d.ts.map +1 -0
- package/dist/server/src/controllers/collection-types.d.ts +24 -0
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -0
- package/dist/server/src/controllers/components.d.ts +7 -0
- package/dist/server/src/controllers/components.d.ts.map +1 -0
- package/dist/server/src/controllers/content-types.d.ts +8 -0
- package/dist/server/src/controllers/content-types.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +54 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/controllers/init.d.ts +5 -0
- package/dist/server/src/controllers/init.d.ts.map +1 -0
- package/dist/server/src/controllers/relations.d.ts +13 -0
- package/dist/server/src/controllers/relations.d.ts.map +1 -0
- package/dist/server/src/controllers/single-types.d.ts +11 -0
- package/dist/server/src/controllers/single-types.d.ts.map +1 -0
- package/dist/server/src/controllers/uid.d.ts +6 -0
- package/dist/server/src/controllers/uid.d.ts.map +1 -0
- package/dist/server/src/controllers/utils/clone.d.ts +12 -0
- package/dist/server/src/controllers/utils/clone.d.ts.map +1 -0
- package/dist/server/src/controllers/utils/document-status.d.ts +10 -0
- package/dist/server/src/controllers/utils/document-status.d.ts.map +1 -0
- package/dist/server/src/controllers/utils/metadata.d.ts +23 -0
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/dimensions.d.ts +11 -0
- package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/index.d.ts +26 -0
- package/dist/server/src/controllers/validation/index.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/model-configuration.d.ts +22 -0
- package/dist/server/src/controllers/validation/model-configuration.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/relations.d.ts +19 -0
- package/dist/server/src/controllers/validation/relations.d.ts.map +1 -0
- package/dist/server/src/destroy.d.ts +4 -0
- package/dist/server/src/destroy.d.ts.map +1 -0
- package/dist/server/src/history/constants.d.ts +3 -0
- package/dist/server/src/history/constants.d.ts.map +1 -0
- package/dist/server/src/history/controllers/history-version.d.ts +13 -0
- package/dist/server/src/history/controllers/history-version.d.ts.map +1 -0
- package/dist/server/src/history/controllers/index.d.ts +3 -0
- package/dist/server/src/history/controllers/index.d.ts.map +1 -0
- package/dist/server/src/history/controllers/validation/history-version.d.ts +4 -0
- package/dist/server/src/history/controllers/validation/history-version.d.ts.map +1 -0
- package/dist/server/src/history/index.d.ts +4 -0
- package/dist/server/src/history/index.d.ts.map +1 -0
- package/dist/server/src/history/models/history-version.d.ts +4 -0
- package/dist/server/src/history/models/history-version.d.ts.map +1 -0
- package/dist/server/src/history/routes/history-version.d.ts +4 -0
- package/dist/server/src/history/routes/history-version.d.ts.map +1 -0
- package/dist/server/src/history/routes/index.d.ts +10 -0
- package/dist/server/src/history/routes/index.d.ts.map +1 -0
- package/dist/server/src/history/services/history.d.ts +14 -0
- package/dist/server/src/history/services/history.d.ts.map +1 -0
- package/dist/server/src/history/services/index.d.ts +19 -0
- package/dist/server/src/history/services/index.d.ts.map +1 -0
- package/dist/server/src/history/services/lifecycles.d.ts +9 -0
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -0
- package/dist/server/src/history/services/utils.d.ts +40 -0
- package/dist/server/src/history/services/utils.d.ts.map +1 -0
- package/dist/server/src/history/utils.d.ts +5 -0
- package/dist/server/src/history/utils.d.ts.map +1 -0
- package/dist/server/src/homepage/controllers/homepage.d.ts +7 -0
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/controllers/index.d.ts +3 -0
- package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
- package/dist/server/src/homepage/index.d.ts +23 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/index.d.ts +10 -0
- package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts +28 -0
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -0
- package/dist/server/src/homepage/services/homepage.d.ts +13 -0
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/services/index.d.ts +12 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +384 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/mcp/derive-content-type-mcp-tools.d.ts +12 -0
- package/dist/server/src/mcp/derive-content-type-mcp-tools.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/collection-handlers.d.ts +69 -0
- package/dist/server/src/mcp/handlers/collection-handlers.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/constants.d.ts +4 -0
- package/dist/server/src/mcp/handlers/constants.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/index.d.ts +3 -0
- package/dist/server/src/mcp/handlers/index.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/single-type-handlers.d.ts +66 -0
- package/dist/server/src/mcp/handlers/single-type-handlers.d.ts.map +1 -0
- package/dist/server/src/mcp/permissions.d.ts +49 -0
- package/dist/server/src/mcp/permissions.d.ts.map +1 -0
- package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts +9 -0
- package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts.map +1 -0
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts +38 -0
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/blocks-schema.d.ts +8 -0
- package/dist/server/src/mcp/schemas/blocks-schema.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/data-schema.d.ts +33 -0
- package/dist/server/src/mcp/schemas/data-schema.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/filters-schema.d.ts +22 -0
- package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/index.d.ts +7 -0
- package/dist/server/src/mcp/schemas/index.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/input-schemas.d.ts +10 -0
- package/dist/server/src/mcp/schemas/input-schemas.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/output-schemas.d.ts +18 -0
- package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/sort-schema.d.ts +24 -0
- package/dist/server/src/mcp/schemas/sort-schema.d.ts.map +1 -0
- package/dist/server/src/mcp/types.d.ts +31 -0
- package/dist/server/src/mcp/types.d.ts.map +1 -0
- package/dist/server/src/mcp/utils.d.ts +41 -0
- package/dist/server/src/mcp/utils.d.ts.map +1 -0
- package/dist/server/src/middlewares/index.d.ts +3 -0
- package/dist/server/src/middlewares/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/routing.d.ts +4 -0
- package/dist/server/src/middlewares/routing.d.ts.map +1 -0
- package/dist/server/src/policies/hasPermissions.d.ts +7 -0
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -0
- package/dist/server/src/policies/index.d.ts +9 -0
- package/dist/server/src/policies/index.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/index.d.ts +3 -0
- package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/preview.d.ts +18 -0
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts +5 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts +4 -0
- package/dist/server/src/preview/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/index.d.ts +10 -0
- package/dist/server/src/preview/routes/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/preview.d.ts +4 -0
- package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
- package/dist/server/src/preview/services/index.d.ts +17 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +31 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview.d.ts +12 -0
- package/dist/server/src/preview/services/preview.d.ts.map +1 -0
- package/dist/server/src/preview/utils.d.ts +5 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +4 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/admin.d.ts +41 -0
- package/dist/server/src/routes/admin.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +46 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/services/components.d.ts +38 -0
- package/dist/server/src/services/components.d.ts.map +1 -0
- package/dist/server/src/services/configuration.d.ts +20 -0
- package/dist/server/src/services/configuration.d.ts.map +1 -0
- package/dist/server/src/services/content-types.d.ts +18 -0
- package/dist/server/src/services/content-types.d.ts.map +1 -0
- package/dist/server/src/services/data-mapper.d.ts +21 -0
- package/dist/server/src/services/data-mapper.d.ts.map +1 -0
- package/dist/server/src/services/document-manager.d.ts +54 -0
- package/dist/server/src/services/document-manager.d.ts.map +1 -0
- package/dist/server/src/services/document-metadata.d.ts +87 -0
- package/dist/server/src/services/document-metadata.d.ts.map +1 -0
- package/dist/server/src/services/field-sizes.d.ts +19 -0
- package/dist/server/src/services/field-sizes.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +272 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/metrics.d.ts +9 -0
- package/dist/server/src/services/metrics.d.ts.map +1 -0
- package/dist/server/src/services/permission-checker.d.ts +46 -0
- package/dist/server/src/services/permission-checker.d.ts.map +1 -0
- package/dist/server/src/services/permission.d.ts +12 -0
- package/dist/server/src/services/permission.d.ts.map +1 -0
- package/dist/server/src/services/populate-builder.d.ts +39 -0
- package/dist/server/src/services/populate-builder.d.ts.map +1 -0
- package/dist/server/src/services/uid.d.ts +25 -0
- package/dist/server/src/services/uid.d.ts.map +1 -0
- package/dist/server/src/services/utils/configuration/attributes.d.ts +17 -0
- package/dist/server/src/services/utils/configuration/attributes.d.ts.map +1 -0
- package/dist/server/src/services/utils/configuration/index.d.ts +21 -0
- package/dist/server/src/services/utils/configuration/index.d.ts.map +1 -0
- package/dist/server/src/services/utils/configuration/layouts.d.ts +14 -0
- package/dist/server/src/services/utils/configuration/layouts.d.ts.map +1 -0
- package/dist/server/src/services/utils/configuration/metadatas.d.ts +5 -0
- package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -0
- package/dist/server/src/services/utils/configuration/settings.d.ts +5 -0
- package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -0
- package/dist/server/src/services/utils/count.d.ts +5 -0
- package/dist/server/src/services/utils/count.d.ts.map +1 -0
- package/dist/server/src/services/utils/draft-relations.d.ts +19 -0
- package/dist/server/src/services/utils/draft-relations.d.ts.map +1 -0
- package/dist/server/src/services/utils/draft.d.ts +12 -0
- package/dist/server/src/services/utils/draft.d.ts.map +1 -0
- package/dist/server/src/services/utils/populate.d.ts +48 -0
- package/dist/server/src/services/utils/populate.d.ts.map +1 -0
- package/dist/server/src/services/utils/store.d.ts +20 -0
- package/dist/server/src/services/utils/store.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +11 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/src/validation/policies/hasPermissions.d.ts +5 -0
- package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -0
- package/dist/server/src/validation/zod.d.ts +34 -0
- package/dist/server/src/validation/zod.d.ts.map +1 -0
- package/dist/server/utils/index.js +10 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +8 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/server/validation/policies/hasPermissions.js +12 -0
- package/dist/server/validation/policies/hasPermissions.js.map +1 -0
- package/dist/server/validation/policies/hasPermissions.mjs +10 -0
- package/dist/server/validation/policies/hasPermissions.mjs.map +1 -0
- package/dist/server/validation/zod.js +60 -0
- package/dist/server/validation/zod.js.map +1 -0
- package/dist/server/validation/zod.mjs +56 -0
- package/dist/server/validation/zod.mjs.map +1 -0
- package/dist/shared/contracts/collection-types.d.ts +339 -0
- package/dist/shared/contracts/collection-types.d.ts.map +1 -0
- package/dist/shared/contracts/collection-types.js +3 -0
- package/dist/shared/contracts/collection-types.js.map +1 -0
- package/dist/shared/contracts/collection-types.mjs +2 -0
- package/dist/shared/contracts/collection-types.mjs.map +1 -0
- package/dist/shared/contracts/components.d.ts +64 -0
- package/dist/shared/contracts/components.d.ts.map +1 -0
- package/dist/shared/contracts/components.js +3 -0
- package/dist/shared/contracts/components.js.map +1 -0
- package/dist/shared/contracts/components.mjs +2 -0
- package/dist/shared/contracts/components.mjs.map +1 -0
- package/dist/shared/contracts/content-types.d.ts +114 -0
- package/dist/shared/contracts/content-types.d.ts.map +1 -0
- package/dist/shared/contracts/content-types.js +3 -0
- package/dist/shared/contracts/content-types.js.map +1 -0
- package/dist/shared/contracts/content-types.mjs +2 -0
- package/dist/shared/contracts/content-types.mjs.map +1 -0
- package/dist/shared/contracts/history-versions.d.ts +91 -0
- package/dist/shared/contracts/history-versions.d.ts.map +1 -0
- package/dist/shared/contracts/history-versions.js +3 -0
- package/dist/shared/contracts/history-versions.js.map +1 -0
- package/dist/shared/contracts/history-versions.mjs +2 -0
- package/dist/shared/contracts/history-versions.mjs.map +1 -0
- package/dist/shared/contracts/homepage.d.ts +38 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -0
- package/dist/shared/contracts/index.d.ts +10 -0
- package/dist/shared/contracts/index.d.ts.map +1 -0
- package/dist/shared/contracts/index.js +26 -0
- package/dist/shared/contracts/index.js.map +1 -0
- package/dist/shared/contracts/index.mjs +21 -0
- package/dist/shared/contracts/index.mjs.map +1 -0
- package/dist/shared/contracts/init.d.ts +23 -0
- package/dist/shared/contracts/init.d.ts.map +1 -0
- package/dist/shared/contracts/init.js +3 -0
- package/dist/shared/contracts/init.js.map +1 -0
- package/dist/shared/contracts/init.mjs +2 -0
- package/dist/shared/contracts/init.mjs.map +1 -0
- package/dist/shared/contracts/preview.d.ts +26 -0
- package/dist/shared/contracts/preview.d.ts.map +1 -0
- package/dist/shared/contracts/preview.js +3 -0
- package/dist/shared/contracts/preview.js.map +1 -0
- package/dist/shared/contracts/preview.mjs +2 -0
- package/dist/shared/contracts/preview.mjs.map +1 -0
- package/dist/shared/contracts/relations.d.ts +69 -0
- package/dist/shared/contracts/relations.d.ts.map +1 -0
- package/dist/shared/contracts/relations.js +3 -0
- package/dist/shared/contracts/relations.js.map +1 -0
- package/dist/shared/contracts/relations.mjs +2 -0
- package/dist/shared/contracts/relations.mjs.map +1 -0
- package/dist/shared/contracts/review-workflows.d.ts +77 -0
- package/dist/shared/contracts/review-workflows.d.ts.map +1 -0
- package/dist/shared/contracts/review-workflows.js +3 -0
- package/dist/shared/contracts/review-workflows.js.map +1 -0
- package/dist/shared/contracts/review-workflows.mjs +2 -0
- package/dist/shared/contracts/review-workflows.mjs.map +1 -0
- package/dist/shared/contracts/single-types.d.ts +115 -0
- package/dist/shared/contracts/single-types.d.ts.map +1 -0
- package/dist/shared/contracts/single-types.js +3 -0
- package/dist/shared/contracts/single-types.js.map +1 -0
- package/dist/shared/contracts/single-types.mjs +2 -0
- package/dist/shared/contracts/single-types.mjs.map +1 -0
- package/dist/shared/contracts/uid.d.ts +47 -0
- package/dist/shared/contracts/uid.d.ts.map +1 -0
- package/dist/shared/contracts/uid.js +3 -0
- package/dist/shared/contracts/uid.js.map +1 -0
- package/dist/shared/contracts/uid.mjs +2 -0
- package/dist/shared/contracts/uid.mjs.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +8 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/index.mjs +3 -0
- package/dist/shared/index.mjs.map +1 -0
- package/package.json +119 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
var homepageQueryUtils = require('./homepage-query-utils.js');
|
|
5
|
+
|
|
6
|
+
const createHomepageService = ({ strapi })=>{
|
|
7
|
+
const MAX_DOCUMENTS = 4;
|
|
8
|
+
const metadataService = strapi.plugin('content-manager').service('document-metadata');
|
|
9
|
+
const permissionService = strapi.admin.services.permission;
|
|
10
|
+
const getRegisteredContentType = (uid)=>{
|
|
11
|
+
const contentType = strapi.contentTypes[uid];
|
|
12
|
+
if (contentType === undefined) {
|
|
13
|
+
strapi.log.warn(`Skipping homepage content type "${uid}" because it is no longer registered.`);
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return contentType;
|
|
17
|
+
};
|
|
18
|
+
const getConfiguration = async (contentTypeUids)=>{
|
|
19
|
+
/**
|
|
20
|
+
* Don't use the strapi.store util because we need to make
|
|
21
|
+
* more precise queries than exact key matches, in order to make as few queries as possible.
|
|
22
|
+
*/ const coreStore = strapi.db.query('strapi::core-store');
|
|
23
|
+
const rawConfigurations = await coreStore.findMany({
|
|
24
|
+
where: {
|
|
25
|
+
key: {
|
|
26
|
+
$in: contentTypeUids.map((contentType)=>`plugin_content_manager_configuration_content_types::${contentType}`)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return rawConfigurations.map((rawConfiguration)=>{
|
|
31
|
+
return JSON.parse(rawConfiguration.value);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const getPermittedContentTypes = async ()=>{
|
|
35
|
+
const readPermissions = await permissionService.findMany({
|
|
36
|
+
where: {
|
|
37
|
+
role: {
|
|
38
|
+
users: {
|
|
39
|
+
id: strapi.requestContext.get()?.state?.user.id
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
action: 'plugin::content-manager.explorer.read'
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
// Deduplicate subjects using a Set: the JOIN across permission -> role -> users produces one row
|
|
46
|
+
// per role the user belongs to, so a multi-role user gets duplicate subjects.
|
|
47
|
+
// Using a Set collapses them to unique content type UID.
|
|
48
|
+
return [
|
|
49
|
+
...new Set(readPermissions.map((permission)=>permission.subject).filter((subject)=>{
|
|
50
|
+
if (!subject) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const contentType = strapi.contentTypes[subject];
|
|
54
|
+
const contentTypeOptions = contentType?.pluginOptions?.['content-manager'];
|
|
55
|
+
return contentTypeOptions?.visible !== false;
|
|
56
|
+
}))
|
|
57
|
+
];
|
|
58
|
+
};
|
|
59
|
+
const permissionCheckerService = strapi.plugin('content-manager').service('permission-checker');
|
|
60
|
+
const getPermissionChecker = (uid)=>permissionCheckerService.create({
|
|
61
|
+
userAbility: strapi.requestContext.get()?.state.userAbility,
|
|
62
|
+
model: uid
|
|
63
|
+
});
|
|
64
|
+
const getContentTypesMeta = (allowedContentTypeUids, configurations)=>{
|
|
65
|
+
return allowedContentTypeUids.reduce((acc, uid)=>{
|
|
66
|
+
const configuration = configurations.find((config)=>config.uid === uid);
|
|
67
|
+
const contentType = getRegisteredContentType(uid);
|
|
68
|
+
if (contentType === undefined) {
|
|
69
|
+
return acc;
|
|
70
|
+
}
|
|
71
|
+
const mainField = homepageQueryUtils.resolveReadableMainField(contentType, configuration, getPermissionChecker(uid));
|
|
72
|
+
const fields = homepageQueryUtils.buildHomepageQueryFields(contentType, mainField);
|
|
73
|
+
const hasDraftAndPublish = strapiUtils.contentTypes.hasDraftAndPublish(contentType);
|
|
74
|
+
acc.push({
|
|
75
|
+
fields,
|
|
76
|
+
mainField,
|
|
77
|
+
contentType,
|
|
78
|
+
hasDraftAndPublish,
|
|
79
|
+
uid
|
|
80
|
+
});
|
|
81
|
+
return acc;
|
|
82
|
+
}, []);
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Homepage widgets expect JSON-safe ISO strings. Returning `Date` objects can
|
|
86
|
+
* serialize as `{}` after spread/clone (see https://github.com/strapi/strapi/issues/27013).
|
|
87
|
+
*/ const toIsoDateString = (value)=>{
|
|
88
|
+
if (value == null || value === '') {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const date = value instanceof Date ? value : new Date(String(value));
|
|
92
|
+
return Number.isNaN(date.getTime()) ? null : date.toISOString();
|
|
93
|
+
};
|
|
94
|
+
const formatDocuments = (documents, meta, populate)=>{
|
|
95
|
+
return documents.map((document)=>{
|
|
96
|
+
const additionalFields = populate?.reduce((acc, key)=>{
|
|
97
|
+
acc[key] = document[key];
|
|
98
|
+
return acc;
|
|
99
|
+
}, {}) || {};
|
|
100
|
+
return {
|
|
101
|
+
documentId: document.documentId,
|
|
102
|
+
locale: document.locale ?? null,
|
|
103
|
+
title: document[meta.mainField ?? 'documentId'],
|
|
104
|
+
contentTypeUid: meta.uid,
|
|
105
|
+
contentTypeDisplayName: meta.contentType.info.displayName,
|
|
106
|
+
kind: meta.contentType.kind,
|
|
107
|
+
...additionalFields,
|
|
108
|
+
// Keep dates last so populate cannot overwrite with non-JSON-safe values
|
|
109
|
+
updatedAt: toIsoDateString(document.updatedAt) ?? '',
|
|
110
|
+
publishedAt: meta.hasDraftAndPublish && document.publishedAt ? toIsoDateString(document.publishedAt) : null
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
const sanitizeHomepageQuery = async (meta, additionalQueryParams)=>{
|
|
115
|
+
const permissionQuery = await getPermissionChecker(meta.uid).sanitizedQuery.read({
|
|
116
|
+
limit: MAX_DOCUMENTS,
|
|
117
|
+
fields: meta.fields,
|
|
118
|
+
...additionalQueryParams,
|
|
119
|
+
locale: '*'
|
|
120
|
+
});
|
|
121
|
+
const sanitizedFields = homepageQueryUtils.compactSanitizedFields(permissionQuery.fields);
|
|
122
|
+
if (sanitizedFields !== undefined) {
|
|
123
|
+
permissionQuery.fields = sanitizedFields;
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
permissionQuery,
|
|
127
|
+
titleField: homepageQueryUtils.resolveTitleField(meta.mainField, sanitizedFields)
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
return {
|
|
131
|
+
async addStatusToDocuments (documents) {
|
|
132
|
+
return Promise.all(documents.map(async (recentDocument)=>{
|
|
133
|
+
const hasDraftAndPublish = strapiUtils.contentTypes.hasDraftAndPublish(strapi.contentType(recentDocument.contentTypeUid));
|
|
134
|
+
/**
|
|
135
|
+
* Tries to query the other version of the document if draft and publish is enabled,
|
|
136
|
+
* so that we know when to give the "modified" status.
|
|
137
|
+
*/ const { availableStatus } = await metadataService.getMetadata(recentDocument.contentTypeUid, recentDocument, {
|
|
138
|
+
availableStatus: hasDraftAndPublish,
|
|
139
|
+
availableLocales: false
|
|
140
|
+
});
|
|
141
|
+
const status = metadataService.getStatus(recentDocument, availableStatus);
|
|
142
|
+
return {
|
|
143
|
+
...recentDocument,
|
|
144
|
+
status: hasDraftAndPublish ? status : undefined
|
|
145
|
+
};
|
|
146
|
+
}));
|
|
147
|
+
},
|
|
148
|
+
async queryLastDocuments (additionalQueryParams, draftAndPublishOnly) {
|
|
149
|
+
const permittedContentTypes = await getPermittedContentTypes();
|
|
150
|
+
const allowedContentTypeUids = draftAndPublishOnly ? permittedContentTypes.filter((uid)=>{
|
|
151
|
+
const contentType = getRegisteredContentType(uid);
|
|
152
|
+
return contentType !== undefined && strapiUtils.contentTypes.hasDraftAndPublish(contentType);
|
|
153
|
+
}) : permittedContentTypes;
|
|
154
|
+
// Fetch the configuration for each content type in a single query
|
|
155
|
+
const configurations = await getConfiguration(allowedContentTypeUids);
|
|
156
|
+
// Get the necessary metadata for the documents
|
|
157
|
+
const contentTypesMeta = getContentTypesMeta(allowedContentTypeUids, configurations);
|
|
158
|
+
const recentDocuments = await Promise.all(contentTypesMeta.map(async (meta)=>{
|
|
159
|
+
const { permissionQuery, titleField } = await sanitizeHomepageQuery(meta, additionalQueryParams);
|
|
160
|
+
const docs = await strapi.documents(meta.uid).findMany(permissionQuery);
|
|
161
|
+
const populate = additionalQueryParams?.populate;
|
|
162
|
+
return formatDocuments(docs, {
|
|
163
|
+
...meta,
|
|
164
|
+
mainField: titleField
|
|
165
|
+
}, populate);
|
|
166
|
+
}));
|
|
167
|
+
return recentDocuments.flat().sort((a, b)=>{
|
|
168
|
+
// ISO-8601 strings compare lexicographically in chronological order
|
|
169
|
+
const compareIso = (left, right, direction)=>{
|
|
170
|
+
if (left < right) return -1 * direction;
|
|
171
|
+
if (left > right) return 1 * direction;
|
|
172
|
+
return 0;
|
|
173
|
+
};
|
|
174
|
+
switch(additionalQueryParams?.sort){
|
|
175
|
+
case 'publishedAt:desc':
|
|
176
|
+
if (!a.publishedAt || !b.publishedAt) return 0;
|
|
177
|
+
return compareIso(a.publishedAt, b.publishedAt, -1);
|
|
178
|
+
case 'publishedAt:asc':
|
|
179
|
+
if (!a.publishedAt || !b.publishedAt) return 0;
|
|
180
|
+
return compareIso(a.publishedAt, b.publishedAt, 1);
|
|
181
|
+
case 'updatedAt:desc':
|
|
182
|
+
if (!a.updatedAt || !b.updatedAt) return 0;
|
|
183
|
+
return compareIso(a.updatedAt, b.updatedAt, -1);
|
|
184
|
+
case 'updatedAt:asc':
|
|
185
|
+
if (!a.updatedAt || !b.updatedAt) return 0;
|
|
186
|
+
return compareIso(a.updatedAt, b.updatedAt, 1);
|
|
187
|
+
default:
|
|
188
|
+
return 0;
|
|
189
|
+
}
|
|
190
|
+
}).slice(0, MAX_DOCUMENTS);
|
|
191
|
+
},
|
|
192
|
+
async getRecentlyPublishedDocuments () {
|
|
193
|
+
const recentlyPublishedDocuments = await this.queryLastDocuments({
|
|
194
|
+
sort: 'publishedAt:desc',
|
|
195
|
+
status: 'published'
|
|
196
|
+
}, true);
|
|
197
|
+
return this.addStatusToDocuments(recentlyPublishedDocuments);
|
|
198
|
+
},
|
|
199
|
+
async getRecentlyUpdatedDocuments () {
|
|
200
|
+
const recentlyUpdatedDocuments = await this.queryLastDocuments({
|
|
201
|
+
sort: 'updatedAt:desc'
|
|
202
|
+
});
|
|
203
|
+
return this.addStatusToDocuments(recentlyUpdatedDocuments);
|
|
204
|
+
},
|
|
205
|
+
async getCountDocuments () {
|
|
206
|
+
const permittedContentTypes = await getPermittedContentTypes();
|
|
207
|
+
// Fetch the configuration for each content type in a single query
|
|
208
|
+
const configurations = await getConfiguration(permittedContentTypes);
|
|
209
|
+
// Get the necessary metadata for the documents
|
|
210
|
+
const contentTypesMeta = getContentTypesMeta(permittedContentTypes, configurations);
|
|
211
|
+
const countDocuments = {
|
|
212
|
+
draft: 0,
|
|
213
|
+
published: 0,
|
|
214
|
+
modified: 0
|
|
215
|
+
};
|
|
216
|
+
await Promise.all(contentTypesMeta.map(async (meta)=>{
|
|
217
|
+
const strapiDBConnection = strapi.db.connection;
|
|
218
|
+
const tableName = strapi.contentType(meta.uid).collectionName;
|
|
219
|
+
if (!tableName) return;
|
|
220
|
+
if (!meta.hasDraftAndPublish) {
|
|
221
|
+
const publishedDocuments = await strapiDBConnection(tableName).countDistinct('document_id as count').first();
|
|
222
|
+
countDocuments.published += Number(publishedDocuments?.count) || 0;
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
// Classify each document_id into a single bucket (draft / published / modified)
|
|
226
|
+
// in one pass. Replaces three separate self-join queries that scaled poorly on
|
|
227
|
+
// large tables — see https://github.com/strapi/strapi/issues/25200.
|
|
228
|
+
const classified = strapiDBConnection(tableName).select('document_id').select(strapiDBConnection.raw(`CASE
|
|
229
|
+
WHEN MAX(CASE WHEN published_at IS NOT NULL THEN 1 ELSE 0 END) = 0
|
|
230
|
+
THEN 'draft'
|
|
231
|
+
WHEN MAX(CASE WHEN published_at IS NULL THEN updated_at END) =
|
|
232
|
+
MAX(CASE WHEN published_at IS NOT NULL THEN updated_at END)
|
|
233
|
+
THEN 'published'
|
|
234
|
+
ELSE 'modified'
|
|
235
|
+
END AS bucket`)).groupBy('document_id');
|
|
236
|
+
const counts = await strapiDBConnection.from(classified.as('classified')).select(strapiDBConnection.raw(`COUNT(CASE WHEN bucket = 'draft' THEN 1 END) AS draft,
|
|
237
|
+
COUNT(CASE WHEN bucket = 'published' THEN 1 END) AS published,
|
|
238
|
+
COUNT(CASE WHEN bucket = 'modified' THEN 1 END) AS modified`)).first();
|
|
239
|
+
countDocuments.draft += Number(counts?.draft) || 0;
|
|
240
|
+
countDocuments.published += Number(counts?.published) || 0;
|
|
241
|
+
countDocuments.modified += Number(counts?.modified) || 0;
|
|
242
|
+
}));
|
|
243
|
+
return countDocuments;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
exports.createHomepageService = createHomepageService;
|
|
249
|
+
//# sourceMappingURL=homepage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"homepage.js","sources":["../../../../server/src/homepage/services/homepage.ts"],"sourcesContent":["/* eslint-disable func-names */\r\nimport type { Core, Modules, Schema } from '@strapi/types';\r\nimport { contentTypes } from '@strapi/utils';\r\n\r\nimport type {\r\n GetCountDocuments,\r\n GetRecentDocuments,\r\n RecentDocument,\r\n} from '../../../../shared/contracts/homepage';\r\n\r\nimport {\r\n buildHomepageQueryFields,\r\n compactSanitizedFields,\r\n resolveReadableMainField,\r\n resolveTitleField,\r\n} from './homepage-query-utils';\r\n\r\nconst createHomepageService = ({ strapi }: { strapi: Core.Strapi }) => {\r\n const MAX_DOCUMENTS = 4;\r\n\r\n const metadataService = strapi.plugin('content-manager').service('document-metadata');\r\n const permissionService = strapi.admin.services.permission;\r\n\r\n const getRegisteredContentType = (uid: RecentDocument['contentTypeUid']) => {\r\n const contentType = strapi.contentTypes[uid];\r\n\r\n if (contentType === undefined) {\r\n strapi.log.warn(\r\n `Skipping homepage content type \"${uid}\" because it is no longer registered.`\r\n );\r\n return undefined;\r\n }\r\n\r\n return contentType;\r\n };\r\n\r\n type ContentTypeConfiguration = {\r\n uid: RecentDocument['contentTypeUid'];\r\n settings: { mainField: string };\r\n };\r\n const getConfiguration = async (\r\n contentTypeUids: RecentDocument['contentTypeUid'][]\r\n ): Promise<ContentTypeConfiguration[]> => {\r\n /**\r\n * Don't use the strapi.store util because we need to make\r\n * more precise queries than exact key matches, in order to make as few queries as possible.\r\n */\r\n const coreStore = strapi.db.query('strapi::core-store');\r\n const rawConfigurations = await coreStore.findMany({\r\n where: {\r\n key: {\r\n $in: contentTypeUids.map(\r\n (contentType) => `plugin_content_manager_configuration_content_types::${contentType}`\r\n ),\r\n },\r\n },\r\n });\r\n\r\n return rawConfigurations.map((rawConfiguration) => {\r\n return JSON.parse(rawConfiguration.value);\r\n });\r\n };\r\n\r\n const getPermittedContentTypes = async () => {\r\n const readPermissions: Modules.Permissions.PermissionRule[] = await permissionService.findMany({\r\n where: {\r\n role: { users: { id: strapi.requestContext.get()?.state?.user.id } },\r\n action: 'plugin::content-manager.explorer.read',\r\n },\r\n });\r\n\r\n // Deduplicate subjects using a Set: the JOIN across permission -> role -> users produces one row\r\n // per role the user belongs to, so a multi-role user gets duplicate subjects.\r\n // Using a Set collapses them to unique content type UID.\r\n return [\r\n ...new Set(\r\n readPermissions\r\n .map((permission) => permission.subject)\r\n .filter((subject): subject is RecentDocument['contentTypeUid'] => {\r\n if (!subject) {\r\n return false;\r\n }\r\n\r\n const contentType = strapi.contentTypes[subject as keyof typeof strapi.contentTypes];\r\n const contentTypeOptions = contentType?.pluginOptions?.['content-manager'] as\r\n | { visible?: boolean }\r\n | undefined;\r\n\r\n return contentTypeOptions?.visible !== false;\r\n })\r\n ),\r\n ];\r\n };\r\n\r\n type ContentTypeMeta = {\r\n fields: string[];\r\n mainField: string;\r\n contentType: Schema.ContentType;\r\n hasDraftAndPublish: boolean;\r\n uid: RecentDocument['contentTypeUid'];\r\n };\r\n\r\n const permissionCheckerService = strapi.plugin('content-manager').service('permission-checker');\r\n const getPermissionChecker = (uid: string) =>\r\n permissionCheckerService.create({\r\n userAbility: strapi.requestContext.get()?.state.userAbility,\r\n model: uid,\r\n });\r\n\r\n const getContentTypesMeta = (\r\n allowedContentTypeUids: RecentDocument['contentTypeUid'][],\r\n configurations: ContentTypeConfiguration[]\r\n ): ContentTypeMeta[] => {\r\n return allowedContentTypeUids.reduce<ContentTypeMeta[]>((acc, uid) => {\r\n const configuration = configurations.find((config) => config.uid === uid);\r\n const contentType = getRegisteredContentType(uid);\r\n\r\n if (contentType === undefined) {\r\n return acc;\r\n }\r\n\r\n const mainField = resolveReadableMainField(\r\n contentType,\r\n configuration,\r\n getPermissionChecker(uid)\r\n );\r\n const fields = buildHomepageQueryFields(contentType, mainField);\r\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(contentType);\r\n\r\n acc.push({\r\n fields,\r\n mainField,\r\n contentType,\r\n hasDraftAndPublish,\r\n uid,\r\n });\r\n\r\n return acc;\r\n }, []);\r\n };\r\n\r\n /**\r\n * Homepage widgets expect JSON-safe ISO strings. Returning `Date` objects can\r\n * serialize as `{}` after spread/clone (see https://github.com/strapi/strapi/issues/27013).\r\n */\r\n const toIsoDateString = (value: unknown): string | null => {\r\n if (value == null || value === '') {\r\n return null;\r\n }\r\n\r\n const date = value instanceof Date ? value : new Date(String(value));\r\n return Number.isNaN(date.getTime()) ? null : date.toISOString();\r\n };\r\n\r\n const formatDocuments = (\r\n documents: Modules.Documents.AnyDocument[],\r\n meta: ContentTypeMeta,\r\n populate?: string[]\r\n ) => {\r\n return documents.map((document) => {\r\n const additionalFields =\r\n populate?.reduce(\r\n (acc, key) => {\r\n acc[key] = document[key];\r\n return acc;\r\n },\r\n {} as Record<string, any>\r\n ) || {};\r\n return {\r\n documentId: document.documentId,\r\n locale: document.locale ?? null,\r\n title: document[meta.mainField ?? 'documentId'],\r\n contentTypeUid: meta.uid,\r\n contentTypeDisplayName: meta.contentType.info.displayName,\r\n kind: meta.contentType.kind,\r\n ...additionalFields,\r\n // Keep dates last so populate cannot overwrite with non-JSON-safe values\r\n updatedAt: toIsoDateString(document.updatedAt) ?? '',\r\n publishedAt:\r\n meta.hasDraftAndPublish && document.publishedAt\r\n ? toIsoDateString(document.publishedAt)\r\n : null,\r\n };\r\n });\r\n };\r\n\r\n const sanitizeHomepageQuery = async (\r\n meta: ContentTypeMeta,\r\n additionalQueryParams?: Record<string, unknown>\r\n ) => {\r\n const permissionQuery = await getPermissionChecker(meta.uid).sanitizedQuery.read({\r\n limit: MAX_DOCUMENTS,\r\n fields: meta.fields,\r\n ...additionalQueryParams,\r\n locale: '*',\r\n });\r\n\r\n const sanitizedFields = compactSanitizedFields(permissionQuery.fields);\r\n if (sanitizedFields !== undefined) {\r\n permissionQuery.fields = sanitizedFields;\r\n }\r\n\r\n return {\r\n permissionQuery,\r\n titleField: resolveTitleField(meta.mainField, sanitizedFields),\r\n };\r\n };\r\n\r\n return {\r\n async addStatusToDocuments(documents: RecentDocument[]): Promise<RecentDocument[]> {\r\n return Promise.all(\r\n documents.map(async (recentDocument) => {\r\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(\r\n strapi.contentType(recentDocument.contentTypeUid)\r\n );\r\n /**\r\n * Tries to query the other version of the document if draft and publish is enabled,\r\n * so that we know when to give the \"modified\" status.\r\n */\r\n const { availableStatus } = await metadataService.getMetadata(\r\n recentDocument.contentTypeUid,\r\n recentDocument,\r\n {\r\n availableStatus: hasDraftAndPublish,\r\n availableLocales: false,\r\n }\r\n );\r\n const status: RecentDocument['status'] = metadataService.getStatus(\r\n recentDocument,\r\n availableStatus\r\n );\r\n\r\n return {\r\n ...recentDocument,\r\n status: hasDraftAndPublish ? status : undefined,\r\n };\r\n })\r\n );\r\n },\r\n\r\n async queryLastDocuments(\r\n additionalQueryParams?: Record<string, unknown>,\r\n draftAndPublishOnly?: boolean\r\n ): Promise<RecentDocument[]> {\r\n const permittedContentTypes = await getPermittedContentTypes();\r\n const allowedContentTypeUids = draftAndPublishOnly\r\n ? permittedContentTypes.filter((uid) => {\r\n const contentType = getRegisteredContentType(uid);\r\n\r\n return contentType !== undefined && contentTypes.hasDraftAndPublish(contentType);\r\n })\r\n : permittedContentTypes;\r\n // Fetch the configuration for each content type in a single query\r\n const configurations = await getConfiguration(allowedContentTypeUids);\r\n // Get the necessary metadata for the documents\r\n const contentTypesMeta = getContentTypesMeta(allowedContentTypeUids, configurations);\r\n\r\n const recentDocuments = await Promise.all(\r\n contentTypesMeta.map(async (meta) => {\r\n const { permissionQuery, titleField } = await sanitizeHomepageQuery(\r\n meta,\r\n additionalQueryParams\r\n );\r\n\r\n const docs = await strapi.documents(meta.uid).findMany(permissionQuery);\r\n const populate = additionalQueryParams?.populate as string[];\r\n\r\n return formatDocuments(docs, { ...meta, mainField: titleField }, populate);\r\n })\r\n );\r\n\r\n return recentDocuments\r\n .flat()\r\n .sort((a, b) => {\r\n // ISO-8601 strings compare lexicographically in chronological order\r\n const compareIso = (left: string, right: string, direction: 1 | -1) => {\r\n if (left < right) return -1 * direction;\r\n if (left > right) return 1 * direction;\r\n return 0;\r\n };\r\n\r\n switch (additionalQueryParams?.sort) {\r\n case 'publishedAt:desc':\r\n if (!a.publishedAt || !b.publishedAt) return 0;\r\n return compareIso(a.publishedAt, b.publishedAt, -1);\r\n case 'publishedAt:asc':\r\n if (!a.publishedAt || !b.publishedAt) return 0;\r\n return compareIso(a.publishedAt, b.publishedAt, 1);\r\n case 'updatedAt:desc':\r\n if (!a.updatedAt || !b.updatedAt) return 0;\r\n return compareIso(a.updatedAt, b.updatedAt, -1);\r\n case 'updatedAt:asc':\r\n if (!a.updatedAt || !b.updatedAt) return 0;\r\n return compareIso(a.updatedAt, b.updatedAt, 1);\r\n default:\r\n return 0;\r\n }\r\n })\r\n .slice(0, MAX_DOCUMENTS);\r\n },\r\n\r\n async getRecentlyPublishedDocuments(): Promise<GetRecentDocuments.Response['data']> {\r\n const recentlyPublishedDocuments = await this.queryLastDocuments(\r\n {\r\n sort: 'publishedAt:desc',\r\n status: 'published',\r\n },\r\n true\r\n );\r\n\r\n return this.addStatusToDocuments(recentlyPublishedDocuments);\r\n },\r\n\r\n async getRecentlyUpdatedDocuments(): Promise<GetRecentDocuments.Response['data']> {\r\n const recentlyUpdatedDocuments = await this.queryLastDocuments({\r\n sort: 'updatedAt:desc',\r\n });\r\n\r\n return this.addStatusToDocuments(recentlyUpdatedDocuments);\r\n },\r\n\r\n async getCountDocuments(): Promise<GetCountDocuments.Response['data']> {\r\n const permittedContentTypes = await getPermittedContentTypes();\r\n // Fetch the configuration for each content type in a single query\r\n const configurations = await getConfiguration(permittedContentTypes);\r\n // Get the necessary metadata for the documents\r\n const contentTypesMeta = getContentTypesMeta(permittedContentTypes, configurations);\r\n\r\n const countDocuments = {\r\n draft: 0,\r\n published: 0,\r\n modified: 0,\r\n };\r\n\r\n await Promise.all(\r\n contentTypesMeta.map(async (meta) => {\r\n const strapiDBConnection = strapi.db.connection;\r\n const tableName = strapi.contentType(meta.uid).collectionName;\r\n if (!tableName) return;\r\n\r\n if (!meta.hasDraftAndPublish) {\r\n const publishedDocuments = await strapiDBConnection(tableName)\r\n .countDistinct('document_id as count')\r\n .first();\r\n countDocuments.published += Number(publishedDocuments?.count) || 0;\r\n return;\r\n }\r\n\r\n // Classify each document_id into a single bucket (draft / published / modified)\r\n // in one pass. Replaces three separate self-join queries that scaled poorly on\r\n // large tables — see https://github.com/strapi/strapi/issues/25200.\r\n const classified = strapiDBConnection(tableName)\r\n .select('document_id')\r\n .select(\r\n strapiDBConnection.raw(\r\n `CASE\r\n WHEN MAX(CASE WHEN published_at IS NOT NULL THEN 1 ELSE 0 END) = 0\r\n THEN 'draft'\r\n WHEN MAX(CASE WHEN published_at IS NULL THEN updated_at END) =\r\n MAX(CASE WHEN published_at IS NOT NULL THEN updated_at END)\r\n THEN 'published'\r\n ELSE 'modified'\r\n END AS bucket`\r\n )\r\n )\r\n .groupBy('document_id');\r\n\r\n const counts = await strapiDBConnection\r\n .from(classified.as('classified'))\r\n .select(\r\n strapiDBConnection.raw(\r\n `COUNT(CASE WHEN bucket = 'draft' THEN 1 END) AS draft,\r\n COUNT(CASE WHEN bucket = 'published' THEN 1 END) AS published,\r\n COUNT(CASE WHEN bucket = 'modified' THEN 1 END) AS modified`\r\n )\r\n )\r\n .first();\r\n\r\n countDocuments.draft += Number(counts?.draft) || 0;\r\n countDocuments.published += Number(counts?.published) || 0;\r\n countDocuments.modified += Number(counts?.modified) || 0;\r\n })\r\n );\r\n\r\n return countDocuments;\r\n },\r\n };\r\n};\r\n\r\nexport { createHomepageService };\r\n"],"names":["createHomepageService","strapi","MAX_DOCUMENTS","metadataService","plugin","service","permissionService","admin","services","permission","getRegisteredContentType","uid","contentType","contentTypes","undefined","log","warn","getConfiguration","contentTypeUids","coreStore","db","query","rawConfigurations","findMany","where","key","$in","map","rawConfiguration","JSON","parse","value","getPermittedContentTypes","readPermissions","role","users","id","requestContext","get","state","user","action","Set","subject","filter","contentTypeOptions","pluginOptions","visible","permissionCheckerService","getPermissionChecker","create","userAbility","model","getContentTypesMeta","allowedContentTypeUids","configurations","reduce","acc","configuration","find","config","mainField","resolveReadableMainField","fields","buildHomepageQueryFields","hasDraftAndPublish","push","toIsoDateString","date","Date","String","Number","isNaN","getTime","toISOString","formatDocuments","documents","meta","populate","document","additionalFields","documentId","locale","title","contentTypeUid","contentTypeDisplayName","info","displayName","kind","updatedAt","publishedAt","sanitizeHomepageQuery","additionalQueryParams","permissionQuery","sanitizedQuery","read","limit","sanitizedFields","compactSanitizedFields","titleField","resolveTitleField","addStatusToDocuments","Promise","all","recentDocument","availableStatus","getMetadata","availableLocales","status","getStatus","queryLastDocuments","draftAndPublishOnly","permittedContentTypes","contentTypesMeta","recentDocuments","docs","flat","sort","a","b","compareIso","left","right","direction","slice","getRecentlyPublishedDocuments","recentlyPublishedDocuments","getRecentlyUpdatedDocuments","recentlyUpdatedDocuments","getCountDocuments","countDocuments","draft","published","modified","strapiDBConnection","connection","tableName","collectionName","publishedDocuments","countDistinct","first","count","classified","select","raw","groupBy","counts","from","as"],"mappings":"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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { contentTypes } from '@strapi/utils';
|
|
2
|
+
import { resolveReadableMainField, buildHomepageQueryFields, compactSanitizedFields, resolveTitleField } from './homepage-query-utils.mjs';
|
|
3
|
+
|
|
4
|
+
const createHomepageService = ({ strapi })=>{
|
|
5
|
+
const MAX_DOCUMENTS = 4;
|
|
6
|
+
const metadataService = strapi.plugin('content-manager').service('document-metadata');
|
|
7
|
+
const permissionService = strapi.admin.services.permission;
|
|
8
|
+
const getRegisteredContentType = (uid)=>{
|
|
9
|
+
const contentType = strapi.contentTypes[uid];
|
|
10
|
+
if (contentType === undefined) {
|
|
11
|
+
strapi.log.warn(`Skipping homepage content type "${uid}" because it is no longer registered.`);
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
return contentType;
|
|
15
|
+
};
|
|
16
|
+
const getConfiguration = async (contentTypeUids)=>{
|
|
17
|
+
/**
|
|
18
|
+
* Don't use the strapi.store util because we need to make
|
|
19
|
+
* more precise queries than exact key matches, in order to make as few queries as possible.
|
|
20
|
+
*/ const coreStore = strapi.db.query('strapi::core-store');
|
|
21
|
+
const rawConfigurations = await coreStore.findMany({
|
|
22
|
+
where: {
|
|
23
|
+
key: {
|
|
24
|
+
$in: contentTypeUids.map((contentType)=>`plugin_content_manager_configuration_content_types::${contentType}`)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return rawConfigurations.map((rawConfiguration)=>{
|
|
29
|
+
return JSON.parse(rawConfiguration.value);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const getPermittedContentTypes = async ()=>{
|
|
33
|
+
const readPermissions = await permissionService.findMany({
|
|
34
|
+
where: {
|
|
35
|
+
role: {
|
|
36
|
+
users: {
|
|
37
|
+
id: strapi.requestContext.get()?.state?.user.id
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
action: 'plugin::content-manager.explorer.read'
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
// Deduplicate subjects using a Set: the JOIN across permission -> role -> users produces one row
|
|
44
|
+
// per role the user belongs to, so a multi-role user gets duplicate subjects.
|
|
45
|
+
// Using a Set collapses them to unique content type UID.
|
|
46
|
+
return [
|
|
47
|
+
...new Set(readPermissions.map((permission)=>permission.subject).filter((subject)=>{
|
|
48
|
+
if (!subject) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const contentType = strapi.contentTypes[subject];
|
|
52
|
+
const contentTypeOptions = contentType?.pluginOptions?.['content-manager'];
|
|
53
|
+
return contentTypeOptions?.visible !== false;
|
|
54
|
+
}))
|
|
55
|
+
];
|
|
56
|
+
};
|
|
57
|
+
const permissionCheckerService = strapi.plugin('content-manager').service('permission-checker');
|
|
58
|
+
const getPermissionChecker = (uid)=>permissionCheckerService.create({
|
|
59
|
+
userAbility: strapi.requestContext.get()?.state.userAbility,
|
|
60
|
+
model: uid
|
|
61
|
+
});
|
|
62
|
+
const getContentTypesMeta = (allowedContentTypeUids, configurations)=>{
|
|
63
|
+
return allowedContentTypeUids.reduce((acc, uid)=>{
|
|
64
|
+
const configuration = configurations.find((config)=>config.uid === uid);
|
|
65
|
+
const contentType = getRegisteredContentType(uid);
|
|
66
|
+
if (contentType === undefined) {
|
|
67
|
+
return acc;
|
|
68
|
+
}
|
|
69
|
+
const mainField = resolveReadableMainField(contentType, configuration, getPermissionChecker(uid));
|
|
70
|
+
const fields = buildHomepageQueryFields(contentType, mainField);
|
|
71
|
+
const hasDraftAndPublish = contentTypes.hasDraftAndPublish(contentType);
|
|
72
|
+
acc.push({
|
|
73
|
+
fields,
|
|
74
|
+
mainField,
|
|
75
|
+
contentType,
|
|
76
|
+
hasDraftAndPublish,
|
|
77
|
+
uid
|
|
78
|
+
});
|
|
79
|
+
return acc;
|
|
80
|
+
}, []);
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Homepage widgets expect JSON-safe ISO strings. Returning `Date` objects can
|
|
84
|
+
* serialize as `{}` after spread/clone (see https://github.com/strapi/strapi/issues/27013).
|
|
85
|
+
*/ const toIsoDateString = (value)=>{
|
|
86
|
+
if (value == null || value === '') {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
const date = value instanceof Date ? value : new Date(String(value));
|
|
90
|
+
return Number.isNaN(date.getTime()) ? null : date.toISOString();
|
|
91
|
+
};
|
|
92
|
+
const formatDocuments = (documents, meta, populate)=>{
|
|
93
|
+
return documents.map((document)=>{
|
|
94
|
+
const additionalFields = populate?.reduce((acc, key)=>{
|
|
95
|
+
acc[key] = document[key];
|
|
96
|
+
return acc;
|
|
97
|
+
}, {}) || {};
|
|
98
|
+
return {
|
|
99
|
+
documentId: document.documentId,
|
|
100
|
+
locale: document.locale ?? null,
|
|
101
|
+
title: document[meta.mainField ?? 'documentId'],
|
|
102
|
+
contentTypeUid: meta.uid,
|
|
103
|
+
contentTypeDisplayName: meta.contentType.info.displayName,
|
|
104
|
+
kind: meta.contentType.kind,
|
|
105
|
+
...additionalFields,
|
|
106
|
+
// Keep dates last so populate cannot overwrite with non-JSON-safe values
|
|
107
|
+
updatedAt: toIsoDateString(document.updatedAt) ?? '',
|
|
108
|
+
publishedAt: meta.hasDraftAndPublish && document.publishedAt ? toIsoDateString(document.publishedAt) : null
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
const sanitizeHomepageQuery = async (meta, additionalQueryParams)=>{
|
|
113
|
+
const permissionQuery = await getPermissionChecker(meta.uid).sanitizedQuery.read({
|
|
114
|
+
limit: MAX_DOCUMENTS,
|
|
115
|
+
fields: meta.fields,
|
|
116
|
+
...additionalQueryParams,
|
|
117
|
+
locale: '*'
|
|
118
|
+
});
|
|
119
|
+
const sanitizedFields = compactSanitizedFields(permissionQuery.fields);
|
|
120
|
+
if (sanitizedFields !== undefined) {
|
|
121
|
+
permissionQuery.fields = sanitizedFields;
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
permissionQuery,
|
|
125
|
+
titleField: resolveTitleField(meta.mainField, sanitizedFields)
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
return {
|
|
129
|
+
async addStatusToDocuments (documents) {
|
|
130
|
+
return Promise.all(documents.map(async (recentDocument)=>{
|
|
131
|
+
const hasDraftAndPublish = contentTypes.hasDraftAndPublish(strapi.contentType(recentDocument.contentTypeUid));
|
|
132
|
+
/**
|
|
133
|
+
* Tries to query the other version of the document if draft and publish is enabled,
|
|
134
|
+
* so that we know when to give the "modified" status.
|
|
135
|
+
*/ const { availableStatus } = await metadataService.getMetadata(recentDocument.contentTypeUid, recentDocument, {
|
|
136
|
+
availableStatus: hasDraftAndPublish,
|
|
137
|
+
availableLocales: false
|
|
138
|
+
});
|
|
139
|
+
const status = metadataService.getStatus(recentDocument, availableStatus);
|
|
140
|
+
return {
|
|
141
|
+
...recentDocument,
|
|
142
|
+
status: hasDraftAndPublish ? status : undefined
|
|
143
|
+
};
|
|
144
|
+
}));
|
|
145
|
+
},
|
|
146
|
+
async queryLastDocuments (additionalQueryParams, draftAndPublishOnly) {
|
|
147
|
+
const permittedContentTypes = await getPermittedContentTypes();
|
|
148
|
+
const allowedContentTypeUids = draftAndPublishOnly ? permittedContentTypes.filter((uid)=>{
|
|
149
|
+
const contentType = getRegisteredContentType(uid);
|
|
150
|
+
return contentType !== undefined && contentTypes.hasDraftAndPublish(contentType);
|
|
151
|
+
}) : permittedContentTypes;
|
|
152
|
+
// Fetch the configuration for each content type in a single query
|
|
153
|
+
const configurations = await getConfiguration(allowedContentTypeUids);
|
|
154
|
+
// Get the necessary metadata for the documents
|
|
155
|
+
const contentTypesMeta = getContentTypesMeta(allowedContentTypeUids, configurations);
|
|
156
|
+
const recentDocuments = await Promise.all(contentTypesMeta.map(async (meta)=>{
|
|
157
|
+
const { permissionQuery, titleField } = await sanitizeHomepageQuery(meta, additionalQueryParams);
|
|
158
|
+
const docs = await strapi.documents(meta.uid).findMany(permissionQuery);
|
|
159
|
+
const populate = additionalQueryParams?.populate;
|
|
160
|
+
return formatDocuments(docs, {
|
|
161
|
+
...meta,
|
|
162
|
+
mainField: titleField
|
|
163
|
+
}, populate);
|
|
164
|
+
}));
|
|
165
|
+
return recentDocuments.flat().sort((a, b)=>{
|
|
166
|
+
// ISO-8601 strings compare lexicographically in chronological order
|
|
167
|
+
const compareIso = (left, right, direction)=>{
|
|
168
|
+
if (left < right) return -1 * direction;
|
|
169
|
+
if (left > right) return 1 * direction;
|
|
170
|
+
return 0;
|
|
171
|
+
};
|
|
172
|
+
switch(additionalQueryParams?.sort){
|
|
173
|
+
case 'publishedAt:desc':
|
|
174
|
+
if (!a.publishedAt || !b.publishedAt) return 0;
|
|
175
|
+
return compareIso(a.publishedAt, b.publishedAt, -1);
|
|
176
|
+
case 'publishedAt:asc':
|
|
177
|
+
if (!a.publishedAt || !b.publishedAt) return 0;
|
|
178
|
+
return compareIso(a.publishedAt, b.publishedAt, 1);
|
|
179
|
+
case 'updatedAt:desc':
|
|
180
|
+
if (!a.updatedAt || !b.updatedAt) return 0;
|
|
181
|
+
return compareIso(a.updatedAt, b.updatedAt, -1);
|
|
182
|
+
case 'updatedAt:asc':
|
|
183
|
+
if (!a.updatedAt || !b.updatedAt) return 0;
|
|
184
|
+
return compareIso(a.updatedAt, b.updatedAt, 1);
|
|
185
|
+
default:
|
|
186
|
+
return 0;
|
|
187
|
+
}
|
|
188
|
+
}).slice(0, MAX_DOCUMENTS);
|
|
189
|
+
},
|
|
190
|
+
async getRecentlyPublishedDocuments () {
|
|
191
|
+
const recentlyPublishedDocuments = await this.queryLastDocuments({
|
|
192
|
+
sort: 'publishedAt:desc',
|
|
193
|
+
status: 'published'
|
|
194
|
+
}, true);
|
|
195
|
+
return this.addStatusToDocuments(recentlyPublishedDocuments);
|
|
196
|
+
},
|
|
197
|
+
async getRecentlyUpdatedDocuments () {
|
|
198
|
+
const recentlyUpdatedDocuments = await this.queryLastDocuments({
|
|
199
|
+
sort: 'updatedAt:desc'
|
|
200
|
+
});
|
|
201
|
+
return this.addStatusToDocuments(recentlyUpdatedDocuments);
|
|
202
|
+
},
|
|
203
|
+
async getCountDocuments () {
|
|
204
|
+
const permittedContentTypes = await getPermittedContentTypes();
|
|
205
|
+
// Fetch the configuration for each content type in a single query
|
|
206
|
+
const configurations = await getConfiguration(permittedContentTypes);
|
|
207
|
+
// Get the necessary metadata for the documents
|
|
208
|
+
const contentTypesMeta = getContentTypesMeta(permittedContentTypes, configurations);
|
|
209
|
+
const countDocuments = {
|
|
210
|
+
draft: 0,
|
|
211
|
+
published: 0,
|
|
212
|
+
modified: 0
|
|
213
|
+
};
|
|
214
|
+
await Promise.all(contentTypesMeta.map(async (meta)=>{
|
|
215
|
+
const strapiDBConnection = strapi.db.connection;
|
|
216
|
+
const tableName = strapi.contentType(meta.uid).collectionName;
|
|
217
|
+
if (!tableName) return;
|
|
218
|
+
if (!meta.hasDraftAndPublish) {
|
|
219
|
+
const publishedDocuments = await strapiDBConnection(tableName).countDistinct('document_id as count').first();
|
|
220
|
+
countDocuments.published += Number(publishedDocuments?.count) || 0;
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Classify each document_id into a single bucket (draft / published / modified)
|
|
224
|
+
// in one pass. Replaces three separate self-join queries that scaled poorly on
|
|
225
|
+
// large tables — see https://github.com/strapi/strapi/issues/25200.
|
|
226
|
+
const classified = strapiDBConnection(tableName).select('document_id').select(strapiDBConnection.raw(`CASE
|
|
227
|
+
WHEN MAX(CASE WHEN published_at IS NOT NULL THEN 1 ELSE 0 END) = 0
|
|
228
|
+
THEN 'draft'
|
|
229
|
+
WHEN MAX(CASE WHEN published_at IS NULL THEN updated_at END) =
|
|
230
|
+
MAX(CASE WHEN published_at IS NOT NULL THEN updated_at END)
|
|
231
|
+
THEN 'published'
|
|
232
|
+
ELSE 'modified'
|
|
233
|
+
END AS bucket`)).groupBy('document_id');
|
|
234
|
+
const counts = await strapiDBConnection.from(classified.as('classified')).select(strapiDBConnection.raw(`COUNT(CASE WHEN bucket = 'draft' THEN 1 END) AS draft,
|
|
235
|
+
COUNT(CASE WHEN bucket = 'published' THEN 1 END) AS published,
|
|
236
|
+
COUNT(CASE WHEN bucket = 'modified' THEN 1 END) AS modified`)).first();
|
|
237
|
+
countDocuments.draft += Number(counts?.draft) || 0;
|
|
238
|
+
countDocuments.published += Number(counts?.published) || 0;
|
|
239
|
+
countDocuments.modified += Number(counts?.modified) || 0;
|
|
240
|
+
}));
|
|
241
|
+
return countDocuments;
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export { createHomepageService };
|
|
247
|
+
//# sourceMappingURL=homepage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"homepage.mjs","sources":["../../../../server/src/homepage/services/homepage.ts"],"sourcesContent":["/* eslint-disable func-names */\r\nimport type { Core, Modules, Schema } from '@strapi/types';\r\nimport { contentTypes } from '@strapi/utils';\r\n\r\nimport type {\r\n GetCountDocuments,\r\n GetRecentDocuments,\r\n RecentDocument,\r\n} from '../../../../shared/contracts/homepage';\r\n\r\nimport {\r\n buildHomepageQueryFields,\r\n compactSanitizedFields,\r\n resolveReadableMainField,\r\n resolveTitleField,\r\n} from './homepage-query-utils';\r\n\r\nconst createHomepageService = ({ strapi }: { strapi: Core.Strapi }) => {\r\n const MAX_DOCUMENTS = 4;\r\n\r\n const metadataService = strapi.plugin('content-manager').service('document-metadata');\r\n const permissionService = strapi.admin.services.permission;\r\n\r\n const getRegisteredContentType = (uid: RecentDocument['contentTypeUid']) => {\r\n const contentType = strapi.contentTypes[uid];\r\n\r\n if (contentType === undefined) {\r\n strapi.log.warn(\r\n `Skipping homepage content type \"${uid}\" because it is no longer registered.`\r\n );\r\n return undefined;\r\n }\r\n\r\n return contentType;\r\n };\r\n\r\n type ContentTypeConfiguration = {\r\n uid: RecentDocument['contentTypeUid'];\r\n settings: { mainField: string };\r\n };\r\n const getConfiguration = async (\r\n contentTypeUids: RecentDocument['contentTypeUid'][]\r\n ): Promise<ContentTypeConfiguration[]> => {\r\n /**\r\n * Don't use the strapi.store util because we need to make\r\n * more precise queries than exact key matches, in order to make as few queries as possible.\r\n */\r\n const coreStore = strapi.db.query('strapi::core-store');\r\n const rawConfigurations = await coreStore.findMany({\r\n where: {\r\n key: {\r\n $in: contentTypeUids.map(\r\n (contentType) => `plugin_content_manager_configuration_content_types::${contentType}`\r\n ),\r\n },\r\n },\r\n });\r\n\r\n return rawConfigurations.map((rawConfiguration) => {\r\n return JSON.parse(rawConfiguration.value);\r\n });\r\n };\r\n\r\n const getPermittedContentTypes = async () => {\r\n const readPermissions: Modules.Permissions.PermissionRule[] = await permissionService.findMany({\r\n where: {\r\n role: { users: { id: strapi.requestContext.get()?.state?.user.id } },\r\n action: 'plugin::content-manager.explorer.read',\r\n },\r\n });\r\n\r\n // Deduplicate subjects using a Set: the JOIN across permission -> role -> users produces one row\r\n // per role the user belongs to, so a multi-role user gets duplicate subjects.\r\n // Using a Set collapses them to unique content type UID.\r\n return [\r\n ...new Set(\r\n readPermissions\r\n .map((permission) => permission.subject)\r\n .filter((subject): subject is RecentDocument['contentTypeUid'] => {\r\n if (!subject) {\r\n return false;\r\n }\r\n\r\n const contentType = strapi.contentTypes[subject as keyof typeof strapi.contentTypes];\r\n const contentTypeOptions = contentType?.pluginOptions?.['content-manager'] as\r\n | { visible?: boolean }\r\n | undefined;\r\n\r\n return contentTypeOptions?.visible !== false;\r\n })\r\n ),\r\n ];\r\n };\r\n\r\n type ContentTypeMeta = {\r\n fields: string[];\r\n mainField: string;\r\n contentType: Schema.ContentType;\r\n hasDraftAndPublish: boolean;\r\n uid: RecentDocument['contentTypeUid'];\r\n };\r\n\r\n const permissionCheckerService = strapi.plugin('content-manager').service('permission-checker');\r\n const getPermissionChecker = (uid: string) =>\r\n permissionCheckerService.create({\r\n userAbility: strapi.requestContext.get()?.state.userAbility,\r\n model: uid,\r\n });\r\n\r\n const getContentTypesMeta = (\r\n allowedContentTypeUids: RecentDocument['contentTypeUid'][],\r\n configurations: ContentTypeConfiguration[]\r\n ): ContentTypeMeta[] => {\r\n return allowedContentTypeUids.reduce<ContentTypeMeta[]>((acc, uid) => {\r\n const configuration = configurations.find((config) => config.uid === uid);\r\n const contentType = getRegisteredContentType(uid);\r\n\r\n if (contentType === undefined) {\r\n return acc;\r\n }\r\n\r\n const mainField = resolveReadableMainField(\r\n contentType,\r\n configuration,\r\n getPermissionChecker(uid)\r\n );\r\n const fields = buildHomepageQueryFields(contentType, mainField);\r\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(contentType);\r\n\r\n acc.push({\r\n fields,\r\n mainField,\r\n contentType,\r\n hasDraftAndPublish,\r\n uid,\r\n });\r\n\r\n return acc;\r\n }, []);\r\n };\r\n\r\n /**\r\n * Homepage widgets expect JSON-safe ISO strings. Returning `Date` objects can\r\n * serialize as `{}` after spread/clone (see https://github.com/strapi/strapi/issues/27013).\r\n */\r\n const toIsoDateString = (value: unknown): string | null => {\r\n if (value == null || value === '') {\r\n return null;\r\n }\r\n\r\n const date = value instanceof Date ? value : new Date(String(value));\r\n return Number.isNaN(date.getTime()) ? null : date.toISOString();\r\n };\r\n\r\n const formatDocuments = (\r\n documents: Modules.Documents.AnyDocument[],\r\n meta: ContentTypeMeta,\r\n populate?: string[]\r\n ) => {\r\n return documents.map((document) => {\r\n const additionalFields =\r\n populate?.reduce(\r\n (acc, key) => {\r\n acc[key] = document[key];\r\n return acc;\r\n },\r\n {} as Record<string, any>\r\n ) || {};\r\n return {\r\n documentId: document.documentId,\r\n locale: document.locale ?? null,\r\n title: document[meta.mainField ?? 'documentId'],\r\n contentTypeUid: meta.uid,\r\n contentTypeDisplayName: meta.contentType.info.displayName,\r\n kind: meta.contentType.kind,\r\n ...additionalFields,\r\n // Keep dates last so populate cannot overwrite with non-JSON-safe values\r\n updatedAt: toIsoDateString(document.updatedAt) ?? '',\r\n publishedAt:\r\n meta.hasDraftAndPublish && document.publishedAt\r\n ? toIsoDateString(document.publishedAt)\r\n : null,\r\n };\r\n });\r\n };\r\n\r\n const sanitizeHomepageQuery = async (\r\n meta: ContentTypeMeta,\r\n additionalQueryParams?: Record<string, unknown>\r\n ) => {\r\n const permissionQuery = await getPermissionChecker(meta.uid).sanitizedQuery.read({\r\n limit: MAX_DOCUMENTS,\r\n fields: meta.fields,\r\n ...additionalQueryParams,\r\n locale: '*',\r\n });\r\n\r\n const sanitizedFields = compactSanitizedFields(permissionQuery.fields);\r\n if (sanitizedFields !== undefined) {\r\n permissionQuery.fields = sanitizedFields;\r\n }\r\n\r\n return {\r\n permissionQuery,\r\n titleField: resolveTitleField(meta.mainField, sanitizedFields),\r\n };\r\n };\r\n\r\n return {\r\n async addStatusToDocuments(documents: RecentDocument[]): Promise<RecentDocument[]> {\r\n return Promise.all(\r\n documents.map(async (recentDocument) => {\r\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(\r\n strapi.contentType(recentDocument.contentTypeUid)\r\n );\r\n /**\r\n * Tries to query the other version of the document if draft and publish is enabled,\r\n * so that we know when to give the \"modified\" status.\r\n */\r\n const { availableStatus } = await metadataService.getMetadata(\r\n recentDocument.contentTypeUid,\r\n recentDocument,\r\n {\r\n availableStatus: hasDraftAndPublish,\r\n availableLocales: false,\r\n }\r\n );\r\n const status: RecentDocument['status'] = metadataService.getStatus(\r\n recentDocument,\r\n availableStatus\r\n );\r\n\r\n return {\r\n ...recentDocument,\r\n status: hasDraftAndPublish ? status : undefined,\r\n };\r\n })\r\n );\r\n },\r\n\r\n async queryLastDocuments(\r\n additionalQueryParams?: Record<string, unknown>,\r\n draftAndPublishOnly?: boolean\r\n ): Promise<RecentDocument[]> {\r\n const permittedContentTypes = await getPermittedContentTypes();\r\n const allowedContentTypeUids = draftAndPublishOnly\r\n ? permittedContentTypes.filter((uid) => {\r\n const contentType = getRegisteredContentType(uid);\r\n\r\n return contentType !== undefined && contentTypes.hasDraftAndPublish(contentType);\r\n })\r\n : permittedContentTypes;\r\n // Fetch the configuration for each content type in a single query\r\n const configurations = await getConfiguration(allowedContentTypeUids);\r\n // Get the necessary metadata for the documents\r\n const contentTypesMeta = getContentTypesMeta(allowedContentTypeUids, configurations);\r\n\r\n const recentDocuments = await Promise.all(\r\n contentTypesMeta.map(async (meta) => {\r\n const { permissionQuery, titleField } = await sanitizeHomepageQuery(\r\n meta,\r\n additionalQueryParams\r\n );\r\n\r\n const docs = await strapi.documents(meta.uid).findMany(permissionQuery);\r\n const populate = additionalQueryParams?.populate as string[];\r\n\r\n return formatDocuments(docs, { ...meta, mainField: titleField }, populate);\r\n })\r\n );\r\n\r\n return recentDocuments\r\n .flat()\r\n .sort((a, b) => {\r\n // ISO-8601 strings compare lexicographically in chronological order\r\n const compareIso = (left: string, right: string, direction: 1 | -1) => {\r\n if (left < right) return -1 * direction;\r\n if (left > right) return 1 * direction;\r\n return 0;\r\n };\r\n\r\n switch (additionalQueryParams?.sort) {\r\n case 'publishedAt:desc':\r\n if (!a.publishedAt || !b.publishedAt) return 0;\r\n return compareIso(a.publishedAt, b.publishedAt, -1);\r\n case 'publishedAt:asc':\r\n if (!a.publishedAt || !b.publishedAt) return 0;\r\n return compareIso(a.publishedAt, b.publishedAt, 1);\r\n case 'updatedAt:desc':\r\n if (!a.updatedAt || !b.updatedAt) return 0;\r\n return compareIso(a.updatedAt, b.updatedAt, -1);\r\n case 'updatedAt:asc':\r\n if (!a.updatedAt || !b.updatedAt) return 0;\r\n return compareIso(a.updatedAt, b.updatedAt, 1);\r\n default:\r\n return 0;\r\n }\r\n })\r\n .slice(0, MAX_DOCUMENTS);\r\n },\r\n\r\n async getRecentlyPublishedDocuments(): Promise<GetRecentDocuments.Response['data']> {\r\n const recentlyPublishedDocuments = await this.queryLastDocuments(\r\n {\r\n sort: 'publishedAt:desc',\r\n status: 'published',\r\n },\r\n true\r\n );\r\n\r\n return this.addStatusToDocuments(recentlyPublishedDocuments);\r\n },\r\n\r\n async getRecentlyUpdatedDocuments(): Promise<GetRecentDocuments.Response['data']> {\r\n const recentlyUpdatedDocuments = await this.queryLastDocuments({\r\n sort: 'updatedAt:desc',\r\n });\r\n\r\n return this.addStatusToDocuments(recentlyUpdatedDocuments);\r\n },\r\n\r\n async getCountDocuments(): Promise<GetCountDocuments.Response['data']> {\r\n const permittedContentTypes = await getPermittedContentTypes();\r\n // Fetch the configuration for each content type in a single query\r\n const configurations = await getConfiguration(permittedContentTypes);\r\n // Get the necessary metadata for the documents\r\n const contentTypesMeta = getContentTypesMeta(permittedContentTypes, configurations);\r\n\r\n const countDocuments = {\r\n draft: 0,\r\n published: 0,\r\n modified: 0,\r\n };\r\n\r\n await Promise.all(\r\n contentTypesMeta.map(async (meta) => {\r\n const strapiDBConnection = strapi.db.connection;\r\n const tableName = strapi.contentType(meta.uid).collectionName;\r\n if (!tableName) return;\r\n\r\n if (!meta.hasDraftAndPublish) {\r\n const publishedDocuments = await strapiDBConnection(tableName)\r\n .countDistinct('document_id as count')\r\n .first();\r\n countDocuments.published += Number(publishedDocuments?.count) || 0;\r\n return;\r\n }\r\n\r\n // Classify each document_id into a single bucket (draft / published / modified)\r\n // in one pass. Replaces three separate self-join queries that scaled poorly on\r\n // large tables — see https://github.com/strapi/strapi/issues/25200.\r\n const classified = strapiDBConnection(tableName)\r\n .select('document_id')\r\n .select(\r\n strapiDBConnection.raw(\r\n `CASE\r\n WHEN MAX(CASE WHEN published_at IS NOT NULL THEN 1 ELSE 0 END) = 0\r\n THEN 'draft'\r\n WHEN MAX(CASE WHEN published_at IS NULL THEN updated_at END) =\r\n MAX(CASE WHEN published_at IS NOT NULL THEN updated_at END)\r\n THEN 'published'\r\n ELSE 'modified'\r\n END AS bucket`\r\n )\r\n )\r\n .groupBy('document_id');\r\n\r\n const counts = await strapiDBConnection\r\n .from(classified.as('classified'))\r\n .select(\r\n strapiDBConnection.raw(\r\n `COUNT(CASE WHEN bucket = 'draft' THEN 1 END) AS draft,\r\n COUNT(CASE WHEN bucket = 'published' THEN 1 END) AS published,\r\n COUNT(CASE WHEN bucket = 'modified' THEN 1 END) AS modified`\r\n )\r\n )\r\n .first();\r\n\r\n countDocuments.draft += Number(counts?.draft) || 0;\r\n countDocuments.published += Number(counts?.published) || 0;\r\n countDocuments.modified += Number(counts?.modified) || 0;\r\n })\r\n );\r\n\r\n return countDocuments;\r\n },\r\n };\r\n};\r\n\r\nexport { createHomepageService };\r\n"],"names":["createHomepageService","strapi","MAX_DOCUMENTS","metadataService","plugin","service","permissionService","admin","services","permission","getRegisteredContentType","uid","contentType","contentTypes","undefined","log","warn","getConfiguration","contentTypeUids","coreStore","db","query","rawConfigurations","findMany","where","key","$in","map","rawConfiguration","JSON","parse","value","getPermittedContentTypes","readPermissions","role","users","id","requestContext","get","state","user","action","Set","subject","filter","contentTypeOptions","pluginOptions","visible","permissionCheckerService","getPermissionChecker","create","userAbility","model","getContentTypesMeta","allowedContentTypeUids","configurations","reduce","acc","configuration","find","config","mainField","resolveReadableMainField","fields","buildHomepageQueryFields","hasDraftAndPublish","push","toIsoDateString","date","Date","String","Number","isNaN","getTime","toISOString","formatDocuments","documents","meta","populate","document","additionalFields","documentId","locale","title","contentTypeUid","contentTypeDisplayName","info","displayName","kind","updatedAt","publishedAt","sanitizeHomepageQuery","additionalQueryParams","permissionQuery","sanitizedQuery","read","limit","sanitizedFields","compactSanitizedFields","titleField","resolveTitleField","addStatusToDocuments","Promise","all","recentDocument","availableStatus","getMetadata","availableLocales","status","getStatus","queryLastDocuments","draftAndPublishOnly","permittedContentTypes","contentTypesMeta","recentDocuments","docs","flat","sort","a","b","compareIso","left","right","direction","slice","getRecentlyPublishedDocuments","recentlyPublishedDocuments","getRecentlyUpdatedDocuments","recentlyUpdatedDocuments","getCountDocuments","countDocuments","draft","published","modified","strapiDBConnection","connection","tableName","collectionName","publishedDocuments","countDistinct","first","count","classified","select","raw","groupBy","counts","from","as"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/homepage/services/index.ts"],"sourcesContent":["import type { Plugin } from '@strapi/types';\r\n\r\nimport { createHomepageService } from './homepage';\r\n\r\nexport const services = {\r\n homepage: createHomepageService,\r\n} satisfies Plugin.LoadedPlugin['services'];\r\n"],"names":["services","homepage","createHomepageService"],"mappings":";;;;MAIaA,QAAAA,GAAW;IACtBC,QAAAA,EAAUC;AACZ;;;;"}
|