@alpaca-headless/alpaca-headless-nextjs 1.0.129 → 1.0.253
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/editor.css +435 -49
- package/dist/esm/Editor.js +13 -0
- package/dist/esm/client-components/ClientLink.js +35 -0
- package/dist/{cjs/components → esm/client-components}/LinkEditor.js +22 -19
- package/dist/esm/client-components/MultiComponentEditor.js +22 -0
- package/dist/esm/client-components/index.js +4 -0
- package/dist/esm/components/Error.js +10 -0
- package/dist/{cjs → esm}/components/Image.js +5 -8
- package/dist/esm/components/Link.js +30 -0
- package/dist/esm/components/LinkPreview.js +30 -0
- package/dist/esm/components/LockedFieldIndicator.js +21 -0
- package/dist/esm/components/Picture.js +132 -0
- package/dist/esm/components/PictureEditor.js +77 -0
- package/dist/esm/components/PictureEditorWrapper.js +7 -0
- package/dist/esm/components/Placeholder.js +141 -0
- package/dist/esm/components/RichText.js +29 -0
- package/dist/esm/components/RichTextEditor.js +92 -0
- package/dist/esm/components/RichTextEditorWrapper.js +7 -0
- package/dist/esm/components/Slot.js +6 -0
- package/dist/esm/components/Text.js +28 -0
- package/dist/esm/components/TextEditor.js +78 -0
- package/dist/esm/components/TextEditorWrapper.js +19 -0
- package/dist/esm/components/Translate.js +9 -0
- package/dist/esm/components/TranslateEditor.js +24 -0
- package/dist/esm/components/TranslateEditorWrapper.js +7 -0
- package/dist/esm/components/index.js +7 -0
- package/dist/esm/components/picture-shared.js +26 -0
- package/dist/esm/editor/ComponentInfo.js +12 -0
- package/dist/esm/editor/ConfirmationDialog.js +29 -0
- package/dist/{cjs → esm}/editor/ContentTree.js +61 -46
- package/dist/esm/editor/ContextMenu.js +90 -0
- package/dist/esm/editor/DialogButtons.js +4 -0
- package/dist/esm/editor/DictionaryEditor.js +37 -0
- package/dist/esm/editor/EditFrame.js +115 -0
- package/dist/esm/editor/EditFrameWrapper.js +7 -0
- package/dist/esm/editor/EditorClient.js +889 -0
- package/dist/esm/editor/EditorClientHost.js +15 -0
- package/dist/esm/editor/EditorWarning.js +10 -0
- package/dist/esm/editor/EditorWarnings.js +13 -0
- package/dist/esm/editor/FieldEditorPopup.js +23 -0
- package/dist/esm/editor/FieldList.js +48 -0
- package/dist/esm/editor/FieldListField.js +86 -0
- package/dist/esm/editor/FieldListFieldWithFallbacks.js +79 -0
- package/dist/{cjs → esm}/editor/FloatingToolbar.js +20 -23
- package/dist/esm/editor/ItemInfo.js +14 -0
- package/dist/esm/editor/LinkEditorDialog.js +61 -0
- package/dist/esm/editor/MainLayout.js +18 -0
- package/dist/esm/editor/MediaSelector.js +85 -0
- package/dist/esm/editor/Outline.js +82 -0
- package/dist/esm/editor/PageViewer.js +41 -0
- package/dist/esm/editor/PictureEditorDialog.js +201 -0
- package/dist/esm/editor/PlaceholderDropZone.js +130 -0
- package/dist/esm/editor/PlaceholderDropZoneHost.js +7 -0
- package/dist/esm/editor/PreviewClient.js +6 -0
- package/dist/esm/editor/PreviewClientHost.js +7 -0
- package/dist/esm/editor/PreviewPanel.js +7 -0
- package/dist/esm/editor/PublishDialog.js +15 -0
- package/dist/esm/editor/Terminal.js +55 -0
- package/dist/esm/editor/ai/AiPopup.js +28 -0
- package/dist/esm/editor/ai/AiResponseMessage.js +20 -0
- package/dist/esm/editor/ai/AiTerminal.js +216 -0
- package/dist/esm/editor/ai/AiToolCall.js +15 -0
- package/dist/esm/editor/ai/EditorAiTerminal.js +5 -0
- package/dist/esm/editor/commands/commands.js +1 -0
- package/dist/esm/editor/commands/componentCommands.js +287 -0
- package/dist/esm/editor/commands/createVersionCommand.js +26 -0
- package/dist/esm/editor/commands/undo.js +22 -0
- package/dist/esm/editor/component-designer/ComponentDesigner.js +7 -0
- package/dist/esm/editor/component-designer/ComponentDesignerAiTerminal.js +5 -0
- package/dist/esm/editor/component-designer/ComponentDesignerMenu.js +39 -0
- package/dist/esm/editor/component-designer/ComponentPreview.js +20 -0
- package/dist/esm/editor/component-designer/ComponentRenderingEditor.js +38 -0
- package/dist/esm/editor/component-designer/ComponentSelectionTree.js +56 -0
- package/dist/esm/editor/component-designer/componentDesignerContext.js +22 -0
- package/dist/esm/editor/componentTreeHelper.js +20 -0
- package/dist/esm/editor/config/config.js +327 -0
- package/dist/esm/editor/config/types.js +1 -0
- package/dist/esm/editor/editContext.js +11 -0
- package/dist/esm/editor/editor-warnings/ItemLocked.js +40 -0
- package/dist/esm/editor/editor-warnings/ValidationErrors.js +22 -0
- package/dist/esm/editor/fieldTypes/CheckboxEditor.js +21 -0
- package/dist/esm/editor/fieldTypes/DropLinkEditor.js +50 -0
- package/dist/esm/editor/fieldTypes/InternalLinkFieldEditor.js +41 -0
- package/dist/{cjs → esm}/editor/fieldTypes/LinkFieldEditor.js +14 -16
- package/dist/esm/editor/fieldTypes/MultiLineText.js +25 -0
- package/dist/esm/editor/fieldTypes/PictureFieldEditor.js +33 -0
- package/dist/esm/editor/fieldTypes/RawEditor.js +26 -0
- package/dist/esm/editor/fieldTypes/RichTextEditor.js +7 -0
- package/dist/esm/editor/fieldTypes/RichTextEditorComponent.js +46 -0
- package/dist/esm/editor/fieldTypes/SingleLineText.js +23 -0
- package/dist/esm/editor/fieldTypes/TreeListEditor.js +57 -0
- package/dist/esm/editor/itemCommands.js +27 -0
- package/dist/esm/editor/menubar/BrowseHistory.js +39 -0
- package/dist/esm/editor/menubar/ItemLanguageVersion.js +20 -0
- package/dist/esm/editor/menubar/LanguageSelector.js +18 -0
- package/dist/esm/editor/menubar/Menu.js +105 -0
- package/dist/esm/editor/menubar/PageViewerControls.js +66 -0
- package/dist/esm/editor/menubar/VersionSelector.js +18 -0
- package/dist/esm/editor/previewContext.js +5 -0
- package/dist/esm/editor/services/aiService.js +20 -0
- package/dist/esm/editor/services/componentDesignerService.js +23 -0
- package/dist/esm/editor/services/contentService.js +56 -0
- package/dist/esm/editor/services/editService.js +394 -0
- package/dist/esm/editor/services/serviceHelper.js +45 -0
- package/dist/esm/editor/sidebar/ComponentPalette.js +42 -0
- package/dist/esm/editor/sidebar/ComponentTree.js +237 -0
- package/dist/esm/editor/sidebar/Debug.js +46 -0
- package/dist/esm/editor/sidebar/EditHistory.js +66 -0
- package/dist/esm/editor/sidebar/EditorForm.js +24 -0
- package/dist/esm/editor/sidebar/GraphQL.js +85 -0
- package/dist/esm/editor/sidebar/Insert.js +7 -0
- package/dist/esm/editor/sidebar/MainContentTree.js +38 -0
- package/dist/esm/editor/sidebar/Sessions.js +11 -0
- package/dist/esm/editor/sidebar/Sidebar.js +13 -0
- package/dist/esm/editor/sidebar/SidebarView.js +73 -0
- package/dist/esm/editor/sidebar/Workbox.js +77 -0
- package/dist/esm/editor/ui/CopyToClipboardButton.js +14 -0
- package/dist/esm/editor/ui/Icons.js +19 -0
- package/dist/esm/editor/ui/ItemNameDialog.js +33 -0
- package/dist/esm/editor/ui/Section.js +8 -0
- package/dist/esm/editor/utils/insertOptions.js +39 -0
- package/dist/esm/editor/utils.js +71 -0
- package/dist/esm/editor/views/ItemEditor.js +18 -0
- package/dist/esm/fieldTypes.js +1 -0
- package/dist/esm/graphQL.js +50 -0
- package/dist/esm/graphQLTypes.js +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/{cjs → esm}/loadRouteData.js +19 -37
- package/dist/{cjs → esm}/mediaProtection.js +4 -11
- package/dist/esm/middleware/handleRequest.js +45 -0
- package/dist/esm/middleware/index.js +1 -0
- package/dist/esm/public.js +10 -0
- package/dist/esm/renderContext.js +49 -0
- package/dist/esm/renderings.js +87 -0
- package/dist/esm/servertypes.js +1 -0
- package/dist/esm/translate.js +7 -0
- package/dist/primereact/resources/themes/arya-blue/theme.css +854 -790
- package/dist/primereact/resources/themes/arya-green/theme.css +854 -790
- package/dist/primereact/resources/themes/arya-orange/theme.css +854 -790
- package/dist/primereact/resources/themes/arya-purple/theme.css +854 -790
- package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +678 -615
- package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +678 -615
- package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +679 -616
- package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +679 -616
- package/dist/primereact/resources/themes/fluent-light/theme.css +686 -638
- package/dist/primereact/resources/themes/lara-dark-amber/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-blue/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-green/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-pink/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-purple/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-teal/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-light-amber/theme.css +776 -725
- package/dist/primereact/resources/themes/lara-light-blue/theme.css +1011 -960
- package/dist/primereact/resources/themes/lara-light-cyan/theme.css +776 -725
- package/dist/primereact/resources/themes/lara-light-green/theme.css +820 -769
- package/dist/primereact/resources/themes/lara-light-indigo/theme.css +1016 -965
- package/dist/primereact/resources/themes/lara-light-pink/theme.css +776 -725
- package/dist/primereact/resources/themes/lara-light-purple/theme.css +1016 -965
- package/dist/primereact/resources/themes/lara-light-teal/theme.css +776 -725
- package/dist/primereact/resources/themes/luna-amber/theme.css +950 -887
- package/dist/primereact/resources/themes/luna-blue/theme.css +950 -887
- package/dist/primereact/resources/themes/luna-green/theme.css +950 -887
- package/dist/primereact/resources/themes/luna-pink/theme.css +950 -887
- package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +918 -950
- package/dist/primereact/resources/themes/md-dark-indigo/theme.css +918 -950
- package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +878 -910
- package/dist/primereact/resources/themes/md-light-indigo/theme.css +878 -910
- package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +918 -950
- package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +918 -950
- package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +878 -910
- package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +878 -910
- package/dist/primereact/resources/themes/mira/theme.css +1562 -1532
- package/dist/primereact/resources/themes/nano/theme.css +707 -641
- package/dist/primereact/resources/themes/nova/theme.css +705 -643
- package/dist/primereact/resources/themes/nova-accent/theme.css +701 -636
- package/dist/primereact/resources/themes/nova-alt/theme.css +705 -643
- package/dist/primereact/resources/themes/rhea/theme.css +876 -811
- package/dist/primereact/resources/themes/saga-blue/theme.css +896 -832
- package/dist/primereact/resources/themes/saga-green/theme.css +896 -832
- package/dist/primereact/resources/themes/saga-orange/theme.css +896 -832
- package/dist/primereact/resources/themes/saga-purple/theme.css +896 -832
- package/dist/primereact/resources/themes/soho-dark/theme.css +701 -643
- package/dist/primereact/resources/themes/soho-light/theme.css +690 -634
- package/dist/primereact/resources/themes/tailwind-light/theme.css +1370 -1306
- package/dist/primereact/resources/themes/vela-blue/theme.css +862 -798
- package/dist/primereact/resources/themes/vela-green/theme.css +862 -798
- package/dist/primereact/resources/themes/vela-orange/theme.css +862 -798
- package/dist/primereact/resources/themes/vela-purple/theme.css +862 -798
- package/dist/primereact/resources/themes/viva-dark/theme.css +655 -612
- package/dist/primereact/resources/themes/viva-light/theme.css +737 -694
- package/package.json +26 -22
- package/types/Editor.d.ts +9 -0
- package/types/{components → client-components}/LinkEditor.d.ts +1 -1
- package/types/client-components/MultiComponentEditor.d.ts +4 -2
- package/types/client-components/index.d.ts +3 -2
- package/types/components/Image.d.ts +3 -0
- package/types/components/Link.d.ts +4 -2
- package/types/components/LinkPreview.d.ts +6 -0
- package/types/components/LockedFieldIndicator.d.ts +6 -0
- package/types/components/Picture.d.ts +6 -7
- package/types/components/PictureEditorWrapper.d.ts +3 -0
- package/types/components/Placeholder.d.ts +12 -14
- package/types/components/RichText.d.ts +5 -2
- package/types/components/RichTextEditor.d.ts +3 -290
- package/types/components/RichTextEditorWrapper.d.ts +2 -0
- package/types/components/Slot.d.ts +5 -2
- package/types/components/Text.d.ts +5 -2
- package/types/components/TextEditor.d.ts +3 -290
- package/types/components/TextEditorWrapper.d.ts +4 -0
- package/types/components/Translate.d.ts +4 -1
- package/types/components/TranslateEditorWrapper.d.ts +3 -0
- package/types/components/picture-shared.d.ts +16 -0
- package/types/editor/ComponentInfo.d.ts +1 -1
- package/types/editor/ContentTree.d.ts +4 -3
- package/types/editor/ContextMenu.d.ts +14 -0
- package/types/editor/DictionaryEditor.d.ts +1 -4
- package/types/editor/EditFrameWrapper.d.ts +6 -0
- package/types/editor/EditorClient.d.ts +18 -7
- package/types/editor/EditorClientHost.d.ts +5 -6
- package/types/editor/EditorWarning.d.ts +6 -0
- package/types/editor/EditorWarnings.d.ts +9 -0
- package/types/editor/FieldEditorPopup.d.ts +10 -0
- package/types/editor/FieldList.d.ts +6 -2
- package/types/editor/FieldListField.d.ts +8 -2
- package/types/editor/FieldListFieldWithFallbacks.d.ts +8 -0
- package/types/editor/ItemInfo.d.ts +1 -1
- package/types/editor/Outline.d.ts +11 -0
- package/types/editor/PageViewer.d.ts +1 -0
- package/types/editor/PictureEditorDialog.d.ts +4 -2
- package/types/editor/PlaceholderDropZone.d.ts +3 -2
- package/types/editor/PlaceholderDropZoneHost.d.ts +3 -2
- package/types/editor/PreviewClient.d.ts +5 -0
- package/types/editor/PreviewClientHost.d.ts +4 -0
- package/types/editor/PreviewPanel.d.ts +1 -0
- package/types/editor/PublishDialog.d.ts +7 -0
- package/types/editor/Terminal.d.ts +6 -2
- package/types/editor/{AiPopup.d.ts → ai/AiPopup.d.ts} +2 -3
- package/types/editor/ai/AiResponseMessage.d.ts +7 -0
- package/types/editor/ai/AiTerminal.d.ts +4 -0
- package/types/editor/ai/AiToolCall.d.ts +9 -0
- package/types/editor/ai/EditorAiTerminal.d.ts +4 -0
- package/types/editor/commands/commands.d.ts +21 -0
- package/types/editor/commands/componentCommands.d.ts +5 -0
- package/types/editor/commands/createVersionCommand.d.ts +2 -0
- package/types/editor/commands/undo.d.ts +15 -0
- package/types/editor/component-designer/ComponentDesigner.d.ts +1 -0
- package/types/editor/component-designer/ComponentDesignerAiTerminal.d.ts +1 -0
- package/types/editor/component-designer/ComponentDesignerMenu.d.ts +1 -0
- package/types/editor/component-designer/ComponentPreview.d.ts +1 -0
- package/types/editor/component-designer/ComponentRenderingEditor.d.ts +2 -0
- package/types/editor/component-designer/ComponentSelectionTree.d.ts +1 -0
- package/types/editor/component-designer/componentDesignerContext.d.ts +14 -0
- package/types/editor/componentTreeHelper.d.ts +2 -1
- package/types/editor/config/config.d.ts +2 -0
- package/types/editor/config/types.d.ts +66 -0
- package/types/editor/editContext.d.ts +72 -93
- package/types/editor/editor-warnings/ItemLocked.d.ts +2 -0
- package/types/editor/editor-warnings/ValidationErrors.d.ts +2 -0
- package/types/editor/fieldTypes/CheckboxEditor.d.ts +3 -2
- package/types/editor/fieldTypes/DropLinkEditor.d.ts +5 -0
- package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +3 -2
- package/types/editor/fieldTypes/LinkFieldEditor.d.ts +3 -2
- package/types/editor/fieldTypes/MultiLineText.d.ts +3 -2
- package/types/editor/fieldTypes/PictureFieldEditor.d.ts +2 -1
- package/types/editor/fieldTypes/RawEditor.d.ts +5 -0
- package/types/editor/fieldTypes/RichTextEditor.d.ts +4 -3
- package/types/editor/fieldTypes/RichTextEditorComponent.d.ts +5 -0
- package/types/editor/fieldTypes/SingleLineText.d.ts +3 -2
- package/types/editor/fieldTypes/TreeListEditor.d.ts +2 -1
- package/types/editor/itemCommands.d.ts +3 -0
- package/types/editor/menubar/BrowseHistory.d.ts +4 -0
- package/types/editor/menubar/ItemLanguageVersion.d.ts +1 -0
- package/types/editor/menubar/LanguageSelector.d.ts +5 -0
- package/types/editor/menubar/Menu.d.ts +1 -0
- package/types/editor/menubar/PageViewerControls.d.ts +1 -0
- package/types/editor/menubar/VersionSelector.d.ts +5 -0
- package/types/editor/previewContext.d.ts +4 -0
- package/types/editor/services/aiService.d.ts +8 -0
- package/types/editor/services/componentDesignerService.d.ts +2 -0
- package/types/editor/{contentService.d.ts → services/contentService.d.ts} +2 -3
- package/types/editor/services/editService.d.ts +23 -0
- package/types/editor/services/serviceHelper.d.ts +7 -0
- package/types/editor/sidebar/ComponentPalette.d.ts +1 -0
- package/types/editor/sidebar/ComponentTree.d.ts +1 -0
- package/types/editor/sidebar/Debug.d.ts +1 -0
- package/types/editor/sidebar/EditHistory.d.ts +1 -0
- package/types/editor/sidebar/EditorForm.d.ts +1 -0
- package/types/editor/sidebar/GraphQL.d.ts +1 -0
- package/types/editor/sidebar/Insert.d.ts +1 -0
- package/types/editor/sidebar/MainContentTree.d.ts +3 -0
- package/types/editor/sidebar/Sessions.d.ts +1 -0
- package/types/editor/sidebar/Sidebar.d.ts +4 -0
- package/types/editor/sidebar/SidebarView.d.ts +8 -0
- package/types/editor/sidebar/Workbox.d.ts +1 -0
- package/types/editor/ui/CopyToClipboardButton.d.ts +3 -0
- package/types/editor/ui/Icons.d.ts +16 -0
- package/types/editor/{ItemNameDialog.d.ts → ui/ItemNameDialog.d.ts} +1 -0
- package/types/editor/utils/insertOptions.d.ts +3 -0
- package/types/editor/utils.d.ts +8 -0
- package/types/editor/views/ItemEditor.d.ts +1 -0
- package/types/fieldTypes.d.ts +39 -11
- package/types/graphQL.d.ts +12 -0
- package/types/index.d.ts +7 -4
- package/types/loadRouteData.d.ts +8 -85
- package/types/middleware/handleRequest.d.ts +5 -0
- package/types/middleware/index.d.ts +1 -1
- package/types/public.d.ts +12 -0
- package/types/renderContext.d.ts +41 -0
- package/types/renderings.d.ts +7 -0
- package/types/servertypes.d.ts +308 -0
- package/types/translate.d.ts +2 -0
- package/dist/cjs/alpacaContext.js +0 -12
- package/dist/cjs/client-components/ClientLink.js +0 -36
- package/dist/cjs/client-components/MultiComponentEditor.js +0 -26
- package/dist/cjs/client-components/index.js +0 -19
- package/dist/cjs/components/Error.js +0 -15
- package/dist/cjs/components/Link.js +0 -36
- package/dist/cjs/components/Picture.js +0 -124
- package/dist/cjs/components/PictureEditor.js +0 -49
- package/dist/cjs/components/Placeholder.js +0 -118
- package/dist/cjs/components/RichText.js +0 -47
- package/dist/cjs/components/RichTextEditor.js +0 -94
- package/dist/cjs/components/Slot.js +0 -8
- package/dist/cjs/components/Text.js +0 -46
- package/dist/cjs/components/TextEditor.js +0 -77
- package/dist/cjs/components/Translate.js +0 -14
- package/dist/cjs/components/TranslateEditor.js +0 -28
- package/dist/cjs/components/index.js +0 -23
- package/dist/cjs/editor/AiPopup.js +0 -33
- package/dist/cjs/editor/AiTerminal.js +0 -185
- package/dist/cjs/editor/ComponentInfo.js +0 -15
- package/dist/cjs/editor/ComponentPalette.js +0 -23
- package/dist/cjs/editor/ComponentTree.js +0 -217
- package/dist/cjs/editor/ConfirmationDialog.js +0 -31
- package/dist/cjs/editor/Debug.js +0 -26
- package/dist/cjs/editor/DialogButtons.js +0 -7
- package/dist/cjs/editor/DictionaryEditor.js +0 -41
- package/dist/cjs/editor/EditFrame.js +0 -129
- package/dist/cjs/editor/EditHistory.js +0 -43
- package/dist/cjs/editor/Editor.js +0 -27
- package/dist/cjs/editor/EditorClient.js +0 -753
- package/dist/cjs/editor/EditorClientHost.js +0 -37
- package/dist/cjs/editor/FieldList.js +0 -51
- package/dist/cjs/editor/FieldListField.js +0 -75
- package/dist/cjs/editor/GraphQL.js +0 -87
- package/dist/cjs/editor/ItemEditor.js +0 -9
- package/dist/cjs/editor/ItemInfo.js +0 -17
- package/dist/cjs/editor/ItemNameDialog.js +0 -37
- package/dist/cjs/editor/LanguageSelector.js +0 -21
- package/dist/cjs/editor/LinkEditorDialog.js +0 -67
- package/dist/cjs/editor/MainLayout.js +0 -24
- package/dist/cjs/editor/MediaSelector.js +0 -92
- package/dist/cjs/editor/PictureEditorDialog.js +0 -93
- package/dist/cjs/editor/PlaceholderDropZone.js +0 -93
- package/dist/cjs/editor/PlaceholderDropZoneHost.js +0 -37
- package/dist/cjs/editor/SidebarTabs.js +0 -47
- package/dist/cjs/editor/Terminal.js +0 -61
- package/dist/cjs/editor/Utils.js +0 -43
- package/dist/cjs/editor/VersionSelector.js +0 -21
- package/dist/cjs/editor/Workbox.js +0 -41
- package/dist/cjs/editor/componentCommands.js +0 -141
- package/dist/cjs/editor/componentTreeHelper.js +0 -18
- package/dist/cjs/editor/contentService.js +0 -80
- package/dist/cjs/editor/editContext.js +0 -40
- package/dist/cjs/editor/editService.js +0 -334
- package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +0 -21
- package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +0 -46
- package/dist/cjs/editor/fieldTypes/MultiLineText.js +0 -25
- package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +0 -19
- package/dist/cjs/editor/fieldTypes/RichTextEditor.js +0 -24
- package/dist/cjs/editor/fieldTypes/SingleLineText.js +0 -25
- package/dist/cjs/editor/fieldTypes/TreeListEditor.js +0 -59
- package/dist/cjs/editor/index.js +0 -18
- package/dist/cjs/editor/ui/Section.js +0 -8
- package/dist/cjs/fieldTypes.js +0 -2
- package/dist/cjs/graphQLTypes.js +0 -2
- package/dist/cjs/index.js +0 -36
- package/dist/cjs/layoutData.js +0 -2
- package/dist/cjs/middleware/authorization.js +0 -52
- package/dist/cjs/middleware/index.js +0 -17
- package/types/alpacaContext.d.ts +0 -25
- package/types/editor/AiTerminal.d.ts +0 -5
- package/types/editor/ComponentPalette.d.ts +0 -6
- package/types/editor/ComponentTree.d.ts +0 -5
- package/types/editor/Debug.d.ts +0 -6
- package/types/editor/EditHistory.d.ts +0 -4
- package/types/editor/Editor.d.ts +0 -6
- package/types/editor/GraphQL.d.ts +0 -5
- package/types/editor/ItemEditor.d.ts +0 -4
- package/types/editor/LanguageSelector.d.ts +0 -5
- package/types/editor/SidebarTabs.d.ts +0 -8
- package/types/editor/Utils.d.ts +0 -3
- package/types/editor/VersionSelector.d.ts +0 -5
- package/types/editor/Workbox.d.ts +0 -6
- package/types/editor/componentCommands.d.ts +0 -4
- package/types/editor/editService.d.ts +0 -20
- package/types/editor/index.d.ts +0 -2
- package/types/layoutData.d.ts +0 -92
- package/types/middleware/authorization.d.ts +0 -2
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Column } from "primereact/column";
|
|
3
|
+
import { DataTable } from "primereact/datatable";
|
|
4
|
+
import { useEditContext } from "../editContext";
|
|
5
|
+
import { Tooltip } from "primereact/tooltip";
|
|
6
|
+
import { Button } from "primereact/button";
|
|
7
|
+
import { useRef, useState } from "react";
|
|
8
|
+
import { OverlayPanel } from "primereact/overlaypanel";
|
|
9
|
+
import { classNames } from "primereact/utils";
|
|
10
|
+
export function Workbox() {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const [validationOverlayItem, setValidationOverlayItem] = useState();
|
|
13
|
+
const editContext = useEditContext();
|
|
14
|
+
const validationResult = editContext === null || editContext === void 0 ? void 0 : editContext.pageValidationResult;
|
|
15
|
+
if (!editContext)
|
|
16
|
+
return null;
|
|
17
|
+
const validationOverlay = useRef(null);
|
|
18
|
+
const nameBodyTemplate = (wbItem) => {
|
|
19
|
+
const id = wbItem.item.id + wbItem.item.language + wbItem.item.version;
|
|
20
|
+
return (_jsx("div", { className: "a-flex a-gap-2 a-items-center", children: _jsxs("span", { className: `a-name-tooltip-${id} a-break-all`, style: { position: "relative" }, children: [wbItem.item.name, " ", _jsxs("span", { className: "a-text-gray-300", children: ["(", wbItem.item.language, ", ", wbItem.item.version, ")"] }), _jsx(Tooltip, { target: `.a-name-tooltip-${id}`, content: wbItem.path })] }) }));
|
|
21
|
+
};
|
|
22
|
+
const stateBodyTemplate = (item) => {
|
|
23
|
+
if (item.isPublishable) {
|
|
24
|
+
const targets = Object.keys(item.publishStatus);
|
|
25
|
+
return targets.map((x) => (_jsxs("div", { children: [targets.length > 1 && (_jsxs(_Fragment, { children: [_jsx("b", { children: x }), ":"] })), item.publishStatus[x]] }, x)));
|
|
26
|
+
}
|
|
27
|
+
else
|
|
28
|
+
return item.workflowState;
|
|
29
|
+
};
|
|
30
|
+
const actionsBodyTemplate = (item) => {
|
|
31
|
+
var _a;
|
|
32
|
+
return (_jsx("div", { className: "a-flex a-gap-1", children: !item.isFinalState &&
|
|
33
|
+
((_a = item.commands) === null || _a === void 0 ? void 0 : _a.map((action) => {
|
|
34
|
+
return (_jsx(Button, { label: action.name, className: "a-text-xs a-p-1", onClick: () => editContext.executeWorkflowCommand(item.item, action.id), size: "small" }, action.id));
|
|
35
|
+
})) }));
|
|
36
|
+
};
|
|
37
|
+
const validationTemplate = (item) => {
|
|
38
|
+
const validator = validationResult === null || validationResult === void 0 ? void 0 : validationResult.find((x) => x.item.id === item.item.id &&
|
|
39
|
+
x.item.language === item.item.language &&
|
|
40
|
+
x.item.version === item.item.version);
|
|
41
|
+
if (!validator || !validator.results.length)
|
|
42
|
+
return null;
|
|
43
|
+
return (_jsx("div", { className: classNames("a-cursor-pointer", getValidationErrorLevelClass(validator.results.reduce((prev, curr) => Math.max(prev, curr.result), 0))), onClick: (ev) => {
|
|
44
|
+
var _a;
|
|
45
|
+
setValidationOverlayItem(item);
|
|
46
|
+
(_a = validationOverlay.current) === null || _a === void 0 ? void 0 : _a.toggle(ev);
|
|
47
|
+
}, children: validator.results.length }));
|
|
48
|
+
};
|
|
49
|
+
let items = (_b = (_a = editContext.page) === null || _a === void 0 ? void 0 : _a._editor) === null || _b === void 0 ? void 0 : _b.workbox.items;
|
|
50
|
+
if (!items)
|
|
51
|
+
return null;
|
|
52
|
+
items = items.sort((a, b) => {
|
|
53
|
+
if (a.isPublished === b.isPublished)
|
|
54
|
+
return 0;
|
|
55
|
+
return !a.isPublished || !a.isPublishable ? -1 : 1;
|
|
56
|
+
});
|
|
57
|
+
const overlayResult = validationResult === null || validationResult === void 0 ? void 0 : validationResult.find((x) => x.item.id === (validationOverlayItem === null || validationOverlayItem === void 0 ? void 0 : validationOverlayItem.item.id) &&
|
|
58
|
+
x.item.language === (validationOverlayItem === null || validationOverlayItem === void 0 ? void 0 : validationOverlayItem.item.language) &&
|
|
59
|
+
x.item.version === (validationOverlayItem === null || validationOverlayItem === void 0 ? void 0 : validationOverlayItem.item.version));
|
|
60
|
+
const getValidationErrorLevelClass = (level) => {
|
|
61
|
+
switch (level) {
|
|
62
|
+
case 0:
|
|
63
|
+
return "a-text-green-600";
|
|
64
|
+
case 1:
|
|
65
|
+
return "a-text-blue-600";
|
|
66
|
+
case 2:
|
|
67
|
+
return "a-text-yellow-600";
|
|
68
|
+
case 3:
|
|
69
|
+
return "a-text-orange-600";
|
|
70
|
+
case 4:
|
|
71
|
+
case 5:
|
|
72
|
+
return "a-text-red-600";
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
return (_jsxs(_Fragment, { children: [_jsxs(DataTable, { value: items, className: "a-text-xs", children: [_jsx(Column, { body: nameBodyTemplate, header: "Item" }), _jsx(Column, { body: stateBodyTemplate, header: "State" }), _jsx(Column, { body: actionsBodyTemplate, header: "Actions" }), _jsx(Column, { body: validationTemplate, align: "center", header: _jsx("i", { className: "pi pi-check" }) })] }), _jsx(OverlayPanel, { ref: validationOverlay, children: _jsxs("table", { className: "a-text-xs a-border-spacing-1 a-border-separate", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { className: "a-text-left", children: "Item" }), _jsx("th", { className: "a-text-left", children: "Field" }), _jsx("th", { className: "a-text-left", children: "Validator" }), _jsx("th", { className: "a-text-left", children: "Message" })] }) }), _jsx("tbody", { children: overlayResult &&
|
|
76
|
+
overlayResult.results.map((x) => (_jsxs("tr", { children: [_jsx("td", { children: x.itemName }), _jsx("td", { children: x.fieldName }), _jsx("td", { children: x.validator }), _jsx("td", { className: classNames("a-text-xs a-break-all a-max-w-48", getValidationErrorLevelClass(x.result)), children: x.message })] }, x.fieldId + x.itemId))) })] }) })] }));
|
|
77
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useEditContext } from "../editContext";
|
|
4
|
+
export function CopyToClipboardButton({ text }) {
|
|
5
|
+
const editContext = useEditContext();
|
|
6
|
+
const handleCopyToClipboard = (text) => {
|
|
7
|
+
navigator.clipboard.writeText(text);
|
|
8
|
+
editContext.showToast({
|
|
9
|
+
summary: "Copied to clipboard",
|
|
10
|
+
severity: "success",
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
return (_jsx("span", { className: "a-ml-1 a-cursor-pointer", onClick: () => handleCopyToClipboard(text), children: _jsx("i", { className: "pi pi-copy a-text-xs" }) }));
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function WizardIcon({ className }) {
|
|
3
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: className, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z" }) }));
|
|
4
|
+
}
|
|
5
|
+
export function BugIcon({ className }) {
|
|
6
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: className, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082" }) }));
|
|
7
|
+
}
|
|
8
|
+
export function EditIcon({ className }) {
|
|
9
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: className, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10" }) }));
|
|
10
|
+
}
|
|
11
|
+
export function JsonIcon({ className }) {
|
|
12
|
+
return (_jsx("svg", { fill: "#000000", version: "1.1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 58 58", className: className, children: _jsxs("g", { children: [_jsx("path", { d: "M50.949,12.187l-1.361-1.361l-9.504-9.505c-0.001-0.001-0.001-0.001-0.002-0.001l-0.77-0.771\r\n\t\tC38.957,0.195,38.486,0,37.985,0H8.963C7.776,0,6.5,0.916,6.5,2.926V39v16.537V56c0,0.837,0.841,1.652,1.836,1.909\r\n\t\tc0.051,0.014,0.1,0.033,0.152,0.043C8.644,57.983,8.803,58,8.963,58h40.074c0.16,0,0.319-0.017,0.475-0.048\r\n\t\tc0.052-0.01,0.101-0.029,0.152-0.043C50.659,57.652,51.5,56.837,51.5,56v-0.463V39V13.978C51.5,13.211,51.407,12.644,50.949,12.187\r\n\t\tz M39.5,3.565L47.935,12H39.5V3.565z M8.963,56c-0.071,0-0.135-0.025-0.198-0.049C8.61,55.877,8.5,55.721,8.5,55.537V41h41v14.537\r\n\t\tc0,0.184-0.11,0.34-0.265,0.414C49.172,55.975,49.108,56,49.037,56H8.963z M8.5,39V2.926C8.5,2.709,8.533,2,8.963,2h28.595\r\n\t\tC37.525,2.126,37.5,2.256,37.5,2.391V13.78c-0.532-0.48-1.229-0.78-2-0.78c-0.553,0-1,0.448-1,1s0.447,1,1,1c0.552,0,1,0.449,1,1v4\r\n\t\tc0,1.2,0.542,2.266,1.382,3c-0.84,0.734-1.382,1.8-1.382,3v4c0,0.551-0.448,1-1,1c-0.553,0-1,0.448-1,1s0.447,1,1,1\r\n\t\tc1.654,0,3-1.346,3-3v-4c0-1.103,0.897-2,2-2c0.553,0,1-0.448,1-1s-0.447-1-1-1c-1.103,0-2-0.897-2-2v-4\r\n\t\tc0-0.771-0.301-1.468-0.78-2h11.389c0.135,0,0.265-0.025,0.391-0.058c0,0.015,0.001,0.021,0.001,0.036V39H8.5z" }), _jsx("path", { d: "M16.354,51.43c-0.019,0.446-0.171,0.764-0.458,0.95s-0.672,0.28-1.155,0.28c-0.191,0-0.396-0.022-0.615-0.068\r\n\t\ts-0.429-0.098-0.629-0.157s-0.385-0.123-0.554-0.191s-0.299-0.135-0.39-0.198l-0.697,1.107c0.183,0.137,0.405,0.26,0.67,0.369\r\n\t\ts0.54,0.207,0.827,0.294s0.565,0.15,0.834,0.191s0.504,0.062,0.704,0.062c0.401,0,0.791-0.039,1.169-0.116\r\n\t\tc0.378-0.077,0.713-0.214,1.005-0.41s0.524-0.456,0.697-0.779s0.26-0.723,0.26-1.196v-7.848h-1.668V51.43z" }), _jsx("path", { d: "M25.083,49.064c-0.314-0.228-0.654-0.422-1.019-0.581s-0.702-0.323-1.012-0.492s-0.569-0.364-0.779-0.588\r\n\t\ts-0.314-0.518-0.314-0.882c0-0.146,0.036-0.299,0.109-0.458s0.173-0.303,0.301-0.431s0.273-0.234,0.438-0.321\r\n\t\ts0.337-0.139,0.52-0.157c0.328-0.027,0.597-0.032,0.807-0.014s0.378,0.05,0.506,0.096s0.226,0.091,0.294,0.137\r\n\t\ts0.13,0.082,0.185,0.109c0.009-0.009,0.036-0.055,0.082-0.137s0.101-0.185,0.164-0.308s0.132-0.255,0.205-0.396\r\n\t\ts0.137-0.271,0.191-0.39c-0.265-0.173-0.61-0.299-1.039-0.376s-0.853-0.116-1.271-0.116c-0.41,0-0.8,0.063-1.169,0.191\r\n\t\ts-0.692,0.313-0.971,0.554s-0.499,0.535-0.663,0.882S20.4,46.13,20.4,46.576c0,0.492,0.104,0.902,0.314,1.23\r\n\t\ts0.474,0.613,0.793,0.854s0.661,0.451,1.025,0.629s0.704,0.355,1.019,0.533s0.576,0.376,0.786,0.595s0.314,0.483,0.314,0.793\r\n\t\tc0,0.511-0.148,0.896-0.444,1.155s-0.723,0.39-1.278,0.39c-0.183,0-0.378-0.019-0.588-0.055s-0.419-0.084-0.629-0.144\r\n\t\ts-0.412-0.123-0.608-0.191s-0.357-0.139-0.485-0.212l-0.287,1.176c0.155,0.137,0.34,0.253,0.554,0.349s0.439,0.171,0.677,0.226\r\n\t\tc0.237,0.055,0.472,0.094,0.704,0.116s0.458,0.034,0.677,0.034c0.511,0,0.966-0.077,1.367-0.232s0.738-0.362,1.012-0.622\r\n\t\ts0.485-0.561,0.636-0.902s0.226-0.695,0.226-1.06c0-0.538-0.104-0.978-0.314-1.319S25.397,49.292,25.083,49.064z" }), _jsx("path", { d: "M34.872,45.072c-0.378-0.429-0.82-0.754-1.326-0.978s-1.06-0.335-1.661-0.335s-1.155,0.111-1.661,0.335\r\n\t\ts-0.948,0.549-1.326,0.978s-0.675,0.964-0.889,1.606s-0.321,1.388-0.321,2.235s0.107,1.595,0.321,2.242s0.511,1.185,0.889,1.613\r\n\t\ts0.82,0.752,1.326,0.971s1.06,0.328,1.661,0.328s1.155-0.109,1.661-0.328s0.948-0.542,1.326-0.971s0.675-0.966,0.889-1.613\r\n\t\ts0.321-1.395,0.321-2.242s-0.107-1.593-0.321-2.235S35.25,45.501,34.872,45.072z M34.195,50.698\r\n\t\tc-0.137,0.487-0.326,0.882-0.567,1.183s-0.515,0.518-0.82,0.649s-0.627,0.198-0.964,0.198c-0.328,0-0.641-0.07-0.937-0.212\r\n\t\ts-0.561-0.364-0.793-0.67s-0.415-0.699-0.547-1.183s-0.203-1.066-0.212-1.75c0.009-0.702,0.082-1.294,0.219-1.777\r\n\t\tc0.137-0.483,0.326-0.877,0.567-1.183s0.515-0.521,0.82-0.649s0.627-0.191,0.964-0.191c0.328,0,0.641,0.068,0.937,0.205\r\n\t\ts0.561,0.36,0.793,0.67s0.415,0.704,0.547,1.183s0.203,1.06,0.212,1.743C34.405,49.616,34.332,50.211,34.195,50.698z" }), _jsx("polygon", { points: "44.012,50.869 40.061,43.924 38.393,43.924 38.393,54 40.061,54 40.061,47.055 44.012,54 45.68,54 45.68,43.924 \r\n\t\t44.012,43.924 \t" }), _jsx("path", { d: "M20.5,20v-4c0-0.551,0.448-1,1-1c0.553,0,1-0.448,1-1s-0.447-1-1-1c-1.654,0-3,1.346-3,3v4c0,1.103-0.897,2-2,2\r\n\t\tc-0.553,0-1,0.448-1,1s0.447,1,1,1c1.103,0,2,0.897,2,2v4c0,1.654,1.346,3,3,3c0.553,0,1-0.448,1-1s-0.447-1-1-1\r\n\t\tc-0.552,0-1-0.449-1-1v-4c0-1.2-0.542-2.266-1.382-3C19.958,22.266,20.5,21.2,20.5,20z" }), _jsx("circle", { cx: "28.5", cy: "19.5", r: "1.5" }), _jsx("path", { d: "M28.5,25c-0.553,0-1,0.448-1,1v3c0,0.552,0.447,1,1,1s1-0.448,1-1v-3C29.5,25.448,29.053,25,28.5,25z" })] }) }));
|
|
13
|
+
}
|
|
14
|
+
export function GraphQLIcon({ className }) {
|
|
15
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", version: "1.1", id: "GraphQL_Logo", x: "0px", y: "0px", viewBox: "0 0 400 400", enableBackground: "new 0 0 400 400", className: className, children: _jsxs("g", { children: [_jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "122", y: "-0.4", transform: "matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)", fill: "#E535AB", width: "16.6", height: "320.3" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "39.8", y: "272.2", fill: "#E535AB", width: "320.3", height: "16.6" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "37.9", y: "312.2", transform: "matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)", fill: "#E535AB", width: "185", height: "16.6" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "177.1", y: "71.1", transform: "matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)", fill: "#E535AB", width: "185", height: "16.6" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "122.1", y: "-13", transform: "matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)", fill: "#E535AB", width: "16.6", height: "185" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "109.6", y: "151.6", transform: "matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)", fill: "#E535AB", width: "320.3", height: "16.6" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "52.5", y: "107.5", fill: "#E535AB", width: "16.6", height: "185" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "330.9", y: "107.5", fill: "#E535AB", width: "16.6", height: "185" }) }) }), _jsx("g", { children: _jsx("g", { children: _jsx("rect", { x: "262.4", y: "240.1", transform: "matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)", fill: "#E535AB", width: "14.5", height: "160.9" }) }) }), _jsx("path", { fill: "#E535AB", d: "M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9" }), _jsx("path", { fill: "#E535AB", d: "M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137" }), _jsx("path", { fill: "#E535AB", d: "M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9" }), _jsx("path", { fill: "#E535AB", d: "M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137" }), _jsx("path", { fill: "#E535AB", d: "M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8" }), _jsx("path", { fill: "#E535AB", d: "M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74" })] }) }));
|
|
16
|
+
}
|
|
17
|
+
export function ArrowDownIcon() {
|
|
18
|
+
return (_jsx("svg", { width: "10", height: "5", viewBox: "0 0 10 5", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M5 5L9.33013 0.5H0.669873L5 5Z", fill: "#111111" }) }));
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog } from "primereact/dialog";
|
|
3
|
+
import { InputText } from "primereact/inputtext";
|
|
4
|
+
import { forwardRef, useEffect, useImperativeHandle, useState } from "react";
|
|
5
|
+
import DialogButtons from "../DialogButtons";
|
|
6
|
+
import { Button } from "primereact/button";
|
|
7
|
+
const ItemNameDialog = forwardRef((_props, ref) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const [visible, setVisible] = useState(false);
|
|
10
|
+
const [props, setProps] = useState();
|
|
11
|
+
const [name, setName] = useState("");
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
setName((props === null || props === void 0 ? void 0 : props.name) || "");
|
|
14
|
+
}, [props]);
|
|
15
|
+
useImperativeHandle(ref, () => ({
|
|
16
|
+
show: (props) => {
|
|
17
|
+
setVisible(true);
|
|
18
|
+
setProps(props);
|
|
19
|
+
},
|
|
20
|
+
}));
|
|
21
|
+
const isValidName = name.trim().length > 0;
|
|
22
|
+
const handleOk = () => {
|
|
23
|
+
setVisible(false);
|
|
24
|
+
props === null || props === void 0 ? void 0 : props.accept(name);
|
|
25
|
+
};
|
|
26
|
+
return (_jsxs(Dialog, { visible: visible, onHide: () => {
|
|
27
|
+
setVisible(false);
|
|
28
|
+
}, header: (_a = props === null || props === void 0 ? void 0 : props.title) !== null && _a !== void 0 ? _a : "Choose item name", children: [_jsx("div", { className: "a-pt-3", children: _jsx(InputText, { autoFocus: true, value: name, onChange: (e) => setName(e.target.value), onKeyDown: (ev) => {
|
|
29
|
+
if (ev.key === "Enter" && isValidName)
|
|
30
|
+
handleOk();
|
|
31
|
+
} }) }), _jsxs(DialogButtons, { children: [_jsx(Button, { onClick: handleOk, label: "Ok", disabled: !isValidName }), _jsx(Button, { onClick: () => setVisible(false), label: "Cancel" })] })] }));
|
|
32
|
+
});
|
|
33
|
+
export default ItemNameDialog;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "primereact/utils";
|
|
3
|
+
import { useLocalStorage } from "../utils";
|
|
4
|
+
export function Section({ title, children, }) {
|
|
5
|
+
const [open, setOpen] = useLocalStorage("alpaca-headless-editor-show-section-" + title, true);
|
|
6
|
+
true;
|
|
7
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: "a-p-1.5 a-border-l-8 a-text-white a-text-sm a-border-blue-400 a-bg-gray-400 a-cursor-pointer a-flex a-justify-between a-items-center", onClick: () => setOpen(!open), children: [title, _jsx("i", { className: classNames(open ? "pi-chevron-up" : "pi-chevron-down", "pi a-cursor-pointer a-text-sm") })] }), open && _jsx("div", { className: "a-pt-4 a-pb-8 a-px-2", children: children })] }));
|
|
8
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getComponentById } from "../componentTreeHelper";
|
|
2
|
+
export function getInsertOptionsForCurrentSelection(editContext) {
|
|
3
|
+
const insertingPlaceholderKeys = [editContext.selectedForInsertion]
|
|
4
|
+
.map((x) => getComponentById(x, editContext.page))
|
|
5
|
+
.filter((x) => x)
|
|
6
|
+
.reduce((a, x) => a.concat(x.placeholders.map((y) => y.key)), []);
|
|
7
|
+
const selectedPlaceholderKeys = [
|
|
8
|
+
//...selection.filter((x) => x.indexOf("_") > 0),
|
|
9
|
+
...insertingPlaceholderKeys,
|
|
10
|
+
];
|
|
11
|
+
const page = editContext.page;
|
|
12
|
+
function collectInsertOptions(page, placeholderKeys) {
|
|
13
|
+
const insertOptionsMap = new Map();
|
|
14
|
+
function traverse(placeholders) {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
for (const placeholder of placeholders) {
|
|
17
|
+
if (((_a = placeholder._editor) === null || _a === void 0 ? void 0 : _a.insertOptions) &&
|
|
18
|
+
(placeholderKeys.length === 0 ||
|
|
19
|
+
placeholderKeys.includes(placeholder.key))) {
|
|
20
|
+
for (const option of (_b = placeholder._editor) === null || _b === void 0 ? void 0 : _b.insertOptions) {
|
|
21
|
+
insertOptionsMap.set(option.id, option);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (const component of placeholder.components) {
|
|
25
|
+
traverse(component.placeholders);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
traverse(page.placeholders);
|
|
30
|
+
// Convert the map back into an array of objects
|
|
31
|
+
const insertOptionsArray = Array.from(insertOptionsMap.values());
|
|
32
|
+
insertOptionsArray.sort((a, b) => a.name.localeCompare(b.name));
|
|
33
|
+
return insertOptionsArray;
|
|
34
|
+
}
|
|
35
|
+
const currentInsertOptions = page
|
|
36
|
+
? collectInsertOptions(page, selectedPlaceholderKeys)
|
|
37
|
+
: [];
|
|
38
|
+
return currentInsertOptions;
|
|
39
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
// Hook
|
|
4
|
+
export function useEventListenerExt(eventName, handler, element, capture = false) {
|
|
5
|
+
// Create a ref that stores handler
|
|
6
|
+
const savedHandler = useRef();
|
|
7
|
+
// Update ref.current value if handler changes.
|
|
8
|
+
// This allows our effect below to always get latest handler ...
|
|
9
|
+
// ... without us needing to pass it in effect deps array ...
|
|
10
|
+
// ... and potentially cause effect to re-run every render.
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
savedHandler.current = handler;
|
|
13
|
+
}, [handler]);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
// Make sure element supports addEventListener
|
|
16
|
+
// On
|
|
17
|
+
const isSupported = element && element.addEventListener;
|
|
18
|
+
if (!isSupported)
|
|
19
|
+
return;
|
|
20
|
+
// Create event listener that calls handler function stored in ref
|
|
21
|
+
const eventListener = (event) => savedHandler.current(event);
|
|
22
|
+
// Add event listener
|
|
23
|
+
element.addEventListener(eventName, eventListener, { capture: capture });
|
|
24
|
+
// Remove event listener on cleanup
|
|
25
|
+
return () => {
|
|
26
|
+
element.removeEventListener(eventName, eventListener);
|
|
27
|
+
};
|
|
28
|
+
}, [eventName, element] // Re-run if eventName or element changes
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
export const useLocalStorage = (storageKey, fallbackState) => {
|
|
32
|
+
var _a;
|
|
33
|
+
const [value, setValue] = useState(JSON.parse((_a = localStorage.getItem(storageKey)) !== null && _a !== void 0 ? _a : JSON.stringify(fallbackState)));
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
localStorage.setItem(storageKey, JSON.stringify(value));
|
|
36
|
+
}, [value, storageKey]);
|
|
37
|
+
return [value, setValue];
|
|
38
|
+
};
|
|
39
|
+
export const getSelectedText = () => {
|
|
40
|
+
// Check if window and window.getSelection are available
|
|
41
|
+
if (typeof window !== "undefined" && window.getSelection) {
|
|
42
|
+
const selection = window.getSelection();
|
|
43
|
+
if (selection && selection.rangeCount > 0) {
|
|
44
|
+
return selection.toString();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return "";
|
|
48
|
+
};
|
|
49
|
+
export function isFieldActionExecuting(field, editContext) {
|
|
50
|
+
var _a;
|
|
51
|
+
const fieldItem = (_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor.item;
|
|
52
|
+
if (!fieldItem) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
var action = editContext.activeFieldActions.find((x) => {
|
|
56
|
+
var _a, _b, _c, _d, _e, _f;
|
|
57
|
+
return x.field.id == field.id &&
|
|
58
|
+
((_b = (_a = x.field._editor) === null || _a === void 0 ? void 0 : _a.descriptor.item) === null || _b === void 0 ? void 0 : _b.id) == fieldItem.id &&
|
|
59
|
+
((_d = (_c = x.field._editor) === null || _c === void 0 ? void 0 : _c.descriptor.item) === null || _d === void 0 ? void 0 : _d.language) == fieldItem.language &&
|
|
60
|
+
((_f = (_e = x.field._editor) === null || _e === void 0 ? void 0 : _e.descriptor.item) === null || _f === void 0 ? void 0 : _f.version) == fieldItem.version;
|
|
61
|
+
});
|
|
62
|
+
return (action === null || action === void 0 ? void 0 : action.state) == "running";
|
|
63
|
+
}
|
|
64
|
+
export function getItemDescriptor(item) {
|
|
65
|
+
return {
|
|
66
|
+
id: item.id,
|
|
67
|
+
language: item.language,
|
|
68
|
+
version: item.version,
|
|
69
|
+
name: item.name,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EditorWarnings } from "../EditorWarnings";
|
|
3
|
+
import { FieldList } from "../FieldList";
|
|
4
|
+
import { ItemInfo } from "../ItemInfo";
|
|
5
|
+
import { useEditContext } from "../editContext";
|
|
6
|
+
export function ItemEditor() {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const editContext = useEditContext();
|
|
9
|
+
if (!editContext)
|
|
10
|
+
return;
|
|
11
|
+
const item = editContext.secondaryItem || editContext.page;
|
|
12
|
+
if (!item)
|
|
13
|
+
return;
|
|
14
|
+
const pageValidators = ((_b = (_a = editContext.pageValidationResult) === null || _a === void 0 ? void 0 : _a.find((x) => x.item.id === (item === null || item === void 0 ? void 0 : item.id) &&
|
|
15
|
+
x.item.language === (item === null || item === void 0 ? void 0 : item.language) &&
|
|
16
|
+
x.item.version === (item === null || item === void 0 ? void 0 : item.version))) === null || _b === void 0 ? void 0 : _b.results) || [];
|
|
17
|
+
return (_jsxs("div", { className: "a-h-full a-overflow-y-auto", children: [_jsx(EditorWarnings, { item: item }), _jsx(ItemInfo, { item: item }), _jsx(FieldList, { fields: item.fields, validators: pageValidators.filter((x) => x.itemId === item.id) })] }));
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { cookies } from "next/headers";
|
|
11
|
+
import { getApiKey } from "./loadRouteData";
|
|
12
|
+
export function executeGraphQLQuery({ query, host, path, language, mode, itemId, version, tags, revalidate, siteName, }, sessionId) {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
let url = process.env.LAYOUT_SERVICE_URL + "/alpaca/headless/graphql";
|
|
15
|
+
if (sessionId)
|
|
16
|
+
url += "?sessionId=" + sessionId;
|
|
17
|
+
console.log(`GraphQL query:`, query);
|
|
18
|
+
const request = {
|
|
19
|
+
Query: query,
|
|
20
|
+
Host: host,
|
|
21
|
+
Path: path,
|
|
22
|
+
ItemId: itemId,
|
|
23
|
+
Language: language,
|
|
24
|
+
Version: version,
|
|
25
|
+
Mode: mode,
|
|
26
|
+
SiteName: siteName,
|
|
27
|
+
};
|
|
28
|
+
const response = yield fetch(url, {
|
|
29
|
+
method: "POST",
|
|
30
|
+
credentials: "include",
|
|
31
|
+
headers: {
|
|
32
|
+
"Content-Type": "application/json",
|
|
33
|
+
Cookie: cookies().toString(),
|
|
34
|
+
"x-api-key": getApiKey(),
|
|
35
|
+
},
|
|
36
|
+
body: JSON.stringify(request),
|
|
37
|
+
next: {
|
|
38
|
+
tags: tags !== null && tags !== void 0 ? tags : ["graphql"],
|
|
39
|
+
revalidate: revalidate,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
if (!response.ok) {
|
|
43
|
+
console.log("Could not execute graphQL query: Response code: " + response.status);
|
|
44
|
+
console.log(yield response.text());
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
const data = yield response.json();
|
|
48
|
+
return data;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./servertypes";
|
|
2
|
+
export * from "./loadRouteData";
|
|
3
|
+
export * from "./components";
|
|
4
|
+
export * from "./renderContext";
|
|
5
|
+
export * from "./Editor";
|
|
6
|
+
export * from "./middleware";
|
|
7
|
+
export * as GraphQLTypes from "./graphQLTypes";
|
|
8
|
+
export * from "./graphQL";
|
|
9
|
+
export { translate } from "./translate";
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,12 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const alpacaContext_1 = require("./alpacaContext");
|
|
14
|
-
const headers_1 = require("next/headers");
|
|
15
|
-
const react_1 = require("react");
|
|
16
|
-
const fetchRouteData = (0, react_1.cache)((path, host, mode, itemId, language, session, version) => __awaiter(void 0, void 0, void 0, function* () {
|
|
10
|
+
import { cookies, headers } from "next/headers";
|
|
11
|
+
const fetchRouteData = (path, host, mode, itemId, language, session, version) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
12
|
const request = {
|
|
18
13
|
Path: path,
|
|
19
14
|
Host: host,
|
|
@@ -29,10 +24,10 @@ const fetchRouteData = (0, react_1.cache)((path, host, mode, itemId, language, s
|
|
|
29
24
|
console.log(`Fetching page layout from ${url}. Host:${request.Host} Path: ${request.Path}`);
|
|
30
25
|
const requestHeaders = {
|
|
31
26
|
"Content-Type": "application/json",
|
|
32
|
-
Cookie:
|
|
27
|
+
Cookie: cookies().toString(),
|
|
33
28
|
"x-api-key": getApiKey(),
|
|
34
29
|
};
|
|
35
|
-
const headersList =
|
|
30
|
+
const headersList = headers();
|
|
36
31
|
if (headersList.get("Authorization")) {
|
|
37
32
|
requestHeaders["Authorization"] = headersList.get("Authorization");
|
|
38
33
|
}
|
|
@@ -41,21 +36,27 @@ const fetchRouteData = (0, react_1.cache)((path, host, mode, itemId, language, s
|
|
|
41
36
|
body: JSON.stringify(request),
|
|
42
37
|
credentials: "include",
|
|
43
38
|
headers: requestHeaders,
|
|
39
|
+
redirect: "manual",
|
|
44
40
|
next: {
|
|
45
41
|
tags: ["pages"],
|
|
46
42
|
revalidate: mode === "preview" || mode == "edit" ? 0 : 30,
|
|
47
43
|
},
|
|
48
44
|
});
|
|
49
45
|
console.log("STATUS: " + response.status + " mode: " + mode);
|
|
46
|
+
if (response.status === 401) {
|
|
47
|
+
var auth = response.headers.get("WWW-Authenticate");
|
|
48
|
+
return { type: "unauthorized", auth: auth };
|
|
49
|
+
}
|
|
50
50
|
if (response.status === 404) {
|
|
51
51
|
return {
|
|
52
52
|
type: "notfound",
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
if (response.status === 301) {
|
|
55
|
+
if (response.status === 301 || response.status === 302) {
|
|
56
56
|
return {
|
|
57
57
|
type: "redirect",
|
|
58
|
-
location: response.
|
|
58
|
+
location: response.headers.get("Location"),
|
|
59
|
+
redirectType: response.status === 301 ? "permanent" : "temporary",
|
|
59
60
|
};
|
|
60
61
|
}
|
|
61
62
|
if (!response.ok) {
|
|
@@ -67,34 +68,16 @@ const fetchRouteData = (0, react_1.cache)((path, host, mode, itemId, language, s
|
|
|
67
68
|
};
|
|
68
69
|
}
|
|
69
70
|
const data = yield response.json();
|
|
70
|
-
//console.log(JSON.stringify(data, null, 2));
|
|
71
|
-
const context = (0, alpacaContext_1.useAlpacaContext)();
|
|
72
|
-
context.pageContext = {
|
|
73
|
-
itemId: data.page.id,
|
|
74
|
-
language: data.page.language,
|
|
75
|
-
site: data.site,
|
|
76
|
-
pageEditing: data.page.editing,
|
|
77
|
-
pageState: "",
|
|
78
|
-
database: data.page.database,
|
|
79
|
-
};
|
|
80
|
-
context.fields = data.page.fields;
|
|
81
|
-
context.edit = data.edit;
|
|
82
|
-
const dictionary = yield loadDictionary(context.pageContext.site.name, context.pageContext.language, mode, session);
|
|
83
|
-
context.dictionary = dictionary;
|
|
84
|
-
context.translate = (text) => {
|
|
85
|
-
return context.dictionary[text] || text;
|
|
86
|
-
};
|
|
87
71
|
return Object.assign(Object.assign({}, data.page), { type: "page" });
|
|
88
|
-
})
|
|
89
|
-
function loadRouteData(
|
|
90
|
-
var _a
|
|
72
|
+
});
|
|
73
|
+
export function loadRouteData({ path, searchParams, host, }) {
|
|
74
|
+
var _a;
|
|
91
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
const result = yield fetchRouteData((
|
|
76
|
+
const result = yield fetchRouteData(Array.isArray(path) ? (_a = path === null || path === void 0 ? void 0 : path.join("/")) !== null && _a !== void 0 ? _a : "/" : path, host, searchParams["mode"] || "normal", searchParams["itemid"], searchParams["language"], searchParams["session"], searchParams["version"]);
|
|
93
77
|
return result;
|
|
94
78
|
});
|
|
95
79
|
}
|
|
96
|
-
|
|
97
|
-
function loadDictionary(siteName, language, mode, session) {
|
|
80
|
+
export function loadDictionary(siteName, language, mode, session) {
|
|
98
81
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
82
|
let url = process.env.LAYOUT_SERVICE_URL +
|
|
100
83
|
"/alpaca/headless/dictionary" +
|
|
@@ -111,7 +94,7 @@ function loadDictionary(siteName, language, mode, session) {
|
|
|
111
94
|
credentials: "include",
|
|
112
95
|
headers: {
|
|
113
96
|
"Content-Type": "application/json",
|
|
114
|
-
Cookie:
|
|
97
|
+
Cookie: cookies().toString(),
|
|
115
98
|
"x-api-key": getApiKey(),
|
|
116
99
|
},
|
|
117
100
|
next: {
|
|
@@ -125,11 +108,10 @@ function loadDictionary(siteName, language, mode, session) {
|
|
|
125
108
|
return {};
|
|
126
109
|
}
|
|
127
110
|
const data = yield response.json();
|
|
128
|
-
//console.log(data);
|
|
129
111
|
return data;
|
|
130
112
|
});
|
|
131
113
|
}
|
|
132
|
-
function getApiKey() {
|
|
114
|
+
export function getApiKey() {
|
|
133
115
|
const apiKey = process.env.ALPACA_HEADLESS_API_KEY || process.env.API_KEY;
|
|
134
116
|
if (!apiKey)
|
|
135
117
|
console.log("ERROR: Could not find API key environment variable: ALPACA_HEADLESS_API_KEY");
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.hashImageUrl = void 0;
|
|
7
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
-
require("url");
|
|
1
|
+
import crypto from "crypto";
|
|
2
|
+
import "url";
|
|
9
3
|
const protectedParams = [
|
|
10
4
|
"w",
|
|
11
5
|
"h",
|
|
@@ -32,7 +26,7 @@ const protectedParams = [
|
|
|
32
26
|
"rh",
|
|
33
27
|
"crop",
|
|
34
28
|
];
|
|
35
|
-
function hashImageUrl(url) {
|
|
29
|
+
export function hashImageUrl(url) {
|
|
36
30
|
if (!process.env.MEDIA_REQUESTPROTECTION_SHAREDSECRET)
|
|
37
31
|
return url;
|
|
38
32
|
if (!url)
|
|
@@ -46,11 +40,10 @@ function hashImageUrl(url) {
|
|
|
46
40
|
.map((x) => x.name + "=" + x.val)
|
|
47
41
|
.join("&");
|
|
48
42
|
const stringToProtect = uri.pathname.substring(1) + "?" + searchParams;
|
|
49
|
-
const hash =
|
|
43
|
+
const hash = crypto
|
|
50
44
|
.createHash("md5")
|
|
51
45
|
.update(stringToProtect + process.env.MEDIA_REQUESTPROTECTION_SHAREDSECRET, "utf16le")
|
|
52
46
|
.digest("hex");
|
|
53
47
|
uri.searchParams.set("hash", hash);
|
|
54
48
|
return url.startsWith('http') ? uri.toString() : uri.pathname + uri.search;
|
|
55
49
|
}
|
|
56
|
-
exports.hashImageUrl = hashImageUrl;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { loadRouteData } from "../loadRouteData";
|
|
11
|
+
export function handleRequest({ request, mapHost, }) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const urlSearchParams = new URLSearchParams(request.nextUrl.search);
|
|
14
|
+
const nextSearchParams = {};
|
|
15
|
+
for (const [key, value] of urlSearchParams.entries()) {
|
|
16
|
+
nextSearchParams[key] = value;
|
|
17
|
+
}
|
|
18
|
+
const result = yield loadRouteData({
|
|
19
|
+
path: request.nextUrl.pathname,
|
|
20
|
+
searchParams: nextSearchParams,
|
|
21
|
+
host: mapHost(request.headers.get("host") || ""),
|
|
22
|
+
});
|
|
23
|
+
if (result.type === "redirect") {
|
|
24
|
+
return new Response(null, {
|
|
25
|
+
status: result.redirectType === "permanent" ? 301 : 302,
|
|
26
|
+
headers: {
|
|
27
|
+
Location: result.location,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (result.type === "unauthorized") {
|
|
32
|
+
if (result.auth)
|
|
33
|
+
return new Response(null, {
|
|
34
|
+
status: 401,
|
|
35
|
+
headers: {
|
|
36
|
+
"WWW-Authenticate": result.auth.replace(", Bearer", ""),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
else
|
|
40
|
+
return new Response(null, {
|
|
41
|
+
status: 401,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./handleRequest";
|