@delmaredigital/payload-puck 0.6.12 → 0.6.14
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/README.md +50 -1
- package/dist/admin/EditWithPuckButton.d.ts +1 -2
- package/dist/admin/EditWithPuckButton.js +64 -26
- package/dist/admin/EditWithPuckCell.d.ts +0 -1
- package/dist/admin/EditWithPuckCell.js +42 -14
- package/dist/admin/PuckEditorView.d.ts +1 -2
- package/dist/admin/PuckEditorView.js +117 -33
- package/dist/admin/client.d.ts +2 -3
- package/dist/admin/client.js +3 -5
- package/dist/admin/generateAdminComponents.d.ts +0 -1
- package/dist/admin/generateAdminComponents.js +6 -8
- package/dist/admin/index.d.ts +5 -6
- package/dist/admin/index.js +2 -3
- package/dist/ai/collections/AiContext.d.ts +0 -1
- package/dist/ai/collections/AiContext.js +55 -30
- package/dist/ai/collections/AiPrompts.d.ts +0 -1
- package/dist/ai/collections/AiPrompts.js +23 -20
- package/dist/ai/createAiApiRoutes.d.ts +0 -1
- package/dist/ai/createAiApiRoutes.js +27 -20
- package/dist/ai/createAiGenerate.d.ts +0 -1
- package/dist/ai/createAiGenerate.js +6 -9
- package/dist/ai/createAiPlugin.d.ts +0 -1
- package/dist/ai/createAiPlugin.js +6 -10
- package/dist/ai/hooks/useAiContext.d.ts +0 -1
- package/dist/ai/hooks/useAiContext.js +49 -40
- package/dist/ai/hooks/useAiPrompts.d.ts +0 -1
- package/dist/ai/hooks/useAiPrompts.js +32 -26
- package/dist/ai/index.d.ts +0 -1
- package/dist/ai/index.js +8 -11
- package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -2
- package/dist/ai/plugins/ContextEditorPanel.js +398 -108
- package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -2
- package/dist/ai/plugins/PromptEditorPanel.js +236 -52
- package/dist/ai/plugins/contextEditorPlugin.d.ts +0 -1
- package/dist/ai/plugins/contextEditorPlugin.js +11 -6
- package/dist/ai/plugins/promptApiRoutes.d.ts +0 -1
- package/dist/ai/plugins/promptApiRoutes.js +118 -51
- package/dist/ai/plugins/promptEditorPlugin.d.ts +0 -1
- package/dist/ai/plugins/promptEditorPlugin.js +11 -6
- package/dist/ai/presets/componentAiDefaults.d.ts +0 -1
- package/dist/ai/presets/componentAiDefaults.js +107 -84
- package/dist/ai/presets/index.d.ts +0 -1
- package/dist/ai/presets/index.js +11 -19
- package/dist/ai/presets/instructions/interactive.d.ts +0 -1
- package/dist/ai/presets/instructions/interactive.js +84 -76
- package/dist/ai/presets/instructions/layout.d.ts +0 -1
- package/dist/ai/presets/instructions/layout.js +121 -118
- package/dist/ai/presets/instructions/media.d.ts +0 -1
- package/dist/ai/presets/instructions/media.js +30 -30
- package/dist/ai/presets/instructions/pagePatterns.d.ts +0 -1
- package/dist/ai/presets/instructions/pagePatterns.js +3 -7
- package/dist/ai/presets/instructions/schemas.d.ts +0 -1
- package/dist/ai/presets/instructions/schemas.js +494 -138
- package/dist/ai/presets/instructions/typography.d.ts +0 -1
- package/dist/ai/presets/instructions/typography.js +37 -34
- package/dist/ai/tools/index.d.ts +0 -1
- package/dist/ai/tools/index.js +91 -56
- package/dist/ai/types.d.ts +0 -1
- package/dist/ai/types.js +6 -2
- package/dist/ai/utils/injectAiConfig.d.ts +0 -1
- package/dist/ai/utils/injectAiConfig.js +32 -41
- package/dist/api/createPuckApiRoutes.d.ts +1 -2
- package/dist/api/createPuckApiRoutes.js +122 -66
- package/dist/api/createPuckApiRoutesVersions.d.ts +1 -2
- package/dist/api/createPuckApiRoutesVersions.js +87 -38
- package/dist/api/createPuckApiRoutesWithId.d.ts +1 -2
- package/dist/api/createPuckApiRoutesWithId.js +165 -73
- package/dist/api/index.d.ts +5 -6
- package/dist/api/index.js +5 -7
- package/dist/api/payload-config.d.js +14 -0
- package/dist/api/types.d.ts +0 -1
- package/dist/api/types.js +3 -2
- package/dist/api/utils/mapRootProps.d.ts +1 -2
- package/dist/api/utils/mapRootProps.js +76 -45
- package/dist/collections/Templates.d.ts +0 -1
- package/dist/collections/Templates.js +23 -21
- package/dist/components/AccordionClient.d.ts +2 -3
- package/dist/components/AccordionClient.js +80 -23
- package/dist/components/AnimatedWrapper.d.ts +2 -3
- package/dist/components/AnimatedWrapper.js +30 -17
- package/dist/components/exports.d.ts +0 -1
- package/dist/components/exports.js +1 -3
- package/dist/components/index.d.ts +5 -6
- package/dist/components/index.js +6 -8
- package/dist/components/interactive/Accordion.d.ts +1 -2
- package/dist/components/interactive/Accordion.js +148 -56
- package/dist/components/interactive/Accordion.server.d.ts +1 -2
- package/dist/components/interactive/Accordion.server.js +24 -8
- package/dist/components/interactive/Button.d.ts +3 -4
- package/dist/components/interactive/Button.js +88 -44
- package/dist/components/interactive/Button.server.d.ts +2 -3
- package/dist/components/interactive/Button.server.js +39 -21
- package/dist/components/interactive/Card.d.ts +3 -4
- package/dist/components/interactive/Card.js +130 -40
- package/dist/components/interactive/Card.server.d.ts +3 -4
- package/dist/components/interactive/Card.server.js +71 -12
- package/dist/components/interactive/Divider.d.ts +1 -2
- package/dist/components/interactive/Divider.js +53 -27
- package/dist/components/interactive/Divider.server.d.ts +1 -2
- package/dist/components/interactive/Divider.server.js +27 -13
- package/dist/components/interactive/index.d.ts +4 -5
- package/dist/components/interactive/index.js +4 -6
- package/dist/components/layout/Container.d.ts +1 -2
- package/dist/components/layout/Container.js +100 -48
- package/dist/components/layout/Container.server.d.ts +1 -2
- package/dist/components/layout/Container.server.js +66 -20
- package/dist/components/layout/Flex.d.ts +2 -3
- package/dist/components/layout/Flex.js +123 -56
- package/dist/components/layout/Flex.server.d.ts +1 -2
- package/dist/components/layout/Flex.server.js +49 -15
- package/dist/components/layout/Grid.d.ts +1 -2
- package/dist/components/layout/Grid.js +92 -45
- package/dist/components/layout/Grid.server.d.ts +1 -2
- package/dist/components/layout/Grid.server.js +55 -15
- package/dist/components/layout/Section.d.ts +1 -2
- package/dist/components/layout/Section.js +146 -65
- package/dist/components/layout/Section.server.d.ts +1 -2
- package/dist/components/layout/Section.server.js +91 -29
- package/dist/components/layout/Spacer.d.ts +1 -2
- package/dist/components/layout/Spacer.js +79 -31
- package/dist/components/layout/Spacer.server.d.ts +1 -2
- package/dist/components/layout/Spacer.server.js +30 -10
- package/dist/components/layout/Template.d.ts +1 -2
- package/dist/components/layout/Template.js +57 -31
- package/dist/components/layout/Template.server.d.ts +1 -2
- package/dist/components/layout/Template.server.js +42 -12
- package/dist/components/layout/index.d.ts +8 -9
- package/dist/components/layout/index.js +7 -9
- package/dist/components/media/Image.d.ts +3 -4
- package/dist/components/media/Image.js +121 -40
- package/dist/components/media/Image.server.d.ts +3 -4
- package/dist/components/media/Image.server.js +75 -14
- package/dist/components/media/index.d.ts +1 -2
- package/dist/components/media/index.js +1 -3
- package/dist/components/typography/Heading.d.ts +2 -3
- package/dist/components/typography/Heading.js +44 -26
- package/dist/components/typography/Heading.server.d.ts +2 -3
- package/dist/components/typography/Heading.server.js +15 -11
- package/dist/components/typography/RichText.editor.d.ts +1 -2
- package/dist/components/typography/RichText.editor.js +43 -20
- package/dist/components/typography/RichText.server.d.ts +2 -3
- package/dist/components/typography/RichText.server.js +32 -15
- package/dist/components/typography/Text.d.ts +2 -3
- package/dist/components/typography/Text.js +48 -24
- package/dist/components/typography/Text.server.d.ts +2 -3
- package/dist/components/typography/Text.server.js +20 -9
- package/dist/components/typography/index.d.ts +4 -5
- package/dist/components/typography/index.js +4 -6
- package/dist/config/config.editor.d.ts +3 -4
- package/dist/config/config.editor.js +118 -55
- package/dist/config/index.d.ts +4 -5
- package/dist/config/index.js +61 -36
- package/dist/config/merge.d.ts +1 -2
- package/dist/config/merge.js +22 -27
- package/dist/config/presets.d.ts +4 -5
- package/dist/config/presets.js +194 -76
- package/dist/config/types.d.ts +0 -1
- package/dist/config/types.js +5 -3
- package/dist/editor/PuckEditor.d.ts +4 -5
- package/dist/editor/PuckEditor.js +161 -71
- package/dist/editor/PuckEditorImpl.client.d.ts +4 -5
- package/dist/editor/PuckEditorImpl.client.js +303 -153
- package/dist/editor/components/DarkModeStyles.d.ts +0 -1
- package/dist/editor/components/DarkModeStyles.js +10 -13
- package/dist/editor/components/HeaderActions.d.ts +0 -1
- package/dist/editor/components/HeaderActions.js +307 -65
- package/dist/editor/components/IframeWrapper.d.ts +1 -2
- package/dist/editor/components/IframeWrapper.js +81 -59
- package/dist/editor/components/LoadingState.d.ts +1 -2
- package/dist/editor/components/LoadingState.js +16 -4
- package/dist/editor/components/PreviewModal.d.ts +0 -1
- package/dist/editor/components/PreviewModal.js +233 -79
- package/dist/editor/components/PreviewModeToggle.d.ts +0 -1
- package/dist/editor/components/PreviewModeToggle.js +42 -16
- package/dist/editor/components/VersionHistory.d.ts +0 -1
- package/dist/editor/components/VersionHistory.js +218 -72
- package/dist/editor/hooks/useDarkMode.d.ts +0 -1
- package/dist/editor/hooks/useDarkMode.js +35 -24
- package/dist/editor/hooks/useUnsavedChanges.d.ts +0 -1
- package/dist/editor/hooks/useUnsavedChanges.js +7 -9
- package/dist/editor/index.d.ts +0 -1
- package/dist/editor/index.js +4 -7
- package/dist/editor/plugins/VersionHistoryPanel.d.ts +0 -1
- package/dist/editor/plugins/VersionHistoryPanel.js +235 -76
- package/dist/editor/plugins/index.d.ts +0 -1
- package/dist/editor/plugins/index.js +3 -5
- package/dist/editor/plugins/versionHistoryPlugin.d.ts +0 -1
- package/dist/editor/plugins/versionHistoryPlugin.js +9 -9
- package/dist/editor/utils/detectPageTree.d.ts +0 -1
- package/dist/editor/utils/detectPageTree.js +4 -6
- package/dist/editor/utils/index.d.ts +0 -1
- package/dist/editor/utils/index.js +0 -1
- package/dist/editor/utils/injectPageTreeFields.d.ts +0 -1
- package/dist/editor/utils/injectPageTreeFields.js +12 -10
- package/dist/endpoints/ai.d.ts +0 -1
- package/dist/endpoints/ai.js +57 -35
- package/dist/endpoints/context.d.ts +0 -1
- package/dist/endpoints/context.js +85 -41
- package/dist/endpoints/index.d.ts +0 -1
- package/dist/endpoints/index.js +152 -77
- package/dist/endpoints/postcss.d.js +4 -0
- package/dist/endpoints/prompts.d.ts +0 -1
- package/dist/endpoints/prompts.js +80 -40
- package/dist/endpoints/styles.d.ts +0 -1
- package/dist/endpoints/styles.js +33 -37
- package/dist/exports/client.d.ts +0 -1
- package/dist/exports/client.js +1 -3
- package/dist/exports/rsc.d.ts +0 -1
- package/dist/exports/rsc.js +1 -3
- package/dist/fields/AlignmentField.d.ts +1 -2
- package/dist/fields/AlignmentField.js +92 -31
- package/dist/fields/AnimationField.d.ts +2 -3
- package/dist/fields/AnimationField.js +557 -85
- package/dist/fields/BackgroundField.d.ts +2 -3
- package/dist/fields/BackgroundField.js +753 -121
- package/dist/fields/BorderField.d.ts +2 -3
- package/dist/fields/BorderField.js +274 -74
- package/dist/fields/ColorPickerField.d.ts +2 -3
- package/dist/fields/ColorPickerField.js +209 -69
- package/dist/fields/ContentAlignmentField.d.ts +1 -2
- package/dist/fields/ContentAlignmentField.js +160 -76
- package/dist/fields/DimensionsField.d.ts +2 -3
- package/dist/fields/DimensionsField.js +574 -147
- package/dist/fields/FlexAlignmentField.d.ts +2 -3
- package/dist/fields/FlexAlignmentField.js +188 -52
- package/dist/fields/FolderPickerField.d.ts +8 -2
- package/dist/fields/FolderPickerField.js +287 -76
- package/dist/fields/GradientEditor.d.ts +2 -3
- package/dist/fields/GradientEditor.js +461 -87
- package/dist/fields/LockedField.d.ts +15 -3
- package/dist/fields/LockedField.js +179 -50
- package/dist/fields/MarginField.d.ts +2 -3
- package/dist/fields/MarginField.js +143 -47
- package/dist/fields/MediaField.d.ts +1 -2
- package/dist/fields/MediaField.js +687 -187
- package/dist/fields/PaddingField.d.ts +2 -3
- package/dist/fields/PaddingField.js +143 -47
- package/dist/fields/PageSegmentField.d.ts +15 -3
- package/dist/fields/PageSegmentField.js +155 -55
- package/dist/fields/ResetField.d.ts +1 -2
- package/dist/fields/ResetField.js +58 -32
- package/dist/fields/ResponsiveField.d.ts +1 -2
- package/dist/fields/ResponsiveField.js +232 -91
- package/dist/fields/ResponsiveVisibilityField.d.ts +2 -3
- package/dist/fields/ResponsiveVisibilityField.js +118 -37
- package/dist/fields/SizeField.d.ts +3 -4
- package/dist/fields/SizeField.js +225 -53
- package/dist/fields/SlugPreviewField.d.ts +8 -2
- package/dist/fields/SlugPreviewField.js +64 -17
- package/dist/fields/TemplateField.d.ts +1 -2
- package/dist/fields/TemplateField.js +361 -121
- package/dist/fields/TransformField.d.ts +2 -3
- package/dist/fields/TransformField.js +516 -82
- package/dist/fields/VerticalAlignmentField.d.ts +1 -2
- package/dist/fields/VerticalAlignmentField.js +92 -31
- package/dist/fields/WidthField.d.ts +2 -3
- package/dist/fields/WidthField.js +277 -82
- package/dist/fields/index.d.ts +41 -42
- package/dist/fields/index.js +36 -44
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -3
- package/dist/fields/richtext/controls/ColorPickerControl.js +211 -48
- package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -3
- package/dist/fields/richtext/controls/DropdownPortal.js +35 -5
- package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -2
- package/dist/fields/richtext/controls/FontSizeControl.js +108 -25
- package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -2
- package/dist/fields/richtext/controls/HighlightControl.js +53 -18
- package/dist/fields/richtext/controls/index.d.ts +5 -6
- package/dist/fields/richtext/controls/index.js +7 -12
- package/dist/fields/richtext/controls/shared.d.ts +0 -1
- package/dist/fields/richtext/controls/shared.js +107 -64
- package/dist/fields/richtext/createRichTextField.d.ts +18 -5
- package/dist/fields/richtext/createRichTextField.js +112 -27
- package/dist/fields/richtext/extensions/FontSize.d.ts +0 -1
- package/dist/fields/richtext/extensions/FontSize.js +25 -21
- package/dist/fields/richtext/extensions/index.d.ts +1 -2
- package/dist/fields/richtext/extensions/index.js +1 -3
- package/dist/fields/richtext/index.d.ts +6 -7
- package/dist/fields/richtext/index.js +7 -9
- package/dist/fields/shared.d.ts +1 -2
- package/dist/fields/shared.js +914 -479
- package/dist/hooks/index.d.ts +2 -3
- package/dist/hooks/index.js +2 -4
- package/dist/hooks/useResponsiveStyles.d.ts +1 -2
- package/dist/hooks/useResponsiveStyles.js +35 -33
- package/dist/hooks/useScrollAnimation.d.ts +0 -1
- package/dist/hooks/useScrollAnimation.js +25 -25
- package/dist/index.d.ts +4 -5
- package/dist/index.js +4 -6
- package/dist/layouts/LayoutWrapper.d.ts +3 -4
- package/dist/layouts/LayoutWrapper.js +114 -52
- package/dist/layouts/defaults.d.ts +1 -2
- package/dist/layouts/defaults.js +22 -32
- package/dist/layouts/index.d.ts +4 -5
- package/dist/layouts/index.js +4 -5
- package/dist/layouts/types.d.ts +0 -1
- package/dist/layouts/types.js +3 -3
- package/dist/layouts/utils.d.ts +1 -2
- package/dist/layouts/utils.js +31 -41
- package/dist/next/index.d.ts +0 -1
- package/dist/next/index.js +30 -35
- package/dist/plugin/collections/Pages.d.ts +2 -3
- package/dist/plugin/collections/Pages.js +45 -44
- package/dist/plugin/fields/index.d.ts +3 -4
- package/dist/plugin/fields/index.js +99 -79
- package/dist/plugin/fields/types.d.ts +1 -2
- package/dist/plugin/fields/types.js +25 -3
- package/dist/plugin/hooks/index.d.ts +1 -2
- package/dist/plugin/hooks/index.js +1 -3
- package/dist/plugin/hooks/isHomepageUnique.d.ts +0 -1
- package/dist/plugin/hooks/isHomepageUnique.js +27 -20
- package/dist/plugin/index.d.ts +8 -9
- package/dist/plugin/index.js +189 -189
- package/dist/render/HybridPageRenderer.d.ts +2 -3
- package/dist/render/HybridPageRenderer.js +57 -11
- package/dist/render/PageRenderer.d.ts +2 -3
- package/dist/render/PageRenderer.js +30 -15
- package/dist/render/PuckEditor.client.d.ts +1 -2
- package/dist/render/PuckEditor.client.js +32 -17
- package/dist/render/index.d.ts +5 -6
- package/dist/render/index.js +4 -7
- package/dist/styles/puck-dark-mode.css +101 -0
- package/dist/theme/context.d.ts +2 -3
- package/dist/theme/context.js +20 -19
- package/dist/theme/defaults.d.ts +1 -2
- package/dist/theme/defaults.js +82 -38
- package/dist/theme/example.d.ts +1 -2
- package/dist/theme/example.js +67 -31
- package/dist/theme/index.d.ts +5 -6
- package/dist/theme/index.js +5 -6
- package/dist/theme/types.d.ts +0 -1
- package/dist/theme/types.js +5 -3
- package/dist/theme/utils.d.ts +1 -2
- package/dist/theme/utils.js +23 -26
- package/dist/types/index.d.ts +6 -7
- package/dist/types/index.js +2 -2
- package/dist/utils/index.d.ts +2 -3
- package/dist/utils/index.js +12 -23
- package/dist/utils/migration.d.ts +1 -2
- package/dist/utils/migration.js +42 -50
- package/dist/utils/validation.d.ts +1 -2
- package/dist/utils/validation.js +35 -44
- package/dist/version.d.ts +1 -2
- package/dist/version.js +1 -2
- package/dist/views/PuckConfigContext.d.ts +1 -2
- package/dist/views/PuckConfigContext.js +24 -11
- package/dist/views/PuckEditorView.d.ts +1 -2
- package/dist/views/PuckEditorView.js +105 -39
- package/dist/views/index.d.ts +0 -1
- package/dist/views/index.js +1 -3
- package/package.json +62 -42
- package/dist/admin/EditWithPuckButton.d.ts.map +0 -1
- package/dist/admin/EditWithPuckButton.js.map +0 -1
- package/dist/admin/EditWithPuckCell.d.ts.map +0 -1
- package/dist/admin/EditWithPuckCell.js.map +0 -1
- package/dist/admin/PuckEditorView.d.ts.map +0 -1
- package/dist/admin/PuckEditorView.js.map +0 -1
- package/dist/admin/client.d.ts.map +0 -1
- package/dist/admin/client.js.map +0 -1
- package/dist/admin/generateAdminComponents.d.ts.map +0 -1
- package/dist/admin/generateAdminComponents.js.map +0 -1
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js.map +0 -1
- package/dist/ai/collections/AiContext.d.ts.map +0 -1
- package/dist/ai/collections/AiContext.js.map +0 -1
- package/dist/ai/collections/AiPrompts.d.ts.map +0 -1
- package/dist/ai/collections/AiPrompts.js.map +0 -1
- package/dist/ai/createAiApiRoutes.d.ts.map +0 -1
- package/dist/ai/createAiApiRoutes.js.map +0 -1
- package/dist/ai/createAiGenerate.d.ts.map +0 -1
- package/dist/ai/createAiGenerate.js.map +0 -1
- package/dist/ai/createAiPlugin.d.ts.map +0 -1
- package/dist/ai/createAiPlugin.js.map +0 -1
- package/dist/ai/hooks/useAiContext.d.ts.map +0 -1
- package/dist/ai/hooks/useAiContext.js.map +0 -1
- package/dist/ai/hooks/useAiPrompts.d.ts.map +0 -1
- package/dist/ai/hooks/useAiPrompts.js.map +0 -1
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/index.js.map +0 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts.map +0 -1
- package/dist/ai/plugins/ContextEditorPanel.js.map +0 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts.map +0 -1
- package/dist/ai/plugins/PromptEditorPanel.js.map +0 -1
- package/dist/ai/plugins/contextEditorPlugin.d.ts.map +0 -1
- package/dist/ai/plugins/contextEditorPlugin.js.map +0 -1
- package/dist/ai/plugins/promptApiRoutes.d.ts.map +0 -1
- package/dist/ai/plugins/promptApiRoutes.js.map +0 -1
- package/dist/ai/plugins/promptEditorPlugin.d.ts.map +0 -1
- package/dist/ai/plugins/promptEditorPlugin.js.map +0 -1
- package/dist/ai/presets/componentAiDefaults.d.ts.map +0 -1
- package/dist/ai/presets/componentAiDefaults.js.map +0 -1
- package/dist/ai/presets/index.d.ts.map +0 -1
- package/dist/ai/presets/index.js.map +0 -1
- package/dist/ai/presets/instructions/interactive.d.ts.map +0 -1
- package/dist/ai/presets/instructions/interactive.js.map +0 -1
- package/dist/ai/presets/instructions/layout.d.ts.map +0 -1
- package/dist/ai/presets/instructions/layout.js.map +0 -1
- package/dist/ai/presets/instructions/media.d.ts.map +0 -1
- package/dist/ai/presets/instructions/media.js.map +0 -1
- package/dist/ai/presets/instructions/pagePatterns.d.ts.map +0 -1
- package/dist/ai/presets/instructions/pagePatterns.js.map +0 -1
- package/dist/ai/presets/instructions/schemas.d.ts.map +0 -1
- package/dist/ai/presets/instructions/schemas.js.map +0 -1
- package/dist/ai/presets/instructions/typography.d.ts.map +0 -1
- package/dist/ai/presets/instructions/typography.js.map +0 -1
- package/dist/ai/tools/index.d.ts.map +0 -1
- package/dist/ai/tools/index.js.map +0 -1
- package/dist/ai/types.d.ts.map +0 -1
- package/dist/ai/types.js.map +0 -1
- package/dist/ai/utils/injectAiConfig.d.ts.map +0 -1
- package/dist/ai/utils/injectAiConfig.js.map +0 -1
- package/dist/api/createPuckApiRoutes.d.ts.map +0 -1
- package/dist/api/createPuckApiRoutes.js.map +0 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts.map +0 -1
- package/dist/api/createPuckApiRoutesVersions.js.map +0 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +0 -1
- package/dist/api/createPuckApiRoutesWithId.js.map +0 -1
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/types.d.ts.map +0 -1
- package/dist/api/types.js.map +0 -1
- package/dist/api/utils/mapRootProps.d.ts.map +0 -1
- package/dist/api/utils/mapRootProps.js.map +0 -1
- package/dist/collections/Templates.d.ts.map +0 -1
- package/dist/collections/Templates.js.map +0 -1
- package/dist/components/AccordionClient.d.ts.map +0 -1
- package/dist/components/AccordionClient.js.map +0 -1
- package/dist/components/AnimatedWrapper.d.ts.map +0 -1
- package/dist/components/AnimatedWrapper.js.map +0 -1
- package/dist/components/exports.d.ts.map +0 -1
- package/dist/components/exports.js.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/interactive/Accordion.d.ts.map +0 -1
- package/dist/components/interactive/Accordion.js.map +0 -1
- package/dist/components/interactive/Accordion.server.d.ts.map +0 -1
- package/dist/components/interactive/Accordion.server.js.map +0 -1
- package/dist/components/interactive/Button.d.ts.map +0 -1
- package/dist/components/interactive/Button.js.map +0 -1
- package/dist/components/interactive/Button.server.d.ts.map +0 -1
- package/dist/components/interactive/Button.server.js.map +0 -1
- package/dist/components/interactive/Card.d.ts.map +0 -1
- package/dist/components/interactive/Card.js.map +0 -1
- package/dist/components/interactive/Card.server.d.ts.map +0 -1
- package/dist/components/interactive/Card.server.js.map +0 -1
- package/dist/components/interactive/Divider.d.ts.map +0 -1
- package/dist/components/interactive/Divider.js.map +0 -1
- package/dist/components/interactive/Divider.server.d.ts.map +0 -1
- package/dist/components/interactive/Divider.server.js.map +0 -1
- package/dist/components/interactive/index.d.ts.map +0 -1
- package/dist/components/interactive/index.js.map +0 -1
- package/dist/components/layout/Container.d.ts.map +0 -1
- package/dist/components/layout/Container.js.map +0 -1
- package/dist/components/layout/Container.server.d.ts.map +0 -1
- package/dist/components/layout/Container.server.js.map +0 -1
- package/dist/components/layout/Flex.d.ts.map +0 -1
- package/dist/components/layout/Flex.js.map +0 -1
- package/dist/components/layout/Flex.server.d.ts.map +0 -1
- package/dist/components/layout/Flex.server.js.map +0 -1
- package/dist/components/layout/Grid.d.ts.map +0 -1
- package/dist/components/layout/Grid.js.map +0 -1
- package/dist/components/layout/Grid.server.d.ts.map +0 -1
- package/dist/components/layout/Grid.server.js.map +0 -1
- package/dist/components/layout/Section.d.ts.map +0 -1
- package/dist/components/layout/Section.js.map +0 -1
- package/dist/components/layout/Section.server.d.ts.map +0 -1
- package/dist/components/layout/Section.server.js.map +0 -1
- package/dist/components/layout/Spacer.d.ts.map +0 -1
- package/dist/components/layout/Spacer.js.map +0 -1
- package/dist/components/layout/Spacer.server.d.ts.map +0 -1
- package/dist/components/layout/Spacer.server.js.map +0 -1
- package/dist/components/layout/Template.d.ts.map +0 -1
- package/dist/components/layout/Template.js.map +0 -1
- package/dist/components/layout/Template.server.d.ts.map +0 -1
- package/dist/components/layout/Template.server.js.map +0 -1
- package/dist/components/layout/index.d.ts.map +0 -1
- package/dist/components/layout/index.js.map +0 -1
- package/dist/components/media/Image.d.ts.map +0 -1
- package/dist/components/media/Image.js.map +0 -1
- package/dist/components/media/Image.server.d.ts.map +0 -1
- package/dist/components/media/Image.server.js.map +0 -1
- package/dist/components/media/index.d.ts.map +0 -1
- package/dist/components/media/index.js.map +0 -1
- package/dist/components/typography/Heading.d.ts.map +0 -1
- package/dist/components/typography/Heading.js.map +0 -1
- package/dist/components/typography/Heading.server.d.ts.map +0 -1
- package/dist/components/typography/Heading.server.js.map +0 -1
- package/dist/components/typography/RichText.editor.d.ts.map +0 -1
- package/dist/components/typography/RichText.editor.js.map +0 -1
- package/dist/components/typography/RichText.server.d.ts.map +0 -1
- package/dist/components/typography/RichText.server.js.map +0 -1
- package/dist/components/typography/Text.d.ts.map +0 -1
- package/dist/components/typography/Text.js.map +0 -1
- package/dist/components/typography/Text.server.d.ts.map +0 -1
- package/dist/components/typography/Text.server.js.map +0 -1
- package/dist/components/typography/index.d.ts.map +0 -1
- package/dist/components/typography/index.js.map +0 -1
- package/dist/config/config.editor.d.ts.map +0 -1
- package/dist/config/config.editor.js.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/config/merge.d.ts.map +0 -1
- package/dist/config/merge.js.map +0 -1
- package/dist/config/presets.d.ts.map +0 -1
- package/dist/config/presets.js.map +0 -1
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js.map +0 -1
- package/dist/editor/PuckEditor.d.ts.map +0 -1
- package/dist/editor/PuckEditor.js.map +0 -1
- package/dist/editor/PuckEditorImpl.client.d.ts.map +0 -1
- package/dist/editor/PuckEditorImpl.client.js.map +0 -1
- package/dist/editor/components/DarkModeStyles.d.ts.map +0 -1
- package/dist/editor/components/DarkModeStyles.js.map +0 -1
- package/dist/editor/components/HeaderActions.d.ts.map +0 -1
- package/dist/editor/components/HeaderActions.js.map +0 -1
- package/dist/editor/components/IframeWrapper.d.ts.map +0 -1
- package/dist/editor/components/IframeWrapper.js.map +0 -1
- package/dist/editor/components/LoadingState.d.ts.map +0 -1
- package/dist/editor/components/LoadingState.js.map +0 -1
- package/dist/editor/components/PreviewModal.d.ts.map +0 -1
- package/dist/editor/components/PreviewModal.js.map +0 -1
- package/dist/editor/components/PreviewModeToggle.d.ts.map +0 -1
- package/dist/editor/components/PreviewModeToggle.js.map +0 -1
- package/dist/editor/components/VersionHistory.d.ts.map +0 -1
- package/dist/editor/components/VersionHistory.js.map +0 -1
- package/dist/editor/hooks/useDarkMode.d.ts.map +0 -1
- package/dist/editor/hooks/useDarkMode.js.map +0 -1
- package/dist/editor/hooks/useUnsavedChanges.d.ts.map +0 -1
- package/dist/editor/hooks/useUnsavedChanges.js.map +0 -1
- package/dist/editor/index.d.ts.map +0 -1
- package/dist/editor/index.js.map +0 -1
- package/dist/editor/plugins/VersionHistoryPanel.d.ts.map +0 -1
- package/dist/editor/plugins/VersionHistoryPanel.js.map +0 -1
- package/dist/editor/plugins/index.d.ts.map +0 -1
- package/dist/editor/plugins/index.js.map +0 -1
- package/dist/editor/plugins/versionHistoryPlugin.d.ts.map +0 -1
- package/dist/editor/plugins/versionHistoryPlugin.js.map +0 -1
- package/dist/editor/utils/detectPageTree.d.ts.map +0 -1
- package/dist/editor/utils/detectPageTree.js.map +0 -1
- package/dist/editor/utils/index.d.ts.map +0 -1
- package/dist/editor/utils/index.js.map +0 -1
- package/dist/editor/utils/injectPageTreeFields.d.ts.map +0 -1
- package/dist/editor/utils/injectPageTreeFields.js.map +0 -1
- package/dist/endpoints/ai.d.ts.map +0 -1
- package/dist/endpoints/ai.js.map +0 -1
- package/dist/endpoints/context.d.ts.map +0 -1
- package/dist/endpoints/context.js.map +0 -1
- package/dist/endpoints/index.d.ts.map +0 -1
- package/dist/endpoints/index.js.map +0 -1
- package/dist/endpoints/prompts.d.ts.map +0 -1
- package/dist/endpoints/prompts.js.map +0 -1
- package/dist/endpoints/styles.d.ts.map +0 -1
- package/dist/endpoints/styles.js.map +0 -1
- package/dist/exports/client.d.ts.map +0 -1
- package/dist/exports/client.js.map +0 -1
- package/dist/exports/rsc.d.ts.map +0 -1
- package/dist/exports/rsc.js.map +0 -1
- package/dist/fields/AlignmentField.d.ts.map +0 -1
- package/dist/fields/AlignmentField.js.map +0 -1
- package/dist/fields/AnimationField.d.ts.map +0 -1
- package/dist/fields/AnimationField.js.map +0 -1
- package/dist/fields/BackgroundField.d.ts.map +0 -1
- package/dist/fields/BackgroundField.js.map +0 -1
- package/dist/fields/BorderField.d.ts.map +0 -1
- package/dist/fields/BorderField.js.map +0 -1
- package/dist/fields/ColorPickerField.d.ts.map +0 -1
- package/dist/fields/ColorPickerField.js.map +0 -1
- package/dist/fields/ContentAlignmentField.d.ts.map +0 -1
- package/dist/fields/ContentAlignmentField.js.map +0 -1
- package/dist/fields/DimensionsField.d.ts.map +0 -1
- package/dist/fields/DimensionsField.js.map +0 -1
- package/dist/fields/FlexAlignmentField.d.ts.map +0 -1
- package/dist/fields/FlexAlignmentField.js.map +0 -1
- package/dist/fields/FolderPickerField.d.ts.map +0 -1
- package/dist/fields/FolderPickerField.js.map +0 -1
- package/dist/fields/GradientEditor.d.ts.map +0 -1
- package/dist/fields/GradientEditor.js.map +0 -1
- package/dist/fields/LockedField.d.ts.map +0 -1
- package/dist/fields/LockedField.js.map +0 -1
- package/dist/fields/MarginField.d.ts.map +0 -1
- package/dist/fields/MarginField.js.map +0 -1
- package/dist/fields/MediaField.d.ts.map +0 -1
- package/dist/fields/MediaField.js.map +0 -1
- package/dist/fields/PaddingField.d.ts.map +0 -1
- package/dist/fields/PaddingField.js.map +0 -1
- package/dist/fields/PageSegmentField.d.ts.map +0 -1
- package/dist/fields/PageSegmentField.js.map +0 -1
- package/dist/fields/ResetField.d.ts.map +0 -1
- package/dist/fields/ResetField.js.map +0 -1
- package/dist/fields/ResponsiveField.d.ts.map +0 -1
- package/dist/fields/ResponsiveField.js.map +0 -1
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +0 -1
- package/dist/fields/ResponsiveVisibilityField.js.map +0 -1
- package/dist/fields/SizeField.d.ts.map +0 -1
- package/dist/fields/SizeField.js.map +0 -1
- package/dist/fields/SlugPreviewField.d.ts.map +0 -1
- package/dist/fields/SlugPreviewField.js.map +0 -1
- package/dist/fields/TemplateField.d.ts.map +0 -1
- package/dist/fields/TemplateField.js.map +0 -1
- package/dist/fields/TransformField.d.ts.map +0 -1
- package/dist/fields/TransformField.js.map +0 -1
- package/dist/fields/VerticalAlignmentField.d.ts.map +0 -1
- package/dist/fields/VerticalAlignmentField.js.map +0 -1
- package/dist/fields/WidthField.d.ts.map +0 -1
- package/dist/fields/WidthField.js.map +0 -1
- package/dist/fields/index.d.ts.map +0 -1
- package/dist/fields/index.js.map +0 -1
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +0 -1
- package/dist/fields/richtext/controls/ColorPickerControl.js.map +0 -1
- package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +0 -1
- package/dist/fields/richtext/controls/DropdownPortal.js.map +0 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +0 -1
- package/dist/fields/richtext/controls/FontSizeControl.js.map +0 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts.map +0 -1
- package/dist/fields/richtext/controls/HighlightControl.js.map +0 -1
- package/dist/fields/richtext/controls/index.d.ts.map +0 -1
- package/dist/fields/richtext/controls/index.js.map +0 -1
- package/dist/fields/richtext/controls/shared.d.ts.map +0 -1
- package/dist/fields/richtext/controls/shared.js.map +0 -1
- package/dist/fields/richtext/createRichTextField.d.ts.map +0 -1
- package/dist/fields/richtext/createRichTextField.js.map +0 -1
- package/dist/fields/richtext/extensions/FontSize.d.ts.map +0 -1
- package/dist/fields/richtext/extensions/FontSize.js.map +0 -1
- package/dist/fields/richtext/extensions/index.d.ts.map +0 -1
- package/dist/fields/richtext/extensions/index.js.map +0 -1
- package/dist/fields/richtext/index.d.ts.map +0 -1
- package/dist/fields/richtext/index.js.map +0 -1
- package/dist/fields/shared.d.ts.map +0 -1
- package/dist/fields/shared.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useResponsiveStyles.d.ts.map +0 -1
- package/dist/hooks/useResponsiveStyles.js.map +0 -1
- package/dist/hooks/useScrollAnimation.d.ts.map +0 -1
- package/dist/hooks/useScrollAnimation.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/layouts/LayoutWrapper.d.ts.map +0 -1
- package/dist/layouts/LayoutWrapper.js.map +0 -1
- package/dist/layouts/defaults.d.ts.map +0 -1
- package/dist/layouts/defaults.js.map +0 -1
- package/dist/layouts/index.d.ts.map +0 -1
- package/dist/layouts/index.js.map +0 -1
- package/dist/layouts/types.d.ts.map +0 -1
- package/dist/layouts/types.js.map +0 -1
- package/dist/layouts/utils.d.ts.map +0 -1
- package/dist/layouts/utils.js.map +0 -1
- package/dist/next/index.d.ts.map +0 -1
- package/dist/next/index.js.map +0 -1
- package/dist/plugin/collections/Pages.d.ts.map +0 -1
- package/dist/plugin/collections/Pages.js.map +0 -1
- package/dist/plugin/fields/index.d.ts.map +0 -1
- package/dist/plugin/fields/index.js.map +0 -1
- package/dist/plugin/fields/types.d.ts.map +0 -1
- package/dist/plugin/fields/types.js.map +0 -1
- package/dist/plugin/hooks/index.d.ts.map +0 -1
- package/dist/plugin/hooks/index.js.map +0 -1
- package/dist/plugin/hooks/isHomepageUnique.d.ts.map +0 -1
- package/dist/plugin/hooks/isHomepageUnique.js.map +0 -1
- package/dist/plugin/index.d.ts.map +0 -1
- package/dist/plugin/index.js.map +0 -1
- package/dist/render/HybridPageRenderer.d.ts.map +0 -1
- package/dist/render/HybridPageRenderer.js.map +0 -1
- package/dist/render/PageRenderer.d.ts.map +0 -1
- package/dist/render/PageRenderer.js.map +0 -1
- package/dist/render/PuckEditor.client.d.ts.map +0 -1
- package/dist/render/PuckEditor.client.js.map +0 -1
- package/dist/render/index.d.ts.map +0 -1
- package/dist/render/index.js.map +0 -1
- package/dist/theme/context.d.ts.map +0 -1
- package/dist/theme/context.js.map +0 -1
- package/dist/theme/defaults.d.ts.map +0 -1
- package/dist/theme/defaults.js.map +0 -1
- package/dist/theme/example.d.ts.map +0 -1
- package/dist/theme/example.js.map +0 -1
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/utils.d.ts.map +0 -1
- package/dist/theme/utils.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/migration.d.ts.map +0 -1
- package/dist/utils/migration.js.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js.map +0 -1
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js.map +0 -1
- package/dist/views/PuckConfigContext.d.ts.map +0 -1
- package/dist/views/PuckConfigContext.js.map +0 -1
- package/dist/views/PuckEditorView.d.ts.map +0 -1
- package/dist/views/PuckEditorView.js.map +0 -1
- package/dist/views/index.d.ts.map +0 -1
- package/dist/views/index.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import { getPayload } from 'payload';
|
|
3
|
-
import { mapRootPropsToPayloadFields, deepMerge } from './utils/mapRootProps';
|
|
3
|
+
import { mapRootPropsToPayloadFields, deepMerge } from './utils/mapRootProps.js';
|
|
4
4
|
/**
|
|
5
5
|
* Create API route handlers for /api/puck/pages/[id]
|
|
6
6
|
*
|
|
@@ -31,36 +31,48 @@ import { mapRootPropsToPayloadFields, deepMerge } from './utils/mapRootProps';
|
|
|
31
31
|
* ],
|
|
32
32
|
* })
|
|
33
33
|
* ```
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
const { collection = 'pages', payloadConfig, auth, rootPropsMapping, onError, } = routeConfig;
|
|
34
|
+
*/ export function createPuckApiRoutesWithId(routeConfig) {
|
|
35
|
+
const { collection = 'pages', payloadConfig, auth, rootPropsMapping, onError } = routeConfig;
|
|
37
36
|
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
async function GET(request, context) {
|
|
37
|
+
* GET /api/puck/pages/[id]
|
|
38
|
+
* Fetch a single page by ID
|
|
39
|
+
*/ async function GET(request, context) {
|
|
42
40
|
try {
|
|
43
41
|
// Get page ID from params
|
|
44
42
|
const params = await context.params;
|
|
45
43
|
const id = params.id;
|
|
46
44
|
if (!id) {
|
|
47
|
-
return NextResponse.json({
|
|
45
|
+
return NextResponse.json({
|
|
46
|
+
error: 'Page ID is required'
|
|
47
|
+
}, {
|
|
48
|
+
status: 400
|
|
49
|
+
});
|
|
48
50
|
}
|
|
49
51
|
// Authenticate
|
|
50
52
|
const authResult = await auth.authenticate(request);
|
|
51
53
|
if (!authResult.authenticated || !authResult.user) {
|
|
52
|
-
return NextResponse.json({
|
|
54
|
+
return NextResponse.json({
|
|
55
|
+
error: authResult.error || 'Unauthorized'
|
|
56
|
+
}, {
|
|
57
|
+
status: 401
|
|
58
|
+
});
|
|
53
59
|
}
|
|
54
60
|
// Check view permission
|
|
55
61
|
if (auth.canView) {
|
|
56
62
|
const permission = await auth.canView(authResult.user, id);
|
|
57
63
|
if (!permission.allowed) {
|
|
58
|
-
return NextResponse.json({
|
|
64
|
+
return NextResponse.json({
|
|
65
|
+
error: permission.error || 'Forbidden'
|
|
66
|
+
}, {
|
|
67
|
+
status: 403
|
|
68
|
+
});
|
|
59
69
|
}
|
|
60
70
|
}
|
|
61
71
|
// Get Payload instance with provided config
|
|
62
72
|
const config = await payloadConfig;
|
|
63
|
-
const payload = await getPayload({
|
|
73
|
+
const payload = await getPayload({
|
|
74
|
+
config
|
|
75
|
+
});
|
|
64
76
|
// Check if caller wants draft or published version
|
|
65
77
|
// Default to draft=true for editor use (load latest draft)
|
|
66
78
|
const url = new URL(request.url);
|
|
@@ -68,57 +80,81 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
68
80
|
const page = await payload.findByID({
|
|
69
81
|
collection,
|
|
70
82
|
id,
|
|
71
|
-
draft: wantsDraft
|
|
83
|
+
draft: wantsDraft
|
|
72
84
|
});
|
|
73
85
|
if (!page) {
|
|
74
|
-
return NextResponse.json({
|
|
86
|
+
return NextResponse.json({
|
|
87
|
+
error: 'Page not found'
|
|
88
|
+
}, {
|
|
89
|
+
status: 404
|
|
90
|
+
});
|
|
75
91
|
}
|
|
76
|
-
return NextResponse.json({
|
|
77
|
-
|
|
78
|
-
|
|
92
|
+
return NextResponse.json({
|
|
93
|
+
doc: page
|
|
94
|
+
});
|
|
95
|
+
} catch (error) {
|
|
79
96
|
const params = await context.params;
|
|
80
97
|
if (onError) {
|
|
81
|
-
onError(error, {
|
|
98
|
+
onError(error, {
|
|
99
|
+
operation: 'read',
|
|
100
|
+
request,
|
|
101
|
+
pageId: params.id
|
|
102
|
+
});
|
|
82
103
|
}
|
|
83
104
|
console.error('Error fetching page:', error);
|
|
84
|
-
return NextResponse.json({
|
|
105
|
+
return NextResponse.json({
|
|
106
|
+
error: 'Failed to fetch page'
|
|
107
|
+
}, {
|
|
108
|
+
status: 500
|
|
109
|
+
});
|
|
85
110
|
}
|
|
86
111
|
}
|
|
87
112
|
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
async function PATCH(request, context) {
|
|
113
|
+
* PATCH /api/puck/pages/[id]
|
|
114
|
+
* Update a page with Puck data
|
|
115
|
+
*
|
|
116
|
+
* Request Body:
|
|
117
|
+
* - puckData?: PuckData - Full Puck editor data
|
|
118
|
+
* - title?: string - Override title (also synced from root.props)
|
|
119
|
+
* - slug?: string - Override slug (also synced from root.props)
|
|
120
|
+
* - status?: 'draft' | 'published' - Publishing status
|
|
121
|
+
*
|
|
122
|
+
* Root props from puckData are automatically synced to Payload fields
|
|
123
|
+
* based on the configured mappings.
|
|
124
|
+
*/ async function PATCH(request, context) {
|
|
101
125
|
try {
|
|
102
126
|
// Get page ID from params
|
|
103
127
|
const params = await context.params;
|
|
104
128
|
const id = params.id;
|
|
105
129
|
if (!id) {
|
|
106
|
-
return NextResponse.json({
|
|
130
|
+
return NextResponse.json({
|
|
131
|
+
error: 'Page ID is required'
|
|
132
|
+
}, {
|
|
133
|
+
status: 400
|
|
134
|
+
});
|
|
107
135
|
}
|
|
108
136
|
// Authenticate
|
|
109
137
|
const authResult = await auth.authenticate(request);
|
|
110
138
|
if (!authResult.authenticated || !authResult.user) {
|
|
111
|
-
return NextResponse.json({
|
|
139
|
+
return NextResponse.json({
|
|
140
|
+
error: authResult.error || 'Unauthorized'
|
|
141
|
+
}, {
|
|
142
|
+
status: 401
|
|
143
|
+
});
|
|
112
144
|
}
|
|
113
145
|
// Check edit permission
|
|
114
146
|
if (auth.canEdit) {
|
|
115
147
|
const permission = await auth.canEdit(authResult.user, id);
|
|
116
148
|
if (!permission.allowed) {
|
|
117
|
-
return NextResponse.json({
|
|
149
|
+
return NextResponse.json({
|
|
150
|
+
error: permission.error || 'Forbidden'
|
|
151
|
+
}, {
|
|
152
|
+
status: 403
|
|
153
|
+
});
|
|
118
154
|
}
|
|
119
155
|
}
|
|
120
156
|
// Parse request body
|
|
121
|
-
const body =
|
|
157
|
+
const body = await request.json();
|
|
122
158
|
const { puckData, title, slug, status, draft, isHomepage, swapHomepage, folder, pageSegment } = body;
|
|
123
159
|
// Check publish permission only if explicitly publishing
|
|
124
160
|
if (status === 'published') {
|
|
@@ -126,13 +162,19 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
126
162
|
if (canPublish) {
|
|
127
163
|
const permission = await canPublish(authResult.user, id);
|
|
128
164
|
if (!permission.allowed) {
|
|
129
|
-
return NextResponse.json({
|
|
165
|
+
return NextResponse.json({
|
|
166
|
+
error: permission.error || 'Not authorized to publish pages'
|
|
167
|
+
}, {
|
|
168
|
+
status: 403
|
|
169
|
+
});
|
|
130
170
|
}
|
|
131
171
|
}
|
|
132
172
|
}
|
|
133
173
|
// Get Payload instance with provided config
|
|
134
174
|
const config = await payloadConfig;
|
|
135
|
-
const payload = await getPayload({
|
|
175
|
+
const payload = await getPayload({
|
|
176
|
+
config
|
|
177
|
+
});
|
|
136
178
|
// Handle homepage swap - if swapHomepage is true and isHomepage is being set,
|
|
137
179
|
// unset the existing homepage first
|
|
138
180
|
if (swapHomepage && isHomepage === true) {
|
|
@@ -140,20 +182,32 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
140
182
|
collection,
|
|
141
183
|
where: {
|
|
142
184
|
and: [
|
|
143
|
-
{
|
|
144
|
-
|
|
145
|
-
|
|
185
|
+
{
|
|
186
|
+
isHomepage: {
|
|
187
|
+
equals: true
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: {
|
|
192
|
+
not_equals: id
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
]
|
|
146
196
|
},
|
|
147
197
|
limit: 1,
|
|
148
|
-
depth: 0
|
|
198
|
+
depth: 0
|
|
149
199
|
});
|
|
150
200
|
if (existingHomepage.docs.length > 0) {
|
|
151
201
|
await payload.update({
|
|
152
202
|
collection,
|
|
153
203
|
id: existingHomepage.docs[0].id,
|
|
154
|
-
data: {
|
|
204
|
+
data: {
|
|
205
|
+
isHomepage: false
|
|
206
|
+
},
|
|
155
207
|
// Pass context to skip the uniqueness hook on this update
|
|
156
|
-
context: {
|
|
208
|
+
context: {
|
|
209
|
+
skipIsHomepageHook: true
|
|
210
|
+
}
|
|
157
211
|
});
|
|
158
212
|
}
|
|
159
213
|
}
|
|
@@ -161,7 +215,7 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
161
215
|
const rootProps = puckData?.root?.props || {};
|
|
162
216
|
// Build update data starting with editorVersion
|
|
163
217
|
const updateData = {
|
|
164
|
-
editorVersion: 'puck'
|
|
218
|
+
editorVersion: 'puck'
|
|
165
219
|
};
|
|
166
220
|
// Add puckData if provided
|
|
167
221
|
if (puckData) {
|
|
@@ -200,7 +254,7 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
200
254
|
const updateOptions = {
|
|
201
255
|
collection,
|
|
202
256
|
id,
|
|
203
|
-
data: updateData
|
|
257
|
+
data: updateData
|
|
204
258
|
};
|
|
205
259
|
// Only pass draft: true when explicitly saving as draft (not publishing)
|
|
206
260
|
// When publishing (_status: 'published'), we omit the draft option entirely
|
|
@@ -209,12 +263,17 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
209
263
|
updateOptions.draft = true;
|
|
210
264
|
}
|
|
211
265
|
const updatedPage = await payload.update(updateOptions);
|
|
212
|
-
return NextResponse.json({
|
|
213
|
-
|
|
214
|
-
|
|
266
|
+
return NextResponse.json({
|
|
267
|
+
doc: updatedPage
|
|
268
|
+
});
|
|
269
|
+
} catch (error) {
|
|
215
270
|
const params = await context.params;
|
|
216
271
|
if (onError) {
|
|
217
|
-
onError(error, {
|
|
272
|
+
onError(error, {
|
|
273
|
+
operation: 'update',
|
|
274
|
+
request,
|
|
275
|
+
pageId: params.id
|
|
276
|
+
});
|
|
218
277
|
}
|
|
219
278
|
console.error('Error updating page:', error);
|
|
220
279
|
// Handle Payload validation errors gracefully
|
|
@@ -222,65 +281,98 @@ export function createPuckApiRoutesWithId(routeConfig) {
|
|
|
222
281
|
const validationError = error;
|
|
223
282
|
const fieldErrors = validationError.data?.errors || [];
|
|
224
283
|
// Check for common validation issues and provide friendly messages
|
|
225
|
-
const slugError = fieldErrors.find((e)
|
|
284
|
+
const slugError = fieldErrors.find((e)=>e.field === 'slug');
|
|
226
285
|
if (slugError) {
|
|
227
286
|
return NextResponse.json({
|
|
228
287
|
error: 'A page with this slug already exists. Please choose a different slug.',
|
|
229
288
|
field: 'slug',
|
|
230
|
-
details: fieldErrors
|
|
231
|
-
}, {
|
|
289
|
+
details: fieldErrors
|
|
290
|
+
}, {
|
|
291
|
+
status: 400
|
|
292
|
+
});
|
|
232
293
|
}
|
|
233
294
|
// Generic validation error
|
|
234
295
|
return NextResponse.json({
|
|
235
|
-
error: `Validation failed: ${fieldErrors.map((e)
|
|
236
|
-
details: fieldErrors
|
|
237
|
-
}, {
|
|
296
|
+
error: `Validation failed: ${fieldErrors.map((e)=>e.message || e.field).join(', ')}`,
|
|
297
|
+
details: fieldErrors
|
|
298
|
+
}, {
|
|
299
|
+
status: 400
|
|
300
|
+
});
|
|
238
301
|
}
|
|
239
|
-
return NextResponse.json({
|
|
302
|
+
return NextResponse.json({
|
|
303
|
+
error: 'Failed to update page'
|
|
304
|
+
}, {
|
|
305
|
+
status: 500
|
|
306
|
+
});
|
|
240
307
|
}
|
|
241
308
|
}
|
|
242
309
|
/**
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
async function DELETE(request, context) {
|
|
310
|
+
* DELETE /api/puck/pages/[id]
|
|
311
|
+
* Delete a page by ID
|
|
312
|
+
*/ async function DELETE(request, context) {
|
|
247
313
|
try {
|
|
248
314
|
// Get page ID from params
|
|
249
315
|
const params = await context.params;
|
|
250
316
|
const id = params.id;
|
|
251
317
|
if (!id) {
|
|
252
|
-
return NextResponse.json({
|
|
318
|
+
return NextResponse.json({
|
|
319
|
+
error: 'Page ID is required'
|
|
320
|
+
}, {
|
|
321
|
+
status: 400
|
|
322
|
+
});
|
|
253
323
|
}
|
|
254
324
|
// Authenticate
|
|
255
325
|
const authResult = await auth.authenticate(request);
|
|
256
326
|
if (!authResult.authenticated || !authResult.user) {
|
|
257
|
-
return NextResponse.json({
|
|
327
|
+
return NextResponse.json({
|
|
328
|
+
error: authResult.error || 'Unauthorized'
|
|
329
|
+
}, {
|
|
330
|
+
status: 401
|
|
331
|
+
});
|
|
258
332
|
}
|
|
259
333
|
// Check delete permission
|
|
260
334
|
if (auth.canDelete) {
|
|
261
335
|
const permission = await auth.canDelete(authResult.user, id);
|
|
262
336
|
if (!permission.allowed) {
|
|
263
|
-
return NextResponse.json({
|
|
337
|
+
return NextResponse.json({
|
|
338
|
+
error: permission.error || 'Forbidden'
|
|
339
|
+
}, {
|
|
340
|
+
status: 403
|
|
341
|
+
});
|
|
264
342
|
}
|
|
265
343
|
}
|
|
266
344
|
// Get Payload instance with provided config
|
|
267
345
|
const config = await payloadConfig;
|
|
268
|
-
const payload = await getPayload({
|
|
346
|
+
const payload = await getPayload({
|
|
347
|
+
config
|
|
348
|
+
});
|
|
269
349
|
await payload.delete({
|
|
270
350
|
collection,
|
|
271
|
-
id
|
|
351
|
+
id
|
|
272
352
|
});
|
|
273
|
-
return NextResponse.json({
|
|
274
|
-
|
|
275
|
-
|
|
353
|
+
return NextResponse.json({
|
|
354
|
+
success: true
|
|
355
|
+
});
|
|
356
|
+
} catch (error) {
|
|
276
357
|
const params = await context.params;
|
|
277
358
|
if (onError) {
|
|
278
|
-
onError(error, {
|
|
359
|
+
onError(error, {
|
|
360
|
+
operation: 'delete',
|
|
361
|
+
request,
|
|
362
|
+
pageId: params.id
|
|
363
|
+
});
|
|
279
364
|
}
|
|
280
365
|
console.error('Error deleting page:', error);
|
|
281
|
-
return NextResponse.json({
|
|
366
|
+
return NextResponse.json({
|
|
367
|
+
error: 'Failed to delete page'
|
|
368
|
+
}, {
|
|
369
|
+
status: 500
|
|
370
|
+
});
|
|
282
371
|
}
|
|
283
372
|
}
|
|
284
|
-
return {
|
|
373
|
+
return {
|
|
374
|
+
GET,
|
|
375
|
+
PATCH,
|
|
376
|
+
DELETE
|
|
377
|
+
};
|
|
285
378
|
}
|
|
286
|
-
//# sourceMappingURL=createPuckApiRoutesWithId.js.map
|
package/dist/api/index.d.ts
CHANGED
|
@@ -32,9 +32,8 @@
|
|
|
32
32
|
* })
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
export { createPuckApiRoutes } from './createPuckApiRoutes';
|
|
36
|
-
export { createPuckApiRoutesWithId } from './createPuckApiRoutesWithId';
|
|
37
|
-
export { createPuckApiRoutesVersions } from './createPuckApiRoutesVersions';
|
|
38
|
-
export { mapRootPropsToPayloadFields, mapPayloadFieldsToRootProps, DEFAULT_ROOT_PROPS_MAPPINGS, setNestedValue, getNestedValue, mergeMappings, deepMerge, } from './utils/mapRootProps';
|
|
39
|
-
export type { AuthenticatedUser, AuthResult, PermissionResult, PuckApiAuthHooks, RootPropsMapping, PuckApiRoutesConfig, ErrorContext, RouteHandler, RouteHandlerWithId, RouteHandlerContext, RouteHandlerWithIdContext, PuckApiRouteHandlers, PuckApiRouteWithIdHandlers, CreatePageBody, UpdatePageBody, ApiResponse, PageVersion, PuckApiVersionsRouteHandlers, } from './types';
|
|
40
|
-
//# sourceMappingURL=index.d.ts.map
|
|
35
|
+
export { createPuckApiRoutes } from './createPuckApiRoutes.js';
|
|
36
|
+
export { createPuckApiRoutesWithId } from './createPuckApiRoutesWithId.js';
|
|
37
|
+
export { createPuckApiRoutesVersions } from './createPuckApiRoutesVersions.js';
|
|
38
|
+
export { mapRootPropsToPayloadFields, mapPayloadFieldsToRootProps, DEFAULT_ROOT_PROPS_MAPPINGS, setNestedValue, getNestedValue, mergeMappings, deepMerge, } from './utils/mapRootProps.js';
|
|
39
|
+
export type { AuthenticatedUser, AuthResult, PermissionResult, PuckApiAuthHooks, RootPropsMapping, PuckApiRoutesConfig, ErrorContext, RouteHandler, RouteHandlerWithId, RouteHandlerContext, RouteHandlerWithIdContext, PuckApiRouteHandlers, PuckApiRouteWithIdHandlers, CreatePageBody, UpdatePageBody, ApiResponse, PageVersion, PuckApiVersionsRouteHandlers, } from './types.js';
|
package/dist/api/index.js
CHANGED
|
@@ -31,11 +31,9 @@
|
|
|
31
31
|
* },
|
|
32
32
|
* })
|
|
33
33
|
* ```
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export { createPuckApiRoutesVersions } from './createPuckApiRoutesVersions';
|
|
34
|
+
*/ // Route factories
|
|
35
|
+
export { createPuckApiRoutes } from './createPuckApiRoutes.js';
|
|
36
|
+
export { createPuckApiRoutesWithId } from './createPuckApiRoutesWithId.js';
|
|
37
|
+
export { createPuckApiRoutesVersions } from './createPuckApiRoutesVersions.js';
|
|
39
38
|
// Utilities
|
|
40
|
-
export { mapRootPropsToPayloadFields, mapPayloadFieldsToRootProps, DEFAULT_ROOT_PROPS_MAPPINGS, setNestedValue, getNestedValue, mergeMappings, deepMerge
|
|
41
|
-
//# sourceMappingURL=index.js.map
|
|
39
|
+
export { mapRootPropsToPayloadFields, mapPayloadFieldsToRootProps, DEFAULT_ROOT_PROPS_MAPPINGS, setNestedValue, getNestedValue, mergeMappings, deepMerge } from './utils/mapRootProps.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ambient type declaration for @payload-config
|
|
3
|
+
*
|
|
4
|
+
* This module is provided by the consuming project and resolves to their Payload config.
|
|
5
|
+
* The consuming project should have this alias configured in their tsconfig.json:
|
|
6
|
+
*
|
|
7
|
+
* {
|
|
8
|
+
* "compilerOptions": {
|
|
9
|
+
* "paths": {
|
|
10
|
+
* "@payload-config": ["./src/payload.config.ts"]
|
|
11
|
+
* }
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
*/
|
package/dist/api/types.d.ts
CHANGED
package/dist/api/types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Route handlers returned by createPuckApiRoutesVersions
|
|
3
|
+
*/ export { };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RootPropsMapping } from '../types';
|
|
1
|
+
import type { RootPropsMapping } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Default mappings from Puck root.props to Payload fields
|
|
4
4
|
*
|
|
@@ -92,4 +92,3 @@ export declare function deepMerge(target: Record<string, unknown>, source: Recor
|
|
|
92
92
|
* ```
|
|
93
93
|
*/
|
|
94
94
|
export declare function mapPayloadFieldsToRootProps(doc: Record<string, unknown>, customMappings?: RootPropsMapping[]): Record<string, unknown>;
|
|
95
|
-
//# sourceMappingURL=mapRootProps.d.ts.map
|
|
@@ -5,27 +5,71 @@
|
|
|
5
5
|
* to the corresponding Payload collection fields.
|
|
6
6
|
*
|
|
7
7
|
* SEO fields use the official @payloadcms/plugin-seo convention: meta.title, meta.description
|
|
8
|
-
*/
|
|
9
|
-
export const DEFAULT_ROOT_PROPS_MAPPINGS = [
|
|
8
|
+
*/ export const DEFAULT_ROOT_PROPS_MAPPINGS = [
|
|
10
9
|
// Core page fields
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
{
|
|
10
|
+
{
|
|
11
|
+
from: 'title',
|
|
12
|
+
to: 'title'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
from: 'slug',
|
|
16
|
+
to: 'slug'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
from: 'pageLayout',
|
|
20
|
+
to: 'pageLayout'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
from: 'pageType',
|
|
24
|
+
to: 'pageType'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
from: 'isHomepage',
|
|
28
|
+
to: 'isHomepage'
|
|
29
|
+
},
|
|
16
30
|
// Page-tree integration fields
|
|
17
|
-
{
|
|
18
|
-
|
|
31
|
+
{
|
|
32
|
+
from: 'folder',
|
|
33
|
+
to: 'folder'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
from: 'pageSegment',
|
|
37
|
+
to: 'pageSegment'
|
|
38
|
+
},
|
|
19
39
|
// SEO/Meta fields (uses official @payloadcms/plugin-seo convention)
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
40
|
+
{
|
|
41
|
+
from: 'metaTitle',
|
|
42
|
+
to: 'meta.title'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
from: 'metaDescription',
|
|
46
|
+
to: 'meta.description'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
from: 'noindex',
|
|
50
|
+
to: 'meta.noindex'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
from: 'nofollow',
|
|
54
|
+
to: 'meta.nofollow'
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
from: 'excludeFromSitemap',
|
|
58
|
+
to: 'meta.excludeFromSitemap'
|
|
59
|
+
},
|
|
25
60
|
// Conversion tracking fields
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
|
|
61
|
+
{
|
|
62
|
+
from: 'isConversionPage',
|
|
63
|
+
to: 'conversionTracking.isConversionPage'
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
from: 'conversionType',
|
|
67
|
+
to: 'conversionTracking.conversionType'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
from: 'conversionValue',
|
|
71
|
+
to: 'conversionTracking.conversionValue'
|
|
72
|
+
}
|
|
29
73
|
];
|
|
30
74
|
/**
|
|
31
75
|
* Set a nested value in an object using dot notation path
|
|
@@ -36,11 +80,10 @@ export const DEFAULT_ROOT_PROPS_MAPPINGS = [
|
|
|
36
80
|
* setNestedValue(obj, 'meta.title', 'My Title')
|
|
37
81
|
* // Result: { meta: { title: 'My Title' } }
|
|
38
82
|
* ```
|
|
39
|
-
*/
|
|
40
|
-
export function setNestedValue(obj, path, value) {
|
|
83
|
+
*/ export function setNestedValue(obj, path, value) {
|
|
41
84
|
const keys = path.split('.');
|
|
42
85
|
let current = obj;
|
|
43
|
-
for
|
|
86
|
+
for(let i = 0; i < keys.length - 1; i++){
|
|
44
87
|
const key = keys[i];
|
|
45
88
|
if (!(key in current) || typeof current[key] !== 'object') {
|
|
46
89
|
current[key] = {};
|
|
@@ -58,11 +101,10 @@ export function setNestedValue(obj, path, value) {
|
|
|
58
101
|
* const obj = { meta: { title: 'My Title' } }
|
|
59
102
|
* getNestedValue(obj, 'meta.title') // 'My Title'
|
|
60
103
|
* ```
|
|
61
|
-
*/
|
|
62
|
-
export function getNestedValue(obj, path) {
|
|
104
|
+
*/ export function getNestedValue(obj, path) {
|
|
63
105
|
const keys = path.split('.');
|
|
64
106
|
let current = obj;
|
|
65
|
-
for (const key of keys)
|
|
107
|
+
for (const key of keys){
|
|
66
108
|
if (current === null || current === undefined) {
|
|
67
109
|
return undefined;
|
|
68
110
|
}
|
|
@@ -78,19 +120,18 @@ export function getNestedValue(obj, path) {
|
|
|
78
120
|
*
|
|
79
121
|
* @param customMappings - Custom mappings to merge with defaults
|
|
80
122
|
* @returns Merged array of mappings with duplicates resolved (custom wins)
|
|
81
|
-
*/
|
|
82
|
-
export function mergeMappings(customMappings) {
|
|
123
|
+
*/ export function mergeMappings(customMappings) {
|
|
83
124
|
if (!customMappings || customMappings.length === 0) {
|
|
84
125
|
return DEFAULT_ROOT_PROPS_MAPPINGS;
|
|
85
126
|
}
|
|
86
127
|
// Create a map to track unique mappings by 'from' field
|
|
87
128
|
const mappingMap = new Map();
|
|
88
129
|
// Add defaults first
|
|
89
|
-
for (const mapping of DEFAULT_ROOT_PROPS_MAPPINGS)
|
|
130
|
+
for (const mapping of DEFAULT_ROOT_PROPS_MAPPINGS){
|
|
90
131
|
mappingMap.set(mapping.from, mapping);
|
|
91
132
|
}
|
|
92
133
|
// Custom mappings override defaults
|
|
93
|
-
for (const mapping of customMappings)
|
|
134
|
+
for (const mapping of customMappings){
|
|
94
135
|
mappingMap.set(mapping.from, mapping);
|
|
95
136
|
}
|
|
96
137
|
return Array.from(mappingMap.values());
|
|
@@ -122,11 +163,10 @@ export function mergeMappings(customMappings) {
|
|
|
122
163
|
* // },
|
|
123
164
|
* // }
|
|
124
165
|
* ```
|
|
125
|
-
*/
|
|
126
|
-
export function mapRootPropsToPayloadFields(rootProps, customMappings) {
|
|
166
|
+
*/ export function mapRootPropsToPayloadFields(rootProps, customMappings) {
|
|
127
167
|
const mappings = mergeMappings(customMappings);
|
|
128
168
|
const result = {};
|
|
129
|
-
for (const mapping of mappings)
|
|
169
|
+
for (const mapping of mappings){
|
|
130
170
|
const value = rootProps[mapping.from];
|
|
131
171
|
// Skip undefined values to avoid overwriting existing data
|
|
132
172
|
if (value === undefined) {
|
|
@@ -145,21 +185,14 @@ export function mapRootPropsToPayloadFields(rootProps, customMappings) {
|
|
|
145
185
|
* @param target - The target object to merge into
|
|
146
186
|
* @param source - The source object to merge from
|
|
147
187
|
* @returns The merged object (target is modified in place)
|
|
148
|
-
*/
|
|
149
|
-
|
|
150
|
-
for (const key of Object.keys(source)) {
|
|
188
|
+
*/ export function deepMerge(target, source) {
|
|
189
|
+
for (const key of Object.keys(source)){
|
|
151
190
|
const sourceValue = source[key];
|
|
152
191
|
const targetValue = target[key];
|
|
153
|
-
if (sourceValue !== null &&
|
|
154
|
-
typeof sourceValue === 'object' &&
|
|
155
|
-
!Array.isArray(sourceValue) &&
|
|
156
|
-
targetValue !== null &&
|
|
157
|
-
typeof targetValue === 'object' &&
|
|
158
|
-
!Array.isArray(targetValue)) {
|
|
192
|
+
if (sourceValue !== null && typeof sourceValue === 'object' && !Array.isArray(sourceValue) && targetValue !== null && typeof targetValue === 'object' && !Array.isArray(targetValue)) {
|
|
159
193
|
// Recursively merge nested objects
|
|
160
194
|
target[key] = deepMerge(targetValue, sourceValue);
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
195
|
+
} else {
|
|
163
196
|
// Direct assignment for non-object values or arrays
|
|
164
197
|
target[key] = sourceValue;
|
|
165
198
|
}
|
|
@@ -183,11 +216,10 @@ export function deepMerge(target, source) {
|
|
|
183
216
|
* const rootProps = mapPayloadFieldsToRootProps(page)
|
|
184
217
|
* // Result: { title: 'My Page', isHomepage: true, metaTitle: 'SEO Title' }
|
|
185
218
|
* ```
|
|
186
|
-
*/
|
|
187
|
-
export function mapPayloadFieldsToRootProps(doc, customMappings) {
|
|
219
|
+
*/ export function mapPayloadFieldsToRootProps(doc, customMappings) {
|
|
188
220
|
const mappings = mergeMappings(customMappings);
|
|
189
221
|
const result = {};
|
|
190
|
-
for (const mapping of mappings)
|
|
222
|
+
for (const mapping of mappings){
|
|
191
223
|
// Get value from Payload field (supports dot notation for nested fields)
|
|
192
224
|
const value = getNestedValue(doc, mapping.to);
|
|
193
225
|
// Skip undefined values
|
|
@@ -199,4 +231,3 @@ export function mapPayloadFieldsToRootProps(doc, customMappings) {
|
|
|
199
231
|
}
|
|
200
232
|
return result;
|
|
201
233
|
}
|
|
202
|
-
//# sourceMappingURL=mapRootProps.js.map
|