@velastack/cms 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +644 -0
- package/dist/cms.d.ts +6 -0
- package/dist/cms.js +30 -0
- package/dist/components/admin-bar/admin-bar-internal.svelte +1697 -0
- package/dist/components/admin-bar/admin-bar-internal.svelte.d.ts +12 -0
- package/dist/components/admin-bar/admin-bar.css +5 -0
- package/dist/components/admin-bar/admin-bar.svelte +355 -0
- package/dist/components/admin-bar/admin-bar.svelte.d.ts +7 -0
- package/dist/components/admin-bar/click-outside.d.ts +8 -0
- package/dist/components/admin-bar/click-outside.js +17 -0
- package/dist/components/admin-bar/css-root.svelte +23 -0
- package/dist/components/admin-bar/css-root.svelte.d.ts +19 -0
- package/dist/components/admin-bar/delete-page-dialog.svelte +326 -0
- package/dist/components/admin-bar/delete-page-dialog.svelte.d.ts +32 -0
- package/dist/components/admin-bar/history-panel.svelte +264 -0
- package/dist/components/admin-bar/history-panel.svelte.d.ts +8 -0
- package/dist/components/admin-bar/icons/bold.svelte +13 -0
- package/dist/components/admin-bar/icons/bold.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/check.svelte +11 -0
- package/dist/components/admin-bar/icons/check.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/chevron-down.svelte +11 -0
- package/dist/components/admin-bar/icons/chevron-down.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/chevron-right.svelte +11 -0
- package/dist/components/admin-bar/icons/chevron-right.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/chevron-up.svelte +11 -0
- package/dist/components/admin-bar/icons/chevron-up.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/code.svelte +14 -0
- package/dist/components/admin-bar/icons/code.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/external-link.svelte +15 -0
- package/dist/components/admin-bar/icons/external-link.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/file.svelte +19 -0
- package/dist/components/admin-bar/icons/file.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/heading-2.svelte +16 -0
- package/dist/components/admin-bar/icons/heading-2.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/heading-3.svelte +17 -0
- package/dist/components/admin-bar/icons/heading-3.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/icon.svelte +41 -0
- package/dist/components/admin-bar/icons/icon.svelte.d.ts +21 -0
- package/dist/components/admin-bar/icons/images.svelte +16 -0
- package/dist/components/admin-bar/icons/images.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/italic.svelte +15 -0
- package/dist/components/admin-bar/icons/italic.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/link-2-off.svelte +16 -0
- package/dist/components/admin-bar/icons/link-2-off.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/link.svelte +14 -0
- package/dist/components/admin-bar/icons/link.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/list-ordered.svelte +18 -0
- package/dist/components/admin-bar/icons/list-ordered.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/list.svelte +18 -0
- package/dist/components/admin-bar/icons/list.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/loader-circle.svelte +11 -0
- package/dist/components/admin-bar/icons/loader-circle.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/minus.svelte +11 -0
- package/dist/components/admin-bar/icons/minus.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/quote.svelte +24 -0
- package/dist/components/admin-bar/icons/quote.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/search.svelte +14 -0
- package/dist/components/admin-bar/icons/search.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/trash-2.svelte +17 -0
- package/dist/components/admin-bar/icons/trash-2.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/triangle-alert.svelte +15 -0
- package/dist/components/admin-bar/icons/triangle-alert.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/types.d.ts +7 -0
- package/dist/components/admin-bar/icons/types.js +1 -0
- package/dist/components/admin-bar/icons/undo-2.svelte +14 -0
- package/dist/components/admin-bar/icons/undo-2.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/upload.svelte +15 -0
- package/dist/components/admin-bar/icons/upload.svelte.d.ts +3 -0
- package/dist/components/admin-bar/icons/x.svelte +14 -0
- package/dist/components/admin-bar/icons/x.svelte.d.ts +3 -0
- package/dist/components/admin-bar/keyboard-shortcuts-dialog.svelte +96 -0
- package/dist/components/admin-bar/keyboard-shortcuts-dialog.svelte.d.ts +7 -0
- package/dist/components/admin-bar/locales-panel.svelte +137 -0
- package/dist/components/admin-bar/locales-panel.svelte.d.ts +9 -0
- package/dist/components/admin-bar/media-panel.svelte +282 -0
- package/dist/components/admin-bar/media-panel.svelte.d.ts +7 -0
- package/dist/components/admin-bar/new-page-chooser-dialog.svelte +56 -0
- package/dist/components/admin-bar/new-page-chooser-dialog.svelte.d.ts +10 -0
- package/dist/components/admin-bar/new-page-dialog.svelte +126 -0
- package/dist/components/admin-bar/new-page-dialog.svelte.d.ts +14 -0
- package/dist/components/admin-bar/page-config.d.ts +61 -0
- package/dist/components/admin-bar/page-config.js +24 -0
- package/dist/components/admin-bar/pages-panel.svelte +639 -0
- package/dist/components/admin-bar/pages-panel.svelte.d.ts +13 -0
- package/dist/components/admin-bar/panel-footer.svelte +21 -0
- package/dist/components/admin-bar/panel-footer.svelte.d.ts +8 -0
- package/dist/components/admin-bar/panel-header.svelte +29 -0
- package/dist/components/admin-bar/panel-header.svelte.d.ts +10 -0
- package/dist/components/admin-bar/panel.svelte +41 -0
- package/dist/components/admin-bar/panel.svelte.d.ts +10 -0
- package/dist/components/admin-bar/publish-dialog.svelte +387 -0
- package/dist/components/admin-bar/publish-dialog.svelte.d.ts +16 -0
- package/dist/components/admin-bar/resolve-route.d.ts +20 -0
- package/dist/components/admin-bar/resolve-route.js +50 -0
- package/dist/components/admin-bar/seo-panel.svelte +387 -0
- package/dist/components/admin-bar/seo-panel.svelte.d.ts +7 -0
- package/dist/components/admin-bar/share-preview-link-dialog.svelte +97 -0
- package/dist/components/admin-bar/share-preview-link-dialog.svelte.d.ts +9 -0
- package/dist/components/admin-bar/site-settings-panel.svelte +225 -0
- package/dist/components/admin-bar/site-settings-panel.svelte.d.ts +7 -0
- package/dist/components/admin-bar/status-pill.svelte +49 -0
- package/dist/components/admin-bar/status-pill.svelte.d.ts +11 -0
- package/dist/components/admin-bar/theme.svelte.d.ts +16 -0
- package/dist/components/admin-bar/theme.svelte.js +39 -0
- package/dist/components/admin-bar/ui/badge/badge.svelte +57 -0
- package/dist/components/admin-bar/ui/badge/badge.svelte.d.ts +16 -0
- package/dist/components/admin-bar/ui/badge/index.d.ts +4 -0
- package/dist/components/admin-bar/ui/badge/index.js +4 -0
- package/dist/components/admin-bar/ui/button/button.svelte +73 -0
- package/dist/components/admin-bar/ui/button/button.svelte.d.ts +16 -0
- package/dist/components/admin-bar/ui/button/index.d.ts +4 -0
- package/dist/components/admin-bar/ui/button/index.js +4 -0
- package/dist/components/admin-bar/ui/collapsible/collapsible-content.svelte +7 -0
- package/dist/components/admin-bar/ui/collapsible/collapsible-content.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/collapsible/collapsible-trigger.svelte +7 -0
- package/dist/components/admin-bar/ui/collapsible/collapsible-trigger.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/collapsible/collapsible.svelte +7 -0
- package/dist/components/admin-bar/ui/collapsible/collapsible.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/collapsible/index.d.ts +4 -0
- package/dist/components/admin-bar/ui/collapsible/index.js +6 -0
- package/dist/components/admin-bar/ui/dialog/dialog-close.svelte +7 -0
- package/dist/components/admin-bar/ui/dialog/dialog-close.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/dialog/dialog-content.svelte +46 -0
- package/dist/components/admin-bar/ui/dialog/dialog-content.svelte.d.ts +11 -0
- package/dist/components/admin-bar/ui/dialog/dialog-description.svelte +17 -0
- package/dist/components/admin-bar/ui/dialog/dialog-description.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/dialog/dialog-footer.svelte +23 -0
- package/dist/components/admin-bar/ui/dialog/dialog-footer.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/dialog/dialog-header.svelte +20 -0
- package/dist/components/admin-bar/ui/dialog/dialog-header.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/dialog/dialog-overlay.svelte +20 -0
- package/dist/components/admin-bar/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/dialog/dialog-portal.svelte +7 -0
- package/dist/components/admin-bar/ui/dialog/dialog-portal.svelte.d.ts +3 -0
- package/dist/components/admin-bar/ui/dialog/dialog-title.svelte +17 -0
- package/dist/components/admin-bar/ui/dialog/dialog-title.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/dialog/dialog-trigger.svelte +7 -0
- package/dist/components/admin-bar/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/dialog/dialog.svelte +7 -0
- package/dist/components/admin-bar/ui/dialog/dialog.svelte.d.ts +3 -0
- package/dist/components/admin-bar/ui/dialog/index.d.ts +11 -0
- package/dist/components/admin-bar/ui/dialog/index.js +13 -0
- package/dist/components/admin-bar/ui/input/index.d.ts +3 -0
- package/dist/components/admin-bar/ui/input/index.js +3 -0
- package/dist/components/admin-bar/ui/input/input.svelte +24 -0
- package/dist/components/admin-bar/ui/input/input.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/kbd/index.d.ts +4 -0
- package/dist/components/admin-bar/ui/kbd/index.js +6 -0
- package/dist/components/admin-bar/ui/kbd/kbd-group.svelte +20 -0
- package/dist/components/admin-bar/ui/kbd/kbd-group.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/kbd/kbd-shortcut.svelte +52 -0
- package/dist/components/admin-bar/ui/kbd/kbd-shortcut.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/kbd/kbd.svelte +27 -0
- package/dist/components/admin-bar/ui/kbd/kbd.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/label/index.d.ts +3 -0
- package/dist/components/admin-bar/ui/label/index.js +3 -0
- package/dist/components/admin-bar/ui/label/label.svelte +20 -0
- package/dist/components/admin-bar/ui/label/label.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/index.d.ts +18 -0
- package/dist/components/admin-bar/ui/menubar/index.js +20 -0
- package/dist/components/admin-bar/ui/menubar/menubar-checkbox-item.svelte +46 -0
- package/dist/components/admin-bar/ui/menubar/menubar-checkbox-item.svelte.d.ts +10 -0
- package/dist/components/admin-bar/ui/menubar/menubar-content.svelte +28 -0
- package/dist/components/admin-bar/ui/menubar/menubar-content.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/menubar-group-heading.svelte +25 -0
- package/dist/components/admin-bar/ui/menubar/menubar-group-heading.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/menubar/menubar-group.svelte +12 -0
- package/dist/components/admin-bar/ui/menubar/menubar-group.svelte.d.ts +7 -0
- package/dist/components/admin-bar/ui/menubar/menubar-item.svelte +27 -0
- package/dist/components/admin-bar/ui/menubar/menubar-item.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/menubar/menubar-label.svelte +25 -0
- package/dist/components/admin-bar/ui/menubar/menubar-label.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/menubar/menubar-menu.svelte +7 -0
- package/dist/components/admin-bar/ui/menubar/menubar-menu.svelte.d.ts +3 -0
- package/dist/components/admin-bar/ui/menubar/menubar-portal.svelte +7 -0
- package/dist/components/admin-bar/ui/menubar/menubar-portal.svelte.d.ts +3 -0
- package/dist/components/admin-bar/ui/menubar/menubar-radio-group.svelte +11 -0
- package/dist/components/admin-bar/ui/menubar/menubar-radio-group.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/menubar-radio-item.svelte +37 -0
- package/dist/components/admin-bar/ui/menubar/menubar-radio-item.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/menubar/menubar-separator.svelte +17 -0
- package/dist/components/admin-bar/ui/menubar/menubar-separator.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/menubar-shortcut.svelte +23 -0
- package/dist/components/admin-bar/ui/menubar/menubar-shortcut.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/menubar/menubar-sub-content.svelte +20 -0
- package/dist/components/admin-bar/ui/menubar/menubar-sub-content.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/menubar-sub-trigger.svelte +29 -0
- package/dist/components/admin-bar/ui/menubar/menubar-sub-trigger.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/menubar/menubar-sub.svelte +7 -0
- package/dist/components/admin-bar/ui/menubar/menubar-sub.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/menubar-trigger.svelte +20 -0
- package/dist/components/admin-bar/ui/menubar/menubar-trigger.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/menubar/menubar.svelte +20 -0
- package/dist/components/admin-bar/ui/menubar/menubar.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/select/index.d.ts +12 -0
- package/dist/components/admin-bar/ui/select/index.js +14 -0
- package/dist/components/admin-bar/ui/select/select-content.svelte +45 -0
- package/dist/components/admin-bar/ui/select/select-content.svelte.d.ts +11 -0
- package/dist/components/admin-bar/ui/select/select-group-heading.svelte +21 -0
- package/dist/components/admin-bar/ui/select/select-group-heading.svelte.d.ts +10 -0
- package/dist/components/admin-bar/ui/select/select-group.svelte +17 -0
- package/dist/components/admin-bar/ui/select/select-group.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/select/select-item.svelte +40 -0
- package/dist/components/admin-bar/ui/select/select-item.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/select/select-label.svelte +20 -0
- package/dist/components/admin-bar/ui/select/select-label.svelte.d.ts +6 -0
- package/dist/components/admin-bar/ui/select/select-portal.svelte +7 -0
- package/dist/components/admin-bar/ui/select/select-portal.svelte.d.ts +3 -0
- package/dist/components/admin-bar/ui/select/select-scroll-down-button.svelte +23 -0
- package/dist/components/admin-bar/ui/select/select-scroll-down-button.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/select/select-scroll-up-button.svelte +23 -0
- package/dist/components/admin-bar/ui/select/select-scroll-up-button.svelte.d.ts +5 -0
- package/dist/components/admin-bar/ui/select/select-separator.svelte +21 -0
- package/dist/components/admin-bar/ui/select/select-separator.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/select/select-trigger.svelte +31 -0
- package/dist/components/admin-bar/ui/select/select-trigger.svelte.d.ts +8 -0
- package/dist/components/admin-bar/ui/select/select.svelte +11 -0
- package/dist/components/admin-bar/ui/select/select.svelte.d.ts +3 -0
- package/dist/components/admin-bar/ui/separator/index.d.ts +2 -0
- package/dist/components/admin-bar/ui/separator/index.js +4 -0
- package/dist/components/admin-bar/ui/separator/separator.svelte +21 -0
- package/dist/components/admin-bar/ui/separator/separator.svelte.d.ts +4 -0
- package/dist/components/admin-bar/ui/textarea/index.d.ts +3 -0
- package/dist/components/admin-bar/ui/textarea/index.js +3 -0
- package/dist/components/admin-bar/ui/textarea/textarea.svelte +21 -0
- package/dist/components/admin-bar/ui/textarea/textarea.svelte.d.ts +5 -0
- package/dist/components/admin-bar/user-avatar.svelte +29 -0
- package/dist/components/admin-bar/user-avatar.svelte.d.ts +7 -0
- package/dist/components/admin-bar/utils.d.ts +10 -0
- package/dist/components/admin-bar/utils.js +46 -0
- package/dist/components/admin-bar/variants.d.ts +20 -0
- package/dist/components/admin-bar/variants.js +14 -0
- package/dist/components/cms/cms-boolean.svelte +102 -0
- package/dist/components/cms/cms-boolean.svelte.d.ts +10 -0
- package/dist/components/cms/cms-date-time-editable.svelte +66 -0
- package/dist/components/cms/cms-date-time-editable.svelte.d.ts +11 -0
- package/dist/components/cms/cms-date-time.svelte +67 -0
- package/dist/components/cms/cms-date-time.svelte.d.ts +19 -0
- package/dist/components/cms/cms-entries.svelte +24 -0
- package/dist/components/cms/cms-entries.svelte.d.ts +31 -0
- package/dist/components/cms/cms-image-editable.svelte +439 -0
- package/dist/components/cms/cms-image-editable.svelte.d.ts +11 -0
- package/dist/components/cms/cms-image.svelte +78 -0
- package/dist/components/cms/cms-image.svelte.d.ts +18 -0
- package/dist/components/cms/cms-link-editable.svelte +429 -0
- package/dist/components/cms/cms-link-editable.svelte.d.ts +13 -0
- package/dist/components/cms/cms-link.svelte +92 -0
- package/dist/components/cms/cms-link.svelte.d.ts +25 -0
- package/dist/components/cms/cms-markdown-editable.svelte +74 -0
- package/dist/components/cms/cms-markdown-editable.svelte.d.ts +9 -0
- package/dist/components/cms/cms-markdown.svelte +56 -0
- package/dist/components/cms/cms-markdown.svelte.d.ts +10 -0
- package/dist/components/cms/cms-media-picker.svelte +150 -0
- package/dist/components/cms/cms-media-picker.svelte.d.ts +8 -0
- package/dist/components/cms/cms-number-editable.svelte +77 -0
- package/dist/components/cms/cms-number-editable.svelte.d.ts +13 -0
- package/dist/components/cms/cms-number.svelte +63 -0
- package/dist/components/cms/cms-number.svelte.d.ts +16 -0
- package/dist/components/cms/cms-repeater-editable.svelte +137 -0
- package/dist/components/cms/cms-repeater-editable.svelte.d.ts +31 -0
- package/dist/components/cms/cms-repeater.svelte +55 -0
- package/dist/components/cms/cms-repeater.svelte.d.ts +30 -0
- package/dist/components/cms/cms-rich-text-editable.svelte +101 -0
- package/dist/components/cms/cms-rich-text-editable.svelte.d.ts +9 -0
- package/dist/components/cms/cms-rich-text-toolbar.svelte +246 -0
- package/dist/components/cms/cms-rich-text-toolbar.svelte.d.ts +9 -0
- package/dist/components/cms/cms-rich-text.svelte +74 -0
- package/dist/components/cms/cms-rich-text.svelte.d.ts +10 -0
- package/dist/components/cms/cms-store.svelte.d.ts +294 -0
- package/dist/components/cms/cms-store.svelte.js +625 -0
- package/dist/components/cms/cms-text.svelte +131 -0
- package/dist/components/cms/cms-text.svelte.d.ts +11 -0
- package/dist/components/cms/index.d.ts +13 -0
- package/dist/components/cms/index.js +11 -0
- package/dist/components/cms/install-scope.svelte.d.ts +7 -0
- package/dist/components/cms/install-scope.svelte.js +33 -0
- package/dist/components/cms/locale-merge.d.ts +41 -0
- package/dist/components/cms/locale-merge.js +77 -0
- package/dist/components/cms/overlay-sync.d.ts +82 -0
- package/dist/components/cms/overlay-sync.js +76 -0
- package/dist/components/cms/path.d.ts +30 -0
- package/dist/components/cms/path.js +156 -0
- package/dist/components/cms/scope.d.ts +120 -0
- package/dist/components/cms/scope.js +23 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +28 -0
- package/dist/srv/README.md +341 -0
- package/dist/srv/api-adapter.d.ts +20 -0
- package/dist/srv/api-adapter.js +178 -0
- package/dist/srv/cms.d.ts +62 -0
- package/dist/srv/cms.js +35 -0
- package/dist/srv/index.d.ts +5 -0
- package/dist/srv/index.js +4 -0
- package/dist/srv/load-cms.d.ts +105 -0
- package/dist/srv/load-cms.js +227 -0
- package/dist/srv/mock-adapter.d.ts +96 -0
- package/dist/srv/mock-adapter.js +171 -0
- package/dist/srv/types.d.ts +114 -0
- package/dist/srv/types.js +1 -0
- package/package.json +116 -0
- package/plugin/README.md +137 -0
- package/plugin/dist/adapter.d.ts +35 -0
- package/plugin/dist/adapter.js +346 -0
- package/plugin/dist/adapter.js.map +1 -0
- package/plugin/dist/build-state.d.ts +10 -0
- package/plugin/dist/build-state.js +26 -0
- package/plugin/dist/build-state.js.map +1 -0
- package/plugin/dist/fallback-shim.js +194 -0
- package/plugin/dist/index.d.ts +56 -0
- package/plugin/dist/index.js +396 -0
- package/plugin/dist/index.js.map +1 -0
- package/plugin/dist/manifest.d.ts +76 -0
- package/plugin/dist/manifest.js +367 -0
- package/plugin/dist/manifest.js.map +1 -0
- package/plugin/dist/media.d.ts +36 -0
- package/plugin/dist/media.js +153 -0
- package/plugin/dist/media.js.map +1 -0
- package/plugin/dist/parse-svelte.d.ts +35 -0
- package/plugin/dist/parse-svelte.js +120 -0
- package/plugin/dist/parse-svelte.js.map +1 -0
- package/plugin/dist/route-tree.d.ts +27 -0
- package/plugin/dist/route-tree.js +69 -0
- package/plugin/dist/route-tree.js.map +1 -0
- package/plugin/dist/transforms.d.ts +42 -0
- package/plugin/dist/transforms.js +95 -0
- package/plugin/dist/transforms.js.map +1 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { transformWithOxc } from 'vite';
|
|
5
|
+
import { setPageCmsModules } from './build-state.js';
|
|
6
|
+
import { buildManifest } from './manifest.js';
|
|
7
|
+
import { deriveUploadsBase, downloadMedia, extractMediaUrls } from './media.js';
|
|
8
|
+
import { PAGE_CMS_VIRTUAL_PREFIX, buildPagesModuleSource, hasGenerateEntriesImport, injectGenerateEntriesRouteId, injectScopeInstall, parsePageCmsIndex } from './transforms.js';
|
|
9
|
+
const VIRTUAL_ID = 'virtual:vela-cms/manifest';
|
|
10
|
+
const RESOLVED_VIRTUAL_ID = '\0' + VIRTUAL_ID;
|
|
11
|
+
const PAGES_VIRTUAL_ID = 'virtual:vela-cms/pages';
|
|
12
|
+
const PAGES_RESOLVED_VIRTUAL_ID = '\0' + PAGES_VIRTUAL_ID;
|
|
13
|
+
const BUILD_CONFIG_VIRTUAL_ID = 'virtual:vela-cms/build-config';
|
|
14
|
+
const BUILD_CONFIG_RESOLVED_VIRTUAL_ID = '\0' + BUILD_CONFIG_VIRTUAL_ID;
|
|
15
|
+
/**
|
|
16
|
+
* Walk up from `start` looking for the nearest `package.json`. Returns the
|
|
17
|
+
* directory containing it, or `null` if none is found before the filesystem
|
|
18
|
+
* root.
|
|
19
|
+
*/
|
|
20
|
+
const findPackageRoot = (start) => {
|
|
21
|
+
let cur = start;
|
|
22
|
+
while (true) {
|
|
23
|
+
if (existsSync(resolve(cur, 'package.json')))
|
|
24
|
+
return cur;
|
|
25
|
+
const parent = dirname(cur);
|
|
26
|
+
if (parent === cur)
|
|
27
|
+
return null;
|
|
28
|
+
cur = parent;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
/** Returns `dir` if `<dir>/package.json` declares the given name, else `null`. */
|
|
32
|
+
const matchPackageName = (dir, name) => {
|
|
33
|
+
try {
|
|
34
|
+
const pkg = JSON.parse(readFileSync(resolve(dir, 'package.json'), 'utf-8'));
|
|
35
|
+
return pkg && pkg.name === name ? dir : null;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const MEDIA_PASS_CACHE_KEY = Symbol.for('@velastack/cms.mediaPassCache');
|
|
42
|
+
const getMediaPassCache = () => {
|
|
43
|
+
const g = globalThis;
|
|
44
|
+
let cache = g[MEDIA_PASS_CACHE_KEY];
|
|
45
|
+
if (!cache) {
|
|
46
|
+
cache = new Map();
|
|
47
|
+
g[MEDIA_PASS_CACHE_KEY] = cache;
|
|
48
|
+
}
|
|
49
|
+
return cache;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Walk the project's published content over HTTP to find every media URL
|
|
53
|
+
* referenced. Issues one `/pages?locale=L` per locale to enumerate
|
|
54
|
+
* (routeId, params) entries, then one `/docs` per (scope × entry × locale)
|
|
55
|
+
* tuple — deduped so layout-kind scopes (no owned params) are fetched once
|
|
56
|
+
* per locale even when reachable from many pages. Drafts, tombstoned and
|
|
57
|
+
* redirected entries contribute no media (they aren't part of the public
|
|
58
|
+
* payload). Failures during discovery are warned about but never throw —
|
|
59
|
+
* a build with one offline scope shouldn't fail outright.
|
|
60
|
+
*/
|
|
61
|
+
const discoverProjectMedia = async ({ endpoint, locales, manifest, uploadsBase }) => {
|
|
62
|
+
const found = new Set();
|
|
63
|
+
const fetchedDocs = new Set();
|
|
64
|
+
const docFetches = [];
|
|
65
|
+
const queueDocFetch = (kind, routeId, params, locale) => {
|
|
66
|
+
const paramsJson = JSON.stringify(params);
|
|
67
|
+
const cacheKey = `${kind}|${routeId}|${paramsJson}|${locale}`;
|
|
68
|
+
if (fetchedDocs.has(cacheKey))
|
|
69
|
+
return;
|
|
70
|
+
fetchedDocs.add(cacheKey);
|
|
71
|
+
const qs = new URLSearchParams({ kind, routeId, params: paramsJson, locale }).toString();
|
|
72
|
+
docFetches.push(fetch(`${endpoint}/docs?${qs}`)
|
|
73
|
+
.then(async (res) => {
|
|
74
|
+
if (res.status === 404 || !res.ok)
|
|
75
|
+
return;
|
|
76
|
+
const body = (await res.json());
|
|
77
|
+
if (!('contents' in body))
|
|
78
|
+
return;
|
|
79
|
+
for (const url of extractMediaUrls(body.contents, uploadsBase)) {
|
|
80
|
+
found.add(url);
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
.catch(() => {
|
|
84
|
+
// Single-scope failures are non-fatal — log nothing here;
|
|
85
|
+
// the worst-case impact is a missed media file we'd have to
|
|
86
|
+
// fall back to backend-served. Caller logs the high-level
|
|
87
|
+
// download summary.
|
|
88
|
+
}));
|
|
89
|
+
};
|
|
90
|
+
for (const locale of locales) {
|
|
91
|
+
let pages;
|
|
92
|
+
try {
|
|
93
|
+
const res = await fetch(`${endpoint}/pages?locale=${encodeURIComponent(locale)}`);
|
|
94
|
+
if (!res.ok)
|
|
95
|
+
continue;
|
|
96
|
+
pages = (await res.json());
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
for (const route of pages.routes) {
|
|
102
|
+
const m = manifest.routes[route.routeId];
|
|
103
|
+
if (!m)
|
|
104
|
+
continue;
|
|
105
|
+
// Entry metadata can include images for index/listing pages —
|
|
106
|
+
// scoop those without an extra request.
|
|
107
|
+
for (const entry of route.entries) {
|
|
108
|
+
if (entry.isDraft || entry.isDeletePending || entry.gone || entry.redirectTo) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (entry.metadata) {
|
|
112
|
+
for (const url of extractMediaUrls(entry.metadata, uploadsBase)) {
|
|
113
|
+
found.add(url);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const publishableEntries = route.entries.filter((e) => !e.isDraft && !e.isDeletePending && !e.gone && !e.redirectTo);
|
|
118
|
+
// A route with no owned params still resolves once with `{}`.
|
|
119
|
+
const fanOut = publishableEntries.length > 0 ? publishableEntries.map((e) => e.params) : [{}];
|
|
120
|
+
for (const params of fanOut) {
|
|
121
|
+
for (const scope of m.scopes) {
|
|
122
|
+
const scopeParams = {};
|
|
123
|
+
for (const p of scope.ownedParams) {
|
|
124
|
+
if (params[p] !== undefined)
|
|
125
|
+
scopeParams[p] = params[p];
|
|
126
|
+
}
|
|
127
|
+
queueDocFetch(scope.kind, scope.routeId, scopeParams, locale);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
await Promise.all(docFetches);
|
|
133
|
+
return found;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Vite plugin that scans SvelteKit route files, walks the static Svelte
|
|
137
|
+
* import graph from each entrypoint, and exposes a `cmsManifest` constant via
|
|
138
|
+
* `virtual:vela-cms/manifest`. Auto-injects `setContext(CMS_SCOPE, …)` into
|
|
139
|
+
* every `+layout.svelte` / `+page.svelte` so authors don't pass scope
|
|
140
|
+
* manually.
|
|
141
|
+
*
|
|
142
|
+
* Auto-discovers CMS components from:
|
|
143
|
+
* - `<libDir>/components/cms/*.svelte` (default imports)
|
|
144
|
+
* - `<libDir>/components/cms/index.{ts,js}` (every named export)
|
|
145
|
+
* - any import resolving inside the @velastack/cms package itself
|
|
146
|
+
*
|
|
147
|
+
* Use `components` to declare third-party CMS component packs. Use `traverse`
|
|
148
|
+
* to walk into wrapper packages whose `.svelte` files contain CMS usages but
|
|
149
|
+
* aren't themselves CMS components.
|
|
150
|
+
*/
|
|
151
|
+
export const cms = (options = {}) => {
|
|
152
|
+
let routesDir = '';
|
|
153
|
+
let libDir = '';
|
|
154
|
+
let viteRoot = '';
|
|
155
|
+
let config;
|
|
156
|
+
// The plugin ships inside the @velastack/cms package. From its own file
|
|
157
|
+
// location we can identify the package's repo (in dev) or installed (in
|
|
158
|
+
// node_modules) root so we can classify any import resolving inside that
|
|
159
|
+
// subtree.
|
|
160
|
+
const ownPackageRoot = findPackageRoot(dirname(fileURLToPath(import.meta.url)));
|
|
161
|
+
let cached = null;
|
|
162
|
+
let cachedSync = null;
|
|
163
|
+
let velacmsRoots = null;
|
|
164
|
+
const ensureManifest = (resolver) => {
|
|
165
|
+
if (cached)
|
|
166
|
+
return cached;
|
|
167
|
+
cached = (async () => {
|
|
168
|
+
// Resolve @velastack/cms package roots once: the plugin's own
|
|
169
|
+
// location plus (if installed elsewhere) the consumer-resolved
|
|
170
|
+
// package.
|
|
171
|
+
if (velacmsRoots === null) {
|
|
172
|
+
const roots = new Set();
|
|
173
|
+
if (ownPackageRoot)
|
|
174
|
+
roots.add(ownPackageRoot);
|
|
175
|
+
try {
|
|
176
|
+
const resolved = await resolver('@velastack/cms', undefined);
|
|
177
|
+
if (resolved) {
|
|
178
|
+
const dir = findPackageRoot(dirname(resolved));
|
|
179
|
+
if (dir && matchPackageName(dir, '@velastack/cms'))
|
|
180
|
+
roots.add(dir);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
// Swallow — self-resolution is best-effort.
|
|
185
|
+
}
|
|
186
|
+
velacmsRoots = [...roots];
|
|
187
|
+
}
|
|
188
|
+
const result = await buildManifest({
|
|
189
|
+
routesDir,
|
|
190
|
+
libDir,
|
|
191
|
+
velacmsRoots,
|
|
192
|
+
components: options.components,
|
|
193
|
+
traverse: options.traverse,
|
|
194
|
+
resolveExternal: resolver
|
|
195
|
+
});
|
|
196
|
+
cachedSync = result;
|
|
197
|
+
setPageCmsModules(result.pageCmsModules);
|
|
198
|
+
return result;
|
|
199
|
+
})();
|
|
200
|
+
return cached;
|
|
201
|
+
};
|
|
202
|
+
const makeResolver = (ctx) => {
|
|
203
|
+
return async (source, importer) => {
|
|
204
|
+
try {
|
|
205
|
+
const r = await ctx.resolve(source, importer ?? viteRoot, { skipSelf: true });
|
|
206
|
+
return r?.id ?? null;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
return {
|
|
214
|
+
name: '@velastack/cms',
|
|
215
|
+
enforce: 'pre',
|
|
216
|
+
configResolved(resolved) {
|
|
217
|
+
config = resolved;
|
|
218
|
+
viteRoot = config.root;
|
|
219
|
+
routesDir = resolve(config.root, options.routesDir ?? 'src/routes');
|
|
220
|
+
libDir = resolve(config.root, options.libDir ?? 'src/lib');
|
|
221
|
+
},
|
|
222
|
+
async buildStart() {
|
|
223
|
+
cached = null;
|
|
224
|
+
cachedSync = null;
|
|
225
|
+
velacmsRoots = null;
|
|
226
|
+
// Media discovery + download is only meaningful for `vite build`.
|
|
227
|
+
// In dev (`vite serve`), images load from the backend as today.
|
|
228
|
+
if (config.command !== 'build')
|
|
229
|
+
return;
|
|
230
|
+
if (!options.endpoint)
|
|
231
|
+
return;
|
|
232
|
+
const endpoint = options.endpoint.replace(/\/$/, '');
|
|
233
|
+
const resolver = makeResolver(this);
|
|
234
|
+
const locales = options.locales ?? ['en'];
|
|
235
|
+
const uploadsBase = deriveUploadsBase(endpoint);
|
|
236
|
+
const mediaDir = resolve(viteRoot, options.mediaDir ?? 'static/cms-media');
|
|
237
|
+
const logger = config.logger;
|
|
238
|
+
const cache = getMediaPassCache();
|
|
239
|
+
let pass = cache.get(endpoint);
|
|
240
|
+
if (!pass) {
|
|
241
|
+
pass = (async () => {
|
|
242
|
+
const result = await ensureManifest(resolver);
|
|
243
|
+
const filenames = await discoverProjectMedia({
|
|
244
|
+
endpoint,
|
|
245
|
+
locales,
|
|
246
|
+
manifest: result.manifest,
|
|
247
|
+
uploadsBase
|
|
248
|
+
});
|
|
249
|
+
if (filenames.size === 0)
|
|
250
|
+
return;
|
|
251
|
+
const dl = await downloadMedia(filenames, uploadsBase, mediaDir);
|
|
252
|
+
const total = dl.written + dl.skipped;
|
|
253
|
+
logger.info(`@velastack/cms: media — discovered ${filenames.size}, wrote ${dl.written}, skipped ${dl.skipped}${dl.failed.length ? `, failed ${dl.failed.length}` : ''} (of ${total})`);
|
|
254
|
+
for (const f of dl.failed) {
|
|
255
|
+
logger.warn(`@velastack/cms: media download failed for ${f.filename}: ${f.reason}`);
|
|
256
|
+
}
|
|
257
|
+
})();
|
|
258
|
+
cache.set(endpoint, pass);
|
|
259
|
+
}
|
|
260
|
+
await pass;
|
|
261
|
+
},
|
|
262
|
+
resolveId(id) {
|
|
263
|
+
if (id === VIRTUAL_ID)
|
|
264
|
+
return RESOLVED_VIRTUAL_ID;
|
|
265
|
+
if (id === PAGES_VIRTUAL_ID)
|
|
266
|
+
return PAGES_RESOLVED_VIRTUAL_ID;
|
|
267
|
+
if (id === BUILD_CONFIG_VIRTUAL_ID)
|
|
268
|
+
return BUILD_CONFIG_RESOLVED_VIRTUAL_ID;
|
|
269
|
+
if (id.startsWith(PAGE_CMS_VIRTUAL_PREFIX))
|
|
270
|
+
return '\0' + id;
|
|
271
|
+
},
|
|
272
|
+
async load(id) {
|
|
273
|
+
if (id === BUILD_CONFIG_RESOLVED_VIRTUAL_ID) {
|
|
274
|
+
// Inlined into the bundle so the apiAdapter reads it during
|
|
275
|
+
// SvelteKit prerender — even when prerender runs in a worker
|
|
276
|
+
// thread that doesn't share `globalThis` with the plugin
|
|
277
|
+
// process. When no `endpoint` is configured, `media` is null
|
|
278
|
+
// and the rewrite is a pass-through.
|
|
279
|
+
const media = options.endpoint
|
|
280
|
+
? {
|
|
281
|
+
uploadsBase: deriveUploadsBase(options.endpoint),
|
|
282
|
+
mediaPrefix: options.mediaPrefix ?? '/cms-media'
|
|
283
|
+
}
|
|
284
|
+
: null;
|
|
285
|
+
return `export const buildConfig = ${JSON.stringify({ media })};\n`;
|
|
286
|
+
}
|
|
287
|
+
if (id === RESOLVED_VIRTUAL_ID) {
|
|
288
|
+
const result = await ensureManifest(makeResolver(this));
|
|
289
|
+
for (const f of result.visitedFiles)
|
|
290
|
+
this.addWatchFile(f);
|
|
291
|
+
// No `addWatchFile(routesDir)` — Vite's import-analysis treats
|
|
292
|
+
// every `addWatchFile` entry as an import and tries to resolve
|
|
293
|
+
// it (node.js:27797), and a directory path doesn't resolve.
|
|
294
|
+
// New files added under `routesDir` are picked up by Vite's
|
|
295
|
+
// project-root watcher and routed through `handleHotUpdate`.
|
|
296
|
+
return `export const cmsManifest = ${JSON.stringify(result.manifest)};\n`;
|
|
297
|
+
}
|
|
298
|
+
if (id === PAGES_RESOLVED_VIRTUAL_ID) {
|
|
299
|
+
const result = await ensureManifest(makeResolver(this));
|
|
300
|
+
// No `addWatchFile` for `m.path` — paths inside SvelteKit route
|
|
301
|
+
// groups (e.g. `(marketing)`) trip Vite's module-graph URL
|
|
302
|
+
// normalization. HMR is handled by `handleHotUpdate` below,
|
|
303
|
+
// which receives every change in `routesDir` via SvelteKit's
|
|
304
|
+
// existing watcher.
|
|
305
|
+
return buildPagesModuleSource(result.pageCmsModules);
|
|
306
|
+
}
|
|
307
|
+
const idx = parsePageCmsIndex(id);
|
|
308
|
+
if (idx !== null) {
|
|
309
|
+
const result = await ensureManifest(makeResolver(this));
|
|
310
|
+
const m = result.pageCmsModules[idx];
|
|
311
|
+
if (!m)
|
|
312
|
+
return null;
|
|
313
|
+
// `addWatchFile(m.path)` is intentionally omitted — see the
|
|
314
|
+
// comment in the pages-module branch.
|
|
315
|
+
//
|
|
316
|
+
// Compile TS → JS ourselves: Vite's built-in TS transform
|
|
317
|
+
// filters by file extension, and `\0`-prefixed virtual ids
|
|
318
|
+
// don't match. Without this step, TS-only syntax in
|
|
319
|
+
// `page.cms.ts` (e.g. `import { type X } from '…'`,
|
|
320
|
+
// `satisfies T`) reaches the browser parser and fails with
|
|
321
|
+
// "missing '}' after module specifier list".
|
|
322
|
+
const source = readFileSync(m.path, 'utf-8');
|
|
323
|
+
const transformed = await transformWithOxc(source, m.path, {
|
|
324
|
+
lang: 'ts',
|
|
325
|
+
sourcemap: true
|
|
326
|
+
});
|
|
327
|
+
return { code: transformed.code, map: transformed.map };
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
async transform(code, id) {
|
|
331
|
+
// Skip vite-plugin-svelte's derived sub-modules
|
|
332
|
+
// (`?svelte&type=style&lang.css`, etc.) — only transform the original
|
|
333
|
+
// route source.
|
|
334
|
+
if (id.includes('?'))
|
|
335
|
+
return;
|
|
336
|
+
if (!id.startsWith(routesDir + '/'))
|
|
337
|
+
return;
|
|
338
|
+
const result = await ensureManifest(makeResolver(this));
|
|
339
|
+
if (id.endsWith('.svelte')) {
|
|
340
|
+
const info = result.scopeByEntryPath.get(id);
|
|
341
|
+
if (!info)
|
|
342
|
+
return;
|
|
343
|
+
return { code: injectScopeInstall(code, info, id), map: null };
|
|
344
|
+
}
|
|
345
|
+
if (id.endsWith('+page.ts') || id.endsWith('+page.server.ts')) {
|
|
346
|
+
const routeId = result.routeIdByScriptPath.get(id);
|
|
347
|
+
if (!routeId)
|
|
348
|
+
return;
|
|
349
|
+
if (!hasGenerateEntriesImport(code))
|
|
350
|
+
return;
|
|
351
|
+
const next = injectGenerateEntriesRouteId(code, routeId);
|
|
352
|
+
if (next === code)
|
|
353
|
+
return;
|
|
354
|
+
return { code: next, map: null };
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
handleHotUpdate({ file, server }) {
|
|
358
|
+
const isSvelte = file.endsWith('.svelte');
|
|
359
|
+
const isRouteScript = file.endsWith('+page.ts') || file.endsWith('+page.server.ts');
|
|
360
|
+
const isPageCms = file.endsWith('page.cms.ts');
|
|
361
|
+
if (!isSvelte && !isRouteScript && !isPageCms)
|
|
362
|
+
return;
|
|
363
|
+
const inGraph = cachedSync?.visitedFiles.includes(file) ?? false;
|
|
364
|
+
const inRoutes = file.startsWith(routesDir + '/');
|
|
365
|
+
// Conservatively invalidate when we don't yet know the graph.
|
|
366
|
+
if (cachedSync && !inGraph && !inRoutes && !isPageCms)
|
|
367
|
+
return;
|
|
368
|
+
// Capture the synthetic page-cms ids that point at this file before
|
|
369
|
+
// we drop the manifest cache, so we can invalidate exactly those
|
|
370
|
+
// per-file virtual modules along with the aggregate.
|
|
371
|
+
const affectedPageCmsIds = [];
|
|
372
|
+
if (isPageCms && cachedSync) {
|
|
373
|
+
cachedSync.pageCmsModules.forEach((m, i) => {
|
|
374
|
+
if (m.path === file) {
|
|
375
|
+
affectedPageCmsIds.push('\0' + PAGE_CMS_VIRTUAL_PREFIX + i);
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
cached = null;
|
|
380
|
+
cachedSync = null;
|
|
381
|
+
velacmsRoots = null;
|
|
382
|
+
const manifestMod = server.moduleGraph.getModuleById(RESOLVED_VIRTUAL_ID);
|
|
383
|
+
if (manifestMod)
|
|
384
|
+
server.moduleGraph.invalidateModule(manifestMod);
|
|
385
|
+
const pagesMod = server.moduleGraph.getModuleById(PAGES_RESOLVED_VIRTUAL_ID);
|
|
386
|
+
if (pagesMod)
|
|
387
|
+
server.moduleGraph.invalidateModule(pagesMod);
|
|
388
|
+
for (const syntheticId of affectedPageCmsIds) {
|
|
389
|
+
const mod = server.moduleGraph.getModuleById(syntheticId);
|
|
390
|
+
if (mod)
|
|
391
|
+
server.moduleGraph.invalidateModule(mod);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
};
|
|
396
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export type CmsManifestScope = {
|
|
2
|
+
scopeId: string;
|
|
3
|
+
kind: 'layout' | 'page';
|
|
4
|
+
routeId: string;
|
|
5
|
+
ownedParams: string[];
|
|
6
|
+
/**
|
|
7
|
+
* Lodash-style paths used by Cms* components in this scope. For pages the
|
|
8
|
+
* `metadata` branch shows up here too (e.g. `'metadata.title'`).
|
|
9
|
+
*/
|
|
10
|
+
fields: string[];
|
|
11
|
+
};
|
|
12
|
+
export type CmsManifestRoute = {
|
|
13
|
+
scopes: CmsManifestScope[];
|
|
14
|
+
/** Route ids referenced by `<CmsEntries routeId="…">` anywhere in this route's chain. */
|
|
15
|
+
entriesRouteIds: string[];
|
|
16
|
+
};
|
|
17
|
+
export type CmsManifest = {
|
|
18
|
+
version: 1;
|
|
19
|
+
routes: Record<string, CmsManifestRoute>;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Spec for an external CMS component pack. Either lists named exports that are
|
|
23
|
+
* CMS components, or marks a single-file source as a default-export CMS
|
|
24
|
+
* component. Auto-registers `source` for traversal.
|
|
25
|
+
*/
|
|
26
|
+
export type ExternalCmsComponentSpec = {
|
|
27
|
+
source: string;
|
|
28
|
+
names: string[];
|
|
29
|
+
} | {
|
|
30
|
+
source: string;
|
|
31
|
+
default: true;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Resolve a bare specifier to an absolute file path using the host bundler's
|
|
35
|
+
* resolver (Rollup `this.resolve` or equivalent). May return `null` if the
|
|
36
|
+
* specifier can't be resolved.
|
|
37
|
+
*/
|
|
38
|
+
export type ImportResolver = (source: string, importer: string | undefined) => Promise<string | null>;
|
|
39
|
+
export type BuildManifestOptions = {
|
|
40
|
+
routesDir: string;
|
|
41
|
+
libDir: string;
|
|
42
|
+
/** Absolute paths whose subtrees identify the velacms package. */
|
|
43
|
+
velacmsRoots?: string[];
|
|
44
|
+
/** Third-party CMS components recognized by the plugin. */
|
|
45
|
+
components?: ExternalCmsComponentSpec[];
|
|
46
|
+
/** Bare-specifier sources whose `.svelte` imports the walker should follow. */
|
|
47
|
+
traverse?: (string | RegExp)[];
|
|
48
|
+
/** Bare-specifier resolver (Rollup `this.resolve` etc.). */
|
|
49
|
+
resolveExternal?: ImportResolver;
|
|
50
|
+
};
|
|
51
|
+
export type ScopeInfo = Pick<CmsManifestScope, 'scopeId' | 'kind' | 'routeId' | 'ownedParams'>;
|
|
52
|
+
export type BuildManifestResult = {
|
|
53
|
+
manifest: CmsManifest;
|
|
54
|
+
visitedFiles: string[];
|
|
55
|
+
/** Lookup from absolute route entrypoint path to its scope info. */
|
|
56
|
+
scopeByEntryPath: Map<string, ScopeInfo>;
|
|
57
|
+
/**
|
|
58
|
+
* Lookup from absolute `+page.ts` / `+page.server.ts` path to the leaf
|
|
59
|
+
* route id. Used by the plugin to inject `routeId` into zero-arg
|
|
60
|
+
* `generateEntries()` calls.
|
|
61
|
+
*/
|
|
62
|
+
routeIdByScriptPath: Map<string, string>;
|
|
63
|
+
/**
|
|
64
|
+
* `page.cms.ts` files discovered during the route walk, paired with
|
|
65
|
+
* their leaf route id. Used by the `virtual:vela-cms/pages` virtual
|
|
66
|
+
* module to aggregate `definePage(...)` configs at runtime, and shared
|
|
67
|
+
* with the `@velastack/cms-static` adapter (via `build-state.js`) so it
|
|
68
|
+
* knows which routes are creatable without re-walking `src/routes/`.
|
|
69
|
+
*/
|
|
70
|
+
pageCmsModules: Array<{
|
|
71
|
+
routeId: string;
|
|
72
|
+
path: string;
|
|
73
|
+
creatable: boolean;
|
|
74
|
+
}>;
|
|
75
|
+
};
|
|
76
|
+
export declare const buildManifest: (options: BuildManifestOptions) => Promise<BuildManifestResult>;
|