@phtngyn/cms 0.2.0-beta.7 → 0.3.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 +18 -10
- package/README.md +59 -401
- package/drizzle/20261003215543_initial/migration.sql +251 -0
- package/drizzle/20261003215543_initial/snapshot.json +1941 -0
- package/package.json +75 -71
- package/src/Authoring.d.ts +41 -49
- package/src/Authoring.js +1 -1
- package/src/Blocks-BrxSemnd.js +40 -0
- package/src/Client.d.ts +8186 -0
- package/src/Client.js +41 -0
- package/src/Collections.d.ts +142 -0
- package/src/Collections.js +142 -0
- package/src/Config-CMiwciub.js +130 -0
- package/src/Config.d.ts +172 -0
- package/src/Config.js +2 -0
- package/src/Configuration-Dk2k3OIc.js +73 -0
- package/src/DataTransfer-BmECvPHB.js +488 -0
- package/src/Database-DSsNCGft.d.ts +3 -0
- package/src/Delivery.d.ts +28 -0
- package/src/Delivery.js +7 -0
- package/src/Document-CKXMSEf1.js +293 -0
- package/src/Document-TgwYKJZM.d.ts +220 -0
- package/src/DocumentRenderer-Wz2xaNyf.js +394 -0
- package/src/EditorSchema-wrDv-id6.js +296 -0
- package/src/Fields-BegSgYhj.d.ts +166 -0
- package/src/Fields-ioGaMEh9.js +130 -0
- package/src/Forms-BuKAXQxr.d.ts +203 -0
- package/src/Forms.d.ts +48 -11
- package/src/Forms.js +342 -7
- package/src/I18n-Ckf9h0rC.js +154 -0
- package/src/I18n.d.ts +45 -2
- package/src/I18n.js +2 -1
- package/src/Image-CJWPLnhP.js +110 -0
- package/src/Links-CJYyy7rC.js +28 -0
- package/src/Links-Dx1yOni8.d.ts +28 -0
- package/src/Locales-Ch7a5xuA.js +67 -0
- package/src/Locales-jwbmJaOp.d.ts +43 -0
- package/src/Locales.d.ts +3 -0
- package/src/Locales.js +3 -0
- package/src/Media-BQ0uL4w7.d.ts +15 -0
- package/src/Media-DSyvd14o.js +87 -0
- package/src/Module.d.ts +2 -10
- package/src/Module.js +1039 -162
- package/src/Operations.d.ts +57 -0
- package/src/Operations.js +263 -0
- package/src/People-DvNZauWw.js +69 -0
- package/src/PreviewFocus-C_EelZO5.js +104 -0
- package/src/Query-C0kGJF5_.d.ts +261 -0
- package/src/RevisionPreview-IVwbJ9Wy.js +133 -0
- package/src/Routes-BaZvm2LE.js +126 -0
- package/src/Routes-DM1rRp3r.d.ts +15 -0
- package/src/S3MediaObjects-y-WacEi9.js +193 -0
- package/src/Seo-BcpqxoAs.d.ts +57 -0
- package/src/Seo-CjNUtUkj.js +254 -0
- package/src/StudioApi-CXLwwocX.js +833 -0
- package/src/StudioErrors-T5zLGQ1M.js +117 -0
- package/src/StudioErrors-kq-E44lQ.d.ts +104 -0
- package/src/StudioServer.d.ts +20 -0
- package/src/StudioServer.js +34 -0
- package/src/answers-DcTg0Xv2.js +41 -0
- package/src/cli.js +681 -187
- package/src/contracts-rprW3ZOB.js +130 -0
- package/src/forms-3xuf0Ym7.d.ts +206 -0
- package/src/localeConfiguration-BPbkLi7-.js +32 -0
- package/src/localeContext-DhF3SPvM.js +59 -0
- package/src/locales-6OD4XGIZ.js +12 -0
- package/src/nuxtDelivery-BYX_Cddb.js +466 -0
- package/src/plugin-DTYuDaQu.js +7171 -0
- package/src/previewContext-dt3ZUh-w.js +4 -0
- package/src/previewRegions-CXjk5cbP.js +145 -0
- package/src/previewSource-fb-q3ESM.js +144 -0
- package/src/rendering-D9LVeEKX.js +47 -0
- package/src/rolldown-runtime-8H4AJuhK.js +14 -0
- package/src/runtime/CmsImage.js +38 -0
- package/src/runtime/DocumentPage.vue +10 -0
- package/src/runtime/DocumentPageContent.js +48 -0
- package/src/runtime/DocumentRenderer.d.ts +129 -0
- package/src/runtime/DocumentRenderer.js +2 -0
- package/src/runtime/api.js +48 -6
- package/src/runtime/delivery/useCmsDocument.js +2 -0
- package/src/runtime/delivery/useCmsDocumentQuery.js +2 -0
- package/src/runtime/delivery/useCmsDocumentSeo.js +2 -114
- package/src/runtime/delivery/useCmsLocale.js +10 -0
- package/src/runtime/plugin.js +2 -40
- package/src/runtime/preview.css +85 -0
- package/src/runtime/preview.js +277 -0
- package/src/runtime/previewSource.js +82 -0
- package/src/runtime/revisionPrivacy.js +13 -0
- package/src/runtime/studio.js +10 -0
- package/src/runtime/studioIcons.js +36 -0
- package/src/validation-3pggwcnm.js +396 -0
- package/src/validation-DpUwPC8Y.js +224 -0
- package/studio/THIRD-PARTY-LICENSES.md +2406 -0
- package/studio/chunks/AccountPage-DL3DitDM.js +288 -0
- package/studio/chunks/AccountPage-DL3DitDM.js.br +0 -0
- package/studio/chunks/AccountPage-DL3DitDM.js.gz +0 -0
- package/studio/chunks/ActivityPage-CLqVUqTh.js +584 -0
- package/studio/chunks/ActivityPage-CLqVUqTh.js.br +0 -0
- package/studio/chunks/ActivityPage-CLqVUqTh.js.gz +0 -0
- package/studio/chunks/Alert-D0D24z_a.js +335 -0
- package/studio/chunks/Alert-D0D24z_a.js.br +0 -0
- package/studio/chunks/Alert-D0D24z_a.js.gz +0 -0
- package/studio/chunks/Badge-BBFs88TI.js +346 -0
- package/studio/chunks/Badge-BBFs88TI.js.br +0 -0
- package/studio/chunks/Badge-BBFs88TI.js.gz +0 -0
- package/studio/chunks/Button-BT3ztSPx.js +14319 -0
- package/studio/chunks/Button-BT3ztSPx.js.br +0 -0
- package/studio/chunks/Button-BT3ztSPx.js.gz +0 -0
- package/studio/chunks/Collapsible-CKnEYIlp.js +246 -0
- package/studio/chunks/Collapsible-CKnEYIlp.js.br +0 -0
- package/studio/chunks/Collapsible-CKnEYIlp.js.gz +0 -0
- package/studio/chunks/ContentInventory-D7nsFA6U.js +1745 -0
- package/studio/chunks/ContentInventory-D7nsFA6U.js.br +0 -0
- package/studio/chunks/ContentInventory-D7nsFA6U.js.gz +0 -0
- package/studio/chunks/ContentPage-DCxt6BeD.js +18 -0
- package/studio/chunks/ContentPage-DCxt6BeD.js.br +0 -0
- package/studio/chunks/ContentPage-DCxt6BeD.js.gz +0 -0
- package/studio/chunks/DashboardSearch-DjyMjJwF.js +2413 -0
- package/studio/chunks/DashboardSearch-DjyMjJwF.js.br +0 -0
- package/studio/chunks/DashboardSearch-DjyMjJwF.js.gz +0 -0
- package/studio/chunks/DocumentLocaleMenu-0EkkOr6_.js +26063 -0
- package/studio/chunks/DocumentLocaleMenu-0EkkOr6_.js.br +0 -0
- package/studio/chunks/DocumentLocaleMenu-0EkkOr6_.js.gz +0 -0
- package/studio/chunks/DropdownMenu-CA9fB0uZ.js +4400 -0
- package/studio/chunks/DropdownMenu-CA9fB0uZ.js.br +0 -0
- package/studio/chunks/DropdownMenu-CA9fB0uZ.js.gz +0 -0
- package/studio/chunks/EditorPage-D_PAYEE4.js +7799 -0
- package/studio/chunks/EditorPage-D_PAYEE4.js.br +0 -0
- package/studio/chunks/EditorPage-D_PAYEE4.js.gz +0 -0
- package/studio/chunks/FormField-CgM6l2Yn.js +198 -0
- package/studio/chunks/FormField-CgM6l2Yn.js.br +0 -0
- package/studio/chunks/FormField-CgM6l2Yn.js.gz +0 -0
- package/studio/chunks/HelpPage-C-vrFcT_.js +552 -0
- package/studio/chunks/HelpPage-C-vrFcT_.js.br +0 -0
- package/studio/chunks/HelpPage-C-vrFcT_.js.gz +0 -0
- package/studio/chunks/Kbd-Ot7TIhVZ.js +271 -0
- package/studio/chunks/Kbd-Ot7TIhVZ.js.br +0 -0
- package/studio/chunks/Kbd-Ot7TIhVZ.js.gz +0 -0
- package/studio/chunks/MediaFolderDialog-DYu-eu-q.js +101 -0
- package/studio/chunks/MediaFolderDialog-DYu-eu-q.js.br +0 -0
- package/studio/chunks/MediaFolderDialog-DYu-eu-q.js.gz +0 -0
- package/studio/chunks/MediaPage-D-jaWtdl.js +923 -0
- package/studio/chunks/MediaPage-D-jaWtdl.js.br +0 -0
- package/studio/chunks/MediaPage-D-jaWtdl.js.gz +0 -0
- package/studio/chunks/MediaPicker-BZs2wUFz.js +837 -0
- package/studio/chunks/MediaPicker-BZs2wUFz.js.br +0 -0
- package/studio/chunks/MediaPicker-BZs2wUFz.js.gz +0 -0
- package/studio/chunks/MediaUploadPanel-C7Kyg6aR.js +1173 -0
- package/studio/chunks/MediaUploadPanel-C7Kyg6aR.js.br +0 -0
- package/studio/chunks/MediaUploadPanel-C7Kyg6aR.js.gz +0 -0
- package/studio/chunks/Modal-D6hSvxHd.js +265 -0
- package/studio/chunks/Modal-D6hSvxHd.js.br +0 -0
- package/studio/chunks/Modal-D6hSvxHd.js.gz +0 -0
- package/studio/chunks/NewDocumentDialog-C8B6_r3J.js +277 -0
- package/studio/chunks/NewDocumentDialog-C8B6_r3J.js.br +0 -0
- package/studio/chunks/NewDocumentDialog-C8B6_r3J.js.gz +0 -0
- package/studio/chunks/Pagination-D9BSo5H2.js +573 -0
- package/studio/chunks/Pagination-D9BSo5H2.js.br +0 -0
- package/studio/chunks/Pagination-D9BSo5H2.js.gz +0 -0
- package/studio/chunks/PeoplePage-CWIXitBD.js +783 -0
- package/studio/chunks/PeoplePage-CWIXitBD.js.br +0 -0
- package/studio/chunks/PeoplePage-CWIXitBD.js.gz +0 -0
- package/studio/chunks/Popover-B63bkTMS.js +128 -0
- package/studio/chunks/Popover-B63bkTMS.js.br +0 -0
- package/studio/chunks/Popover-B63bkTMS.js.gz +0 -0
- package/studio/chunks/PublicationActionDialog-Cm_P0C3I.js +255 -0
- package/studio/chunks/PublicationActionDialog-Cm_P0C3I.js.br +0 -0
- package/studio/chunks/PublicationActionDialog-Cm_P0C3I.js.gz +0 -0
- package/studio/chunks/Routes-DLYHmulE.js +102 -0
- package/studio/chunks/Routes-DLYHmulE.js.br +0 -0
- package/studio/chunks/Routes-DLYHmulE.js.gz +0 -0
- package/studio/chunks/RovingFocusItem-QZNg-wWF.js +95 -0
- package/studio/chunks/RovingFocusItem-QZNg-wWF.js.br +0 -0
- package/studio/chunks/RovingFocusItem-QZNg-wWF.js.gz +0 -0
- package/studio/chunks/ScheduledPage-C0hqrkr5.js +332 -0
- package/studio/chunks/ScheduledPage-C0hqrkr5.js.br +0 -0
- package/studio/chunks/ScheduledPage-C0hqrkr5.js.gz +0 -0
- package/studio/chunks/Search-BEgCe9Aj.js +14646 -0
- package/studio/chunks/Search-BEgCe9Aj.js.br +0 -0
- package/studio/chunks/Search-BEgCe9Aj.js.gz +0 -0
- package/studio/chunks/Select-B50WZMW-.js +2145 -0
- package/studio/chunks/Select-B50WZMW-.js.br +0 -0
- package/studio/chunks/Select-B50WZMW-.js.gz +0 -0
- package/studio/chunks/SelectMenu-DSweWGMz.js +2109 -0
- package/studio/chunks/SelectMenu-DSweWGMz.js.br +0 -0
- package/studio/chunks/SelectMenu-DSweWGMz.js.gz +0 -0
- package/studio/chunks/SeoPage-CNNxGe4h.js +846 -0
- package/studio/chunks/SeoPage-CNNxGe4h.js.br +0 -0
- package/studio/chunks/SeoPage-CNNxGe4h.js.gz +0 -0
- package/studio/chunks/Skeleton-COz8dcrw.js +39 -0
- package/studio/chunks/Skeleton-COz8dcrw.js.br +2 -0
- package/studio/chunks/Skeleton-COz8dcrw.js.gz +0 -0
- package/studio/chunks/Slideover-QMMHAAys.js +289 -0
- package/studio/chunks/Slideover-QMMHAAys.js.br +0 -0
- package/studio/chunks/Slideover-QMMHAAys.js.gz +0 -0
- package/studio/chunks/StudioPage-ngEIDr5d.js +80 -0
- package/studio/chunks/StudioPage-ngEIDr5d.js.br +0 -0
- package/studio/chunks/StudioPage-ngEIDr5d.js.gz +0 -0
- package/studio/chunks/StudioPageToolbar-BwHnqyr6.js +2524 -0
- package/studio/chunks/StudioPageToolbar-BwHnqyr6.js.br +0 -0
- package/studio/chunks/StudioPageToolbar-BwHnqyr6.js.gz +0 -0
- package/studio/chunks/Switch-qKl1aDn7.js +484 -0
- package/studio/chunks/Switch-qKl1aDn7.js.br +0 -0
- package/studio/chunks/Switch-qKl1aDn7.js.gz +0 -0
- package/studio/chunks/ToolPage-DxoVAJVk.js +29 -0
- package/studio/chunks/ToolPage-DxoVAJVk.js.br +0 -0
- package/studio/chunks/ToolPage-DxoVAJVk.js.gz +0 -0
- package/studio/chunks/Tooltip-Bu15m_DB.js +693 -0
- package/studio/chunks/Tooltip-Bu15m_DB.js.br +0 -0
- package/studio/chunks/Tooltip-Bu15m_DB.js.gz +0 -0
- package/studio/chunks/TrashPage-lhqLLdoG.js +12 -0
- package/studio/chunks/TrashPage-lhqLLdoG.js.br +0 -0
- package/studio/chunks/TrashPage-lhqLLdoG.js.gz +0 -0
- package/studio/chunks/VersionsPage-Cqy6UAp9.js +2349 -0
- package/studio/chunks/VersionsPage-Cqy6UAp9.js.br +0 -0
- package/studio/chunks/VersionsPage-Cqy6UAp9.js.gz +0 -0
- package/studio/chunks/VisuallyHiddenInput-Cu8hQLRf.js +113 -0
- package/studio/chunks/VisuallyHiddenInput-Cu8hQLRf.js.br +0 -0
- package/studio/chunks/VisuallyHiddenInput-Cu8hQLRf.js.gz +0 -0
- package/studio/chunks/arrays-CUJkmV4I.js +10 -0
- package/studio/chunks/arrays-CUJkmV4I.js.br +0 -0
- package/studio/chunks/arrays-CUJkmV4I.js.gz +0 -0
- package/studio/chunks/base-DkTekJe8.js +213 -0
- package/studio/chunks/base-DkTekJe8.js.br +0 -0
- package/studio/chunks/base-DkTekJe8.js.gz +0 -0
- package/studio/chunks/content-DUGl3N4d.js +6012 -0
- package/studio/chunks/content-DUGl3N4d.js.br +0 -0
- package/studio/chunks/content-DUGl3N4d.js.gz +0 -0
- package/studio/chunks/destinations-DPIQVQa6.js +227 -0
- package/studio/chunks/destinations-DPIQVQa6.js.br +0 -0
- package/studio/chunks/destinations-DPIQVQa6.js.gz +0 -0
- package/studio/chunks/en-073cjKW4.js +152 -0
- package/studio/chunks/en-073cjKW4.js.br +0 -0
- package/studio/chunks/en-073cjKW4.js.gz +0 -0
- package/studio/chunks/en-Bn8mxPuf.js +134 -0
- package/studio/chunks/en-Bn8mxPuf.js.br +0 -0
- package/studio/chunks/en-Bn8mxPuf.js.gz +0 -0
- package/studio/chunks/en-C9OiaUDZ.js +251 -0
- package/studio/chunks/en-C9OiaUDZ.js.br +0 -0
- package/studio/chunks/en-C9OiaUDZ.js.gz +0 -0
- package/studio/chunks/en-CHAR6jzx.js +147 -0
- package/studio/chunks/en-CHAR6jzx.js.br +0 -0
- package/studio/chunks/en-CHAR6jzx.js.gz +0 -0
- package/studio/chunks/en-Cq4N1vEF.js +93 -0
- package/studio/chunks/en-Cq4N1vEF.js.br +2 -0
- package/studio/chunks/en-Cq4N1vEF.js.gz +0 -0
- package/studio/chunks/en-D2hRqlse.js +140 -0
- package/studio/chunks/en-D2hRqlse.js.br +0 -0
- package/studio/chunks/en-D2hRqlse.js.gz +0 -0
- package/studio/chunks/en-DiUC3-j6.js +144 -0
- package/studio/chunks/en-DiUC3-j6.js.br +0 -0
- package/studio/chunks/en-DiUC3-j6.js.gz +0 -0
- package/studio/chunks/english-Cs_Adu-u.js +8 -0
- package/studio/chunks/english-Cs_Adu-u.js.br +0 -0
- package/studio/chunks/english-Cs_Adu-u.js.gz +0 -0
- package/studio/chunks/esm-D6DqSiL1.js +752 -0
- package/studio/chunks/esm-D6DqSiL1.js.br +0 -0
- package/studio/chunks/esm-D6DqSiL1.js.gz +0 -0
- package/studio/chunks/externalRequest-CTzr2nDq.js +23 -0
- package/studio/chunks/externalRequest-CTzr2nDq.js.br +0 -0
- package/studio/chunks/externalRequest-CTzr2nDq.js.gz +0 -0
- package/studio/chunks/iconify-DR9ryCPv.js +1007 -0
- package/studio/chunks/iconify-DR9ryCPv.js.br +0 -0
- package/studio/chunks/iconify-DR9ryCPv.js.gz +0 -0
- package/studio/chunks/icons-D2MsAaXq.js +183 -0
- package/studio/chunks/icons-D2MsAaXq.js.br +0 -0
- package/studio/chunks/icons-D2MsAaXq.js.gz +0 -0
- package/studio/chunks/leaveGuards-D22fTGgr.js +26 -0
- package/studio/chunks/leaveGuards-D22fTGgr.js.br +0 -0
- package/studio/chunks/leaveGuards-D22fTGgr.js.gz +0 -0
- package/studio/chunks/lucideIcons-EyqyPBsX.js +238 -0
- package/studio/chunks/lucideIcons-EyqyPBsX.js.br +0 -0
- package/studio/chunks/lucideIcons-EyqyPBsX.js.gz +0 -0
- package/studio/chunks/mediaRoute--8cY8rUe.js +17 -0
- package/studio/chunks/mediaRoute--8cY8rUe.js.br +0 -0
- package/studio/chunks/mediaRoute--8cY8rUe.js.gz +0 -0
- package/studio/chunks/newDocumentPlanning-C26DHpvh.js +77 -0
- package/studio/chunks/newDocumentPlanning-C26DHpvh.js.br +0 -0
- package/studio/chunks/newDocumentPlanning-C26DHpvh.js.gz +0 -0
- package/studio/chunks/notifications-OKOLc40v.js +110 -0
- package/studio/chunks/notifications-OKOLc40v.js.br +0 -0
- package/studio/chunks/notifications-OKOLc40v.js.gz +0 -0
- package/studio/chunks/operations-CjNHyrEX.js +57 -0
- package/studio/chunks/operations-CjNHyrEX.js.br +0 -0
- package/studio/chunks/operations-CjNHyrEX.js.gz +0 -0
- package/studio/chunks/overlay-DnqFLZTc.js +1733 -0
- package/studio/chunks/overlay-DnqFLZTc.js.br +0 -0
- package/studio/chunks/overlay-DnqFLZTc.js.gz +0 -0
- package/studio/chunks/presentation-DF83w0hE.js +57 -0
- package/studio/chunks/presentation-DF83w0hE.js.br +0 -0
- package/studio/chunks/presentation-DF83w0hE.js.gz +0 -0
- package/studio/chunks/runtime-core.esm-bundler-DKFA9Rep.js +4557 -0
- package/studio/chunks/runtime-core.esm-bundler-DKFA9Rep.js.br +0 -0
- package/studio/chunks/runtime-core.esm-bundler-DKFA9Rep.js.gz +0 -0
- package/studio/chunks/searchPresentation-DFwxQkt3.js +76 -0
- package/studio/chunks/searchPresentation-DFwxQkt3.js.br +0 -0
- package/studio/chunks/searchPresentation-DFwxQkt3.js.gz +0 -0
- package/studio/chunks/status-DQv6ihkU.js +38 -0
- package/studio/chunks/status-DQv6ihkU.js.br +0 -0
- package/studio/chunks/status-DQv6ihkU.js.gz +0 -0
- package/studio/chunks/studioContext-I8HozGU1.js +4953 -0
- package/studio/chunks/studioContext-I8HozGU1.js.br +0 -0
- package/studio/chunks/studioContext-I8HozGU1.js.gz +0 -0
- package/studio/chunks/studioQueries-BR-9NT5F.js +73 -0
- package/studio/chunks/studioQueries-BR-9NT5F.js.br +0 -0
- package/studio/chunks/studioQueries-BR-9NT5F.js.gz +0 -0
- package/studio/chunks/studioSearch-ByaL-QpM.js +1095 -0
- package/studio/chunks/studioSearch-ByaL-QpM.js.br +0 -0
- package/studio/chunks/studioSearch-ByaL-QpM.js.gz +0 -0
- package/studio/chunks/useAcknowledgedDraft-0_c9sWI6.js +62 -0
- package/studio/chunks/useAcknowledgedDraft-0_c9sWI6.js.br +0 -0
- package/studio/chunks/useAcknowledgedDraft-0_c9sWI6.js.gz +0 -0
- package/studio/chunks/useApi-CUWMwLLw-B3Q3g2nf.js +189 -0
- package/studio/chunks/useApi-CUWMwLLw-B3Q3g2nf.js.br +0 -0
- package/studio/chunks/useApi-CUWMwLLw-B3Q3g2nf.js.gz +0 -0
- package/studio/chunks/useDocumentMessage-BAWvc38w.js +16 -0
- package/studio/chunks/useDocumentMessage-BAWvc38w.js.br +3 -0
- package/studio/chunks/useDocumentMessage-BAWvc38w.js.gz +0 -0
- package/studio/chunks/useFilter-DzyiTR7f.js +87 -0
- package/studio/chunks/useFilter-DzyiTR7f.js.br +0 -0
- package/studio/chunks/useFilter-DzyiTR7f.js.gz +0 -0
- package/studio/chunks/useFormControl-CL7sSCUo.js +8 -0
- package/studio/chunks/useFormControl-CL7sSCUo.js.br +0 -0
- package/studio/chunks/useFormControl-CL7sSCUo.js.gz +0 -0
- package/studio/chunks/useGraceArea-Chcy25IQ.js +154 -0
- package/studio/chunks/useGraceArea-Chcy25IQ.js.br +0 -0
- package/studio/chunks/useGraceArea-Chcy25IQ.js.gz +0 -0
- package/studio/chunks/useLeaveConfirmation-_iCSnKEp.js +44 -0
- package/studio/chunks/useLeaveConfirmation-_iCSnKEp.js.br +8 -0
- package/studio/chunks/useLeaveConfirmation-_iCSnKEp.js.gz +0 -0
- package/studio/chunks/useLinkCopy-CMjQteCy.js +35 -0
- package/studio/chunks/useLinkCopy-CMjQteCy.js.br +0 -0
- package/studio/chunks/useLinkCopy-CMjQteCy.js.gz +0 -0
- package/studio/chunks/usePointerMotion-DwRcwBNQ.js +16 -0
- package/studio/chunks/usePointerMotion-DwRcwBNQ.js.br +0 -0
- package/studio/chunks/usePointerMotion-DwRcwBNQ.js.gz +0 -0
- package/studio/chunks/useStudioNavigation-CLwtSYpb.js +298 -0
- package/studio/chunks/useStudioNavigation-CLwtSYpb.js.br +0 -0
- package/studio/chunks/useStudioNavigation-CLwtSYpb.js.gz +0 -0
- package/studio/chunks/useStudioPages-DR9qmYLg.js +79 -0
- package/studio/chunks/useStudioPages-DR9qmYLg.js.br +0 -0
- package/studio/chunks/useStudioPages-DR9qmYLg.js.gz +0 -0
- package/studio/chunks/utils-mdScC0v0.js +59 -0
- package/studio/chunks/utils-mdScC0v0.js.br +0 -0
- package/studio/chunks/utils-mdScC0v0.js.gz +0 -0
- package/studio/chunks/virtualizer-D1S0bZ4t.js +781 -0
- package/studio/chunks/virtualizer-D1S0bZ4t.js.br +0 -0
- package/studio/chunks/virtualizer-D1S0bZ4t.js.gz +0 -0
- package/studio/help/64f767fe29c2-save-and-publish.svg +7 -0
- package/studio/host.css +1 -1
- package/studio/host.css.br +0 -0
- package/studio/host.css.gz +0 -0
- package/studio/host.js +8757 -39178
- package/studio/host.js.br +0 -0
- package/studio/host.js.gz +0 -0
- package/CHANGELOG.md +0 -13
- package/bin/cms.mjs +0 -2
- package/src/ApplicationTypes.d.ts +0 -84
- package/src/ApplicationTypes.js +0 -1
- package/src/Configuration-Da5B2PVH.js +0 -1191
- package/src/Configuration-Da5B2PVH.js.map +0 -1
- package/src/Configuration.d.ts +0 -82
- package/src/Configuration.js +0 -8
- package/src/Configuration.js.map +0 -1
- package/src/Content.d.ts +0 -68
- package/src/Content.js +0 -373
- package/src/Content.js.map +0 -1
- package/src/ContentTransfer-BxwswWn3.js +0 -86
- package/src/ContentTransfer-BxwswWn3.js.map +0 -1
- package/src/ContentTransfer-Z9FHyLez.d.ts +0 -72
- package/src/DocumentEngine-hh_IGPXO.js +0 -978
- package/src/DocumentEngine-hh_IGPXO.js.map +0 -1
- package/src/DocumentModel.d.ts +0 -52
- package/src/DocumentModel.js +0 -66
- package/src/DocumentModel.js.map +0 -1
- package/src/Forms-CX-hwmJF.js +0 -391
- package/src/Forms-CX-hwmJF.js.map +0 -1
- package/src/Forms-CfNPTiCr.js +0 -110
- package/src/Forms-CfNPTiCr.js.map +0 -1
- package/src/Forms-R0HoTR-o.d.ts +0 -92
- package/src/Forms.js.map +0 -1
- package/src/HttpPaths-c9nLZ9H2.js +0 -21
- package/src/HttpPaths-c9nLZ9H2.js.map +0 -1
- package/src/I18n-zbqpWxki.d.ts +0 -29
- package/src/Media-j1bTritO.js +0 -112
- package/src/Media-j1bTritO.js.map +0 -1
- package/src/Module.js.map +0 -1
- package/src/References-CCPDAPve.js +0 -45
- package/src/References-CCPDAPve.js.map +0 -1
- package/src/S3MediaObjects-Dwhl2deX.js +0 -2742
- package/src/S3MediaObjects-Dwhl2deX.js.map +0 -1
- package/src/Seo-402YumpT.d.ts +0 -198
- package/src/cli/content.js +0 -101
- package/src/cli/content.js.map +0 -1
- package/src/cli.js.map +0 -1
- package/src/connection-BP80q4d-.js +0 -92
- package/src/connection-BP80q4d-.js.map +0 -1
- package/src/dev-lifecycle-CjDq63Ft.js +0 -535
- package/src/dev-lifecycle-CjDq63Ft.js.map +0 -1
- package/src/installation-DYNQQBD3.js +0 -9114
- package/src/installation-DYNQQBD3.js.map +0 -1
- package/src/internal/application-types.js +0 -43
- package/src/internal/application-types.js.map +0 -1
- package/src/internal/authoring-catalog.js +0 -158
- package/src/internal/authoring-catalog.js.map +0 -1
- package/src/internal/authoring-compiler.js +0 -146
- package/src/internal/authoring-compiler.js.map +0 -1
- package/src/internal/authoring-metadata.js +0 -191
- package/src/internal/authoring-metadata.js.map +0 -1
- package/src/internal/cms-config.js +0 -45
- package/src/internal/cms-config.js.map +0 -1
- package/src/internal/configuration.js +0 -228
- package/src/internal/configuration.js.map +0 -1
- package/src/internal/dev-lifecycle.js +0 -3
- package/src/internal/diagnostics.js +0 -47
- package/src/internal/diagnostics.js.map +0 -1
- package/src/internal/document-model.js +0 -376
- package/src/internal/document-model.js.map +0 -1
- package/src/internal/field-metadata.js +0 -7
- package/src/internal/field-metadata.js.map +0 -1
- package/src/internal/form-capabilities.js +0 -12
- package/src/internal/form-capabilities.js.map +0 -1
- package/src/internal/i18n.js +0 -73
- package/src/internal/i18n.js.map +0 -1
- package/src/internal/studio-app.js +0 -68
- package/src/internal/studio-app.js.map +0 -1
- package/src/location-CMNGO3lU.js +0 -35
- package/src/location-CMNGO3lU.js.map +0 -1
- package/src/metadata-DN9_K6Yl.js +0 -201
- package/src/metadata-DN9_K6Yl.js.map +0 -1
- package/src/models-5j67LMqW.js +0 -131
- package/src/models-5j67LMqW.js.map +0 -1
- package/src/models-VmGmG19-.js +0 -628
- package/src/models-VmGmG19-.js.map +0 -1
- package/src/runtime/api.js.map +0 -1
- package/src/runtime/blocks.js +0 -30
- package/src/runtime/blocks.js.map +0 -1
- package/src/runtime/collaboration.js +0 -45
- package/src/runtime/collaboration.js.map +0 -1
- package/src/runtime/delivery/DocumentField.js +0 -23
- package/src/runtime/delivery/DocumentField.js.map +0 -1
- package/src/runtime/delivery/DocumentRenderer.js +0 -61
- package/src/runtime/delivery/DocumentRenderer.js.map +0 -1
- package/src/runtime/delivery/DocumentScope.js +0 -41
- package/src/runtime/delivery/DocumentScope.js.map +0 -1
- package/src/runtime/delivery/blocks.js +0 -8
- package/src/runtime/delivery/blocks.js.map +0 -1
- package/src/runtime/delivery/context.js +0 -12
- package/src/runtime/delivery/context.js.map +0 -1
- package/src/runtime/delivery/document-page.js +0 -21
- package/src/runtime/delivery/document-page.js.map +0 -1
- package/src/runtime/delivery/document.js +0 -43
- package/src/runtime/delivery/document.js.map +0 -1
- package/src/runtime/delivery/error.js +0 -11
- package/src/runtime/delivery/error.js.map +0 -1
- package/src/runtime/delivery/plugin.js +0 -99
- package/src/runtime/delivery/plugin.js.map +0 -1
- package/src/runtime/delivery/preview.d.ts +0 -11
- package/src/runtime/delivery/preview.js +0 -6
- package/src/runtime/delivery/preview.js.map +0 -1
- package/src/runtime/delivery/types.d.ts +0 -2
- package/src/runtime/delivery/types.js +0 -1
- package/src/runtime/delivery/useCmsDocumentSeo.d.ts +0 -67
- package/src/runtime/delivery/useCmsDocumentSeo.js.map +0 -1
- package/src/runtime/delivery/useDocument.d.ts +0 -6
- package/src/runtime/delivery/useDocument.js +0 -23
- package/src/runtime/delivery/useDocument.js.map +0 -1
- package/src/runtime/delivery/useDocumentQuery.d.ts +0 -7
- package/src/runtime/delivery/useDocumentQuery.js +0 -29
- package/src/runtime/delivery/useDocumentQuery.js.map +0 -1
- package/src/runtime/forms/document.js +0 -38
- package/src/runtime/forms/document.js.map +0 -1
- package/src/runtime/forms/useCmsForm.js +0 -257
- package/src/runtime/forms/useCmsForm.js.map +0 -1
- package/src/runtime/i18n/translator.js +0 -51
- package/src/runtime/i18n/translator.js.map +0 -1
- package/src/runtime/i18n/useCmsI18n.d.ts +0 -13
- package/src/runtime/i18n/useCmsI18n.js +0 -38
- package/src/runtime/i18n/useCmsI18n.js.map +0 -1
- package/src/runtime/installation.js +0 -3
- package/src/runtime/plugin.js.map +0 -1
- package/src/runtime/preview/CmsStudioPreviewMarker.js +0 -29
- package/src/runtime/preview/CmsStudioPreviewMarker.js.map +0 -1
- package/src/runtime/preview/comark-document.js +0 -37
- package/src/runtime/preview/comark-document.js.map +0 -1
- package/src/runtime/preview/connection.js +0 -3
- package/src/runtime/preview/controller.js +0 -265
- package/src/runtime/preview/controller.js.map +0 -1
- package/src/runtime/preview/crypto.js +0 -16
- package/src/runtime/preview/crypto.js.map +0 -1
- package/src/runtime/preview/overlay.js +0 -122
- package/src/runtime/preview/overlay.js.map +0 -1
- package/src/runtime/preview/plugin.client.js +0 -68
- package/src/runtime/preview/plugin.client.js.map +0 -1
- package/src/runtime/preview/preview.css +0 -91
- package/src/runtime/preview/protocol.d.ts +0 -16
- package/src/runtime/preview/protocol.js +0 -23
- package/src/runtime/preview/protocol.js.map +0 -1
- package/src/runtime/preview/regions.js +0 -142
- package/src/runtime/preview/regions.js.map +0 -1
- package/src/runtime/preview/store.js +0 -4
- package/src/runtime/sitemap-entries.js +0 -17
- package/src/runtime/sitemap-entries.js.map +0 -1
- package/src/runtime/sitemap.js +0 -23
- package/src/runtime/sitemap.js.map +0 -1
- package/src/runtime/studio-app.js +0 -17
- package/src/runtime/studio-app.js.map +0 -1
- package/src/runtime/studio-document.js +0 -46
- package/src/runtime/studio-document.js.map +0 -1
- package/src/runtime/studio-entry.js +0 -19
- package/src/runtime/studio-entry.js.map +0 -1
- package/src/runtime/studio-navigation.js +0 -11
- package/src/runtime/studio-navigation.js.map +0 -1
- package/src/scalars-CA6kyipS.d.ts +0 -7
- package/src/scalars-CVZqT3L0.js +0 -22
- package/src/scalars-CVZqT3L0.js.map +0 -1
- package/src/store-X1e1o_MF.js +0 -209
- package/src/store-X1e1o_MF.js.map +0 -1
- package/src/types-DZ0IV-Ow.d.ts +0 -101
- package/studio/CreateDocumentDialog-BpjBYGfI.js +0 -335
- package/studio/SelectMenu-KiXwx4Y_.js +0 -34032
- package/studio/collaboration-DcK2F6v9.js +0 -4566
- package/studio/editor-P2rB7Csp.js +0 -30128
- package/studio/rolldown-runtime-Dy4uBu1J.js +0 -11
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { i as configurationDefaults, n as ResolvedConfiguration, s as runtimeFromEnvironment } from "./Config-CMiwciub.js";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
import { stat } from "node:fs/promises";
|
|
4
|
+
import { resolve } from "node:path";
|
|
5
|
+
import { loadConfig, setupDotenv } from "c12";
|
|
6
|
+
//#region ../cli/src/Configuration.ts
|
|
7
|
+
var ConfigurationError = class extends Schema.TaggedError()("Configuration.Error", { message: Schema.String }) {};
|
|
8
|
+
/** Shared by Nuxt and every CLI command. Loading never provisions resources or writes secrets. */
|
|
9
|
+
const load = Effect.fn("Configuration.load")(function* (directory, envName = "development", envFile, inherited = process.env) {
|
|
10
|
+
const project = resolve(directory);
|
|
11
|
+
const file = resolve(project, "cms.config.ts");
|
|
12
|
+
const environmentFile = resolve(project, envFile || ".env");
|
|
13
|
+
const environment = yield* Effect.tryPromise({
|
|
14
|
+
try: async () => {
|
|
15
|
+
const selected = { ...inherited };
|
|
16
|
+
if (envFile === false) return selected;
|
|
17
|
+
if (envFile && !(await stat(environmentFile)).isFile()) throw new Error("Missing environment file");
|
|
18
|
+
await setupDotenv({
|
|
19
|
+
cwd: project,
|
|
20
|
+
fileName: environmentFile,
|
|
21
|
+
env: selected,
|
|
22
|
+
interpolate: true
|
|
23
|
+
});
|
|
24
|
+
return selected;
|
|
25
|
+
},
|
|
26
|
+
catch: () => new ConfigurationError({ message: `Could not read ${environmentFile}.` })
|
|
27
|
+
});
|
|
28
|
+
const configuration = yield* Effect.gen(function* () {
|
|
29
|
+
const candidate = (yield* Effect.tryPromise({
|
|
30
|
+
try: () => loadConfig({
|
|
31
|
+
name: "cms",
|
|
32
|
+
cwd: project,
|
|
33
|
+
configFile: "cms.config.ts",
|
|
34
|
+
configFileRequired: true,
|
|
35
|
+
envName,
|
|
36
|
+
rcFile: false,
|
|
37
|
+
globalRc: false,
|
|
38
|
+
packageJson: false,
|
|
39
|
+
extend: false,
|
|
40
|
+
giget: false,
|
|
41
|
+
dotenv: false,
|
|
42
|
+
omit$Keys: true,
|
|
43
|
+
defaults: configurationDefaults
|
|
44
|
+
}),
|
|
45
|
+
catch: () => new ConfigurationError({ message: `Could not load ${file}.` })
|
|
46
|
+
})).config;
|
|
47
|
+
const configured = yield* Schema.decodeUnknownEffect(ResolvedConfiguration)(candidate, { onExcessProperty: "error" });
|
|
48
|
+
const runtime = yield* Effect.try(() => runtimeFromEnvironment(configured.runtime, environment));
|
|
49
|
+
const bootstrap = configured.bootstrap;
|
|
50
|
+
return {
|
|
51
|
+
...configured,
|
|
52
|
+
runtime,
|
|
53
|
+
...bootstrap ? { bootstrap: {
|
|
54
|
+
...bootstrap,
|
|
55
|
+
administrator: {
|
|
56
|
+
...bootstrap.administrator,
|
|
57
|
+
email: environment.NUXT_CMS_BOOTSTRAP_ADMINISTRATOR_EMAIL ?? bootstrap.administrator.email,
|
|
58
|
+
password: environment.NUXT_CMS_BOOTSTRAP_ADMINISTRATOR_PASSWORD ?? bootstrap.administrator.password
|
|
59
|
+
}
|
|
60
|
+
} } : void 0
|
|
61
|
+
};
|
|
62
|
+
}).pipe(Effect.mapError(() => new ConfigurationError({ message: `Could not load ${file}. Check the CMS configuration and NUXT_CMS_* overrides for ${envName}.` })));
|
|
63
|
+
return {
|
|
64
|
+
project,
|
|
65
|
+
configuration,
|
|
66
|
+
environment,
|
|
67
|
+
environmentFile,
|
|
68
|
+
envName,
|
|
69
|
+
site: new URL(configuration.runtime.origin)
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
//#endregion
|
|
73
|
+
export { load as t };
|
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
import { i as MediaId } from "./Media-DSyvd14o.js";
|
|
2
|
+
import { h as CmsData, m as errors, p as api, t as ApiError } from "./StudioApi-CXLwwocX.js";
|
|
3
|
+
import { Effect, FileSystem, Layer, Path, Schema, Stream } from "effect";
|
|
4
|
+
import { Cookies, FetchHttpClient, HttpBody, HttpClient, HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/http";
|
|
5
|
+
import { HttpApiClient } from "effect/http-api";
|
|
6
|
+
import { createHash } from "node:crypto";
|
|
7
|
+
import { PassThrough, Readable } from "node:stream";
|
|
8
|
+
import { crc32 } from "node:zlib";
|
|
9
|
+
import * as NodeStream from "@effect/platform-node/NodeStream";
|
|
10
|
+
import { openPromise } from "yauzl";
|
|
11
|
+
import { ZipFile } from "yazl";
|
|
12
|
+
//#region ../model/src/Readiness.ts
|
|
13
|
+
/** Public diagnostics contain recovery guidance, never provider errors or installation secrets. */
|
|
14
|
+
const Check = Schema.Struct({
|
|
15
|
+
status: Schema.Literals([
|
|
16
|
+
"passed",
|
|
17
|
+
"failed",
|
|
18
|
+
"skipped"
|
|
19
|
+
]),
|
|
20
|
+
code: Schema.NonEmptyString,
|
|
21
|
+
message: Schema.NonEmptyString,
|
|
22
|
+
action: Schema.Literals([
|
|
23
|
+
"none",
|
|
24
|
+
"retry",
|
|
25
|
+
"check_configuration",
|
|
26
|
+
"check_database",
|
|
27
|
+
"check_media",
|
|
28
|
+
"restart"
|
|
29
|
+
])
|
|
30
|
+
});
|
|
31
|
+
const Report = Schema.Struct({
|
|
32
|
+
status: Schema.Literals(["ready", "unavailable"]),
|
|
33
|
+
checks: Schema.Struct({
|
|
34
|
+
configuration: Check,
|
|
35
|
+
database: Check,
|
|
36
|
+
media: Check,
|
|
37
|
+
installation: Check
|
|
38
|
+
})
|
|
39
|
+
}).check(Schema.makeFilter((report) => report.status === "ready" === Object.values(report.checks).every((check) => check.status === "passed")));
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region ../cli/src/internal/connection.ts
|
|
42
|
+
const layer = FetchHttpClient.layer.pipe(Layer.provide(Layer.succeed(FetchHttpClient.RequestInit, { redirect: "error" })));
|
|
43
|
+
var ClientError = class extends Schema.TaggedError()("Client.Error", {
|
|
44
|
+
message: Schema.String,
|
|
45
|
+
status: Schema.optionalKey(Schema.Int),
|
|
46
|
+
cause: Schema.optionalKey(Schema.Defect())
|
|
47
|
+
}) {};
|
|
48
|
+
var ReadinessError = class extends Schema.TaggedError()("Client.ReadinessError", {
|
|
49
|
+
code: Schema.String,
|
|
50
|
+
message: Schema.String,
|
|
51
|
+
action: Check.fields.action
|
|
52
|
+
}) {};
|
|
53
|
+
const make$1 = Effect.fn("Client.connect")(function* (site, initialSession = "") {
|
|
54
|
+
const loopback = [
|
|
55
|
+
"localhost",
|
|
56
|
+
"127.0.0.1",
|
|
57
|
+
"[::1]"
|
|
58
|
+
].includes(site.hostname);
|
|
59
|
+
if (site.protocol !== "https:" && !(site.protocol === "http:" && loopback)) return yield* new ClientError({ message: "Use HTTPS for a deployed CMS. HTTP is allowed only on localhost." });
|
|
60
|
+
if (site.username || site.password) return yield* new ClientError({ message: "Supply credentials separately from the installation URL." });
|
|
61
|
+
const transport = yield* HttpClient.HttpClient;
|
|
62
|
+
let session = initialSession;
|
|
63
|
+
const authenticated = transport.pipe(HttpClient.mapRequest((request) => {
|
|
64
|
+
let input = session ? HttpClientRequest.setHeader("cookie", session)(request) : request;
|
|
65
|
+
if (request.method !== "GET" && request.method !== "HEAD") input = HttpClientRequest.setHeader("origin", site.origin)(input);
|
|
66
|
+
return input;
|
|
67
|
+
}), HttpClient.withScope);
|
|
68
|
+
const api$1 = yield* HttpApiClient.makeWith(api, {
|
|
69
|
+
baseUrl: site,
|
|
70
|
+
httpClient: authenticated
|
|
71
|
+
});
|
|
72
|
+
const authRequest = Effect.fn("Client.authRequest")(function* (action, body) {
|
|
73
|
+
const request = HttpClientRequest.post(new URL(`/_cms/auth/${action}`, site)).pipe(HttpClientRequest.bodyJsonUnsafe(body));
|
|
74
|
+
const response = yield* authenticated.execute(request);
|
|
75
|
+
if (response.status < 200 || response.status >= 300) {
|
|
76
|
+
const details = yield* response.text.pipe(Effect.orElseSucceed(() => ""));
|
|
77
|
+
return yield* new ClientError({
|
|
78
|
+
message: `Authentication failed (${response.status}): ${details.slice(0, 2e3)}`,
|
|
79
|
+
status: response.status
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return response;
|
|
83
|
+
});
|
|
84
|
+
const signIn = Effect.fn("Client.signIn")(function* (email, password) {
|
|
85
|
+
const response = yield* authRequest("sign-in/email", {
|
|
86
|
+
email,
|
|
87
|
+
password
|
|
88
|
+
});
|
|
89
|
+
const cookie = Cookies.toCookieHeader(response.cookies);
|
|
90
|
+
if (!cookie) return yield* new ClientError({ message: "Sign-in did not return a session." });
|
|
91
|
+
session = cookie;
|
|
92
|
+
return yield* api$1.connection.user();
|
|
93
|
+
}, Effect.scoped);
|
|
94
|
+
return {
|
|
95
|
+
api: api$1,
|
|
96
|
+
readiness: Effect.fn("Client.readiness")(function* () {
|
|
97
|
+
const response = yield* transport.get(new URL("/_cms/health/ready", site)).pipe(Effect.mapError(() => new ReadinessError({
|
|
98
|
+
code: "connection_failed",
|
|
99
|
+
action: "retry",
|
|
100
|
+
message: "Could not reach the CMS readiness endpoint. Check the configured origin and start the server."
|
|
101
|
+
})));
|
|
102
|
+
if (response.status !== 200 && response.status !== 503) return yield* new ReadinessError({
|
|
103
|
+
code: "response_rejected",
|
|
104
|
+
action: "check_configuration",
|
|
105
|
+
message: `The readiness endpoint returned HTTP ${response.status}. Check the origin, CMS route, and reverse proxy.`
|
|
106
|
+
});
|
|
107
|
+
const report = yield* HttpClientResponse.schemaBodyJson(Report)(response).pipe(Effect.mapError(() => new ReadinessError({
|
|
108
|
+
code: "response_invalid",
|
|
109
|
+
action: "check_configuration",
|
|
110
|
+
message: "The readiness endpoint returned an invalid report. Check the origin and deployed CMS version."
|
|
111
|
+
})));
|
|
112
|
+
if (response.status === 200 !== (report.status === "ready")) return yield* new ReadinessError({
|
|
113
|
+
code: "response_invalid",
|
|
114
|
+
action: "check_configuration",
|
|
115
|
+
message: "The readiness HTTP status disagrees with its report. Check the CMS route and reverse proxy."
|
|
116
|
+
});
|
|
117
|
+
return report;
|
|
118
|
+
}, (effect) => effect.pipe(Effect.timeoutOrElse({
|
|
119
|
+
duration: "5 seconds",
|
|
120
|
+
orElse: () => Effect.fail(new ReadinessError({
|
|
121
|
+
code: "connection_timeout",
|
|
122
|
+
action: "retry",
|
|
123
|
+
message: "The readiness request timed out after five seconds. Check server startup and proxy logs, then retry cms doctor."
|
|
124
|
+
}))
|
|
125
|
+
}), Effect.scoped)),
|
|
126
|
+
get session() {
|
|
127
|
+
return session;
|
|
128
|
+
},
|
|
129
|
+
signIn,
|
|
130
|
+
initialize: Effect.fn("Client.initialize")(function* (input) {
|
|
131
|
+
yield* api$1.session.initialize({ payload: input });
|
|
132
|
+
return yield* signIn(input.email, input.password);
|
|
133
|
+
}, Effect.scoped),
|
|
134
|
+
signOut: Effect.fn("Client.signOut")(function* () {
|
|
135
|
+
yield* authRequest("sign-out", {});
|
|
136
|
+
session = "";
|
|
137
|
+
}, Effect.scoped),
|
|
138
|
+
resetPassword: Effect.fn("Client.resetPassword")(function* (token, newPassword) {
|
|
139
|
+
yield* authRequest("reset-password", {
|
|
140
|
+
token,
|
|
141
|
+
newPassword
|
|
142
|
+
});
|
|
143
|
+
}, Effect.scoped),
|
|
144
|
+
mediaAsset: (id) => api$1.media.get({ params: { id } }).pipe(Effect.catchTag("Studio.NotFound", () => Effect.succeed(null))),
|
|
145
|
+
mediaStream: (id) => Stream.unwrap(authenticated.get(new URL(`/_cms/media/${id}`, site)).pipe(Effect.flatMap((response) => {
|
|
146
|
+
if (response.status !== 200) return new ClientError({
|
|
147
|
+
message: `Could not read media ${id}.`,
|
|
148
|
+
status: response.status
|
|
149
|
+
});
|
|
150
|
+
return Effect.succeed(response.stream);
|
|
151
|
+
}))),
|
|
152
|
+
uploadMedia: Effect.fn("Client.uploadMedia")(function* (input) {
|
|
153
|
+
const fs = yield* FileSystem.FileSystem;
|
|
154
|
+
return yield* (yield* HttpApiClient.makeWith(api, {
|
|
155
|
+
baseUrl: site,
|
|
156
|
+
httpClient: authenticated.pipe(HttpClient.mapRequest((request) => HttpClientRequest.setBody(request, HttpBody.stream(fs.stream(input.filePath), input.mimeType, input.byteSize))))
|
|
157
|
+
})).media.upload({ headers: {
|
|
158
|
+
"content-type": input.mimeType,
|
|
159
|
+
"x-cms-media-id": input.id,
|
|
160
|
+
"x-cms-media-name": encodeURIComponent(input.name),
|
|
161
|
+
"x-cms-media-folder": encodeURIComponent(input.folder),
|
|
162
|
+
"x-cms-media-size": input.byteSize,
|
|
163
|
+
"x-cms-media-sha256": input.sha256
|
|
164
|
+
} });
|
|
165
|
+
}, Effect.scoped)
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region ../cli/src/DataArchive.ts
|
|
170
|
+
var SnapshotError = class extends Schema.TaggedError()("Data.InvalidSnapshot", {
|
|
171
|
+
message: Schema.String,
|
|
172
|
+
cause: Schema.optionalKey(Schema.Defect())
|
|
173
|
+
}) {};
|
|
174
|
+
const mediaPath = (asset) => `media/${asset.sha256}`;
|
|
175
|
+
const verifiedMedia = (asset, source) => Stream.suspend(() => {
|
|
176
|
+
const hash = createHash("sha256");
|
|
177
|
+
let byteSize = 0;
|
|
178
|
+
return source.pipe(Stream.mapEffect((chunk) => {
|
|
179
|
+
byteSize += chunk.byteLength;
|
|
180
|
+
if (byteSize > asset.byteSize) return Effect.fail(new SnapshotError({ message: `Media ${asset.id} exceeds its exported size.` }));
|
|
181
|
+
hash.update(chunk);
|
|
182
|
+
return Effect.succeed(chunk);
|
|
183
|
+
}), Stream.concat(Stream.fromEffect(Effect.suspend(() => byteSize === asset.byteSize && hash.digest("hex") === asset.sha256 ? Effect.succeed(/* @__PURE__ */ new Uint8Array(0)) : Effect.fail(new SnapshotError({ message: `Media ${asset.id} has incorrect exported bytes.` }))))));
|
|
184
|
+
});
|
|
185
|
+
const entryStream = (archive, entry) => Stream.unwrap(Effect.gen(function* () {
|
|
186
|
+
const input = yield* Effect.acquireRelease(Effect.tryPromise({
|
|
187
|
+
try: () => archive.openReadStreamPromise(entry),
|
|
188
|
+
catch: (cause) => new SnapshotError({
|
|
189
|
+
message: `Could not read ${entry.fileName}.`,
|
|
190
|
+
cause
|
|
191
|
+
})
|
|
192
|
+
}), (input) => Effect.sync(() => input.destroy()));
|
|
193
|
+
let checksum = 0;
|
|
194
|
+
return NodeStream.fromReadable({
|
|
195
|
+
evaluate: () => input,
|
|
196
|
+
onError: (cause) => new SnapshotError({
|
|
197
|
+
message: `Invalid ZIP entry ${entry.fileName}.`,
|
|
198
|
+
cause
|
|
199
|
+
})
|
|
200
|
+
}).pipe(Stream.map((chunk) => {
|
|
201
|
+
checksum = crc32(chunk, checksum);
|
|
202
|
+
return chunk;
|
|
203
|
+
}), Stream.concat(Stream.fromEffect(Effect.suspend(() => checksum === entry.crc32 ? Effect.succeed(/* @__PURE__ */ new Uint8Array(0)) : Effect.fail(new SnapshotError({ message: `ZIP checksum mismatch for ${entry.fileName}.` }))))));
|
|
204
|
+
}));
|
|
205
|
+
/** Validate the complete snapshot in private staging before any network mutation. */
|
|
206
|
+
const readSnapshot = Effect.fn("DataArchive.read")(function* (location) {
|
|
207
|
+
const fs = yield* FileSystem.FileSystem;
|
|
208
|
+
const path = yield* Path.Path;
|
|
209
|
+
const file = path.resolve(location);
|
|
210
|
+
const archive = yield* Effect.acquireRelease(Effect.tryPromise({
|
|
211
|
+
try: () => openPromise(file, {
|
|
212
|
+
autoClose: false,
|
|
213
|
+
strictFileNames: true
|
|
214
|
+
}),
|
|
215
|
+
catch: (cause) => new SnapshotError({
|
|
216
|
+
message: `Could not open snapshot ${file}.`,
|
|
217
|
+
cause
|
|
218
|
+
})
|
|
219
|
+
}), (archive) => Effect.sync(() => archive.close()));
|
|
220
|
+
const entries = /* @__PURE__ */ new Map();
|
|
221
|
+
yield* Stream.fromAsyncIterable(archive.eachEntry(), (cause) => new SnapshotError({
|
|
222
|
+
message: `Invalid snapshot ${file}.`,
|
|
223
|
+
cause
|
|
224
|
+
})).pipe(Stream.runForEach((entry) => Effect.gen(function* () {
|
|
225
|
+
const kind = entry.externalFileAttributes >>> 16 & 61440;
|
|
226
|
+
if (entries.has(entry.fileName) || entry.fileName !== "snapshot.json" && !/^media\/[a-f0-9]{64}$/u.test(entry.fileName) || kind !== 0 && kind !== 32768) return yield* new SnapshotError({ message: `Unexpected or duplicate ZIP entry ${entry.fileName}.` });
|
|
227
|
+
entries.set(entry.fileName, entry);
|
|
228
|
+
})));
|
|
229
|
+
const metadata = entries.get("snapshot.json");
|
|
230
|
+
if (!metadata) return yield* new SnapshotError({ message: "The snapshot is missing snapshot.json." });
|
|
231
|
+
const json = yield* entryStream(archive, metadata).pipe(Stream.decodeText, Stream.mkString);
|
|
232
|
+
const data = yield* Schema.decodeEffect(Schema.fromJsonString(CmsData), { onExcessProperty: "error" })(json).pipe(Effect.mapError((cause) => new SnapshotError({
|
|
233
|
+
message: `Invalid CMS state in ${file}: ${cause.message}`,
|
|
234
|
+
cause
|
|
235
|
+
})));
|
|
236
|
+
const staging = yield* fs.makeTempDirectoryScoped({ prefix: "cms-import-" });
|
|
237
|
+
const verified = /* @__PURE__ */ new Map();
|
|
238
|
+
const media = [];
|
|
239
|
+
for (const asset of data.media) {
|
|
240
|
+
const name = mediaPath(asset);
|
|
241
|
+
const entry = entries.get(name);
|
|
242
|
+
if (!entry || entry.uncompressedSize !== asset.byteSize) return yield* new SnapshotError({ message: `Missing or incorrect media bytes for ${asset.id}.` });
|
|
243
|
+
let filePath = verified.get(name);
|
|
244
|
+
if (!filePath) {
|
|
245
|
+
filePath = path.join(staging, asset.sha256);
|
|
246
|
+
yield* verifiedMedia(asset, entryStream(archive, entry)).pipe(Stream.run(fs.sink(filePath, {
|
|
247
|
+
flag: "wx",
|
|
248
|
+
mode: 384
|
|
249
|
+
})));
|
|
250
|
+
verified.set(name, filePath);
|
|
251
|
+
}
|
|
252
|
+
media.push({
|
|
253
|
+
metadata: asset,
|
|
254
|
+
filePath
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
if (entries.size !== verified.size + 1) return yield* new SnapshotError({ message: "The snapshot contains media absent from snapshot.json." });
|
|
258
|
+
return {
|
|
259
|
+
data,
|
|
260
|
+
media
|
|
261
|
+
};
|
|
262
|
+
});
|
|
263
|
+
/** Stream a complete ZIP into private staging, then publish it atomically. */
|
|
264
|
+
const writeSnapshot = Effect.fn("DataArchive.write")(function* (location, data, readMedia, force = false) {
|
|
265
|
+
const fs = yield* FileSystem.FileSystem;
|
|
266
|
+
const path = yield* Path.Path;
|
|
267
|
+
const file = path.resolve(location);
|
|
268
|
+
if ((yield* fs.exists(file)) && !force) return yield* new SnapshotError({ message: `${file} already exists. Use --force to overwrite the snapshot.` });
|
|
269
|
+
yield* fs.makeDirectory(path.dirname(file), { recursive: true });
|
|
270
|
+
const staging = yield* fs.makeTempDirectoryScoped({
|
|
271
|
+
directory: path.dirname(file),
|
|
272
|
+
prefix: ".cms-export-"
|
|
273
|
+
});
|
|
274
|
+
const temporary = path.join(staging, "snapshot.zip");
|
|
275
|
+
const encoded = yield* Schema.encodeEffect(CmsData)(data);
|
|
276
|
+
const files = /* @__PURE__ */ new Map();
|
|
277
|
+
for (const asset of data.media) files.set(mediaPath(asset), asset);
|
|
278
|
+
yield* Effect.scoped(Effect.gen(function* () {
|
|
279
|
+
const inputs = [];
|
|
280
|
+
const options = {
|
|
281
|
+
mtime: new Date(1980, 0, 1),
|
|
282
|
+
forceDosTimestamp: true,
|
|
283
|
+
mode: 33152
|
|
284
|
+
};
|
|
285
|
+
yield* Effect.addFinalizer(() => Effect.sync(() => inputs.forEach(({ input }) => input.destroy())));
|
|
286
|
+
const metadata = Readable.from([Buffer.from(JSON.stringify(encoded))]);
|
|
287
|
+
inputs.push({
|
|
288
|
+
name: "snapshot.json",
|
|
289
|
+
input: metadata
|
|
290
|
+
});
|
|
291
|
+
for (const [name, asset] of files) {
|
|
292
|
+
const input = yield* NodeStream.toReadable(verifiedMedia(asset, readMedia(asset.id)));
|
|
293
|
+
inputs.push({
|
|
294
|
+
name,
|
|
295
|
+
input,
|
|
296
|
+
size: asset.byteSize
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
const fileHandle = yield* fs.open(temporary, {
|
|
300
|
+
flag: "wx",
|
|
301
|
+
mode: 384
|
|
302
|
+
});
|
|
303
|
+
const stream = NodeStream.fromReadable({
|
|
304
|
+
evaluate: () => {
|
|
305
|
+
const archive = new ZipFile();
|
|
306
|
+
const output = new PassThrough();
|
|
307
|
+
archive.on("error", (error) => output.destroy(error));
|
|
308
|
+
archive.outputStream.pipe(output);
|
|
309
|
+
for (const { name, input, size } of inputs) {
|
|
310
|
+
input.on("error", (error) => archive.emit("error", error));
|
|
311
|
+
archive.addReadStream(input, name, {
|
|
312
|
+
...options,
|
|
313
|
+
compress: size === void 0,
|
|
314
|
+
size
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
archive.end();
|
|
318
|
+
return output;
|
|
319
|
+
},
|
|
320
|
+
onError: (cause) => new SnapshotError({
|
|
321
|
+
message: `Could not write snapshot ${file}.`,
|
|
322
|
+
cause
|
|
323
|
+
})
|
|
324
|
+
});
|
|
325
|
+
yield* Stream.runForEach(stream, (chunk) => fileHandle.writeAll(chunk));
|
|
326
|
+
yield* fileHandle.sync;
|
|
327
|
+
}));
|
|
328
|
+
if (force) yield* fs.rename(temporary, file);
|
|
329
|
+
else yield* fs.link(temporary, file);
|
|
330
|
+
return {
|
|
331
|
+
file,
|
|
332
|
+
documents: data.documents.length,
|
|
333
|
+
revisions: data.documents.reduce((total, document) => total + document.revisions.length, 0),
|
|
334
|
+
media: data.media.length
|
|
335
|
+
};
|
|
336
|
+
}, Effect.scoped);
|
|
337
|
+
//#endregion
|
|
338
|
+
//#region ../cli/src/Errors.ts
|
|
339
|
+
const ErrorDetails = Schema.Struct({
|
|
340
|
+
code: Schema.String,
|
|
341
|
+
message: Schema.String,
|
|
342
|
+
status: Schema.optionalKey(Schema.Int),
|
|
343
|
+
details: Schema.optionalKey(Schema.Json)
|
|
344
|
+
});
|
|
345
|
+
function errorDetails(error) {
|
|
346
|
+
for (const definition of errors) if (Schema.is(definition)(error)) return {
|
|
347
|
+
code: error._tag,
|
|
348
|
+
message: error.error,
|
|
349
|
+
status: Schema.resolveAnnotations(definition)?.httpApiStatus ?? 500,
|
|
350
|
+
details: Schema.encodeSync(ApiError)(error)
|
|
351
|
+
};
|
|
352
|
+
if (HttpClientError.isHttpClientError(error)) {
|
|
353
|
+
if (error.reason instanceof HttpClientError.TransportError) return {
|
|
354
|
+
code: "Client.NetworkError",
|
|
355
|
+
message: "Could not reach the CMS."
|
|
356
|
+
};
|
|
357
|
+
if (error.reason instanceof HttpClientError.DecodeError || error.reason instanceof HttpClientError.EmptyBodyError) return {
|
|
358
|
+
code: "Client.InvalidResponse",
|
|
359
|
+
message: "The CMS returned an invalid response.",
|
|
360
|
+
status: error.reason.response.status
|
|
361
|
+
};
|
|
362
|
+
if (error.reason instanceof HttpClientError.StatusCodeError) return {
|
|
363
|
+
code: "Client.ResponseError",
|
|
364
|
+
message: "The CMS rejected the request.",
|
|
365
|
+
status: error.reason.response.status
|
|
366
|
+
};
|
|
367
|
+
return {
|
|
368
|
+
code: "Client.RequestError",
|
|
369
|
+
message: "Could not construct the CMS request."
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
if (Schema.is(Schema.Struct({
|
|
373
|
+
_tag: Schema.String,
|
|
374
|
+
message: Schema.String,
|
|
375
|
+
status: Schema.optionalKey(Schema.Int)
|
|
376
|
+
}))(error)) return error.status === void 0 ? {
|
|
377
|
+
code: error._tag,
|
|
378
|
+
message: error.message
|
|
379
|
+
} : {
|
|
380
|
+
code: error._tag,
|
|
381
|
+
message: error.message,
|
|
382
|
+
status: error.status
|
|
383
|
+
};
|
|
384
|
+
return {
|
|
385
|
+
code: "Client.UnexpectedError",
|
|
386
|
+
message: error instanceof Error ? error.message : "CMS request failed."
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
//#endregion
|
|
390
|
+
//#region ../cli/src/DataTransfer.ts
|
|
391
|
+
var ImportError = class extends Schema.TaggedError()("Data.ImportFailed", {
|
|
392
|
+
message: Schema.String,
|
|
393
|
+
phase: Schema.Literals([
|
|
394
|
+
"prepare",
|
|
395
|
+
"upload",
|
|
396
|
+
"apply"
|
|
397
|
+
]),
|
|
398
|
+
outcome: Schema.Literals([
|
|
399
|
+
"not-applied",
|
|
400
|
+
"partial",
|
|
401
|
+
"unknown"
|
|
402
|
+
]),
|
|
403
|
+
uploadedMedia: Schema.Array(MediaId),
|
|
404
|
+
uncertainMediaId: Schema.NullOr(MediaId),
|
|
405
|
+
error: ErrorDetails
|
|
406
|
+
}) {};
|
|
407
|
+
function make(connection) {
|
|
408
|
+
return {
|
|
409
|
+
export: Effect.fn("DataTransfer.export")(function* (file, force = false) {
|
|
410
|
+
const data = yield* connection.api.data.snapshot();
|
|
411
|
+
return yield* writeSnapshot(file, data, connection.mediaStream, force);
|
|
412
|
+
}),
|
|
413
|
+
import: Effect.fn("DataTransfer.import")((file, options = {}) => {
|
|
414
|
+
let phase = "prepare";
|
|
415
|
+
const uploadedMedia = [];
|
|
416
|
+
let uncertainMediaId = null;
|
|
417
|
+
return Effect.gen(function* () {
|
|
418
|
+
const bundle = yield* readSnapshot(file);
|
|
419
|
+
const input = {
|
|
420
|
+
data: bundle.data,
|
|
421
|
+
replace: options.replace ?? false
|
|
422
|
+
};
|
|
423
|
+
const plan = yield* connection.api.data.plan({ payload: input });
|
|
424
|
+
const media = yield* Effect.forEach(bundle.media, (file) => connection.mediaAsset(file.metadata.id).pipe(Effect.map((remote) => ({
|
|
425
|
+
file,
|
|
426
|
+
remote
|
|
427
|
+
}))));
|
|
428
|
+
if (media.some(({ file: { metadata }, remote }) => remote && (remote.mimeType !== metadata.mimeType || remote.byteSize !== metadata.byteSize || remote.sha256 !== metadata.sha256))) return yield* new ImportError({
|
|
429
|
+
message: "A media ID has different bytes in the target CMS.",
|
|
430
|
+
phase,
|
|
431
|
+
outcome: "not-applied",
|
|
432
|
+
uploadedMedia,
|
|
433
|
+
uncertainMediaId,
|
|
434
|
+
error: {
|
|
435
|
+
code: "Data.MediaConflict",
|
|
436
|
+
message: "Replace the conflicting asset with a new media identity."
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
const uploads = media.flatMap(({ file, remote }) => remote ? [] : [file]);
|
|
440
|
+
const summary = {
|
|
441
|
+
...plan,
|
|
442
|
+
media: {
|
|
443
|
+
uploaded: uploads.length,
|
|
444
|
+
unchanged: media.length - uploads.length
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
if (options.dryRun) return {
|
|
448
|
+
...summary,
|
|
449
|
+
status: "planned"
|
|
450
|
+
};
|
|
451
|
+
phase = "upload";
|
|
452
|
+
for (const upload of uploads) {
|
|
453
|
+
uncertainMediaId = upload.metadata.id;
|
|
454
|
+
yield* connection.uploadMedia({
|
|
455
|
+
...upload.metadata,
|
|
456
|
+
filePath: upload.filePath
|
|
457
|
+
});
|
|
458
|
+
uploadedMedia.push(upload.metadata.id);
|
|
459
|
+
uncertainMediaId = null;
|
|
460
|
+
}
|
|
461
|
+
phase = "apply";
|
|
462
|
+
const accepted = yield* connection.api.data.apply({ payload: {
|
|
463
|
+
...input,
|
|
464
|
+
stamp: plan.stamp
|
|
465
|
+
} });
|
|
466
|
+
return {
|
|
467
|
+
...accepted,
|
|
468
|
+
media: summary.media,
|
|
469
|
+
status: accepted.status === "unchanged" ? "unchanged" : "applied"
|
|
470
|
+
};
|
|
471
|
+
}).pipe(Effect.catch((error) => {
|
|
472
|
+
if (error instanceof ImportError) return Effect.fail(error);
|
|
473
|
+
const details = errorDetails(error);
|
|
474
|
+
const rejected = Schema.is(ApiError)(error) && details.status !== void 0 && details.status >= 400 && details.status < 500;
|
|
475
|
+
return Effect.fail(new ImportError({
|
|
476
|
+
message: details.message,
|
|
477
|
+
phase,
|
|
478
|
+
outcome: !rejected && (phase === "apply" || uncertainMediaId !== null) ? "unknown" : uploadedMedia.length ? "partial" : "not-applied",
|
|
479
|
+
uploadedMedia,
|
|
480
|
+
uncertainMediaId: rejected ? null : uncertainMediaId,
|
|
481
|
+
error: details
|
|
482
|
+
}));
|
|
483
|
+
}));
|
|
484
|
+
})
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
//#endregion
|
|
488
|
+
export { ReadinessError as a, ClientError as i, make as n, layer as o, errorDetails as r, make$1 as s, ImportError as t };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { r as MediaSelection } from "./Media-BQ0uL4w7.js";
|
|
2
|
+
import { r as PublishedDocument, t as DeliveryRedirect } from "./Document-TgwYKJZM.js";
|
|
3
|
+
import { n as AuthoredImage, t as LinkTarget } from "./Links-Dx1yOni8.js";
|
|
4
|
+
import { a as ResolvedLocaleDefinition } from "./Locales-jwbmJaOp.js";
|
|
5
|
+
import "./Seo-BcpqxoAs.js";
|
|
6
|
+
import { i as DocumentQuerySort, n as DocumentQueryItem, r as DocumentQueryPage, t as DocumentQuery } from "./Query-C0kGJF5_.js";
|
|
7
|
+
import { n as DeliveredDocumentPage, r as DeliveredQueryItem, t as DeliveredDocument } from "./forms-3xuf0Ym7.js";
|
|
8
|
+
import { MaybeRefOrGetter } from "vue";
|
|
9
|
+
import { useRequestFetch, useRoute } from "nuxt/app";
|
|
10
|
+
//#region src/runtime/delivery/internal/useDeliveryContext.d.ts
|
|
11
|
+
type DeliveryDocument = DeliveredDocument | DeliveryRedirect | DeliveredQueryItem;
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/runtime/delivery/internal/nuxtDelivery.d.ts
|
|
14
|
+
export declare const useCmsDocument: (path: import("vue").MaybeRefOrGetter<string>) => import("nuxt/app").AsyncData<DeliveryDocument | undefined, import("nuxt/server").NuxtError<unknown> | undefined>, useCmsDocumentQuery: (input: import("vue").MaybeRefOrGetter<DocumentQuery>) => import("nuxt/app").AsyncData<DeliveredDocumentPage, import("nuxt/server").NuxtError<unknown> | undefined>, useCmsDocumentSeo: (document: import("vue").MaybeRefOrGetter<PublishedDocument | DocumentQueryItem | DeliveryRedirect | null | undefined>) => Promise<void>;
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/runtime/delivery/useCmsLocale.d.ts
|
|
17
|
+
/** URL locale and site-path helpers; UI message catalogs belong to the Nuxt site. */
|
|
18
|
+
export declare function useCmsLocale(): {
|
|
19
|
+
locale: import("vue").ComputedRef<string | undefined>;
|
|
20
|
+
locales: ResolvedLocaleDefinition[];
|
|
21
|
+
defaultLocale: string | undefined;
|
|
22
|
+
direction: import("vue").ComputedRef<"ltr" | "rtl">;
|
|
23
|
+
sitePath: import("vue").ComputedRef<string>;
|
|
24
|
+
localePath: (path: string, code?: string | undefined) => string;
|
|
25
|
+
switchLocalePath: (code: string, destination?: string) => string;
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { AuthoredImage, type DeliveredDocument, type DeliveredDocumentPage, type DeliveredQueryItem, type DocumentQuery, type DocumentQueryPage, type DocumentQuerySort, type LinkTarget, type MediaSelection };
|
package/src/Delivery.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { t as AuthoredImage } from "./Image-CJWPLnhP.js";
|
|
2
|
+
import { n as useCmsDocumentQuery, r as useCmsDocumentSeo, t as useCmsDocument } from "./nuxtDelivery-BYX_Cddb.js";
|
|
3
|
+
import "./runtime/delivery/useCmsDocument.js";
|
|
4
|
+
import "./runtime/delivery/useCmsDocumentQuery.js";
|
|
5
|
+
import "./runtime/delivery/useCmsDocumentSeo.js";
|
|
6
|
+
import { useCmsLocale } from "./runtime/delivery/useCmsLocale.js";
|
|
7
|
+
export { AuthoredImage, useCmsDocument, useCmsDocumentQuery, useCmsDocumentSeo, useCmsLocale };
|