octocms 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/AdminApp.d.ts +22 -0
- package/dist/admin/AdminApp.d.ts.map +1 -0
- package/dist/admin/AdminApp.js +35 -0
- package/dist/admin/AdminApp.js.map +1 -0
- package/dist/admin/ThemeProvider.d.ts +37 -0
- package/dist/admin/ThemeProvider.d.ts.map +1 -0
- package/dist/admin/ThemeProvider.js +42 -0
- package/dist/admin/ThemeProvider.js.map +1 -0
- package/dist/admin/actions/build.d.ts +7 -0
- package/dist/admin/actions/build.d.ts.map +1 -0
- package/dist/admin/actions/build.js +109 -0
- package/dist/admin/actions/build.js.map +1 -0
- package/dist/admin/actions/entries.d.ts +8 -0
- package/dist/admin/actions/entries.d.ts.map +1 -0
- package/dist/admin/actions/entries.js +112 -0
- package/dist/admin/actions/entries.js.map +1 -0
- package/dist/admin/actions/files.d.ts +16 -0
- package/dist/admin/actions/files.d.ts.map +1 -0
- package/{admin/actions/files.ts → dist/admin/actions/files.js} +187 -297
- package/dist/admin/actions/files.js.map +1 -0
- package/dist/admin/actions/getThemeCookie.d.ts +9 -0
- package/dist/admin/actions/getThemeCookie.d.ts.map +1 -0
- package/dist/admin/actions/getThemeCookie.js +13 -0
- package/dist/admin/actions/getThemeCookie.js.map +1 -0
- package/dist/admin/actions/git.d.ts +50 -0
- package/dist/admin/actions/git.d.ts.map +1 -0
- package/dist/admin/actions/git.js +226 -0
- package/dist/admin/actions/git.js.map +1 -0
- package/dist/admin/actions/media.d.ts +32 -0
- package/dist/admin/actions/media.d.ts.map +1 -0
- package/dist/admin/actions/media.js +256 -0
- package/dist/admin/actions/media.js.map +1 -0
- package/dist/admin/actions/search.d.ts +9 -0
- package/dist/admin/actions/search.d.ts.map +1 -0
- package/dist/admin/actions/search.js +75 -0
- package/dist/admin/actions/search.js.map +1 -0
- package/dist/admin/actions/status.d.ts +17 -0
- package/dist/admin/actions/status.d.ts.map +1 -0
- package/dist/admin/actions/status.js +53 -0
- package/dist/admin/actions/status.js.map +1 -0
- package/dist/admin/actions/utils.d.ts +61 -0
- package/dist/admin/actions/utils.d.ts.map +1 -0
- package/dist/admin/actions/utils.js +26 -0
- package/dist/admin/actions/utils.js.map +1 -0
- package/{admin/actions.ts → dist/admin/actions.d.ts} +1 -0
- package/dist/admin/actions.d.ts.map +1 -0
- package/dist/admin/actions.js +8 -0
- package/dist/admin/actions.js.map +1 -0
- package/dist/admin/auth.d.ts +3 -0
- package/dist/admin/auth.d.ts.map +1 -0
- package/dist/admin/auth.js +28 -0
- package/dist/admin/auth.js.map +1 -0
- package/dist/admin/consts.d.ts +3 -0
- package/dist/admin/consts.d.ts.map +1 -0
- package/dist/admin/consts.js +24 -0
- package/dist/admin/consts.js.map +1 -0
- package/dist/admin/github.d.ts +74 -0
- package/dist/admin/github.d.ts.map +1 -0
- package/{admin/github.ts → dist/admin/github.js} +120 -262
- package/dist/admin/github.js.map +1 -0
- package/dist/admin/pages/AdminLayout.d.ts +14 -0
- package/dist/admin/pages/AdminLayout.d.ts.map +1 -0
- package/dist/admin/pages/AdminLayout.js +29 -0
- package/dist/admin/pages/AdminLayout.js.map +1 -0
- package/dist/admin/pages/CollectionPage.d.ts +6 -0
- package/dist/admin/pages/CollectionPage.d.ts.map +1 -0
- package/dist/admin/pages/CollectionPage.js +32 -0
- package/dist/admin/pages/CollectionPage.js.map +1 -0
- package/dist/admin/pages/DashboardPage.d.ts +2 -0
- package/dist/admin/pages/DashboardPage.d.ts.map +1 -0
- package/dist/admin/pages/DashboardPage.js +28 -0
- package/dist/admin/pages/DashboardPage.js.map +1 -0
- package/dist/admin/pages/EntryPage.d.ts +7 -0
- package/dist/admin/pages/EntryPage.d.ts.map +1 -0
- package/dist/admin/pages/EntryPage.js +38 -0
- package/dist/admin/pages/EntryPage.js.map +1 -0
- package/dist/admin/pages/MediaPage.d.ts +4 -0
- package/dist/admin/pages/MediaPage.d.ts.map +1 -0
- package/dist/admin/pages/MediaPage.js +22 -0
- package/dist/admin/pages/MediaPage.js.map +1 -0
- package/dist/admin/pages/SearchPage.d.ts +2 -0
- package/dist/admin/pages/SearchPage.d.ts.map +1 -0
- package/dist/admin/pages/SearchPage.js +20 -0
- package/dist/admin/pages/SearchPage.js.map +1 -0
- package/dist/admin/provider.d.ts +11 -0
- package/dist/admin/provider.d.ts.map +1 -0
- package/dist/admin/provider.js +18 -0
- package/dist/admin/provider.js.map +1 -0
- package/dist/admin/store/contentStore.d.ts +63 -0
- package/dist/admin/store/contentStore.d.ts.map +1 -0
- package/dist/admin/store/contentStore.js +202 -0
- package/dist/admin/store/contentStore.js.map +1 -0
- package/dist/admin/store/contentStoreFetch.d.ts +22 -0
- package/dist/admin/store/contentStoreFetch.d.ts.map +1 -0
- package/dist/admin/store/contentStoreFetch.js +160 -0
- package/dist/admin/store/contentStoreFetch.js.map +1 -0
- package/dist/admin/store/contentStoreTypes.d.ts +51 -0
- package/dist/admin/store/contentStoreTypes.d.ts.map +1 -0
- package/dist/admin/store/contentStoreTypes.js +1 -0
- package/{admin/theme.ts → dist/admin/theme.d.ts} +3 -5
- package/dist/admin/theme.d.ts.map +1 -0
- package/dist/admin/theme.js +8 -0
- package/dist/admin/theme.js.map +1 -0
- package/dist/admin/types.d.ts +9 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/types.js +1 -0
- package/dist/admin/types.js.map +1 -0
- package/dist/{agentDocs-NUEXGXIH.js → agentDocs-Y3LM2CPQ.js} +2 -2
- package/dist/chunk-2NMEKWO5.js +38 -0
- package/dist/chunk-2NMEKWO5.js.map +1 -0
- package/dist/{chunk-33VA3IFB.js → chunk-SWGXG4XK.js} +12 -4
- package/dist/chunk-SWGXG4XK.js.map +1 -0
- package/dist/cli/index.js +4 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/components/CMSSidebar/CMSSidebar.d.ts +2 -0
- package/dist/components/CMSSidebar/CMSSidebar.d.ts.map +1 -0
- package/dist/components/CMSSidebar/CMSSidebar.js +104 -0
- package/dist/components/CMSSidebar/CMSSidebar.js.map +1 -0
- package/dist/components/ContentTypes.d.ts +7 -0
- package/dist/components/ContentTypes.d.ts.map +1 -0
- package/dist/components/ContentTypes.js +132 -0
- package/dist/components/ContentTypes.js.map +1 -0
- package/dist/components/CreateBranchDialog.d.ts +8 -0
- package/dist/components/CreateBranchDialog.d.ts.map +1 -0
- package/dist/components/CreateBranchDialog.js +121 -0
- package/dist/components/CreateBranchDialog.js.map +1 -0
- package/dist/components/Dashboard/DashboardContent.d.ts +9 -0
- package/dist/components/Dashboard/DashboardContent.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardContent.js +265 -0
- package/dist/components/Dashboard/DashboardContent.js.map +1 -0
- package/dist/components/EditPost/EditPost.d.ts +5 -0
- package/dist/components/EditPost/EditPost.d.ts.map +1 -0
- package/dist/components/EditPost/EditPost.js +317 -0
- package/dist/components/EditPost/EditPost.js.map +1 -0
- package/dist/components/FieldHintAndError.d.ts +8 -0
- package/dist/components/FieldHintAndError.d.ts.map +1 -0
- package/dist/components/FieldHintAndError.js +14 -0
- package/dist/components/FieldHintAndError.js.map +1 -0
- package/dist/components/FileExplorer/FileExplorer.d.ts +8 -0
- package/dist/components/FileExplorer/FileExplorer.d.ts.map +1 -0
- package/dist/components/FileExplorer/FileExplorer.js +67 -0
- package/dist/components/FileExplorer/FileExplorer.js.map +1 -0
- package/dist/components/FormBooleanField.d.ts +13 -0
- package/dist/components/FormBooleanField.d.ts.map +1 -0
- package/dist/components/FormBooleanField.js +39 -0
- package/dist/components/FormBooleanField.js.map +1 -0
- package/dist/components/FormColorField.d.ts +13 -0
- package/dist/components/FormColorField.d.ts.map +1 -0
- package/dist/components/FormColorField.js +100 -0
- package/dist/components/FormColorField.js.map +1 -0
- package/dist/components/FormConditionalField.d.ts +15 -0
- package/dist/components/FormConditionalField.d.ts.map +1 -0
- package/dist/components/FormConditionalField.js +319 -0
- package/dist/components/FormConditionalField.js.map +1 -0
- package/dist/components/FormDatetimeField.d.ts +13 -0
- package/dist/components/FormDatetimeField.d.ts.map +1 -0
- package/dist/components/FormDatetimeField.js +46 -0
- package/dist/components/FormDatetimeField.js.map +1 -0
- package/dist/components/FormFields.d.ts +10 -0
- package/dist/components/FormFields.d.ts.map +1 -0
- package/dist/components/FormFields.js +255 -0
- package/dist/components/FormFields.js.map +1 -0
- package/dist/components/FormImageField.d.ts +12 -0
- package/dist/components/FormImageField.d.ts.map +1 -0
- package/dist/components/FormImageField.js +259 -0
- package/dist/components/FormImageField.js.map +1 -0
- package/dist/components/FormJsonField.d.ts +12 -0
- package/dist/components/FormJsonField.d.ts.map +1 -0
- package/dist/components/FormJsonField.js +58 -0
- package/dist/components/FormJsonField.js.map +1 -0
- package/dist/components/FormMarkdownField.d.ts +12 -0
- package/dist/components/FormMarkdownField.d.ts.map +1 -0
- package/dist/components/FormMarkdownField.js +70 -0
- package/dist/components/FormMarkdownField.js.map +1 -0
- package/dist/components/FormNumberField.d.ts +15 -0
- package/dist/components/FormNumberField.d.ts.map +1 -0
- package/dist/components/FormNumberField.js +47 -0
- package/dist/components/FormNumberField.js.map +1 -0
- package/dist/components/FormReferenceField.d.ts +17 -0
- package/dist/components/FormReferenceField.d.ts.map +1 -0
- package/dist/components/FormReferenceField.js +522 -0
- package/dist/components/FormReferenceField.js.map +1 -0
- package/dist/components/FormRichTextField.d.ts +14 -0
- package/dist/components/FormRichTextField.d.ts.map +1 -0
- package/dist/components/FormRichTextField.js +644 -0
- package/dist/components/FormRichTextField.js.map +1 -0
- package/dist/components/FormSelectField.d.ts +15 -0
- package/dist/components/FormSelectField.d.ts.map +1 -0
- package/dist/components/FormSelectField.js +99 -0
- package/dist/components/FormSelectField.js.map +1 -0
- package/dist/components/FormSlugField.d.ts +13 -0
- package/dist/components/FormSlugField.d.ts.map +1 -0
- package/dist/components/FormSlugField.js +103 -0
- package/dist/components/FormSlugField.js.map +1 -0
- package/dist/components/FormStringField.d.ts +11 -0
- package/dist/components/FormStringField.d.ts.map +1 -0
- package/dist/components/FormStringField.js +32 -0
- package/dist/components/FormStringField.js.map +1 -0
- package/dist/components/FormStringListField.d.ts +13 -0
- package/dist/components/FormStringListField.d.ts.map +1 -0
- package/dist/components/FormStringListField.js +159 -0
- package/dist/components/FormStringListField.js.map +1 -0
- package/dist/components/FormTextField.d.ts +13 -0
- package/dist/components/FormTextField.d.ts.map +1 -0
- package/dist/components/FormTextField.js +43 -0
- package/dist/components/FormTextField.js.map +1 -0
- package/dist/components/FormUrlField.d.ts +12 -0
- package/dist/components/FormUrlField.d.ts.map +1 -0
- package/dist/components/FormUrlField.js +35 -0
- package/dist/components/FormUrlField.js.map +1 -0
- package/dist/components/Header/Header.d.ts +6 -0
- package/dist/components/Header/Header.d.ts.map +1 -0
- package/dist/components/Header/Header.js +293 -0
- package/dist/components/Header/Header.js.map +1 -0
- package/dist/components/Header/ThemeToggle.d.ts +7 -0
- package/dist/components/Header/ThemeToggle.d.ts.map +1 -0
- package/dist/components/Header/ThemeToggle.js +31 -0
- package/dist/components/Header/ThemeToggle.js.map +1 -0
- package/dist/components/InlineEntryEditor/InlineEntryEditor.d.ts +10 -0
- package/dist/components/InlineEntryEditor/InlineEntryEditor.d.ts.map +1 -0
- package/dist/components/InlineEntryEditor/InlineEntryEditor.js +338 -0
- package/dist/components/InlineEntryEditor/InlineEntryEditor.js.map +1 -0
- package/dist/components/Layout/Layout.d.ts +7 -0
- package/dist/components/Layout/Layout.d.ts.map +1 -0
- package/dist/components/Layout/Layout.js +46 -0
- package/dist/components/Layout/Layout.js.map +1 -0
- package/dist/components/LinkedBySection/LinkedBySection.d.ts +6 -0
- package/dist/components/LinkedBySection/LinkedBySection.d.ts.map +1 -0
- package/dist/components/LinkedBySection/LinkedBySection.js +89 -0
- package/dist/components/LinkedBySection/LinkedBySection.js.map +1 -0
- package/dist/components/Loading.d.ts +6 -0
- package/dist/components/Loading.d.ts.map +1 -0
- package/dist/components/Loading.js +14 -0
- package/dist/components/Loading.js.map +1 -0
- package/dist/components/MediaManager/MediaManager.d.ts +9 -0
- package/dist/components/MediaManager/MediaManager.d.ts.map +1 -0
- package/dist/components/MediaManager/MediaManager.js +616 -0
- package/dist/components/MediaManager/MediaManager.js.map +1 -0
- package/dist/components/SearchPage.d.ts +2 -0
- package/dist/components/SearchPage.d.ts.map +1 -0
- package/dist/components/SearchPage.js +97 -0
- package/dist/components/SearchPage.js.map +1 -0
- package/dist/components/StatusBadge.d.ts +9 -0
- package/dist/components/StatusBadge.d.ts.map +1 -0
- package/dist/components/StatusBadge.js +54 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/public/MarkdownContent.d.ts +11 -0
- package/dist/components/public/MarkdownContent.d.ts.map +1 -0
- package/dist/components/public/MarkdownContent.js +32 -0
- package/dist/components/public/MarkdownContent.js.map +1 -0
- package/dist/components/public/RichTextContent.d.ts +22 -0
- package/dist/components/public/RichTextContent.d.ts.map +1 -0
- package/dist/components/public/RichTextContent.js +174 -0
- package/dist/components/public/RichTextContent.js.map +1 -0
- package/dist/components/public/SearchBox.d.ts +6 -0
- package/dist/components/public/SearchBox.d.ts.map +1 -0
- package/dist/components/public/SearchBox.js +197 -0
- package/dist/components/public/SearchBox.js.map +1 -0
- package/dist/components/public/index.d.ts +5 -40
- package/dist/components/public/index.d.ts.map +1 -0
- package/dist/components/public/index.js +7 -398
- package/dist/components/public/index.js.map +1 -1
- package/dist/components/richtext/ComponentEmbedEditor.d.ts +15 -0
- package/dist/components/richtext/ComponentEmbedEditor.d.ts.map +1 -0
- package/dist/components/richtext/ComponentEmbedEditor.js +153 -0
- package/dist/components/richtext/ComponentEmbedEditor.js.map +1 -0
- package/dist/components/richtext/ConditionEmbedEditor.d.ts +12 -0
- package/dist/components/richtext/ConditionEmbedEditor.d.ts.map +1 -0
- package/dist/components/richtext/ConditionEmbedEditor.js +248 -0
- package/dist/components/richtext/ConditionEmbedEditor.js.map +1 -0
- package/dist/components/richtext/ImageEmbedEditor.d.ts +5 -0
- package/dist/components/richtext/ImageEmbedEditor.d.ts.map +1 -0
- package/dist/components/richtext/ImageEmbedEditor.js +271 -0
- package/dist/components/richtext/ImageEmbedEditor.js.map +1 -0
- package/dist/components/richtext/ReferenceEmbedEditor.d.ts +11 -0
- package/dist/components/richtext/ReferenceEmbedEditor.d.ts.map +1 -0
- package/dist/components/richtext/ReferenceEmbedEditor.js +202 -0
- package/dist/components/richtext/ReferenceEmbedEditor.js.map +1 -0
- package/dist/components/richtext/SlashCommandMenu.d.ts +23 -0
- package/dist/components/richtext/SlashCommandMenu.d.ts.map +1 -0
- package/dist/components/richtext/SlashCommandMenu.js +104 -0
- package/dist/components/richtext/SlashCommandMenu.js.map +1 -0
- package/dist/components/richtext/VariableEmbedEditor.d.ts +13 -0
- package/dist/components/richtext/VariableEmbedEditor.d.ts.map +1 -0
- package/dist/components/richtext/VariableEmbedEditor.js +58 -0
- package/dist/components/richtext/VariableEmbedEditor.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +45 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +47 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +93 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +159 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/index.d.ts +15 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/index.js +127 -0
- package/dist/components/ui/index.js.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +28 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +20 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +132 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +6 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +37 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +92 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +59 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/toast.d.ts +16 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +95 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toaster.js +30 -0
- package/dist/components/ui/toaster.js.map +1 -0
- package/dist/config.cjs +1 -10
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.ts +4 -13
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +3 -11
- package/dist/config.js.map +1 -1
- package/dist/defineConfig.d.ts +10 -11
- package/dist/defineConfig.d.ts.map +1 -0
- package/dist/defineConfig.js +4 -4
- package/dist/defineConfig.js.map +1 -1
- package/dist/github-public.d.ts +37 -0
- package/dist/github-public.d.ts.map +1 -0
- package/dist/github-public.js +118 -0
- package/dist/github-public.js.map +1 -0
- package/dist/globals.css +201 -0
- package/dist/hooks/useConfig.d.ts +17 -0
- package/dist/hooks/useConfig.d.ts.map +1 -0
- package/dist/hooks/useConfig.js +22 -0
- package/dist/hooks/useConfig.js.map +1 -0
- package/dist/hooks/useEntryStack.d.ts +26 -0
- package/dist/hooks/useEntryStack.d.ts.map +1 -0
- package/dist/hooks/useEntryStack.js +92 -0
- package/dist/hooks/useEntryStack.js.map +1 -0
- package/dist/hooks/useFileState.d.ts +9 -0
- package/dist/hooks/useFileState.d.ts.map +1 -0
- package/dist/hooks/useFileState.js +39 -0
- package/dist/hooks/useFileState.js.map +1 -0
- package/dist/hooks/useToast.d.ts +48 -0
- package/dist/hooks/useToast.d.ts.map +1 -0
- package/dist/hooks/useToast.js +126 -0
- package/dist/hooks/useToast.js.map +1 -0
- package/dist/index.cjs +1 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +12 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -11
- package/dist/index.js.map +1 -1
- package/dist/{init-RQVF5KUT.js → init-V6THBALA.js} +7 -2
- package/dist/init-V6THBALA.js.map +1 -0
- package/dist/lib/blogPublicPath.d.ts +4 -0
- package/dist/lib/blogPublicPath.d.ts.map +1 -0
- package/dist/lib/blogPublicPath.js +21 -0
- package/dist/lib/blogPublicPath.js.map +1 -0
- package/dist/lib/branchHistory.d.ts +30 -0
- package/dist/lib/branchHistory.d.ts.map +1 -0
- package/dist/lib/branchHistory.js +83 -0
- package/dist/lib/branchHistory.js.map +1 -0
- package/dist/lib/cmsServerLog.d.ts +13 -0
- package/dist/lib/cmsServerLog.d.ts.map +1 -0
- package/dist/lib/cmsServerLog.js +15 -0
- package/dist/lib/cmsServerLog.js.map +1 -0
- package/dist/lib/colorField.d.ts +13 -0
- package/dist/lib/colorField.d.ts.map +1 -0
- package/{lib/colorField.ts → dist/lib/colorField.js} +12 -16
- package/dist/lib/colorField.js.map +1 -0
- package/dist/lib/companionMarkdown.d.ts +19 -0
- package/dist/lib/companionMarkdown.d.ts.map +1 -0
- package/dist/lib/companionMarkdown.js +50 -0
- package/dist/lib/companionMarkdown.js.map +1 -0
- package/dist/lib/conditionalField.d.ts +43 -0
- package/dist/lib/conditionalField.d.ts.map +1 -0
- package/dist/lib/conditionalField.js +93 -0
- package/dist/lib/conditionalField.js.map +1 -0
- package/dist/lib/configStore.cjs +44 -0
- package/dist/lib/configStore.cjs.map +1 -0
- package/{lib/configStore.ts → dist/lib/configStore.d.ts} +3 -16
- package/dist/lib/configStore.d.ts.map +1 -0
- package/dist/{chunk-B47VXAHT.js → lib/configStore.js} +4 -14
- package/dist/lib/configStore.js.map +1 -0
- package/dist/lib/contentSourceError.d.ts +29 -0
- package/dist/lib/contentSourceError.d.ts.map +1 -0
- package/dist/lib/contentSourceError.js +77 -0
- package/dist/lib/contentSourceError.js.map +1 -0
- package/dist/lib/datetimeField.d.ts +25 -0
- package/dist/lib/datetimeField.d.ts.map +1 -0
- package/dist/lib/datetimeField.js +78 -0
- package/dist/lib/datetimeField.js.map +1 -0
- package/dist/lib/deploymentEnv.d.ts +7 -0
- package/dist/lib/deploymentEnv.d.ts.map +1 -0
- package/dist/{chunk-BRTXBBVQ.js → lib/deploymentEnv.js} +6 -22
- package/dist/lib/deploymentEnv.js.map +1 -0
- package/dist/lib/extractImageMetadata.d.ts +11 -0
- package/dist/lib/extractImageMetadata.d.ts.map +1 -0
- package/dist/lib/extractImageMetadata.js +23 -0
- package/dist/lib/extractImageMetadata.js.map +1 -0
- package/{lib/githubContentMode.ts → dist/lib/githubContentMode.d.ts} +2 -7
- package/dist/lib/githubContentMode.d.ts.map +1 -0
- package/dist/lib/githubContentMode.js +11 -0
- package/dist/lib/githubContentMode.js.map +1 -0
- package/dist/lib/initialEntryFields.d.ts +5 -0
- package/dist/lib/initialEntryFields.d.ts.map +1 -0
- package/dist/lib/initialEntryFields.js +35 -0
- package/dist/lib/initialEntryFields.js.map +1 -0
- package/dist/lib/jsonField.d.ts +20 -0
- package/dist/lib/jsonField.d.ts.map +1 -0
- package/dist/lib/jsonField.js +44 -0
- package/dist/lib/jsonField.js.map +1 -0
- package/dist/lib/localReader.d.ts +7 -0
- package/dist/lib/localReader.d.ts.map +1 -0
- package/dist/{localReader-I2THES24.js → lib/localReader.js} +2 -4
- package/dist/lib/localReader.js.map +1 -0
- package/dist/lib/numberField.d.ts +13 -0
- package/dist/lib/numberField.d.ts.map +1 -0
- package/{lib/numberField.ts → dist/lib/numberField.js} +10 -17
- package/dist/lib/numberField.js.map +1 -0
- package/dist/lib/persistedFormFields.d.ts +5 -0
- package/dist/lib/persistedFormFields.d.ts.map +1 -0
- package/{lib/persistedFormFields.ts → dist/lib/persistedFormFields.js} +52 -65
- package/dist/lib/persistedFormFields.js.map +1 -0
- package/dist/lib/referenceKeys.d.ts +10 -0
- package/dist/lib/referenceKeys.d.ts.map +1 -0
- package/{lib/referenceKeys.ts → dist/lib/referenceKeys.js} +12 -19
- package/dist/lib/referenceKeys.js.map +1 -0
- package/dist/lib/richtext/parseRichText.d.ts +20 -0
- package/dist/lib/richtext/parseRichText.d.ts.map +1 -0
- package/dist/lib/richtext/parseRichText.js +195 -0
- package/dist/lib/richtext/parseRichText.js.map +1 -0
- package/dist/lib/richtextFieldConfig.d.ts +7 -0
- package/dist/lib/richtextFieldConfig.d.ts.map +1 -0
- package/dist/lib/richtextFieldConfig.js +14 -0
- package/dist/lib/richtextFieldConfig.js.map +1 -0
- package/dist/lib/searchIndex.d.ts +43 -0
- package/dist/lib/searchIndex.d.ts.map +1 -0
- package/dist/lib/searchIndex.js +154 -0
- package/dist/lib/searchIndex.js.map +1 -0
- package/dist/lib/selectField.d.ts +13 -0
- package/dist/lib/selectField.d.ts.map +1 -0
- package/{lib/selectField.ts → dist/lib/selectField.js} +12 -17
- package/dist/lib/selectField.js.map +1 -0
- package/dist/lib/slugField.d.ts +28 -0
- package/dist/lib/slugField.d.ts.map +1 -0
- package/dist/lib/slugField.js +60 -0
- package/dist/lib/slugField.js.map +1 -0
- package/dist/lib/stringListField.d.ts +18 -0
- package/dist/lib/stringListField.d.ts.map +1 -0
- package/dist/lib/stringListField.js +38 -0
- package/dist/lib/stringListField.js.map +1 -0
- package/dist/lib/suggestedMediaTitle.d.ts +3 -0
- package/dist/lib/suggestedMediaTitle.d.ts.map +1 -0
- package/dist/lib/suggestedMediaTitle.js +11 -0
- package/dist/lib/suggestedMediaTitle.js.map +1 -0
- package/dist/lib/urlField.d.ts +9 -0
- package/dist/lib/urlField.d.ts.map +1 -0
- package/dist/lib/urlField.js +30 -0
- package/dist/lib/urlField.js.map +1 -0
- package/{lib/utils.ts → dist/lib/utils.d.ts} +3 -4
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +8 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/validateEntryFields.d.ts +10 -0
- package/dist/lib/validateEntryFields.d.ts.map +1 -0
- package/{lib/validateEntryFields.ts → dist/lib/validateEntryFields.js} +83 -124
- package/dist/lib/validateEntryFields.js.map +1 -0
- package/dist/query.d.ts +6 -7
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +448 -5
- package/dist/query.js.map +1 -1
- package/dist/types.d.ts +33 -33
- package/dist/types.d.ts.map +1 -0
- package/dist/{update-4Z3OK3TX.js → update-RF2HD3WJ.js} +2 -2
- package/dist/utils/parseFileName.d.ts +4 -0
- package/dist/utils/parseFileName.d.ts.map +1 -0
- package/{utils/parseFileName.ts → dist/utils/parseFileName.js} +17 -18
- package/dist/utils/parseFileName.js.map +1 -0
- package/dist/withOctoCMS.cjs +1 -8
- package/dist/withOctoCMS.cjs.map +1 -1
- package/dist/withOctoCMS.d.ts +4 -6
- package/dist/withOctoCMS.d.ts.map +1 -0
- package/dist/withOctoCMS.js +9 -4
- package/dist/withOctoCMS.js.map +1 -1
- package/globals.css +3 -0
- package/package.json +54 -46
- package/admin/AdminApp.tsx +0 -59
- package/admin/ThemeProvider.test.tsx +0 -177
- package/admin/ThemeProvider.tsx +0 -85
- package/admin/actions/build.test.ts +0 -120
- package/admin/actions/build.ts +0 -139
- package/admin/actions/entries.test.ts +0 -311
- package/admin/actions/entries.ts +0 -136
- package/admin/actions/files.test.ts +0 -785
- package/admin/actions/getThemeCookie.test.ts +0 -54
- package/admin/actions/getThemeCookie.ts +0 -17
- package/admin/actions/git.test.ts +0 -177
- package/admin/actions/git.ts +0 -295
- package/admin/actions/media.test.ts +0 -528
- package/admin/actions/media.ts +0 -325
- package/admin/actions/search.ts +0 -94
- package/admin/actions/status.ts +0 -63
- package/admin/actions/utils.test.ts +0 -80
- package/admin/actions/utils.ts +0 -51
- package/admin/auth.ts +0 -25
- package/admin/consts.ts +0 -19
- package/admin/github.pointer.test.ts +0 -43
- package/admin/pages/AdminLayout.tsx +0 -50
- package/admin/pages/CollectionPage.tsx +0 -41
- package/admin/pages/DashboardPage.tsx +0 -34
- package/admin/pages/EntryPage.tsx +0 -49
- package/admin/pages/MediaPage.tsx +0 -26
- package/admin/pages/SearchPage.tsx +0 -23
- package/admin/provider.tsx +0 -30
- package/admin/store/contentStore.test.ts +0 -323
- package/admin/store/contentStore.ts +0 -333
- package/admin/store/contentStoreFetch.test.ts +0 -217
- package/admin/store/contentStoreFetch.ts +0 -240
- package/admin/store/contentStoreTypes.ts +0 -52
- package/admin/types.ts +0 -31
- package/components/CMSSidebar/CMSSidebar.tsx +0 -108
- package/components/ContentTypes.tsx +0 -162
- package/components/CreateBranchDialog.tsx +0 -137
- package/components/Dashboard/DashboardContent.tsx +0 -370
- package/components/EditPost/EditPost.tsx +0 -360
- package/components/FieldHintAndError.tsx +0 -20
- package/components/FileExplorer/FileExplorer.tsx +0 -99
- package/components/FormBooleanField.tsx +0 -51
- package/components/FormColorField.tsx +0 -112
- package/components/FormConditionalField.tsx +0 -383
- package/components/FormDatetimeField.tsx +0 -62
- package/components/FormFields.tsx +0 -265
- package/components/FormImageField.test.tsx +0 -153
- package/components/FormImageField.tsx +0 -281
- package/components/FormJsonField.tsx +0 -79
- package/components/FormMarkdownField.tsx +0 -83
- package/components/FormNumberField.tsx +0 -60
- package/components/FormReferenceField.test.tsx +0 -335
- package/components/FormReferenceField.tsx +0 -658
- package/components/FormRichTextField.tsx +0 -670
- package/components/FormSelectField.tsx +0 -138
- package/components/FormSlugField.tsx +0 -120
- package/components/FormStringField.tsx +0 -40
- package/components/FormStringListField.tsx +0 -192
- package/components/FormTextField.tsx +0 -54
- package/components/FormUrlField.tsx +0 -44
- package/components/Header/Header.tsx +0 -352
- package/components/Header/ThemeToggle.test.tsx +0 -98
- package/components/Header/ThemeToggle.tsx +0 -38
- package/components/InlineEntryEditor/InlineEntryEditor.tsx +0 -397
- package/components/Layout/Layout.tsx +0 -61
- package/components/LinkedBySection/LinkedBySection.tsx +0 -104
- package/components/Loading.tsx +0 -18
- package/components/MediaManager/MediaManager.tsx +0 -679
- package/components/SearchPage.tsx +0 -122
- package/components/StatusBadge.tsx +0 -65
- package/components/public/MarkdownContent.tsx +0 -49
- package/components/public/RichTextContent.tsx +0 -327
- package/components/public/SearchBox.tsx +0 -249
- package/components/public/index.ts +0 -4
- package/components/richtext/ComponentEmbedEditor.tsx +0 -201
- package/components/richtext/ConditionEmbedEditor.tsx +0 -273
- package/components/richtext/ImageEmbedEditor.tsx +0 -280
- package/components/richtext/ReferenceEmbedEditor.tsx +0 -249
- package/components/richtext/SlashCommandMenu.tsx +0 -128
- package/components/richtext/VariableEmbedEditor.tsx +0 -89
- package/components/ui/avatar.tsx +0 -43
- package/components/ui/button.tsx +0 -47
- package/components/ui/dialog.tsx +0 -97
- package/components/ui/dropdown-menu.tsx +0 -181
- package/components/ui/index.ts +0 -73
- package/components/ui/input.tsx +0 -22
- package/components/ui/label.tsx +0 -19
- package/components/ui/select.tsx +0 -145
- package/components/ui/sonner.tsx +0 -35
- package/components/ui/table.tsx +0 -77
- package/components/ui/tabs.tsx +0 -55
- package/components/ui/toast.tsx +0 -78
- package/components/ui/toaster.tsx +0 -28
- package/config.ts +0 -4
- package/defineConfig.ts +0 -149
- package/dist/chunk-33VA3IFB.js.map +0 -1
- package/dist/chunk-4MPOTHTY.js +0 -9
- package/dist/chunk-4MPOTHTY.js.map +0 -1
- package/dist/chunk-4VLN5EX2.js +0 -9204
- package/dist/chunk-4VLN5EX2.js.map +0 -1
- package/dist/chunk-7CFFE2I6.js +0 -55
- package/dist/chunk-B47VXAHT.js.map +0 -1
- package/dist/chunk-BRTXBBVQ.js.map +0 -1
- package/dist/init-RQVF5KUT.js.map +0 -1
- package/dist/localReader-I2THES24.js.map +0 -1
- package/github-public.ts +0 -160
- package/hooks/useConfig.tsx +0 -31
- package/hooks/useEntryStack.test.tsx +0 -194
- package/hooks/useEntryStack.tsx +0 -128
- package/hooks/useFileState.tsx +0 -44
- package/hooks/useToast.tsx +0 -191
- package/index.ts +0 -24
- package/lib/blogPublicPath.test.ts +0 -27
- package/lib/blogPublicPath.ts +0 -18
- package/lib/branchHistory.test.ts +0 -164
- package/lib/branchHistory.ts +0 -122
- package/lib/cmsServerLog.ts +0 -23
- package/lib/colorField.test.ts +0 -38
- package/lib/companionMarkdown.test.ts +0 -77
- package/lib/companionMarkdown.ts +0 -74
- package/lib/conditionalField.test.ts +0 -212
- package/lib/conditionalField.ts +0 -139
- package/lib/contentSourceError.test.ts +0 -70
- package/lib/contentSourceError.ts +0 -111
- package/lib/datetimeField.test.ts +0 -77
- package/lib/datetimeField.ts +0 -91
- package/lib/deploymentEnv.test.ts +0 -67
- package/lib/deploymentEnv.ts +0 -37
- package/lib/extractImageMetadata.ts +0 -34
- package/lib/githubContentMode.test.ts +0 -27
- package/lib/initialEntryFields.ts +0 -39
- package/lib/jsonField.test.ts +0 -59
- package/lib/jsonField.ts +0 -54
- package/lib/localReader.test.ts +0 -157
- package/lib/localReader.ts +0 -37
- package/lib/numberField.test.ts +0 -38
- package/lib/persistedFormFields.test.ts +0 -106
- package/lib/referenceKeys.test.ts +0 -57
- package/lib/richtext/parseRichText.test.ts +0 -189
- package/lib/richtext/parseRichText.ts +0 -266
- package/lib/richtextFieldConfig.ts +0 -20
- package/lib/searchIndex.test.ts +0 -312
- package/lib/searchIndex.ts +0 -261
- package/lib/selectField.test.ts +0 -64
- package/lib/slugField.test.ts +0 -90
- package/lib/slugField.ts +0 -76
- package/lib/stringListField.test.ts +0 -44
- package/lib/stringListField.ts +0 -43
- package/lib/suggestedMediaTitle.ts +0 -7
- package/lib/urlField.test.ts +0 -39
- package/lib/urlField.ts +0 -31
- package/lib/validateEntryFields.test.ts +0 -326
- package/query.ts +0 -666
- package/types.ts +0 -359
- package/withOctoCMS.ts +0 -16
- /package/dist/{chunk-7CFFE2I6.js.map → admin/store/contentStoreTypes.js.map} +0 -0
- /package/dist/{agentDocs-NUEXGXIH.js.map → agentDocs-Y3LM2CPQ.js.map} +0 -0
- /package/dist/{update-4Z3OK3TX.js.map → update-RF2HD3WJ.js.map} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type AdminAppProps = {
|
|
2
|
+
params: Promise<{
|
|
3
|
+
path?: string[];
|
|
4
|
+
}>;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Catch-all admin router component. Mount this as the default export of a
|
|
8
|
+
* Next.js optional catch-all route at `src/app/cms/[[...path]]/page.tsx`:
|
|
9
|
+
*
|
|
10
|
+
* export { AdminApp as default } from 'octocms/admin/AdminApp';
|
|
11
|
+
*
|
|
12
|
+
* Route segments map to admin pages:
|
|
13
|
+
* /cms → DashboardPage
|
|
14
|
+
* /cms/search → SearchPage
|
|
15
|
+
* /cms/media → MediaPage (library)
|
|
16
|
+
* /cms/media/<id> → MediaPage with that asset selected (detail panel)
|
|
17
|
+
* /cms/<type> → CollectionPage
|
|
18
|
+
* /cms/<type>/<id>→ EntryPage
|
|
19
|
+
*/
|
|
20
|
+
export declare function AdminApp({ params }: AdminAppProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=AdminApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminApp.d.ts","sourceRoot":"","sources":["../../admin/AdminApp.tsx"],"names":[],"mappings":"AAQA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,2CAMjD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import "../chunk-2NMEKWO5.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Suspense } from "react";
|
|
4
|
+
import { CollectionPage } from "./pages/CollectionPage";
|
|
5
|
+
import { DashboardPage } from "./pages/DashboardPage";
|
|
6
|
+
import { EntryPage } from "./pages/EntryPage";
|
|
7
|
+
import { MediaPage } from "./pages/MediaPage";
|
|
8
|
+
import { SearchPage } from "./pages/SearchPage";
|
|
9
|
+
function AdminApp({ params }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(AdminAppRouter, { params }) });
|
|
11
|
+
}
|
|
12
|
+
async function AdminAppRouter({ params }) {
|
|
13
|
+
const { path } = await params;
|
|
14
|
+
const segments = path != null ? path : [];
|
|
15
|
+
if (segments.length === 0) {
|
|
16
|
+
return /* @__PURE__ */ jsx(DashboardPage, {});
|
|
17
|
+
}
|
|
18
|
+
if (segments[0] === "search") {
|
|
19
|
+
return /* @__PURE__ */ jsx(SearchPage, {});
|
|
20
|
+
}
|
|
21
|
+
if (segments[0] === "media") {
|
|
22
|
+
const initialMediaId = segments.length >= 2 ? segments[1] : void 0;
|
|
23
|
+
return /* @__PURE__ */ jsx(MediaPage, { initialMediaId });
|
|
24
|
+
}
|
|
25
|
+
if (segments.length === 1) {
|
|
26
|
+
const [type2] = segments;
|
|
27
|
+
return /* @__PURE__ */ jsx(CollectionPage, { params: Promise.resolve({ type: type2 }) });
|
|
28
|
+
}
|
|
29
|
+
const [type, id] = segments;
|
|
30
|
+
return /* @__PURE__ */ jsx(EntryPage, { params: Promise.resolve({ type, id }) });
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
AdminApp
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=AdminApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../admin/AdminApp.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\n\nimport { CollectionPage } from './pages/CollectionPage';\nimport { DashboardPage } from './pages/DashboardPage';\nimport { EntryPage } from './pages/EntryPage';\nimport { MediaPage } from './pages/MediaPage';\nimport { SearchPage } from './pages/SearchPage';\n\ntype AdminAppProps = {\n params: Promise<{ path?: string[] }>;\n};\n\n/**\n * Catch-all admin router component. Mount this as the default export of a\n * Next.js optional catch-all route at `src/app/cms/[[...path]]/page.tsx`:\n *\n * export { AdminApp as default } from 'octocms/admin/AdminApp';\n *\n * Route segments map to admin pages:\n * /cms → DashboardPage\n * /cms/search → SearchPage\n * /cms/media → MediaPage (library)\n * /cms/media/<id> → MediaPage with that asset selected (detail panel)\n * /cms/<type> → CollectionPage\n * /cms/<type>/<id>→ EntryPage\n */\nexport function AdminApp({ params }: AdminAppProps) {\n return (\n <Suspense fallback={null}>\n <AdminAppRouter params={params} />\n </Suspense>\n );\n}\n\nasync function AdminAppRouter({ params }: AdminAppProps) {\n const { path } = await params;\n const segments = path ?? [];\n\n if (segments.length === 0) {\n return <DashboardPage />;\n }\n\n if (segments[0] === 'search') {\n return <SearchPage />;\n }\n\n if (segments[0] === 'media') {\n const initialMediaId = segments.length >= 2 ? segments[1] : undefined;\n return <MediaPage initialMediaId={initialMediaId} />;\n }\n\n if (segments.length === 1) {\n const [type] = segments;\n return <CollectionPage params={Promise.resolve({ type })} />;\n }\n\n const [type, id] = segments;\n return <EntryPage params={Promise.resolve({ type, id })} />;\n}\n"],"mappings":";AA6BM;AA7BN,SAAgB,gBAAgB;AAEhC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAoBpB,SAAS,SAAS,EAAE,OAAO,GAAkB;AAClD,SACE,oBAAC,YAAS,UAAU,MAClB,8BAAC,kBAAe,QAAgB,GAClC;AAEJ;AAEA,eAAe,eAAe,EAAE,OAAO,GAAkB;AACvD,QAAM,EAAE,KAAK,IAAI,MAAM;AACvB,QAAM,WAAW,sBAAQ,CAAC;AAE1B,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,oBAAC,iBAAc;AAAA,EACxB;AAEA,MAAI,SAAS,CAAC,MAAM,UAAU;AAC5B,WAAO,oBAAC,cAAW;AAAA,EACrB;AAEA,MAAI,SAAS,CAAC,MAAM,SAAS;AAC3B,UAAM,iBAAiB,SAAS,UAAU,IAAI,SAAS,CAAC,IAAI;AAC5D,WAAO,oBAAC,aAAU,gBAAgC;AAAA,EACpD;AAEA,MAAI,SAAS,WAAW,GAAG;AACzB,UAAM,CAACA,KAAI,IAAI;AACf,WAAO,oBAAC,kBAAe,QAAQ,QAAQ,QAAQ,EAAE,MAAAA,MAAK,CAAC,GAAG;AAAA,EAC5D;AAEA,QAAM,CAAC,MAAM,EAAE,IAAI;AACnB,SAAO,oBAAC,aAAU,QAAQ,QAAQ,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG;AAC3D;","names":["type"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Theme } from './theme';
|
|
3
|
+
type ThemeContextValue = {
|
|
4
|
+
/** The stored preference: 'light' | 'dark' | 'system' */
|
|
5
|
+
theme: Theme;
|
|
6
|
+
/** The applied theme after resolving 'system' via matchMedia */
|
|
7
|
+
resolvedTheme: 'light' | 'dark';
|
|
8
|
+
setTheme: (theme: Theme) => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Hook to access the current theme state and setter from anywhere inside the CMS.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useTheme(): ThemeContextValue;
|
|
14
|
+
type ThemeProviderProps = {
|
|
15
|
+
/**
|
|
16
|
+
* Initial theme value from the SSR-read cookie. Passed from AdminLayout
|
|
17
|
+
* so the first render already has the correct theme without a hydration flash
|
|
18
|
+
* for users with an explicit 'light' or 'dark' cookie.
|
|
19
|
+
*/
|
|
20
|
+
initialTheme: Theme;
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Provides theme state for the CMS admin panel.
|
|
25
|
+
*
|
|
26
|
+
* - Resolves 'system' by listening to `prefers-color-scheme`.
|
|
27
|
+
* - Persists the preference to the `cms-theme` cookie (SameSite=Lax, 1 year).
|
|
28
|
+
* - Syncs `class="dark"` onto `document.body` so that Radix UI portal
|
|
29
|
+
* elements (dropdowns, dialogs) — which are appended to `<body>` — also
|
|
30
|
+
* inherit the dark CSS variable scope.
|
|
31
|
+
*
|
|
32
|
+
* This provider is only mounted inside `src/app/cms/layout.tsx`, so the
|
|
33
|
+
* `document.body` class never leaks to public pages.
|
|
34
|
+
*/
|
|
35
|
+
export declare function ThemeProvider({ initialTheme, children }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../admin/ThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsE,MAAM,OAAO,CAAC;AAE3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,KAAK,iBAAiB,GAAG;IACvB,yDAAyD;IACzD,KAAK,EAAE,KAAK,CAAC;IACb,gEAAgE;IAChE,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAQF;;GAEG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAE5C;AAED,KAAK,kBAAkB,GAAG;IACxB;;;;OAIG;IACH,YAAY,EAAE,KAAK,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAkC3E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import "../chunk-2NMEKWO5.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { createContext, useCallback, useContext, useEffect, useState } from "react";
|
|
5
|
+
import { THEME_COOKIE } from "./theme";
|
|
6
|
+
const ThemeContext = createContext({
|
|
7
|
+
theme: "system",
|
|
8
|
+
resolvedTheme: "light",
|
|
9
|
+
setTheme: () => {
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
function useTheme() {
|
|
13
|
+
return useContext(ThemeContext);
|
|
14
|
+
}
|
|
15
|
+
function ThemeProvider({ initialTheme, children }) {
|
|
16
|
+
const [theme, setThemeState] = useState(initialTheme);
|
|
17
|
+
const [systemDark, setSystemDark] = useState(false);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
20
|
+
setSystemDark(mq.matches);
|
|
21
|
+
const handler = (e) => setSystemDark(e.matches);
|
|
22
|
+
mq.addEventListener("change", handler);
|
|
23
|
+
return () => mq.removeEventListener("change", handler);
|
|
24
|
+
}, []);
|
|
25
|
+
const resolvedTheme = theme === "system" ? systemDark ? "dark" : "light" : theme;
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
document.body.classList.toggle("dark", resolvedTheme === "dark");
|
|
28
|
+
return () => {
|
|
29
|
+
document.body.classList.remove("dark");
|
|
30
|
+
};
|
|
31
|
+
}, [resolvedTheme]);
|
|
32
|
+
const setTheme = useCallback((next) => {
|
|
33
|
+
setThemeState(next);
|
|
34
|
+
document.cookie = `${THEME_COOKIE}=${next};path=/;max-age=31536000;SameSite=Lax`;
|
|
35
|
+
}, []);
|
|
36
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: { theme, resolvedTheme, setTheme }, children });
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
ThemeProvider,
|
|
40
|
+
useTheme
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../admin/ThemeProvider.tsx"],"sourcesContent":["'use client';\n\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react';\n\nimport type { Theme } from './theme';\nimport { THEME_COOKIE } from './theme';\n\ntype ThemeContextValue = {\n /** The stored preference: 'light' | 'dark' | 'system' */\n theme: Theme;\n /** The applied theme after resolving 'system' via matchMedia */\n resolvedTheme: 'light' | 'dark';\n setTheme: (theme: Theme) => void;\n};\n\nconst ThemeContext = createContext<ThemeContextValue>({\n theme: 'system',\n resolvedTheme: 'light',\n setTheme: () => {},\n});\n\n/**\n * Hook to access the current theme state and setter from anywhere inside the CMS.\n */\nexport function useTheme(): ThemeContextValue {\n return useContext(ThemeContext);\n}\n\ntype ThemeProviderProps = {\n /**\n * Initial theme value from the SSR-read cookie. Passed from AdminLayout\n * so the first render already has the correct theme without a hydration flash\n * for users with an explicit 'light' or 'dark' cookie.\n */\n initialTheme: Theme;\n children: React.ReactNode;\n};\n\n/**\n * Provides theme state for the CMS admin panel.\n *\n * - Resolves 'system' by listening to `prefers-color-scheme`.\n * - Persists the preference to the `cms-theme` cookie (SameSite=Lax, 1 year).\n * - Syncs `class=\"dark\"` onto `document.body` so that Radix UI portal\n * elements (dropdowns, dialogs) — which are appended to `<body>` — also\n * inherit the dark CSS variable scope.\n *\n * This provider is only mounted inside `src/app/cms/layout.tsx`, so the\n * `document.body` class never leaks to public pages.\n */\nexport function ThemeProvider({ initialTheme, children }: ThemeProviderProps) {\n const [theme, setThemeState] = useState<Theme>(initialTheme);\n const [systemDark, setSystemDark] = useState(false);\n\n // Detect system preference on the client and track changes.\n useEffect(() => {\n const mq = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemDark(mq.matches);\n\n const handler = (e: MediaQueryListEvent) => setSystemDark(e.matches);\n mq.addEventListener('change', handler);\n return () => mq.removeEventListener('change', handler);\n }, []);\n\n const resolvedTheme: 'light' | 'dark' = theme === 'system' ? (systemDark ? 'dark' : 'light') : theme;\n\n // Sync dark class to document.body so Radix portals inherit the dark scope.\n // Safe: ThemeProvider is only mounted under /cms, never on public pages.\n // The cleanup removes the class when the CMS layout unmounts (e.g. navigating\n // from /cms to a public route via client-side navigation).\n useEffect(() => {\n document.body.classList.toggle('dark', resolvedTheme === 'dark');\n return () => {\n document.body.classList.remove('dark');\n };\n }, [resolvedTheme]);\n\n const setTheme = useCallback((next: Theme) => {\n setThemeState(next);\n // Persist to cookie for SSR reads on next page load.\n document.cookie = `${THEME_COOKIE}=${next};path=/;max-age=31536000;SameSite=Lax`;\n }, []);\n\n return <ThemeContext.Provider value={{ theme, resolvedTheme, setTheme }}>{children}</ThemeContext.Provider>;\n}\n"],"mappings":";;AAmFS;AAjFT,SAAgB,eAAe,aAAa,YAAY,WAAW,gBAAgB;AAGnF,SAAS,oBAAoB;AAU7B,MAAM,eAAe,cAAiC;AAAA,EACpD,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU,MAAM;AAAA,EAAC;AACnB,CAAC;AAKM,SAAS,WAA8B;AAC5C,SAAO,WAAW,YAAY;AAChC;AAwBO,SAAS,cAAc,EAAE,cAAc,SAAS,GAAuB;AAC5E,QAAM,CAAC,OAAO,aAAa,IAAI,SAAgB,YAAY;AAC3D,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAGlD,YAAU,MAAM;AACd,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,kBAAc,GAAG,OAAO;AAExB,UAAM,UAAU,CAAC,MAA2B,cAAc,EAAE,OAAO;AACnE,OAAG,iBAAiB,UAAU,OAAO;AACrC,WAAO,MAAM,GAAG,oBAAoB,UAAU,OAAO;AAAA,EACvD,GAAG,CAAC,CAAC;AAEL,QAAM,gBAAkC,UAAU,WAAY,aAAa,SAAS,UAAW;AAM/F,YAAU,MAAM;AACd,aAAS,KAAK,UAAU,OAAO,QAAQ,kBAAkB,MAAM;AAC/D,WAAO,MAAM;AACX,eAAS,KAAK,UAAU,OAAO,MAAM;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,WAAW,YAAY,CAAC,SAAgB;AAC5C,kBAAc,IAAI;AAElB,aAAS,SAAS,GAAG,YAAY,IAAI,IAAI;AAAA,EAC3C,GAAG,CAAC,CAAC;AAEL,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,OAAO,eAAe,SAAS,GAAI,UAAS;AACrF;","names":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ActionResult } from './utils';
|
|
2
|
+
export type BuildJsonsOptions = {
|
|
3
|
+
/** Slug-based `/blog/...` paths to revalidate in addition to the dynamic route segment. */
|
|
4
|
+
blogPaths?: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare const buildJsons: (_editedFileName?: string, options?: BuildJsonsOptions) => Promise<ActionResult>;
|
|
7
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../admin/actions/build.ts"],"names":[],"mappings":"AAaA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAOjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AA0FF,eAAO,MAAM,UAAU,GAAU,kBAAkB,MAAM,EAAE,UAAU,iBAAiB,KAAG,OAAO,CAAC,YAAY,CAyB5G,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import "../../chunk-2NMEKWO5.js";
|
|
3
|
+
import fsPromises from "fs/promises";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import { glob } from "glob";
|
|
6
|
+
import { revalidatePath, updateTag } from "next/cache";
|
|
7
|
+
import { getConfig } from "../../lib/configStore";
|
|
8
|
+
import { companionMarkdownPathsForEntry, companionRichTextPathsForEntry } from "../../lib/companionMarkdown";
|
|
9
|
+
import { buildSearchIndex } from "../../lib/searchIndex";
|
|
10
|
+
import { isProductionMode, saveGitHubFile } from "../github";
|
|
11
|
+
import { actionErr, actionOk } from "./utils";
|
|
12
|
+
const PUBLIC_CACHE_TAGS = ["homePage", "blog"];
|
|
13
|
+
const SEARCH_INDEX_FILE_PATH = "cms/__generated__/search-index.json";
|
|
14
|
+
async function getEntriesForPublicSearch() {
|
|
15
|
+
var _a;
|
|
16
|
+
const config = getConfig();
|
|
17
|
+
const publicCollections = (_a = config.search) == null ? void 0 : _a.publicCollections;
|
|
18
|
+
if (!publicCollections || Object.keys(publicCollections).length === 0) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
const files = await glob(`${config.contentFolder}/**/*.json`);
|
|
22
|
+
const entries = [];
|
|
23
|
+
for (const file of files) {
|
|
24
|
+
const normalized = file.replace(/\\/g, "/");
|
|
25
|
+
if (normalized.includes("/media/")) continue;
|
|
26
|
+
try {
|
|
27
|
+
const filePath = path.join(process.cwd(), normalized);
|
|
28
|
+
const data = await fsPromises.readFile(filePath, { encoding: "utf8" });
|
|
29
|
+
const content = JSON.parse(data);
|
|
30
|
+
const sys = content.sys;
|
|
31
|
+
const type = sys == null ? void 0 : sys.type;
|
|
32
|
+
if (!type || !(type in publicCollections)) continue;
|
|
33
|
+
const companions = {};
|
|
34
|
+
if (type) {
|
|
35
|
+
const mdPaths = companionMarkdownPathsForEntry(normalized, type, config.collections);
|
|
36
|
+
for (const [fieldName, mdPath] of Object.entries(mdPaths)) {
|
|
37
|
+
try {
|
|
38
|
+
const mdFilePath = path.join(process.cwd(), mdPath);
|
|
39
|
+
companions[fieldName] = await fsPromises.readFile(mdFilePath, { encoding: "utf8" });
|
|
40
|
+
} catch (e) {
|
|
41
|
+
companions[fieldName] = "";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const rtPaths = companionRichTextPathsForEntry(normalized, type, config.collections);
|
|
45
|
+
for (const [fieldName, rtPath] of Object.entries(rtPaths)) {
|
|
46
|
+
try {
|
|
47
|
+
const rtFilePath = path.join(process.cwd(), rtPath);
|
|
48
|
+
companions[fieldName] = await fsPromises.readFile(rtFilePath, { encoding: "utf8" });
|
|
49
|
+
} catch (e) {
|
|
50
|
+
companions[fieldName] = "";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
entries.push({
|
|
55
|
+
path: normalized.replace(`${config.contentFolder}/`, ""),
|
|
56
|
+
content,
|
|
57
|
+
companionContent: companions
|
|
58
|
+
});
|
|
59
|
+
} catch (e) {
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return entries;
|
|
63
|
+
}
|
|
64
|
+
async function buildAndWriteSearchIndex() {
|
|
65
|
+
var _a;
|
|
66
|
+
const config = getConfig();
|
|
67
|
+
const publicCollections = (_a = config.search) == null ? void 0 : _a.publicCollections;
|
|
68
|
+
if (!publicCollections || Object.keys(publicCollections).length === 0) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const entries = await getEntriesForPublicSearch();
|
|
73
|
+
const indexJson = buildSearchIndex(entries, config, Object.keys(publicCollections));
|
|
74
|
+
if (isProductionMode()) {
|
|
75
|
+
await saveGitHubFile(SEARCH_INDEX_FILE_PATH, indexJson, "CMS: update search index");
|
|
76
|
+
} else {
|
|
77
|
+
const filePath = path.join(process.cwd(), SEARCH_INDEX_FILE_PATH);
|
|
78
|
+
await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
|
|
79
|
+
await fsPromises.writeFile(filePath, indexJson, "utf8");
|
|
80
|
+
}
|
|
81
|
+
} catch (e) {
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const buildJsons = async (_editedFileName, options) => {
|
|
85
|
+
var _a;
|
|
86
|
+
try {
|
|
87
|
+
for (const tag of PUBLIC_CACHE_TAGS) {
|
|
88
|
+
updateTag(tag);
|
|
89
|
+
}
|
|
90
|
+
revalidatePath("/", "layout");
|
|
91
|
+
revalidatePath("/blog", "page");
|
|
92
|
+
revalidatePath("/blog/[slug]", "page");
|
|
93
|
+
const seen = /* @__PURE__ */ new Set();
|
|
94
|
+
for (const p of (_a = options == null ? void 0 : options.blogPaths) != null ? _a : []) {
|
|
95
|
+
if (typeof p === "string" && p.startsWith("/blog/") && !seen.has(p)) {
|
|
96
|
+
seen.add(p);
|
|
97
|
+
revalidatePath(p);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
await buildAndWriteSearchIndex();
|
|
101
|
+
return actionOk();
|
|
102
|
+
} catch (e) {
|
|
103
|
+
return actionErr(e);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
export {
|
|
107
|
+
buildJsons
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../admin/actions/build.ts"],"sourcesContent":["'use server';\n\nimport fsPromises from 'fs/promises';\nimport path from 'path';\n\nimport { glob } from 'glob';\nimport { revalidatePath, updateTag } from 'next/cache';\n\nimport { getConfig } from '../../lib/configStore';\nimport { companionMarkdownPathsForEntry, companionRichTextPathsForEntry } from '../../lib/companionMarkdown';\nimport { buildSearchIndex, type EntryForSearch } from '../../lib/searchIndex';\n\nimport { isProductionMode, saveGitHubFile } from '../github';\nimport { actionErr, actionOk, type ActionResult } from './utils';\n\n/** Cache tags used by `getHomePage` / `getBlog` / `getPublishedPosts` in `src/app/cms/ssr/getPageContent.ts`. */\nconst PUBLIC_CACHE_TAGS = ['homePage', 'blog'] as const;\n\nconst SEARCH_INDEX_FILE_PATH = 'cms/__generated__/search-index.json';\n\nexport type BuildJsonsOptions = {\n /** Slug-based `/blog/...` paths to revalidate in addition to the dynamic route segment. */\n blogPaths?: string[];\n};\n\n/** Helper: gather all searchable entries from the filesystem. */\nasync function getEntriesForPublicSearch(): Promise<EntryForSearch[]> {\n const config = getConfig();\n const publicCollections = config.search?.publicCollections;\n if (!publicCollections || Object.keys(publicCollections).length === 0) {\n return [];\n }\n\n const files = await glob(`${config.contentFolder}/**/*.json`);\n const entries: EntryForSearch[] = [];\n\n for (const file of files) {\n const normalized = file.replace(/\\\\/g, '/');\n // Skip media entries\n if (normalized.includes('/media/')) continue;\n\n try {\n const filePath = path.join(process.cwd(), normalized);\n const data = await fsPromises.readFile(filePath, { encoding: 'utf8' });\n const content = JSON.parse(data) as Record<string, unknown>;\n const sys = content.sys as { type?: string } | undefined;\n const type = sys?.type;\n\n // Only include entries from publicCollections\n if (!type || !(type in publicCollections)) continue;\n\n // Read companion markdown/richtext files\n const companions: Record<string, string> = {};\n if (type) {\n const mdPaths = companionMarkdownPathsForEntry(normalized, type, config.collections);\n for (const [fieldName, mdPath] of Object.entries(mdPaths)) {\n try {\n const mdFilePath = path.join(process.cwd(), mdPath);\n companions[fieldName] = await fsPromises.readFile(mdFilePath, { encoding: 'utf8' });\n } catch {\n companions[fieldName] = '';\n }\n }\n const rtPaths = companionRichTextPathsForEntry(normalized, type, config.collections);\n for (const [fieldName, rtPath] of Object.entries(rtPaths)) {\n try {\n const rtFilePath = path.join(process.cwd(), rtPath);\n companions[fieldName] = await fsPromises.readFile(rtFilePath, { encoding: 'utf8' });\n } catch {\n companions[fieldName] = '';\n }\n }\n }\n\n entries.push({\n path: normalized.replace(`${config.contentFolder}/`, ''),\n content,\n companionContent: companions,\n });\n } catch {\n // Skip unreadable files\n }\n }\n\n return entries;\n}\n\n/** Build and write the public search index. */\nasync function buildAndWriteSearchIndex(): Promise<void> {\n const config = getConfig();\n const publicCollections = config.search?.publicCollections;\n if (!publicCollections || Object.keys(publicCollections).length === 0) {\n return;\n }\n\n try {\n const entries = await getEntriesForPublicSearch();\n const indexJson = buildSearchIndex(entries, config, Object.keys(publicCollections));\n\n if (isProductionMode()) {\n // Write to GitHub\n await saveGitHubFile(SEARCH_INDEX_FILE_PATH, indexJson, 'CMS: update search index');\n } else {\n // Write to local filesystem\n const filePath = path.join(process.cwd(), SEARCH_INDEX_FILE_PATH);\n await fsPromises.mkdir(path.dirname(filePath), { recursive: true });\n await fsPromises.writeFile(filePath, indexJson, 'utf8');\n }\n } catch {\n // Silently fail search index generation to not block the build\n }\n}\n\nexport const buildJsons = async (_editedFileName?: string, options?: BuildJsonsOptions): Promise<ActionResult> => {\n try {\n for (const tag of PUBLIC_CACHE_TAGS) {\n updateTag(tag);\n }\n\n revalidatePath('/', 'layout');\n revalidatePath('/blog', 'page');\n revalidatePath('/blog/[slug]', 'page');\n\n const seen = new Set<string>();\n for (const p of options?.blogPaths ?? []) {\n if (typeof p === 'string' && p.startsWith('/blog/') && !seen.has(p)) {\n seen.add(p);\n revalidatePath(p);\n }\n }\n\n // Build and write the public search index\n await buildAndWriteSearchIndex();\n\n return actionOk();\n } catch (e) {\n return actionErr(e);\n }\n};\n"],"mappings":";;AAEA,OAAO,gBAAgB;AACvB,OAAO,UAAU;AAEjB,SAAS,YAAY;AACrB,SAAS,gBAAgB,iBAAiB;AAE1C,SAAS,iBAAiB;AAC1B,SAAS,gCAAgC,sCAAsC;AAC/E,SAAS,wBAA6C;AAEtD,SAAS,kBAAkB,sBAAsB;AACjD,SAAS,WAAW,gBAAmC;AAGvD,MAAM,oBAAoB,CAAC,YAAY,MAAM;AAE7C,MAAM,yBAAyB;AAQ/B,eAAe,4BAAuD;AA1BtE;AA2BE,QAAM,SAAS,UAAU;AACzB,QAAM,qBAAoB,YAAO,WAAP,mBAAe;AACzC,MAAI,CAAC,qBAAqB,OAAO,KAAK,iBAAiB,EAAE,WAAW,GAAG;AACrE,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,QAAQ,MAAM,KAAK,GAAG,OAAO,aAAa,YAAY;AAC5D,QAAM,UAA4B,CAAC;AAEnC,aAAW,QAAQ,OAAO;AACxB,UAAM,aAAa,KAAK,QAAQ,OAAO,GAAG;AAE1C,QAAI,WAAW,SAAS,SAAS,EAAG;AAEpC,QAAI;AACF,YAAM,WAAW,KAAK,KAAK,QAAQ,IAAI,GAAG,UAAU;AACpD,YAAM,OAAO,MAAM,WAAW,SAAS,UAAU,EAAE,UAAU,OAAO,CAAC;AACrE,YAAM,UAAU,KAAK,MAAM,IAAI;AAC/B,YAAM,MAAM,QAAQ;AACpB,YAAM,OAAO,2BAAK;AAGlB,UAAI,CAAC,QAAQ,EAAE,QAAQ,mBAAoB;AAG3C,YAAM,aAAqC,CAAC;AAC5C,UAAI,MAAM;AACR,cAAM,UAAU,+BAA+B,YAAY,MAAM,OAAO,WAAW;AACnF,mBAAW,CAAC,WAAW,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACzD,cAAI;AACF,kBAAM,aAAa,KAAK,KAAK,QAAQ,IAAI,GAAG,MAAM;AAClD,uBAAW,SAAS,IAAI,MAAM,WAAW,SAAS,YAAY,EAAE,UAAU,OAAO,CAAC;AAAA,UACpF,SAAQ;AACN,uBAAW,SAAS,IAAI;AAAA,UAC1B;AAAA,QACF;AACA,cAAM,UAAU,+BAA+B,YAAY,MAAM,OAAO,WAAW;AACnF,mBAAW,CAAC,WAAW,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACzD,cAAI;AACF,kBAAM,aAAa,KAAK,KAAK,QAAQ,IAAI,GAAG,MAAM;AAClD,uBAAW,SAAS,IAAI,MAAM,WAAW,SAAS,YAAY,EAAE,UAAU,OAAO,CAAC;AAAA,UACpF,SAAQ;AACN,uBAAW,SAAS,IAAI;AAAA,UAC1B;AAAA,QACF;AAAA,MACF;AAEA,cAAQ,KAAK;AAAA,QACX,MAAM,WAAW,QAAQ,GAAG,OAAO,aAAa,KAAK,EAAE;AAAA,QACvD;AAAA,QACA,kBAAkB;AAAA,MACpB,CAAC;AAAA,IACH,SAAQ;AAAA,IAER;AAAA,EACF;AAEA,SAAO;AACT;AAGA,eAAe,2BAA0C;AAxFzD;AAyFE,QAAM,SAAS,UAAU;AACzB,QAAM,qBAAoB,YAAO,WAAP,mBAAe;AACzC,MAAI,CAAC,qBAAqB,OAAO,KAAK,iBAAiB,EAAE,WAAW,GAAG;AACrE;AAAA,EACF;AAEA,MAAI;AACF,UAAM,UAAU,MAAM,0BAA0B;AAChD,UAAM,YAAY,iBAAiB,SAAS,QAAQ,OAAO,KAAK,iBAAiB,CAAC;AAElF,QAAI,iBAAiB,GAAG;AAEtB,YAAM,eAAe,wBAAwB,WAAW,0BAA0B;AAAA,IACpF,OAAO;AAEL,YAAM,WAAW,KAAK,KAAK,QAAQ,IAAI,GAAG,sBAAsB;AAChE,YAAM,WAAW,MAAM,KAAK,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AAClE,YAAM,WAAW,UAAU,UAAU,WAAW,MAAM;AAAA,IACxD;AAAA,EACF,SAAQ;AAAA,EAER;AACF;AAEO,MAAM,aAAa,OAAO,iBAA0B,YAAuD;AAjHlH;AAkHE,MAAI;AACF,eAAW,OAAO,mBAAmB;AACnC,gBAAU,GAAG;AAAA,IACf;AAEA,mBAAe,KAAK,QAAQ;AAC5B,mBAAe,SAAS,MAAM;AAC9B,mBAAe,gBAAgB,MAAM;AAErC,UAAM,OAAO,oBAAI,IAAY;AAC7B,eAAW,MAAK,wCAAS,cAAT,YAAsB,CAAC,GAAG;AACxC,UAAI,OAAO,MAAM,YAAY,EAAE,WAAW,QAAQ,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG;AACnE,aAAK,IAAI,CAAC;AACV,uBAAe,CAAC;AAAA,MAClB;AAAA,IACF;AAGA,UAAM,yBAAyB;AAE/B,WAAO,SAAS;AAAA,EAClB,SAAS,GAAG;AACV,WAAO,UAAU,CAAC;AAAA,EACpB;AACF;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EntryListItem } from '../../types';
|
|
2
|
+
export declare const getEntryList: (collection?: string) => Promise<EntryListItem[]>;
|
|
3
|
+
/**
|
|
4
|
+
* Find all content entries that reference the given entry via reference fields.
|
|
5
|
+
* Returns entries that contain `targetReferenceKey` in any reference field value.
|
|
6
|
+
*/
|
|
7
|
+
export declare const getEntryBacklinks: (targetReferenceKey: string) => Promise<EntryListItem[]>;
|
|
8
|
+
//# sourceMappingURL=entries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../admin/actions/entries.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAM9D,eAAO,MAAM,YAAY,GAAU,aAAY,MAAa,KAAG,OAAO,CAAC,aAAa,EAAE,CAoDrF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,oBAAoB,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAgE3F,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import "../../chunk-2NMEKWO5.js";
|
|
3
|
+
import fsPromises from "fs/promises";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import { getConfig } from "../../lib/configStore";
|
|
6
|
+
import { getContentFiles, getFile } from "./files";
|
|
7
|
+
import { isProductionMode } from "../github";
|
|
8
|
+
import { getEntryTitleField } from "./utils";
|
|
9
|
+
const getEntryList = async (collection = "**") => {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
const config = getConfig();
|
|
12
|
+
const files = await getContentFiles(collection);
|
|
13
|
+
const entries = [];
|
|
14
|
+
for (const file of files) {
|
|
15
|
+
const nameWithoutFolder = file.replace(`${config.contentFolder}/`, "").replace(".json", "");
|
|
16
|
+
const parts = nameWithoutFolder.split("/");
|
|
17
|
+
const type = parts[0];
|
|
18
|
+
let id = parts[parts.length - 1];
|
|
19
|
+
const titleField = getEntryTitleField(type);
|
|
20
|
+
let title = id;
|
|
21
|
+
let status = "merged";
|
|
22
|
+
let updatedAt;
|
|
23
|
+
try {
|
|
24
|
+
const content = await getFile(file);
|
|
25
|
+
if (type === "media") {
|
|
26
|
+
const sysId = (content == null ? void 0 : content.sys) && typeof content.sys === "object" && "id" in content.sys ? content.sys.id : null;
|
|
27
|
+
if (typeof sysId === "string" && sysId !== "") {
|
|
28
|
+
id = sysId;
|
|
29
|
+
}
|
|
30
|
+
const mediaTitle = (_a = content == null ? void 0 : content.fields) == null ? void 0 : _a.title;
|
|
31
|
+
if (typeof mediaTitle === "string" && mediaTitle.trim() !== "") {
|
|
32
|
+
title = mediaTitle.trim();
|
|
33
|
+
}
|
|
34
|
+
} else if (titleField && ((_b = content == null ? void 0 : content.fields) == null ? void 0 : _b[titleField])) {
|
|
35
|
+
title = content.fields[titleField];
|
|
36
|
+
}
|
|
37
|
+
if ((_c = content == null ? void 0 : content.sys) == null ? void 0 : _c.status) {
|
|
38
|
+
status = content.sys.status;
|
|
39
|
+
}
|
|
40
|
+
} catch (_e) {
|
|
41
|
+
}
|
|
42
|
+
if (!isProductionMode()) {
|
|
43
|
+
try {
|
|
44
|
+
const stat = await fsPromises.stat(path.join(process.cwd(), file));
|
|
45
|
+
updatedAt = stat.mtime.toISOString();
|
|
46
|
+
} catch (e) {
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
entries.push({ type, id, path: file, title, status, updatedAt });
|
|
50
|
+
}
|
|
51
|
+
entries.sort((a, b) => a.title.localeCompare(b.title));
|
|
52
|
+
return entries;
|
|
53
|
+
};
|
|
54
|
+
const getEntryBacklinks = async (targetReferenceKey) => {
|
|
55
|
+
var _a, _b, _c, _d;
|
|
56
|
+
const config = getConfig();
|
|
57
|
+
const allFiles = await getContentFiles("**");
|
|
58
|
+
const backlinks = [];
|
|
59
|
+
for (const file of allFiles) {
|
|
60
|
+
if (file.includes("/media/")) continue;
|
|
61
|
+
try {
|
|
62
|
+
const content = await getFile(file);
|
|
63
|
+
const type = (_a = content == null ? void 0 : content.sys) == null ? void 0 : _a.type;
|
|
64
|
+
if (!type) continue;
|
|
65
|
+
const collection = config.collections[type];
|
|
66
|
+
if (!collection) continue;
|
|
67
|
+
const referenceFieldKeys = Object.keys(collection.fields).filter(
|
|
68
|
+
(k) => collection.fields[k].format === "reference"
|
|
69
|
+
);
|
|
70
|
+
if (referenceFieldKeys.length === 0) continue;
|
|
71
|
+
let found = false;
|
|
72
|
+
for (const fieldKey of referenceFieldKeys) {
|
|
73
|
+
const fieldValue = (_b = content == null ? void 0 : content.fields) == null ? void 0 : _b[fieldKey];
|
|
74
|
+
if (!fieldValue) continue;
|
|
75
|
+
let keys = [];
|
|
76
|
+
if (typeof fieldValue === "string") {
|
|
77
|
+
try {
|
|
78
|
+
const parsed = JSON.parse(fieldValue);
|
|
79
|
+
keys = Array.isArray(parsed) ? parsed : [fieldValue];
|
|
80
|
+
} catch (e) {
|
|
81
|
+
keys = [fieldValue];
|
|
82
|
+
}
|
|
83
|
+
} else if (Array.isArray(fieldValue)) {
|
|
84
|
+
keys = fieldValue;
|
|
85
|
+
}
|
|
86
|
+
if (keys.includes(targetReferenceKey)) {
|
|
87
|
+
found = true;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (found) {
|
|
92
|
+
const nameWithoutFolder = file.replace(`${config.contentFolder}/`, "").replace(".json", "");
|
|
93
|
+
const parts = nameWithoutFolder.split("/");
|
|
94
|
+
const id = parts[parts.length - 1];
|
|
95
|
+
const titleField = getEntryTitleField(type);
|
|
96
|
+
let title = id;
|
|
97
|
+
if (titleField && ((_c = content == null ? void 0 : content.fields) == null ? void 0 : _c[titleField])) {
|
|
98
|
+
title = content.fields[titleField];
|
|
99
|
+
}
|
|
100
|
+
const status = ((_d = content == null ? void 0 : content.sys) == null ? void 0 : _d.status) || "merged";
|
|
101
|
+
backlinks.push({ type, id, path: file, title, status });
|
|
102
|
+
}
|
|
103
|
+
} catch (_e) {
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return backlinks;
|
|
107
|
+
};
|
|
108
|
+
export {
|
|
109
|
+
getEntryBacklinks,
|
|
110
|
+
getEntryList
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=entries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../admin/actions/entries.ts"],"sourcesContent":["'use server';\n\nimport fsPromises from 'fs/promises';\nimport path from 'path';\n\nimport { getConfig } from '../../lib/configStore';\nimport type { Config } from '../types';\nimport type { EntryListItem, EntryStatus } from '../../types';\n\nimport { getContentFiles, getFile } from './files';\nimport { isProductionMode } from '../github';\nimport { getEntryTitleField } from './utils';\n\nexport const getEntryList = async (collection: string = '**'): Promise<EntryListItem[]> => {\n const config = getConfig();\n const files = await getContentFiles(collection);\n const entries: EntryListItem[] = [];\n\n for (const file of files) {\n const nameWithoutFolder = file.replace(`${config.contentFolder}/`, '').replace('.json', '');\n const parts = nameWithoutFolder.split('/');\n const type = parts[0];\n let id = parts[parts.length - 1];\n const titleField = getEntryTitleField(type);\n\n let title = id;\n let status: EntryStatus = 'merged';\n let updatedAt: string | undefined;\n\n try {\n const content = await getFile(file);\n\n if (type === 'media') {\n const sysId = content?.sys && typeof content.sys === 'object' && 'id' in content.sys ? content.sys.id : null;\n if (typeof sysId === 'string' && sysId !== '') {\n id = sysId;\n }\n const mediaTitle = content?.fields?.title;\n if (typeof mediaTitle === 'string' && mediaTitle.trim() !== '') {\n title = mediaTitle.trim();\n }\n } else if (titleField && content?.fields?.[titleField]) {\n title = content.fields[titleField];\n }\n if (content?.sys?.status) {\n status = content.sys.status;\n }\n } catch (_e) {\n // Fall back to id as title\n }\n\n if (!isProductionMode()) {\n try {\n const stat = await fsPromises.stat(path.join(process.cwd(), file));\n updatedAt = stat.mtime.toISOString();\n } catch {\n // ignore\n }\n }\n\n entries.push({ type, id, path: file, title, status, updatedAt });\n }\n\n entries.sort((a, b) => a.title.localeCompare(b.title));\n return entries;\n};\n\n/**\n * Find all content entries that reference the given entry via reference fields.\n * Returns entries that contain `targetReferenceKey` in any reference field value.\n */\nexport const getEntryBacklinks = async (targetReferenceKey: string): Promise<EntryListItem[]> => {\n const config = getConfig();\n const allFiles = await getContentFiles('**');\n const backlinks: EntryListItem[] = [];\n\n for (const file of allFiles) {\n // Skip media entries\n if (file.includes('/media/')) continue;\n\n try {\n const content = await getFile(file);\n const type = content?.sys?.type;\n if (!type) continue;\n\n const collection = config.collections[type as keyof Config['collections']];\n if (!collection) continue;\n\n const referenceFieldKeys = Object.keys(collection.fields).filter(\n (k) => collection.fields[k].format === 'reference',\n );\n if (referenceFieldKeys.length === 0) continue;\n\n let found = false;\n for (const fieldKey of referenceFieldKeys) {\n const fieldValue = content?.fields?.[fieldKey];\n if (!fieldValue) continue;\n\n // Reference values can be a single string (cardinality 'one') or a JSON array string (cardinality 'many')\n let keys: string[] = [];\n if (typeof fieldValue === 'string') {\n try {\n const parsed = JSON.parse(fieldValue);\n keys = Array.isArray(parsed) ? parsed : [fieldValue];\n } catch {\n keys = [fieldValue];\n }\n } else if (Array.isArray(fieldValue)) {\n keys = fieldValue;\n }\n\n if (keys.includes(targetReferenceKey)) {\n found = true;\n break;\n }\n }\n\n if (found) {\n const nameWithoutFolder = file.replace(`${config.contentFolder}/`, '').replace('.json', '');\n const parts = nameWithoutFolder.split('/');\n const id = parts[parts.length - 1];\n const titleField = getEntryTitleField(type);\n let title = id;\n if (titleField && content?.fields?.[titleField]) {\n title = content.fields[titleField];\n }\n const status: EntryStatus = content?.sys?.status || 'merged';\n backlinks.push({ type, id, path: file, title, status });\n }\n } catch (_e) {\n // Skip files that can't be read\n }\n }\n\n return backlinks;\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ActionResult, type NewFileResult, type SaveFileResult } from './utils';
|
|
2
|
+
export type { SaveFileResult } from './utils';
|
|
3
|
+
/**
|
|
4
|
+
* In production, reject writes that would target `config.git.baseBranch` (no feature branch cookie).
|
|
5
|
+
*/
|
|
6
|
+
export declare const assertFeatureBranchForWritesIfRequired: () => Promise<void>;
|
|
7
|
+
export declare const waitForPublicReadConsistency: (fileName: string, expectedContent: string, readRef?: string) => Promise<void>;
|
|
8
|
+
export declare const getContentFiles: (collection?: string) => Promise<string[]>;
|
|
9
|
+
export declare const getMediaFiles: (folder?: string) => Promise<string[]>;
|
|
10
|
+
export declare const getFile: (fileName: string) => Promise<any>;
|
|
11
|
+
export declare const saveFile: (formData: any, fileName: string, options?: {
|
|
12
|
+
skipStatusTransition?: boolean;
|
|
13
|
+
}) => Promise<SaveFileResult>;
|
|
14
|
+
export declare const newFile: (type: string) => Promise<NewFileResult>;
|
|
15
|
+
export declare const removeFile: (fileName: string) => Promise<ActionResult>;
|
|
16
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../admin/actions/files.ts"],"names":[],"mappings":"AA6BA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqK9C;;GAEG;AACH,eAAO,MAAM,sCAAsC,QAAa,OAAO,CAAC,IAAI,CAQ3E,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAU,UAAU,MAAM,EAAE,iBAAiB,MAAM,EAAE,UAAU,MAAM,kBAyB7G,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,aAAY,MAAa,sBA8B9D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,SAAQ,MAAa,sBAqBxD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,UAAU,MAAM,iBAgE7C,CAAC;AAqBF,eAAO,MAAM,QAAQ,GACnB,UAAU,GAAG,EACb,UAAU,MAAM,EAChB,UAAU;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3C,OAAO,CAAC,cAAc,CAoJxB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,aAAa,CAiDjE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,YAAY,CA8DvE,CAAC"}
|