@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.
Files changed (524) hide show
  1. package/LICENSE +18 -10
  2. package/README.md +59 -401
  3. package/drizzle/20261003215543_initial/migration.sql +251 -0
  4. package/drizzle/20261003215543_initial/snapshot.json +1941 -0
  5. package/package.json +75 -71
  6. package/src/Authoring.d.ts +41 -49
  7. package/src/Authoring.js +1 -1
  8. package/src/Blocks-BrxSemnd.js +40 -0
  9. package/src/Client.d.ts +8186 -0
  10. package/src/Client.js +41 -0
  11. package/src/Collections.d.ts +142 -0
  12. package/src/Collections.js +142 -0
  13. package/src/Config-CMiwciub.js +130 -0
  14. package/src/Config.d.ts +172 -0
  15. package/src/Config.js +2 -0
  16. package/src/Configuration-Dk2k3OIc.js +73 -0
  17. package/src/DataTransfer-BmECvPHB.js +488 -0
  18. package/src/Database-DSsNCGft.d.ts +3 -0
  19. package/src/Delivery.d.ts +28 -0
  20. package/src/Delivery.js +7 -0
  21. package/src/Document-CKXMSEf1.js +293 -0
  22. package/src/Document-TgwYKJZM.d.ts +220 -0
  23. package/src/DocumentRenderer-Wz2xaNyf.js +394 -0
  24. package/src/EditorSchema-wrDv-id6.js +296 -0
  25. package/src/Fields-BegSgYhj.d.ts +166 -0
  26. package/src/Fields-ioGaMEh9.js +130 -0
  27. package/src/Forms-BuKAXQxr.d.ts +203 -0
  28. package/src/Forms.d.ts +48 -11
  29. package/src/Forms.js +342 -7
  30. package/src/I18n-Ckf9h0rC.js +154 -0
  31. package/src/I18n.d.ts +45 -2
  32. package/src/I18n.js +2 -1
  33. package/src/Image-CJWPLnhP.js +110 -0
  34. package/src/Links-CJYyy7rC.js +28 -0
  35. package/src/Links-Dx1yOni8.d.ts +28 -0
  36. package/src/Locales-Ch7a5xuA.js +67 -0
  37. package/src/Locales-jwbmJaOp.d.ts +43 -0
  38. package/src/Locales.d.ts +3 -0
  39. package/src/Locales.js +3 -0
  40. package/src/Media-BQ0uL4w7.d.ts +15 -0
  41. package/src/Media-DSyvd14o.js +87 -0
  42. package/src/Module.d.ts +2 -10
  43. package/src/Module.js +1039 -162
  44. package/src/Operations.d.ts +57 -0
  45. package/src/Operations.js +263 -0
  46. package/src/People-DvNZauWw.js +69 -0
  47. package/src/PreviewFocus-C_EelZO5.js +104 -0
  48. package/src/Query-C0kGJF5_.d.ts +261 -0
  49. package/src/RevisionPreview-IVwbJ9Wy.js +133 -0
  50. package/src/Routes-BaZvm2LE.js +126 -0
  51. package/src/Routes-DM1rRp3r.d.ts +15 -0
  52. package/src/S3MediaObjects-y-WacEi9.js +193 -0
  53. package/src/Seo-BcpqxoAs.d.ts +57 -0
  54. package/src/Seo-CjNUtUkj.js +254 -0
  55. package/src/StudioApi-CXLwwocX.js +833 -0
  56. package/src/StudioErrors-T5zLGQ1M.js +117 -0
  57. package/src/StudioErrors-kq-E44lQ.d.ts +104 -0
  58. package/src/StudioServer.d.ts +20 -0
  59. package/src/StudioServer.js +34 -0
  60. package/src/answers-DcTg0Xv2.js +41 -0
  61. package/src/cli.js +681 -187
  62. package/src/contracts-rprW3ZOB.js +130 -0
  63. package/src/forms-3xuf0Ym7.d.ts +206 -0
  64. package/src/localeConfiguration-BPbkLi7-.js +32 -0
  65. package/src/localeContext-DhF3SPvM.js +59 -0
  66. package/src/locales-6OD4XGIZ.js +12 -0
  67. package/src/nuxtDelivery-BYX_Cddb.js +466 -0
  68. package/src/plugin-DTYuDaQu.js +7171 -0
  69. package/src/previewContext-dt3ZUh-w.js +4 -0
  70. package/src/previewRegions-CXjk5cbP.js +145 -0
  71. package/src/previewSource-fb-q3ESM.js +144 -0
  72. package/src/rendering-D9LVeEKX.js +47 -0
  73. package/src/rolldown-runtime-8H4AJuhK.js +14 -0
  74. package/src/runtime/CmsImage.js +38 -0
  75. package/src/runtime/DocumentPage.vue +10 -0
  76. package/src/runtime/DocumentPageContent.js +48 -0
  77. package/src/runtime/DocumentRenderer.d.ts +129 -0
  78. package/src/runtime/DocumentRenderer.js +2 -0
  79. package/src/runtime/api.js +48 -6
  80. package/src/runtime/delivery/useCmsDocument.js +2 -0
  81. package/src/runtime/delivery/useCmsDocumentQuery.js +2 -0
  82. package/src/runtime/delivery/useCmsDocumentSeo.js +2 -114
  83. package/src/runtime/delivery/useCmsLocale.js +10 -0
  84. package/src/runtime/plugin.js +2 -40
  85. package/src/runtime/preview.css +85 -0
  86. package/src/runtime/preview.js +277 -0
  87. package/src/runtime/previewSource.js +82 -0
  88. package/src/runtime/revisionPrivacy.js +13 -0
  89. package/src/runtime/studio.js +10 -0
  90. package/src/runtime/studioIcons.js +36 -0
  91. package/src/validation-3pggwcnm.js +396 -0
  92. package/src/validation-DpUwPC8Y.js +224 -0
  93. package/studio/THIRD-PARTY-LICENSES.md +2406 -0
  94. package/studio/chunks/AccountPage-DL3DitDM.js +288 -0
  95. package/studio/chunks/AccountPage-DL3DitDM.js.br +0 -0
  96. package/studio/chunks/AccountPage-DL3DitDM.js.gz +0 -0
  97. package/studio/chunks/ActivityPage-CLqVUqTh.js +584 -0
  98. package/studio/chunks/ActivityPage-CLqVUqTh.js.br +0 -0
  99. package/studio/chunks/ActivityPage-CLqVUqTh.js.gz +0 -0
  100. package/studio/chunks/Alert-D0D24z_a.js +335 -0
  101. package/studio/chunks/Alert-D0D24z_a.js.br +0 -0
  102. package/studio/chunks/Alert-D0D24z_a.js.gz +0 -0
  103. package/studio/chunks/Badge-BBFs88TI.js +346 -0
  104. package/studio/chunks/Badge-BBFs88TI.js.br +0 -0
  105. package/studio/chunks/Badge-BBFs88TI.js.gz +0 -0
  106. package/studio/chunks/Button-BT3ztSPx.js +14319 -0
  107. package/studio/chunks/Button-BT3ztSPx.js.br +0 -0
  108. package/studio/chunks/Button-BT3ztSPx.js.gz +0 -0
  109. package/studio/chunks/Collapsible-CKnEYIlp.js +246 -0
  110. package/studio/chunks/Collapsible-CKnEYIlp.js.br +0 -0
  111. package/studio/chunks/Collapsible-CKnEYIlp.js.gz +0 -0
  112. package/studio/chunks/ContentInventory-D7nsFA6U.js +1745 -0
  113. package/studio/chunks/ContentInventory-D7nsFA6U.js.br +0 -0
  114. package/studio/chunks/ContentInventory-D7nsFA6U.js.gz +0 -0
  115. package/studio/chunks/ContentPage-DCxt6BeD.js +18 -0
  116. package/studio/chunks/ContentPage-DCxt6BeD.js.br +0 -0
  117. package/studio/chunks/ContentPage-DCxt6BeD.js.gz +0 -0
  118. package/studio/chunks/DashboardSearch-DjyMjJwF.js +2413 -0
  119. package/studio/chunks/DashboardSearch-DjyMjJwF.js.br +0 -0
  120. package/studio/chunks/DashboardSearch-DjyMjJwF.js.gz +0 -0
  121. package/studio/chunks/DocumentLocaleMenu-0EkkOr6_.js +26063 -0
  122. package/studio/chunks/DocumentLocaleMenu-0EkkOr6_.js.br +0 -0
  123. package/studio/chunks/DocumentLocaleMenu-0EkkOr6_.js.gz +0 -0
  124. package/studio/chunks/DropdownMenu-CA9fB0uZ.js +4400 -0
  125. package/studio/chunks/DropdownMenu-CA9fB0uZ.js.br +0 -0
  126. package/studio/chunks/DropdownMenu-CA9fB0uZ.js.gz +0 -0
  127. package/studio/chunks/EditorPage-D_PAYEE4.js +7799 -0
  128. package/studio/chunks/EditorPage-D_PAYEE4.js.br +0 -0
  129. package/studio/chunks/EditorPage-D_PAYEE4.js.gz +0 -0
  130. package/studio/chunks/FormField-CgM6l2Yn.js +198 -0
  131. package/studio/chunks/FormField-CgM6l2Yn.js.br +0 -0
  132. package/studio/chunks/FormField-CgM6l2Yn.js.gz +0 -0
  133. package/studio/chunks/HelpPage-C-vrFcT_.js +552 -0
  134. package/studio/chunks/HelpPage-C-vrFcT_.js.br +0 -0
  135. package/studio/chunks/HelpPage-C-vrFcT_.js.gz +0 -0
  136. package/studio/chunks/Kbd-Ot7TIhVZ.js +271 -0
  137. package/studio/chunks/Kbd-Ot7TIhVZ.js.br +0 -0
  138. package/studio/chunks/Kbd-Ot7TIhVZ.js.gz +0 -0
  139. package/studio/chunks/MediaFolderDialog-DYu-eu-q.js +101 -0
  140. package/studio/chunks/MediaFolderDialog-DYu-eu-q.js.br +0 -0
  141. package/studio/chunks/MediaFolderDialog-DYu-eu-q.js.gz +0 -0
  142. package/studio/chunks/MediaPage-D-jaWtdl.js +923 -0
  143. package/studio/chunks/MediaPage-D-jaWtdl.js.br +0 -0
  144. package/studio/chunks/MediaPage-D-jaWtdl.js.gz +0 -0
  145. package/studio/chunks/MediaPicker-BZs2wUFz.js +837 -0
  146. package/studio/chunks/MediaPicker-BZs2wUFz.js.br +0 -0
  147. package/studio/chunks/MediaPicker-BZs2wUFz.js.gz +0 -0
  148. package/studio/chunks/MediaUploadPanel-C7Kyg6aR.js +1173 -0
  149. package/studio/chunks/MediaUploadPanel-C7Kyg6aR.js.br +0 -0
  150. package/studio/chunks/MediaUploadPanel-C7Kyg6aR.js.gz +0 -0
  151. package/studio/chunks/Modal-D6hSvxHd.js +265 -0
  152. package/studio/chunks/Modal-D6hSvxHd.js.br +0 -0
  153. package/studio/chunks/Modal-D6hSvxHd.js.gz +0 -0
  154. package/studio/chunks/NewDocumentDialog-C8B6_r3J.js +277 -0
  155. package/studio/chunks/NewDocumentDialog-C8B6_r3J.js.br +0 -0
  156. package/studio/chunks/NewDocumentDialog-C8B6_r3J.js.gz +0 -0
  157. package/studio/chunks/Pagination-D9BSo5H2.js +573 -0
  158. package/studio/chunks/Pagination-D9BSo5H2.js.br +0 -0
  159. package/studio/chunks/Pagination-D9BSo5H2.js.gz +0 -0
  160. package/studio/chunks/PeoplePage-CWIXitBD.js +783 -0
  161. package/studio/chunks/PeoplePage-CWIXitBD.js.br +0 -0
  162. package/studio/chunks/PeoplePage-CWIXitBD.js.gz +0 -0
  163. package/studio/chunks/Popover-B63bkTMS.js +128 -0
  164. package/studio/chunks/Popover-B63bkTMS.js.br +0 -0
  165. package/studio/chunks/Popover-B63bkTMS.js.gz +0 -0
  166. package/studio/chunks/PublicationActionDialog-Cm_P0C3I.js +255 -0
  167. package/studio/chunks/PublicationActionDialog-Cm_P0C3I.js.br +0 -0
  168. package/studio/chunks/PublicationActionDialog-Cm_P0C3I.js.gz +0 -0
  169. package/studio/chunks/Routes-DLYHmulE.js +102 -0
  170. package/studio/chunks/Routes-DLYHmulE.js.br +0 -0
  171. package/studio/chunks/Routes-DLYHmulE.js.gz +0 -0
  172. package/studio/chunks/RovingFocusItem-QZNg-wWF.js +95 -0
  173. package/studio/chunks/RovingFocusItem-QZNg-wWF.js.br +0 -0
  174. package/studio/chunks/RovingFocusItem-QZNg-wWF.js.gz +0 -0
  175. package/studio/chunks/ScheduledPage-C0hqrkr5.js +332 -0
  176. package/studio/chunks/ScheduledPage-C0hqrkr5.js.br +0 -0
  177. package/studio/chunks/ScheduledPage-C0hqrkr5.js.gz +0 -0
  178. package/studio/chunks/Search-BEgCe9Aj.js +14646 -0
  179. package/studio/chunks/Search-BEgCe9Aj.js.br +0 -0
  180. package/studio/chunks/Search-BEgCe9Aj.js.gz +0 -0
  181. package/studio/chunks/Select-B50WZMW-.js +2145 -0
  182. package/studio/chunks/Select-B50WZMW-.js.br +0 -0
  183. package/studio/chunks/Select-B50WZMW-.js.gz +0 -0
  184. package/studio/chunks/SelectMenu-DSweWGMz.js +2109 -0
  185. package/studio/chunks/SelectMenu-DSweWGMz.js.br +0 -0
  186. package/studio/chunks/SelectMenu-DSweWGMz.js.gz +0 -0
  187. package/studio/chunks/SeoPage-CNNxGe4h.js +846 -0
  188. package/studio/chunks/SeoPage-CNNxGe4h.js.br +0 -0
  189. package/studio/chunks/SeoPage-CNNxGe4h.js.gz +0 -0
  190. package/studio/chunks/Skeleton-COz8dcrw.js +39 -0
  191. package/studio/chunks/Skeleton-COz8dcrw.js.br +2 -0
  192. package/studio/chunks/Skeleton-COz8dcrw.js.gz +0 -0
  193. package/studio/chunks/Slideover-QMMHAAys.js +289 -0
  194. package/studio/chunks/Slideover-QMMHAAys.js.br +0 -0
  195. package/studio/chunks/Slideover-QMMHAAys.js.gz +0 -0
  196. package/studio/chunks/StudioPage-ngEIDr5d.js +80 -0
  197. package/studio/chunks/StudioPage-ngEIDr5d.js.br +0 -0
  198. package/studio/chunks/StudioPage-ngEIDr5d.js.gz +0 -0
  199. package/studio/chunks/StudioPageToolbar-BwHnqyr6.js +2524 -0
  200. package/studio/chunks/StudioPageToolbar-BwHnqyr6.js.br +0 -0
  201. package/studio/chunks/StudioPageToolbar-BwHnqyr6.js.gz +0 -0
  202. package/studio/chunks/Switch-qKl1aDn7.js +484 -0
  203. package/studio/chunks/Switch-qKl1aDn7.js.br +0 -0
  204. package/studio/chunks/Switch-qKl1aDn7.js.gz +0 -0
  205. package/studio/chunks/ToolPage-DxoVAJVk.js +29 -0
  206. package/studio/chunks/ToolPage-DxoVAJVk.js.br +0 -0
  207. package/studio/chunks/ToolPage-DxoVAJVk.js.gz +0 -0
  208. package/studio/chunks/Tooltip-Bu15m_DB.js +693 -0
  209. package/studio/chunks/Tooltip-Bu15m_DB.js.br +0 -0
  210. package/studio/chunks/Tooltip-Bu15m_DB.js.gz +0 -0
  211. package/studio/chunks/TrashPage-lhqLLdoG.js +12 -0
  212. package/studio/chunks/TrashPage-lhqLLdoG.js.br +0 -0
  213. package/studio/chunks/TrashPage-lhqLLdoG.js.gz +0 -0
  214. package/studio/chunks/VersionsPage-Cqy6UAp9.js +2349 -0
  215. package/studio/chunks/VersionsPage-Cqy6UAp9.js.br +0 -0
  216. package/studio/chunks/VersionsPage-Cqy6UAp9.js.gz +0 -0
  217. package/studio/chunks/VisuallyHiddenInput-Cu8hQLRf.js +113 -0
  218. package/studio/chunks/VisuallyHiddenInput-Cu8hQLRf.js.br +0 -0
  219. package/studio/chunks/VisuallyHiddenInput-Cu8hQLRf.js.gz +0 -0
  220. package/studio/chunks/arrays-CUJkmV4I.js +10 -0
  221. package/studio/chunks/arrays-CUJkmV4I.js.br +0 -0
  222. package/studio/chunks/arrays-CUJkmV4I.js.gz +0 -0
  223. package/studio/chunks/base-DkTekJe8.js +213 -0
  224. package/studio/chunks/base-DkTekJe8.js.br +0 -0
  225. package/studio/chunks/base-DkTekJe8.js.gz +0 -0
  226. package/studio/chunks/content-DUGl3N4d.js +6012 -0
  227. package/studio/chunks/content-DUGl3N4d.js.br +0 -0
  228. package/studio/chunks/content-DUGl3N4d.js.gz +0 -0
  229. package/studio/chunks/destinations-DPIQVQa6.js +227 -0
  230. package/studio/chunks/destinations-DPIQVQa6.js.br +0 -0
  231. package/studio/chunks/destinations-DPIQVQa6.js.gz +0 -0
  232. package/studio/chunks/en-073cjKW4.js +152 -0
  233. package/studio/chunks/en-073cjKW4.js.br +0 -0
  234. package/studio/chunks/en-073cjKW4.js.gz +0 -0
  235. package/studio/chunks/en-Bn8mxPuf.js +134 -0
  236. package/studio/chunks/en-Bn8mxPuf.js.br +0 -0
  237. package/studio/chunks/en-Bn8mxPuf.js.gz +0 -0
  238. package/studio/chunks/en-C9OiaUDZ.js +251 -0
  239. package/studio/chunks/en-C9OiaUDZ.js.br +0 -0
  240. package/studio/chunks/en-C9OiaUDZ.js.gz +0 -0
  241. package/studio/chunks/en-CHAR6jzx.js +147 -0
  242. package/studio/chunks/en-CHAR6jzx.js.br +0 -0
  243. package/studio/chunks/en-CHAR6jzx.js.gz +0 -0
  244. package/studio/chunks/en-Cq4N1vEF.js +93 -0
  245. package/studio/chunks/en-Cq4N1vEF.js.br +2 -0
  246. package/studio/chunks/en-Cq4N1vEF.js.gz +0 -0
  247. package/studio/chunks/en-D2hRqlse.js +140 -0
  248. package/studio/chunks/en-D2hRqlse.js.br +0 -0
  249. package/studio/chunks/en-D2hRqlse.js.gz +0 -0
  250. package/studio/chunks/en-DiUC3-j6.js +144 -0
  251. package/studio/chunks/en-DiUC3-j6.js.br +0 -0
  252. package/studio/chunks/en-DiUC3-j6.js.gz +0 -0
  253. package/studio/chunks/english-Cs_Adu-u.js +8 -0
  254. package/studio/chunks/english-Cs_Adu-u.js.br +0 -0
  255. package/studio/chunks/english-Cs_Adu-u.js.gz +0 -0
  256. package/studio/chunks/esm-D6DqSiL1.js +752 -0
  257. package/studio/chunks/esm-D6DqSiL1.js.br +0 -0
  258. package/studio/chunks/esm-D6DqSiL1.js.gz +0 -0
  259. package/studio/chunks/externalRequest-CTzr2nDq.js +23 -0
  260. package/studio/chunks/externalRequest-CTzr2nDq.js.br +0 -0
  261. package/studio/chunks/externalRequest-CTzr2nDq.js.gz +0 -0
  262. package/studio/chunks/iconify-DR9ryCPv.js +1007 -0
  263. package/studio/chunks/iconify-DR9ryCPv.js.br +0 -0
  264. package/studio/chunks/iconify-DR9ryCPv.js.gz +0 -0
  265. package/studio/chunks/icons-D2MsAaXq.js +183 -0
  266. package/studio/chunks/icons-D2MsAaXq.js.br +0 -0
  267. package/studio/chunks/icons-D2MsAaXq.js.gz +0 -0
  268. package/studio/chunks/leaveGuards-D22fTGgr.js +26 -0
  269. package/studio/chunks/leaveGuards-D22fTGgr.js.br +0 -0
  270. package/studio/chunks/leaveGuards-D22fTGgr.js.gz +0 -0
  271. package/studio/chunks/lucideIcons-EyqyPBsX.js +238 -0
  272. package/studio/chunks/lucideIcons-EyqyPBsX.js.br +0 -0
  273. package/studio/chunks/lucideIcons-EyqyPBsX.js.gz +0 -0
  274. package/studio/chunks/mediaRoute--8cY8rUe.js +17 -0
  275. package/studio/chunks/mediaRoute--8cY8rUe.js.br +0 -0
  276. package/studio/chunks/mediaRoute--8cY8rUe.js.gz +0 -0
  277. package/studio/chunks/newDocumentPlanning-C26DHpvh.js +77 -0
  278. package/studio/chunks/newDocumentPlanning-C26DHpvh.js.br +0 -0
  279. package/studio/chunks/newDocumentPlanning-C26DHpvh.js.gz +0 -0
  280. package/studio/chunks/notifications-OKOLc40v.js +110 -0
  281. package/studio/chunks/notifications-OKOLc40v.js.br +0 -0
  282. package/studio/chunks/notifications-OKOLc40v.js.gz +0 -0
  283. package/studio/chunks/operations-CjNHyrEX.js +57 -0
  284. package/studio/chunks/operations-CjNHyrEX.js.br +0 -0
  285. package/studio/chunks/operations-CjNHyrEX.js.gz +0 -0
  286. package/studio/chunks/overlay-DnqFLZTc.js +1733 -0
  287. package/studio/chunks/overlay-DnqFLZTc.js.br +0 -0
  288. package/studio/chunks/overlay-DnqFLZTc.js.gz +0 -0
  289. package/studio/chunks/presentation-DF83w0hE.js +57 -0
  290. package/studio/chunks/presentation-DF83w0hE.js.br +0 -0
  291. package/studio/chunks/presentation-DF83w0hE.js.gz +0 -0
  292. package/studio/chunks/runtime-core.esm-bundler-DKFA9Rep.js +4557 -0
  293. package/studio/chunks/runtime-core.esm-bundler-DKFA9Rep.js.br +0 -0
  294. package/studio/chunks/runtime-core.esm-bundler-DKFA9Rep.js.gz +0 -0
  295. package/studio/chunks/searchPresentation-DFwxQkt3.js +76 -0
  296. package/studio/chunks/searchPresentation-DFwxQkt3.js.br +0 -0
  297. package/studio/chunks/searchPresentation-DFwxQkt3.js.gz +0 -0
  298. package/studio/chunks/status-DQv6ihkU.js +38 -0
  299. package/studio/chunks/status-DQv6ihkU.js.br +0 -0
  300. package/studio/chunks/status-DQv6ihkU.js.gz +0 -0
  301. package/studio/chunks/studioContext-I8HozGU1.js +4953 -0
  302. package/studio/chunks/studioContext-I8HozGU1.js.br +0 -0
  303. package/studio/chunks/studioContext-I8HozGU1.js.gz +0 -0
  304. package/studio/chunks/studioQueries-BR-9NT5F.js +73 -0
  305. package/studio/chunks/studioQueries-BR-9NT5F.js.br +0 -0
  306. package/studio/chunks/studioQueries-BR-9NT5F.js.gz +0 -0
  307. package/studio/chunks/studioSearch-ByaL-QpM.js +1095 -0
  308. package/studio/chunks/studioSearch-ByaL-QpM.js.br +0 -0
  309. package/studio/chunks/studioSearch-ByaL-QpM.js.gz +0 -0
  310. package/studio/chunks/useAcknowledgedDraft-0_c9sWI6.js +62 -0
  311. package/studio/chunks/useAcknowledgedDraft-0_c9sWI6.js.br +0 -0
  312. package/studio/chunks/useAcknowledgedDraft-0_c9sWI6.js.gz +0 -0
  313. package/studio/chunks/useApi-CUWMwLLw-B3Q3g2nf.js +189 -0
  314. package/studio/chunks/useApi-CUWMwLLw-B3Q3g2nf.js.br +0 -0
  315. package/studio/chunks/useApi-CUWMwLLw-B3Q3g2nf.js.gz +0 -0
  316. package/studio/chunks/useDocumentMessage-BAWvc38w.js +16 -0
  317. package/studio/chunks/useDocumentMessage-BAWvc38w.js.br +3 -0
  318. package/studio/chunks/useDocumentMessage-BAWvc38w.js.gz +0 -0
  319. package/studio/chunks/useFilter-DzyiTR7f.js +87 -0
  320. package/studio/chunks/useFilter-DzyiTR7f.js.br +0 -0
  321. package/studio/chunks/useFilter-DzyiTR7f.js.gz +0 -0
  322. package/studio/chunks/useFormControl-CL7sSCUo.js +8 -0
  323. package/studio/chunks/useFormControl-CL7sSCUo.js.br +0 -0
  324. package/studio/chunks/useFormControl-CL7sSCUo.js.gz +0 -0
  325. package/studio/chunks/useGraceArea-Chcy25IQ.js +154 -0
  326. package/studio/chunks/useGraceArea-Chcy25IQ.js.br +0 -0
  327. package/studio/chunks/useGraceArea-Chcy25IQ.js.gz +0 -0
  328. package/studio/chunks/useLeaveConfirmation-_iCSnKEp.js +44 -0
  329. package/studio/chunks/useLeaveConfirmation-_iCSnKEp.js.br +8 -0
  330. package/studio/chunks/useLeaveConfirmation-_iCSnKEp.js.gz +0 -0
  331. package/studio/chunks/useLinkCopy-CMjQteCy.js +35 -0
  332. package/studio/chunks/useLinkCopy-CMjQteCy.js.br +0 -0
  333. package/studio/chunks/useLinkCopy-CMjQteCy.js.gz +0 -0
  334. package/studio/chunks/usePointerMotion-DwRcwBNQ.js +16 -0
  335. package/studio/chunks/usePointerMotion-DwRcwBNQ.js.br +0 -0
  336. package/studio/chunks/usePointerMotion-DwRcwBNQ.js.gz +0 -0
  337. package/studio/chunks/useStudioNavigation-CLwtSYpb.js +298 -0
  338. package/studio/chunks/useStudioNavigation-CLwtSYpb.js.br +0 -0
  339. package/studio/chunks/useStudioNavigation-CLwtSYpb.js.gz +0 -0
  340. package/studio/chunks/useStudioPages-DR9qmYLg.js +79 -0
  341. package/studio/chunks/useStudioPages-DR9qmYLg.js.br +0 -0
  342. package/studio/chunks/useStudioPages-DR9qmYLg.js.gz +0 -0
  343. package/studio/chunks/utils-mdScC0v0.js +59 -0
  344. package/studio/chunks/utils-mdScC0v0.js.br +0 -0
  345. package/studio/chunks/utils-mdScC0v0.js.gz +0 -0
  346. package/studio/chunks/virtualizer-D1S0bZ4t.js +781 -0
  347. package/studio/chunks/virtualizer-D1S0bZ4t.js.br +0 -0
  348. package/studio/chunks/virtualizer-D1S0bZ4t.js.gz +0 -0
  349. package/studio/help/64f767fe29c2-save-and-publish.svg +7 -0
  350. package/studio/host.css +1 -1
  351. package/studio/host.css.br +0 -0
  352. package/studio/host.css.gz +0 -0
  353. package/studio/host.js +8757 -39178
  354. package/studio/host.js.br +0 -0
  355. package/studio/host.js.gz +0 -0
  356. package/CHANGELOG.md +0 -13
  357. package/bin/cms.mjs +0 -2
  358. package/src/ApplicationTypes.d.ts +0 -84
  359. package/src/ApplicationTypes.js +0 -1
  360. package/src/Configuration-Da5B2PVH.js +0 -1191
  361. package/src/Configuration-Da5B2PVH.js.map +0 -1
  362. package/src/Configuration.d.ts +0 -82
  363. package/src/Configuration.js +0 -8
  364. package/src/Configuration.js.map +0 -1
  365. package/src/Content.d.ts +0 -68
  366. package/src/Content.js +0 -373
  367. package/src/Content.js.map +0 -1
  368. package/src/ContentTransfer-BxwswWn3.js +0 -86
  369. package/src/ContentTransfer-BxwswWn3.js.map +0 -1
  370. package/src/ContentTransfer-Z9FHyLez.d.ts +0 -72
  371. package/src/DocumentEngine-hh_IGPXO.js +0 -978
  372. package/src/DocumentEngine-hh_IGPXO.js.map +0 -1
  373. package/src/DocumentModel.d.ts +0 -52
  374. package/src/DocumentModel.js +0 -66
  375. package/src/DocumentModel.js.map +0 -1
  376. package/src/Forms-CX-hwmJF.js +0 -391
  377. package/src/Forms-CX-hwmJF.js.map +0 -1
  378. package/src/Forms-CfNPTiCr.js +0 -110
  379. package/src/Forms-CfNPTiCr.js.map +0 -1
  380. package/src/Forms-R0HoTR-o.d.ts +0 -92
  381. package/src/Forms.js.map +0 -1
  382. package/src/HttpPaths-c9nLZ9H2.js +0 -21
  383. package/src/HttpPaths-c9nLZ9H2.js.map +0 -1
  384. package/src/I18n-zbqpWxki.d.ts +0 -29
  385. package/src/Media-j1bTritO.js +0 -112
  386. package/src/Media-j1bTritO.js.map +0 -1
  387. package/src/Module.js.map +0 -1
  388. package/src/References-CCPDAPve.js +0 -45
  389. package/src/References-CCPDAPve.js.map +0 -1
  390. package/src/S3MediaObjects-Dwhl2deX.js +0 -2742
  391. package/src/S3MediaObjects-Dwhl2deX.js.map +0 -1
  392. package/src/Seo-402YumpT.d.ts +0 -198
  393. package/src/cli/content.js +0 -101
  394. package/src/cli/content.js.map +0 -1
  395. package/src/cli.js.map +0 -1
  396. package/src/connection-BP80q4d-.js +0 -92
  397. package/src/connection-BP80q4d-.js.map +0 -1
  398. package/src/dev-lifecycle-CjDq63Ft.js +0 -535
  399. package/src/dev-lifecycle-CjDq63Ft.js.map +0 -1
  400. package/src/installation-DYNQQBD3.js +0 -9114
  401. package/src/installation-DYNQQBD3.js.map +0 -1
  402. package/src/internal/application-types.js +0 -43
  403. package/src/internal/application-types.js.map +0 -1
  404. package/src/internal/authoring-catalog.js +0 -158
  405. package/src/internal/authoring-catalog.js.map +0 -1
  406. package/src/internal/authoring-compiler.js +0 -146
  407. package/src/internal/authoring-compiler.js.map +0 -1
  408. package/src/internal/authoring-metadata.js +0 -191
  409. package/src/internal/authoring-metadata.js.map +0 -1
  410. package/src/internal/cms-config.js +0 -45
  411. package/src/internal/cms-config.js.map +0 -1
  412. package/src/internal/configuration.js +0 -228
  413. package/src/internal/configuration.js.map +0 -1
  414. package/src/internal/dev-lifecycle.js +0 -3
  415. package/src/internal/diagnostics.js +0 -47
  416. package/src/internal/diagnostics.js.map +0 -1
  417. package/src/internal/document-model.js +0 -376
  418. package/src/internal/document-model.js.map +0 -1
  419. package/src/internal/field-metadata.js +0 -7
  420. package/src/internal/field-metadata.js.map +0 -1
  421. package/src/internal/form-capabilities.js +0 -12
  422. package/src/internal/form-capabilities.js.map +0 -1
  423. package/src/internal/i18n.js +0 -73
  424. package/src/internal/i18n.js.map +0 -1
  425. package/src/internal/studio-app.js +0 -68
  426. package/src/internal/studio-app.js.map +0 -1
  427. package/src/location-CMNGO3lU.js +0 -35
  428. package/src/location-CMNGO3lU.js.map +0 -1
  429. package/src/metadata-DN9_K6Yl.js +0 -201
  430. package/src/metadata-DN9_K6Yl.js.map +0 -1
  431. package/src/models-5j67LMqW.js +0 -131
  432. package/src/models-5j67LMqW.js.map +0 -1
  433. package/src/models-VmGmG19-.js +0 -628
  434. package/src/models-VmGmG19-.js.map +0 -1
  435. package/src/runtime/api.js.map +0 -1
  436. package/src/runtime/blocks.js +0 -30
  437. package/src/runtime/blocks.js.map +0 -1
  438. package/src/runtime/collaboration.js +0 -45
  439. package/src/runtime/collaboration.js.map +0 -1
  440. package/src/runtime/delivery/DocumentField.js +0 -23
  441. package/src/runtime/delivery/DocumentField.js.map +0 -1
  442. package/src/runtime/delivery/DocumentRenderer.js +0 -61
  443. package/src/runtime/delivery/DocumentRenderer.js.map +0 -1
  444. package/src/runtime/delivery/DocumentScope.js +0 -41
  445. package/src/runtime/delivery/DocumentScope.js.map +0 -1
  446. package/src/runtime/delivery/blocks.js +0 -8
  447. package/src/runtime/delivery/blocks.js.map +0 -1
  448. package/src/runtime/delivery/context.js +0 -12
  449. package/src/runtime/delivery/context.js.map +0 -1
  450. package/src/runtime/delivery/document-page.js +0 -21
  451. package/src/runtime/delivery/document-page.js.map +0 -1
  452. package/src/runtime/delivery/document.js +0 -43
  453. package/src/runtime/delivery/document.js.map +0 -1
  454. package/src/runtime/delivery/error.js +0 -11
  455. package/src/runtime/delivery/error.js.map +0 -1
  456. package/src/runtime/delivery/plugin.js +0 -99
  457. package/src/runtime/delivery/plugin.js.map +0 -1
  458. package/src/runtime/delivery/preview.d.ts +0 -11
  459. package/src/runtime/delivery/preview.js +0 -6
  460. package/src/runtime/delivery/preview.js.map +0 -1
  461. package/src/runtime/delivery/types.d.ts +0 -2
  462. package/src/runtime/delivery/types.js +0 -1
  463. package/src/runtime/delivery/useCmsDocumentSeo.d.ts +0 -67
  464. package/src/runtime/delivery/useCmsDocumentSeo.js.map +0 -1
  465. package/src/runtime/delivery/useDocument.d.ts +0 -6
  466. package/src/runtime/delivery/useDocument.js +0 -23
  467. package/src/runtime/delivery/useDocument.js.map +0 -1
  468. package/src/runtime/delivery/useDocumentQuery.d.ts +0 -7
  469. package/src/runtime/delivery/useDocumentQuery.js +0 -29
  470. package/src/runtime/delivery/useDocumentQuery.js.map +0 -1
  471. package/src/runtime/forms/document.js +0 -38
  472. package/src/runtime/forms/document.js.map +0 -1
  473. package/src/runtime/forms/useCmsForm.js +0 -257
  474. package/src/runtime/forms/useCmsForm.js.map +0 -1
  475. package/src/runtime/i18n/translator.js +0 -51
  476. package/src/runtime/i18n/translator.js.map +0 -1
  477. package/src/runtime/i18n/useCmsI18n.d.ts +0 -13
  478. package/src/runtime/i18n/useCmsI18n.js +0 -38
  479. package/src/runtime/i18n/useCmsI18n.js.map +0 -1
  480. package/src/runtime/installation.js +0 -3
  481. package/src/runtime/plugin.js.map +0 -1
  482. package/src/runtime/preview/CmsStudioPreviewMarker.js +0 -29
  483. package/src/runtime/preview/CmsStudioPreviewMarker.js.map +0 -1
  484. package/src/runtime/preview/comark-document.js +0 -37
  485. package/src/runtime/preview/comark-document.js.map +0 -1
  486. package/src/runtime/preview/connection.js +0 -3
  487. package/src/runtime/preview/controller.js +0 -265
  488. package/src/runtime/preview/controller.js.map +0 -1
  489. package/src/runtime/preview/crypto.js +0 -16
  490. package/src/runtime/preview/crypto.js.map +0 -1
  491. package/src/runtime/preview/overlay.js +0 -122
  492. package/src/runtime/preview/overlay.js.map +0 -1
  493. package/src/runtime/preview/plugin.client.js +0 -68
  494. package/src/runtime/preview/plugin.client.js.map +0 -1
  495. package/src/runtime/preview/preview.css +0 -91
  496. package/src/runtime/preview/protocol.d.ts +0 -16
  497. package/src/runtime/preview/protocol.js +0 -23
  498. package/src/runtime/preview/protocol.js.map +0 -1
  499. package/src/runtime/preview/regions.js +0 -142
  500. package/src/runtime/preview/regions.js.map +0 -1
  501. package/src/runtime/preview/store.js +0 -4
  502. package/src/runtime/sitemap-entries.js +0 -17
  503. package/src/runtime/sitemap-entries.js.map +0 -1
  504. package/src/runtime/sitemap.js +0 -23
  505. package/src/runtime/sitemap.js.map +0 -1
  506. package/src/runtime/studio-app.js +0 -17
  507. package/src/runtime/studio-app.js.map +0 -1
  508. package/src/runtime/studio-document.js +0 -46
  509. package/src/runtime/studio-document.js.map +0 -1
  510. package/src/runtime/studio-entry.js +0 -19
  511. package/src/runtime/studio-entry.js.map +0 -1
  512. package/src/runtime/studio-navigation.js +0 -11
  513. package/src/runtime/studio-navigation.js.map +0 -1
  514. package/src/scalars-CA6kyipS.d.ts +0 -7
  515. package/src/scalars-CVZqT3L0.js +0 -22
  516. package/src/scalars-CVZqT3L0.js.map +0 -1
  517. package/src/store-X1e1o_MF.js +0 -209
  518. package/src/store-X1e1o_MF.js.map +0 -1
  519. package/src/types-DZ0IV-Ow.d.ts +0 -101
  520. package/studio/CreateDocumentDialog-BpjBYGfI.js +0 -335
  521. package/studio/SelectMenu-KiXwx4Y_.js +0 -34032
  522. package/studio/collaboration-DcK2F6v9.js +0 -4566
  523. package/studio/editor-P2rB7Csp.js +0 -30128
  524. package/studio/rolldown-runtime-Dy4uBu1J.js +0 -11
@@ -1,92 +0,0 @@
1
- import { t as DocumentId } from "./scalars-CA6kyipS.js";
2
- import { Schema } from "effect";
3
- //#region ../protocol/src/Forms.d.ts
4
- type FormFieldType = 'text' | 'email' | 'textarea' | 'number' | 'checkbox' | 'select';
5
- declare const FormFieldType: Schema.Codec<FormFieldType>;
6
- type FormRule = 'required' | 'minLength' | 'maxLength' | 'min' | 'max';
7
- declare const FormRule: Schema.Codec<FormRule>;
8
- interface FormCapabilities {
9
- readonly label: string;
10
- readonly fieldTypes: ReadonlyArray<FormFieldType>;
11
- readonly rules: ReadonlyArray<FormRule>;
12
- }
13
- declare const FormCapabilities: Schema.Codec<FormCapabilities>;
14
- interface FormOption {
15
- readonly id: string;
16
- readonly label: string;
17
- }
18
- declare const FormOption: Schema.Codec<FormOption>;
19
- interface FormFieldBase {
20
- readonly id: string;
21
- readonly label: string;
22
- readonly help?: string;
23
- readonly required?: boolean;
24
- }
25
- interface FormTextField<Type extends 'text' | 'email' | 'textarea'> extends FormFieldBase {
26
- readonly type: Type;
27
- readonly minLength?: number;
28
- readonly maxLength?: number;
29
- }
30
- interface FormNumberField extends FormFieldBase {
31
- readonly type: 'number';
32
- readonly min?: number;
33
- readonly max?: number;
34
- }
35
- interface FormCheckboxField extends FormFieldBase {
36
- readonly type: 'checkbox';
37
- }
38
- interface FormSelectField extends FormFieldBase {
39
- readonly type: 'select';
40
- readonly options: readonly [FormOption, ...FormOption[]];
41
- }
42
- type FormField = FormTextField<'text'> | FormTextField<'email'> | FormTextField<'textarea'> | FormNumberField | FormCheckboxField | FormSelectField;
43
- declare const FormField: Schema.Codec<FormField>;
44
- interface FormStep {
45
- readonly id: string;
46
- readonly title: string;
47
- readonly fields: ReadonlyArray<FormField>;
48
- }
49
- declare const FormStep: Schema.Codec<FormStep>;
50
- interface FormReference {
51
- readonly documentId: DocumentId;
52
- readonly nodePath: ReadonlyArray<number>;
53
- readonly revision: string;
54
- }
55
- declare const FormReference: Schema.Codec<FormReference, {
56
- readonly documentId: string;
57
- readonly nodePath: ReadonlyArray<number>;
58
- readonly revision: string;
59
- }>;
60
- interface FormDefinition extends FormReference {
61
- readonly name: string;
62
- readonly steps: ReadonlyArray<FormStep>;
63
- readonly preview: boolean;
64
- }
65
- type FormValues = Readonly<Record<string, string | number | boolean | null>>;
66
- declare const FormValues: Schema.Codec<FormValues>;
67
- interface FormSubmission extends FormReference {
68
- readonly values: FormValues;
69
- }
70
- declare const FormSubmission: Schema.Codec<FormSubmission, {
71
- readonly documentId: string;
72
- readonly nodePath: ReadonlyArray<number>;
73
- readonly revision: string;
74
- readonly values: FormValues;
75
- }>;
76
- declare const FormResult: Schema.Union<readonly [Schema.Struct<{
77
- readonly status: Schema.Literals<readonly ["accepted"]>;
78
- readonly reference: Schema.optionalKey<Schema.NonEmptyString>;
79
- }>, Schema.Struct<{
80
- readonly status: Schema.Literals<readonly ["invalid"]>;
81
- readonly errors: Schema.$Record<Schema.String, Schema.String>;
82
- }>, Schema.Struct<{
83
- readonly status: Schema.Literals<readonly ["stale"]>;
84
- }>, Schema.Struct<{
85
- readonly status: Schema.Literals<readonly ["unavailable"]>;
86
- }>, Schema.Struct<{
87
- readonly status: Schema.Literals<readonly ["failed"]>;
88
- }>]>;
89
- type FormResult = typeof FormResult.Type;
90
- //#endregion
91
- export { FormStep as a, FormResult as i, FormDefinition as n, FormSubmission as o, FormField as r, FormValues as s, FormCapabilities as t };
92
- //# sourceMappingURL=Forms-R0HoTR-o.d.ts.map
package/src/Forms.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Forms.js","names":[],"sources":["../../../src/Forms.ts"],"sourcesContent":["import type { FormCapabilities } from '@internal/protocol/Forms'\nimport { validateFormCapabilities } from './internal/form-capabilities'\n\nexport type {\n FormDefinition as CmsFormDefinition,\n FormField as CmsFormField,\n FormStep as CmsFormStep,\n FormValues as CmsFormValues,\n FormResult as CmsFormResult,\n} from '@internal/protocol/Forms'\n\nexport type { CmsFormControl, UseCmsFormOptions, UseCmsFormReturn } from './runtime/forms/useCmsForm'\n\nexport { useCmsForm } from './runtime/forms/useCmsForm'\n\n/** Register this definition under the kebab-case name of your Vue form renderer. */\nexport function defineCmsForm<const Definition extends FormCapabilities>(definition: Definition): Definition {\n validateFormCapabilities(definition)\n\n return definition\n}\n"],"mappings":";;;;;AAgBA,SAAgB,cAAyD,YAAoC;CAC3G,yBAAyB,UAAU;CAEnC,OAAO;AACT"}
@@ -1,21 +0,0 @@
1
- //#region ../protocol/src/HttpPaths.ts
2
- const STUDIO_BASE_PATH = "/_cms";
3
- const STUDIO_APP_PATH = `${STUDIO_BASE_PATH}/app`;
4
- const STUDIO_API_PATH = `${STUDIO_BASE_PATH}/api`;
5
- const STUDIO_COLLABORATION_PATH = `${STUDIO_BASE_PATH}/collaboration`;
6
- const STUDIO_HEALTH_PATH = `${STUDIO_BASE_PATH}/health`;
7
- const CMS_AUTHENTICATION_PATH = "/api/cms/auth";
8
- const CMS_LIVENESS_PATH = `${STUDIO_HEALTH_PATH}/live`;
9
- const CMS_READINESS_PATH = `${STUDIO_HEALTH_PATH}/ready`;
10
- const CMS_DELIVERY_READ_PATH = `${STUDIO_API_PATH}/delivery/read`;
11
- const CMS_DELIVERY_QUERY_PATH = `${STUDIO_API_PATH}/delivery/query`;
12
- const CMS_DELIVERY_SEO_PATH = `${STUDIO_API_PATH}/delivery/seo`;
13
- const CMS_DELIVERY_SITEMAP_PATH = `${STUDIO_API_PATH}/delivery/sitemap`;
14
- const CMS_PREVIEW_READ_PATH = `${STUDIO_API_PATH}/preview/read`;
15
- const CMS_PREVIEW_QUERY_PATH = `${STUDIO_API_PATH}/preview/query`;
16
- const CMS_PREVIEW_SEO_PATH = `${STUDIO_API_PATH}/preview/seo`;
17
- const CMS_FORM_SUBMIT_PATH = `${STUDIO_API_PATH}/forms/submit`;
18
-
19
- //#endregion
20
- export { CMS_FORM_SUBMIT_PATH as a, CMS_PREVIEW_READ_PATH as c, STUDIO_APP_PATH as d, STUDIO_BASE_PATH as f, CMS_DELIVERY_SITEMAP_PATH as i, CMS_READINESS_PATH as l, STUDIO_HEALTH_PATH as m, CMS_DELIVERY_QUERY_PATH as n, CMS_LIVENESS_PATH as o, STUDIO_COLLABORATION_PATH as p, CMS_DELIVERY_READ_PATH as r, CMS_PREVIEW_QUERY_PATH as s, CMS_AUTHENTICATION_PATH as t, STUDIO_API_PATH as u };
21
- //# sourceMappingURL=HttpPaths-c9nLZ9H2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpPaths-c9nLZ9H2.js","names":[],"sources":["../../../../protocol/src/HttpPaths.ts"],"sourcesContent":["export const STUDIO_BASE_PATH = '/_cms'\n\nexport const STUDIO_APP_PATH = `${STUDIO_BASE_PATH}/app`\n\nexport const STUDIO_API_PATH = `${STUDIO_BASE_PATH}/api`\n\nexport const STUDIO_COLLABORATION_PATH = `${STUDIO_BASE_PATH}/collaboration`\n\nexport const STUDIO_HEALTH_PATH = `${STUDIO_BASE_PATH}/health`\n\nexport const CMS_AUTHENTICATION_PATH = '/api/cms/auth'\n\nexport const CMS_LIVENESS_PATH = `${STUDIO_HEALTH_PATH}/live`\n\nexport const CMS_READINESS_PATH = `${STUDIO_HEALTH_PATH}/ready`\n\nexport const CMS_DELIVERY_READ_PATH = `${STUDIO_API_PATH}/delivery/read`\n\nexport const CMS_DELIVERY_QUERY_PATH = `${STUDIO_API_PATH}/delivery/query`\n\nexport const CMS_DELIVERY_SEO_PATH = `${STUDIO_API_PATH}/delivery/seo`\n\nexport const CMS_DELIVERY_SITEMAP_PATH = `${STUDIO_API_PATH}/delivery/sitemap`\n\nexport const CMS_PREVIEW_READ_PATH = `${STUDIO_API_PATH}/preview/read`\n\nexport const CMS_PREVIEW_QUERY_PATH = `${STUDIO_API_PATH}/preview/query`\n\nexport const CMS_PREVIEW_SEO_PATH = `${STUDIO_API_PATH}/preview/seo`\n\nexport const CMS_FORM_SUBMIT_PATH = `${STUDIO_API_PATH}/forms/submit`\n"],"mappings":";AAAA,MAAa,mBAAmB;AAEhC,MAAa,kBAAkB,GAAG,iBAAiB;AAEnD,MAAa,kBAAkB,GAAG,iBAAiB;AAEnD,MAAa,4BAA4B,GAAG,iBAAiB;AAE7D,MAAa,qBAAqB,GAAG,iBAAiB;AAEtD,MAAa,0BAA0B;AAEvC,MAAa,oBAAoB,GAAG,mBAAmB;AAEvD,MAAa,qBAAqB,GAAG,mBAAmB;AAExD,MAAa,yBAAyB,GAAG,gBAAgB;AAEzD,MAAa,0BAA0B,GAAG,gBAAgB;AAE1D,MAAa,wBAAwB,GAAG,gBAAgB;AAExD,MAAa,4BAA4B,GAAG,gBAAgB;AAE5D,MAAa,wBAAwB,GAAG,gBAAgB;AAExD,MAAa,yBAAyB,GAAG,gBAAgB;AAEzD,MAAa,uBAAuB,GAAG,gBAAgB;AAEvD,MAAa,uBAAuB,GAAG,gBAAgB"}
@@ -1,29 +0,0 @@
1
- //#region src/I18n.d.ts
2
- interface CmsMessages {
3
- readonly [key: string]: string | CmsMessages;
4
- }
5
- interface CmsI18nOptions {
6
- readonly defaultLocale: string;
7
- readonly fallbackLocale?: string | null;
8
- readonly prefixDefaultLocale?: boolean;
9
- /** Select where CMS-derived locale metadata owns Nuxt Site Config. */
10
- readonly siteConfig?: 'documents' | 'localized-routes';
11
- readonly locales: Readonly<Record<string, {
12
- readonly name: string;
13
- readonly messages?: CmsMessages;
14
- }>>;
15
- }
16
- /** Nuxt augments this registry with the message keys from cms.config.ts. */
17
- interface CmsI18nRegistry {}
18
- type CmsMessageKey = CmsI18nRegistry extends {
19
- messageKey: infer Key extends string;
20
- } ? Key : string;
21
- type CmsLocale = CmsI18nRegistry extends {
22
- locale: infer Locale extends string;
23
- } ? Locale : string;
24
- type CmsMessageParameters<Key extends CmsMessageKey> = CmsI18nRegistry extends {
25
- messageParameters: infer Parameters;
26
- } ? Key extends keyof Parameters ? Parameters[Key] : never : Readonly<Record<string, string | number>>;
27
- //#endregion
28
- export { CmsMessageParameters as a, CmsMessageKey as i, CmsI18nRegistry as n, CmsMessages as o, CmsLocale as r, CmsI18nOptions as t };
29
- //# sourceMappingURL=I18n-zbqpWxki.d.ts.map
@@ -1,112 +0,0 @@
1
- import { o as PublicPath, r as DocumentId, u as nonNegativeInt } from "./scalars-CVZqT3L0.js";
2
- import { Schema } from "effect";
3
-
4
- //#region ../protocol/src/Media.ts
5
- /**
6
- * Media wire models. Search pages are newest-first with opaque continuation cursors; only ready
7
- * assets are public results, and names, folders, and object keys are validated path-safe values.
8
- */
9
- const hasUnsafeMediaCharacter = (value) => {
10
- for (const character of value) {
11
- const codePoint = character.codePointAt(0);
12
- if (character === "\\" || codePoint !== void 0 && (codePoint <= 31 || codePoint === 127)) return true;
13
- }
14
- return false;
15
- };
16
- const isSafeMediaPath = (value, allowEmpty) => {
17
- if (value.length === 0) return allowEmpty;
18
- if (value !== value.trim() || value.startsWith("/") || value.endsWith("/") || hasUnsafeMediaCharacter(value)) return false;
19
- return value.split("/").every((segment) => segment.length > 0 && segment !== "." && segment !== "..");
20
- };
21
- const safeMediaFolder = Schema.makeFilter((value) => isSafeMediaPath(value, true), { expected: "a provider-relative media folder without traversal segments" });
22
- const safeMediaObjectKey = Schema.makeFilter((value) => isSafeMediaPath(value, false), { expected: "a non-empty provider-relative media object key without traversal segments" });
23
- const safeMediaName = Schema.makeFilter((value) => value.length > 0 && value.length <= 255 && value === value.trim() && value !== "." && value !== ".." && !value.includes("/") && !hasUnsafeMediaCharacter(value), { expected: "a safe media file name of at most 255 characters" });
24
- const MediaId = Schema.String.check(Schema.isUUID()).pipe(Schema.brand("MediaId"));
25
- const MediaFolder = Schema.String.check(Schema.isMaxLength(512), safeMediaFolder).pipe(Schema.brand("MediaFolder"));
26
- const MediaObjectKey = Schema.String.check(Schema.isMaxLength(1024), safeMediaObjectKey).pipe(Schema.brand("MediaObjectKey"));
27
- const MediaName = Schema.String.check(safeMediaName).pipe(Schema.brand("MediaName"));
28
- const MediaCursor = Schema.NonEmptyString.pipe(Schema.brand("MediaCursor"));
29
- const ImageMimeType = Schema.Literals([
30
- "image/avif",
31
- "image/gif",
32
- "image/jpeg",
33
- "image/png",
34
- "image/webp"
35
- ]);
36
- const MediaStatus = Schema.Literals([
37
- "uploading",
38
- "ready",
39
- "deleting"
40
- ]);
41
- const MediaByteSize = Schema.Int.check(Schema.isGreaterThan(0));
42
- const MediaAsset = Schema.Struct({
43
- kind: Schema.tag("image"),
44
- id: MediaId,
45
- objectKey: MediaObjectKey,
46
- url: Schema.NonEmptyString,
47
- name: MediaName,
48
- folder: MediaFolder,
49
- mimeType: ImageMimeType,
50
- byteSize: MediaByteSize,
51
- createdAt: Schema.DateTimeUtcFromString,
52
- updatedAt: Schema.DateTimeUtcFromString,
53
- status: MediaStatus
54
- }).annotate({ identifier: "MediaAsset" });
55
- const MediaUpload = Schema.Struct({
56
- name: MediaName,
57
- folder: Schema.optionalKey(MediaFolder),
58
- declaredMimeType: Schema.optionalKey(Schema.NonEmptyString),
59
- declaredByteSize: MediaByteSize
60
- }).annotate({ identifier: "MediaUpload" });
61
- const MediaQuery = Schema.Struct({
62
- cursor: Schema.optionalKey(MediaCursor),
63
- folder: Schema.optionalKey(MediaFolder),
64
- search: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(200))),
65
- limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
66
- minimum: 1,
67
- maximum: 100
68
- })))
69
- }).annotate({ identifier: "MediaQuery" });
70
- const ReadyMediaAssets = Schema.Array(MediaAsset).check(Schema.makeFilter((assets) => assets.every((asset) => asset.status === "ready"), { expected: "media assets whose lifecycle status is ready" }));
71
- const MediaPage = Schema.Struct({
72
- assets: ReadyMediaAssets,
73
- folders: Schema.Array(MediaFolder),
74
- nextCursor: Schema.optionalKey(MediaCursor),
75
- total: nonNegativeInt
76
- }).annotate({ identifier: "MediaPage" });
77
- const MediaReference = Schema.Struct({
78
- documentId: DocumentId,
79
- mediaId: Schema.optionalKey(MediaId),
80
- route: PublicPath,
81
- objectKey: MediaObjectKey,
82
- nodePath: Schema.Array(nonNegativeInt)
83
- }).annotate({ identifier: "MediaReference" });
84
- const MediaObjectMismatch = Schema.Struct({
85
- asset: MediaAsset,
86
- storedByteSize: MediaByteSize,
87
- storedMimeType: Schema.optionalKey(ImageMimeType)
88
- }).annotate({ identifier: "MediaObjectMismatch" });
89
- const MediaIntegrityReport = Schema.Struct({
90
- missingAssets: Schema.Array(MediaReference),
91
- missingObjects: Schema.Array(MediaAsset),
92
- mismatchedObjects: Schema.Array(MediaObjectMismatch),
93
- orphanedObjectKeys: Schema.Array(MediaObjectKey),
94
- unusedAssets: Schema.Array(MediaAsset)
95
- }).annotate({ identifier: "MediaIntegrityReport" });
96
- const MediaCleanupReport = Schema.Struct({ removedObjectKeys: Schema.Array(MediaObjectKey) }).annotate({ identifier: "MediaCleanupReport" });
97
- var MediaNotFound = class extends Schema.TaggedError()("Media.NotFound", { mediaId: MediaId }) {};
98
- var MediaReferenced = class extends Schema.TaggedError()("Media.Referenced", {
99
- mediaId: MediaId,
100
- references: Schema.Array(MediaReference),
101
- seoScopes: Schema.optionalKey(Schema.Array(Schema.Literals(["working", "published"])))
102
- }) {};
103
- var MediaConflict = class extends Schema.TaggedError()("Media.Conflict", { mediaId: MediaId }) {};
104
- var MediaInvalid = class extends Schema.TaggedError()("Media.Invalid", { message: Schema.NonEmptyString }) {};
105
- var MediaTooLarge = class extends Schema.TaggedError()("Media.TooLarge", {
106
- declaredByteSize: MediaByteSize,
107
- maxUploadBytes: MediaByteSize
108
- }) {};
109
-
110
- //#endregion
111
- export { MediaReferenced as _, MediaConflict as a, MediaUpload as b, MediaId as c, MediaName as d, MediaNotFound as f, MediaReference as g, MediaQuery as h, MediaCleanupReport as i, MediaIntegrityReport as l, MediaPage as m, MediaAsset as n, MediaCursor as o, MediaObjectKey as p, MediaByteSize as r, MediaFolder as s, ImageMimeType as t, MediaInvalid as u, MediaStatus as v, MediaTooLarge as y };
112
- //# sourceMappingURL=Media-j1bTritO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Media-j1bTritO.js","names":[],"sources":["../../../../protocol/src/Media.ts"],"sourcesContent":["/**\n * Media wire models. Search pages are newest-first with opaque continuation cursors; only ready\n * assets are public results, and names, folders, and object keys are validated path-safe values.\n */\nimport { Schema } from 'effect'\nimport { DocumentId, PublicPath } from './internal/documents/scalars'\nimport { nonNegativeInt } from './internal/scalars'\n\nconst hasUnsafeMediaCharacter = (value: string): boolean => {\n for (const character of value) {\n const codePoint = character.codePointAt(0)\n\n if (character === '\\\\' || (codePoint !== undefined && (codePoint <= 31 || codePoint === 127))) return true\n }\n\n return false\n}\n\nconst isSafeMediaPath = (value: string, allowEmpty: boolean): boolean => {\n if (value.length === 0) return allowEmpty\n\n if (value !== value.trim() || value.startsWith('/') || value.endsWith('/') || hasUnsafeMediaCharacter(value)) {\n return false\n }\n\n return value.split('/').every((segment) => segment.length > 0 && segment !== '.' && segment !== '..')\n}\n\nconst safeMediaFolder = Schema.makeFilter<string>((value) => isSafeMediaPath(value, true), {\n expected: 'a provider-relative media folder without traversal segments',\n})\n\nconst safeMediaObjectKey = Schema.makeFilter<string>((value) => isSafeMediaPath(value, false), {\n expected: 'a non-empty provider-relative media object key without traversal segments',\n})\n\nconst safeMediaName = Schema.makeFilter<string>(\n (value) =>\n value.length > 0 &&\n value.length <= 255 &&\n value === value.trim() &&\n value !== '.' &&\n value !== '..' &&\n !value.includes('/') &&\n !hasUnsafeMediaCharacter(value),\n { expected: 'a safe media file name of at most 255 characters' },\n)\n\nexport const MediaId = Schema.String.check(Schema.isUUID()).pipe(Schema.brand('MediaId'))\n\nexport type MediaId = typeof MediaId.Type\n\nexport const MediaFolder = Schema.String.check(Schema.isMaxLength(512), safeMediaFolder).pipe(\n Schema.brand('MediaFolder'),\n)\n\nexport type MediaFolder = typeof MediaFolder.Type\n\nexport const MediaObjectKey = Schema.String.check(Schema.isMaxLength(1024), safeMediaObjectKey).pipe(\n Schema.brand('MediaObjectKey'),\n)\n\nexport type MediaObjectKey = typeof MediaObjectKey.Type\n\nexport const MediaName = Schema.String.check(safeMediaName).pipe(Schema.brand('MediaName'))\n\nexport type MediaName = typeof MediaName.Type\n\nexport const MediaCursor = Schema.NonEmptyString.pipe(Schema.brand('MediaCursor'))\n\nexport type MediaCursor = typeof MediaCursor.Type\n\nexport const ImageMimeType = Schema.Literals(['image/avif', 'image/gif', 'image/jpeg', 'image/png', 'image/webp'])\n\nexport type ImageMimeType = typeof ImageMimeType.Type\n\nexport const MediaStatus = Schema.Literals(['uploading', 'ready', 'deleting'])\n\nexport type MediaStatus = typeof MediaStatus.Type\n\nexport const MediaByteSize = Schema.Int.check(Schema.isGreaterThan(0))\n\nexport type MediaByteSize = typeof MediaByteSize.Type\n\nexport const MediaAsset = Schema.Struct({\n kind: Schema.tag('image'),\n id: MediaId,\n objectKey: MediaObjectKey,\n url: Schema.NonEmptyString,\n name: MediaName,\n folder: MediaFolder,\n mimeType: ImageMimeType,\n byteSize: MediaByteSize,\n createdAt: Schema.DateTimeUtcFromString,\n updatedAt: Schema.DateTimeUtcFromString,\n status: MediaStatus,\n}).annotate({ identifier: 'MediaAsset' })\n\nexport interface MediaAsset extends Schema.Schema.Type<typeof MediaAsset> {}\n\nexport const MediaUpload = Schema.Struct({\n name: MediaName,\n folder: Schema.optionalKey(MediaFolder),\n declaredMimeType: Schema.optionalKey(Schema.NonEmptyString),\n declaredByteSize: MediaByteSize,\n}).annotate({ identifier: 'MediaUpload' })\n\nexport interface MediaUpload extends Schema.Schema.Type<typeof MediaUpload> {}\n\nexport const MediaQuery = Schema.Struct({\n cursor: Schema.optionalKey(MediaCursor),\n folder: Schema.optionalKey(MediaFolder),\n search: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(200))),\n limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 100 }))),\n}).annotate({ identifier: 'MediaQuery' })\n\nexport interface MediaQuery extends Schema.Schema.Type<typeof MediaQuery> {}\n\nconst ReadyMediaAssets = Schema.Array(MediaAsset).check(\n Schema.makeFilter((assets) => assets.every((asset) => asset.status === 'ready'), {\n expected: 'media assets whose lifecycle status is ready',\n }),\n)\n\nexport const MediaPage = Schema.Struct({\n assets: ReadyMediaAssets,\n folders: Schema.Array(MediaFolder),\n nextCursor: Schema.optionalKey(MediaCursor),\n total: nonNegativeInt,\n}).annotate({ identifier: 'MediaPage' })\n\nexport interface MediaPage extends Schema.Schema.Type<typeof MediaPage> {}\n\nexport const MediaReference = Schema.Struct({\n documentId: DocumentId,\n mediaId: Schema.optionalKey(MediaId),\n route: PublicPath,\n objectKey: MediaObjectKey,\n nodePath: Schema.Array(nonNegativeInt),\n}).annotate({ identifier: 'MediaReference' })\n\nexport interface MediaReference extends Schema.Schema.Type<typeof MediaReference> {}\n\nconst MediaObjectMismatch = Schema.Struct({\n asset: MediaAsset,\n storedByteSize: MediaByteSize,\n storedMimeType: Schema.optionalKey(ImageMimeType),\n}).annotate({ identifier: 'MediaObjectMismatch' })\n\nexport const MediaIntegrityReport = Schema.Struct({\n missingAssets: Schema.Array(MediaReference),\n missingObjects: Schema.Array(MediaAsset),\n mismatchedObjects: Schema.Array(MediaObjectMismatch),\n orphanedObjectKeys: Schema.Array(MediaObjectKey),\n unusedAssets: Schema.Array(MediaAsset),\n}).annotate({ identifier: 'MediaIntegrityReport' })\n\nexport interface MediaIntegrityReport extends Schema.Schema.Type<typeof MediaIntegrityReport> {}\n\nexport const MediaCleanupReport = Schema.Struct({\n removedObjectKeys: Schema.Array(MediaObjectKey),\n}).annotate({ identifier: 'MediaCleanupReport' })\n\nexport interface MediaCleanupReport extends Schema.Schema.Type<typeof MediaCleanupReport> {}\n\nexport class MediaNotFound extends Schema.TaggedError<MediaNotFound>()('Media.NotFound', {\n mediaId: MediaId,\n}) {}\n\nexport class MediaReferenced extends Schema.TaggedError<MediaReferenced>()('Media.Referenced', {\n mediaId: MediaId,\n references: Schema.Array(MediaReference),\n seoScopes: Schema.optionalKey(Schema.Array(Schema.Literals(['working', 'published']))),\n}) {}\n\nexport class MediaConflict extends Schema.TaggedError<MediaConflict>()('Media.Conflict', {\n mediaId: MediaId,\n}) {}\n\nexport class MediaInvalid extends Schema.TaggedError<MediaInvalid>()('Media.Invalid', {\n message: Schema.NonEmptyString,\n}) {}\n\nexport class MediaTooLarge extends Schema.TaggedError<MediaTooLarge>()('Media.TooLarge', {\n declaredByteSize: MediaByteSize,\n maxUploadBytes: MediaByteSize,\n}) {}\n"],"mappings":"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"}
package/src/Module.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Module.js","names":[],"sources":["../../../src/Module.ts"],"sourcesContent":["import type { HookResult, Nuxt } from '@nuxt/schema'\nimport type { NitroConfig } from 'nitropack/types'\nimport { registerStudioApp } from './internal/studio-app'\nimport { registerAuthoringCatalog } from './internal/authoring-catalog'\nimport { NodeCrypto, NodeFileSystem, NodePath } from '@effect/platform-node-shared'\nimport {\n CMS_AUTHENTICATION_PATH,\n STUDIO_APP_PATH,\n STUDIO_BASE_PATH,\n STUDIO_API_PATH,\n STUDIO_HEALTH_PATH,\n STUDIO_COLLABORATION_PATH,\n} from '@internal/protocol/HttpPaths'\nimport {\n addTemplate,\n addTypeTemplate,\n addComponent,\n addImports,\n addPlugin,\n addServerHandler,\n addServerPlugin,\n addServerTemplate,\n addVitePlugin,\n createResolver,\n defineNuxtModule,\n extendPages,\n} from '@nuxt/kit'\nimport { Effect, Layer } from 'effect'\nimport { loadCmsConfiguration } from './internal/cms-config'\nimport { cmsRuntimeConfigurationDefaults, compileCmsConfiguration } from './internal/configuration'\nimport { cmsAuthoringPlugin } from './internal/authoring-compiler'\nimport { generateCmsApplicationTypes } from './internal/application-types'\n\nconst CMS_SITEMAP_SOURCE_PATH = `${STUDIO_BASE_PATH}/sitemap`\n\ndeclare module '@nuxt/schema' {\n interface NuxtHooks {\n 'nitro:config': (nitroConfig: NitroConfig) => HookResult\n }\n}\n\nconst resolver = createResolver(import.meta.url)\n\nconst nodeLayer = Layer.merge(NodeCrypto.layer, Layer.merge(NodeFileSystem.layer, NodePath.layer))\n\nconst cmsNuxtModule = defineNuxtModule({\n moduleDependencies: {\n '@nuxtjs/robots': {},\n '@nuxtjs/sitemap': {},\n '@comark/nuxt': {},\n 'nuxt-schema-org': {},\n 'nuxt-site-config': {},\n 'nuxt-seo-utils': {},\n },\n meta: {\n compatibility: { nuxt: '>=4.5.0 <5.0.0' },\n name: '@phtngyn/cms',\n },\n setup(_options, nuxt) {\n return Effect.runPromise(setupModule(nuxt).pipe(Effect.provide(nodeLayer)))\n },\n})\n\nexport default cmsNuxtModule\n\nconst setupModule = Effect.fn('CmsNuxtModule.setup')(function* (nuxt: Nuxt) {\n addVitePlugin(cmsAuthoringPlugin())\n const authored = yield* loadCmsConfiguration(nuxt.options.rootDir)\n const compiled = compileCmsConfiguration(authored.configuration)\n const i18n = compiled.i18n\n\n Object.assign(nuxt.options.runtimeConfig, {\n cms: cmsRuntimeConfigurationDefaults(authored.configuration, nuxt.options.runtimeConfig.cms),\n })\n\n configureSitemap(nuxt.options)\n\n const i18nTemplate = addTemplate({\n filename: 'cms/i18n.mjs',\n write: true,\n getContents: () => `export default JSON.parse(${JSON.stringify(JSON.stringify(i18n))})`,\n })\n\n nuxt.options.alias['#cms/i18n'] = i18nTemplate.dst\n let blockNames: ReadonlyArray<string> = []\n\n const applicationTypes = addTypeTemplate({\n filename: 'types/cms-application.d.ts',\n getContents: () => generateCmsApplicationTypes({ blockNames, configurationPath: authored.path, i18n }),\n })\n\n nuxt.options.alias['#cms/types'] = applicationTypes.dst\n nuxt.options.watch.push(authored.path)\n\n const authoring = yield* registerAuthoringCatalog(\n nuxt,\n compiled.documents,\n Object.fromEntries(\n Object.entries(authored.configuration.forms ?? {}).map(([name, form]) => [name, form.definition]),\n ),\n (names) => {\n blockNames = names\n },\n [applicationTypes.dst],\n )\n\n const installationPluginId = resolver.resolve('./runtime/plugin.virtual.mjs')\n\n const installationPluginTemplate = addServerTemplate({\n filename: installationPluginId,\n getContents: () =>\n [\n `import { createInstallationPlugin } from ${JSON.stringify(resolver.resolve('./runtime/plugin'))}`,\n `import cmsConfiguration from ${JSON.stringify(authored.path)}`,\n `import authoring from ${JSON.stringify(authoring.dst)}`,\n `export default createInstallationPlugin(cmsConfiguration, authoring)`,\n ].join('\\n'),\n })\n\n addServerHandler({ handler: resolver.resolve('./runtime/api'), route: `${STUDIO_HEALTH_PATH}/**:path` })\n addServerHandler({ handler: resolver.resolve('./runtime/sitemap'), route: CMS_SITEMAP_SOURCE_PATH })\n registerDeliveryUi(nuxt)\n yield* registerStudioApp(nuxt, resolver)\n configureNitro(nuxt)\n addServerPlugin(installationPluginTemplate.filename)\n addServerHandler({\n handler: resolver.resolve('./runtime/api'),\n route: `${CMS_AUTHENTICATION_PATH}/**:path`,\n })\n addServerHandler({\n handler: resolver.resolve('./runtime/collaboration'),\n route: STUDIO_COLLABORATION_PATH,\n })\n addServerHandler({\n handler: resolver.resolve('./runtime/api'),\n route: `${STUDIO_API_PATH}/**:path`,\n })\n})\n\ninterface CmsSitemapConfiguration {\n sources?: Array<unknown>\n}\n\ninterface CmsNuxtSitemapOptions {\n readonly modules?: unknown\n sitemap?: false | CmsSitemapConfiguration\n}\n\nfunction configureSitemap(options: CmsNuxtSitemapOptions): void {\n if (options.sitemap === false) return\n\n const sitemap = options.sitemap ?? {}\n const sources = sitemap.sources ?? []\n\n if (!sources.includes(CMS_SITEMAP_SOURCE_PATH)) sitemap.sources = [...sources, CMS_SITEMAP_SOURCE_PATH]\n\n options.sitemap = sitemap\n}\n\nfunction registerDeliveryUi(nuxt: Nuxt): void {\n addPlugin(resolver.resolve('./runtime/blocks'))\n nuxt.options.css.push(resolver.resolve('./runtime/preview/preview.css'))\n addComponent({ name: 'DocumentField', filePath: resolver.resolve('./runtime/delivery/DocumentField') })\n addComponent({ name: 'DocumentRenderer', filePath: resolver.resolve('./runtime/delivery/DocumentRenderer') })\n addComponent({ name: 'DocumentScope', filePath: resolver.resolve('./runtime/delivery/DocumentScope') })\n addPlugin(resolver.resolve('./runtime/delivery/plugin'))\n addPlugin(resolver.resolve('./runtime/preview/plugin.client'))\n addImports([\n { name: 'useCmsI18n', from: resolver.resolve('./runtime/i18n/useCmsI18n') },\n { name: 'useCmsForm', from: resolver.resolve('./runtime/forms/useCmsForm') },\n { name: 'useCmsDocumentSeo', from: resolver.resolve('./runtime/delivery/useCmsDocumentSeo') },\n { name: 'useDocument', from: resolver.resolve('./runtime/delivery/useDocument') },\n { name: 'useDocumentQuery', from: resolver.resolve('./runtime/delivery/useDocumentQuery') },\n ])\n extendPages((pages) => {\n pages.push({\n file: resolver.resolve('./runtime/delivery/document'),\n name: 'cms-document-page',\n path: '/:contentPath(.*)*',\n meta: { cmsDocument: true },\n })\n })\n}\n\nfunction configureNitro(nuxt: Nuxt): void {\n nuxt.hook('nitro:config', (config: NitroConfig) => {\n config.experimental ||= {}\n config.experimental.websocket = true\n config.routeRules ||= {}\n const studioRules = { ssr: false, headers: { 'cache-control': 'no-store' } }\n config.routeRules[`${STUDIO_APP_PATH}/**`] = studioRules\n config.routeRules[STUDIO_APP_PATH] = studioRules\n\n config.routeRules[STUDIO_BASE_PATH] = { redirect: { statusCode: 302, to: STUDIO_APP_PATH } }\n })\n}\n"],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import { o as PublicPath, r as DocumentId } from "./scalars-CVZqT3L0.js";
2
- import { c as MediaId } from "./Media-j1bTritO.js";
3
- import { Result, Schema } from "effect";
4
-
5
- //#region ../protocol/src/References.ts
6
- const AuthoredDocumentReference = Schema.String.annotate({ format: "cms-document-reference" }).check(Schema.makeFilter((value) => decodeAuthoredDocumentReference(value) !== void 0, { expected: "an identity-backed CMS document reference" })).pipe(Schema.brand("AuthoredDocumentReference"));
7
- const ManagedMediaReference = Schema.String.annotate({ format: "cms-managed-media-reference" }).check(Schema.makeFilter((value) => decodeManagedMediaReference(value) !== void 0, { expected: "an identity-backed managed-media reference" })).pipe(Schema.brand("ManagedMediaReference"));
8
- function decodeAuthoredDocumentReference(value) {
9
- const match = /^cms-document:([^?]+)\?route=(.+)$/u.exec(value.trim());
10
- if (!match?.[1] || !match[2]) return void 0;
11
- const documentId = Schema.decodeResult(DocumentId)(match[1]);
12
- if (Result.isFailure(documentId)) return void 0;
13
- try {
14
- const lastKnownRoute = Schema.decodeResult(PublicPath)(decodeURIComponent(match[2]));
15
- return Result.isSuccess(lastKnownRoute) ? {
16
- documentId: documentId.success,
17
- lastKnownRoute: lastKnownRoute.success
18
- } : void 0;
19
- } catch {
20
- return;
21
- }
22
- }
23
- function decodeManagedMediaReference(value) {
24
- const match = /^cms-media:([^?]+)\?url=(.+)$/u.exec(value.trim());
25
- if (!match?.[1] || !match[2]) return void 0;
26
- const mediaId = Schema.decodeResult(MediaId)(match[1]);
27
- if (Result.isFailure(mediaId)) return void 0;
28
- try {
29
- return {
30
- mediaId: mediaId.success,
31
- lastKnownUrl: validMediaUrl(decodeURIComponent(match[2]))
32
- };
33
- } catch {
34
- return;
35
- }
36
- }
37
- function validMediaUrl(value) {
38
- const url = new URL(value);
39
- if (!["http:", "https:"].includes(url.protocol)) throw new Error("Managed media needs an HTTP(S) URL.");
40
- return url.toString();
41
- }
42
-
43
- //#endregion
44
- export { decodeManagedMediaReference as i, ManagedMediaReference as n, decodeAuthoredDocumentReference as r, AuthoredDocumentReference as t };
45
- //# sourceMappingURL=References-CCPDAPve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"References-CCPDAPve.js","names":["DocumentIdSchema","PublicPathSchema","MediaIdSchema"],"sources":["../../../../protocol/src/References.ts"],"sourcesContent":["import type { DocumentId, PublicPath } from './Documents'\nimport type { MediaId } from './Media'\nimport { DocumentId as DocumentIdSchema, PublicPath as PublicPathSchema } from './Documents'\nimport { MediaId as MediaIdSchema } from './Media'\nimport { Result, Schema } from 'effect'\n\nexport interface AuthoredDocumentReferenceTarget {\n readonly documentId: DocumentId\n readonly lastKnownRoute: PublicPath\n}\n\nexport interface ManagedMediaReferenceTarget {\n readonly mediaId: MediaId\n readonly lastKnownUrl: string\n}\n\nexport const AuthoredDocumentReference = Schema.String.annotate({ format: 'cms-document-reference' })\n .check(\n Schema.makeFilter((value) => decodeAuthoredDocumentReference(value) !== undefined, {\n expected: 'an identity-backed CMS document reference',\n }),\n )\n .pipe(Schema.brand('AuthoredDocumentReference'))\n\nexport type AuthoredDocumentReference = typeof AuthoredDocumentReference.Type\n\nexport const ManagedMediaReference = Schema.String.annotate({ format: 'cms-managed-media-reference' })\n .check(\n Schema.makeFilter((value) => decodeManagedMediaReference(value) !== undefined, {\n expected: 'an identity-backed managed-media reference',\n }),\n )\n .pipe(Schema.brand('ManagedMediaReference'))\n\nexport type ManagedMediaReference = typeof ManagedMediaReference.Type\n\nexport function encodeAuthoredDocumentReference(\n documentId: DocumentId,\n lastKnownRoute: PublicPath,\n): AuthoredDocumentReference {\n return AuthoredDocumentReference.make(`cms-document:${documentId}?route=${encodeURIComponent(lastKnownRoute)}`)\n}\n\nexport function decodeAuthoredDocumentReference(value: string): AuthoredDocumentReferenceTarget | undefined {\n const match = /^cms-document:([^?]+)\\?route=(.+)$/u.exec(value.trim())\n\n if (!match?.[1] || !match[2]) return undefined\n const documentId = Schema.decodeResult(DocumentIdSchema)(match[1])\n\n if (Result.isFailure(documentId)) return undefined\n\n try {\n const lastKnownRoute = Schema.decodeResult(PublicPathSchema)(decodeURIComponent(match[2]))\n\n return Result.isSuccess(lastKnownRoute)\n ? { documentId: documentId.success, lastKnownRoute: lastKnownRoute.success }\n : undefined\n } catch {\n return undefined\n }\n}\n\nexport function encodeManagedMediaReference(mediaId: MediaId, lastKnownUrl: string): ManagedMediaReference {\n return ManagedMediaReference.make(`cms-media:${mediaId}?url=${encodeURIComponent(validMediaUrl(lastKnownUrl))}`)\n}\n\nexport function decodeManagedMediaReference(value: string): ManagedMediaReferenceTarget | undefined {\n const match = /^cms-media:([^?]+)\\?url=(.+)$/u.exec(value.trim())\n\n if (!match?.[1] || !match[2]) return undefined\n const mediaId = Schema.decodeResult(MediaIdSchema)(match[1])\n\n if (Result.isFailure(mediaId)) return undefined\n\n try {\n return { mediaId: mediaId.success, lastKnownUrl: validMediaUrl(decodeURIComponent(match[2])) }\n } catch {\n return undefined\n }\n}\n\nfunction validMediaUrl(value: string): string {\n const url = new URL(value)\n\n if (!['http:', 'https:'].includes(url.protocol)) throw new Error('Managed media needs an HTTP(S) URL.')\n\n return url.toString()\n}\n"],"mappings":";;;;;AAgBA,MAAa,4BAA4B,OAAO,OAAO,SAAS,EAAE,QAAQ,yBAAyB,CAAC,CAAC,CAClG,MACC,OAAO,YAAY,UAAU,gCAAgC,KAAK,MAAM,QAAW,EACjF,UAAU,4CACZ,CAAC,CACH,CAAC,CACA,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAIjD,MAAa,wBAAwB,OAAO,OAAO,SAAS,EAAE,QAAQ,8BAA8B,CAAC,CAAC,CACnG,MACC,OAAO,YAAY,UAAU,4BAA4B,KAAK,MAAM,QAAW,EAC7E,UAAU,6CACZ,CAAC,CACH,CAAC,CACA,KAAK,OAAO,MAAM,uBAAuB,CAAC;AAW7C,SAAgB,gCAAgC,OAA4D;CAC1G,MAAM,QAAQ,sCAAsC,KAAK,MAAM,KAAK,CAAC;CAErE,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,IAAI,OAAO;CACrC,MAAM,aAAa,OAAO,aAAaA,UAAgB,CAAC,CAAC,MAAM,EAAE;CAEjE,IAAI,OAAO,UAAU,UAAU,GAAG,OAAO;CAEzC,IAAI;EACF,MAAM,iBAAiB,OAAO,aAAaC,UAAgB,CAAC,CAAC,mBAAmB,MAAM,EAAE,CAAC;EAEzF,OAAO,OAAO,UAAU,cAAc,IAClC;GAAE,YAAY,WAAW;GAAS,gBAAgB,eAAe;EAAQ,IACzE;CACN,QAAQ;EACN;CACF;AACF;AAMA,SAAgB,4BAA4B,OAAwD;CAClG,MAAM,QAAQ,iCAAiC,KAAK,MAAM,KAAK,CAAC;CAEhE,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,IAAI,OAAO;CACrC,MAAM,UAAU,OAAO,aAAaC,OAAa,CAAC,CAAC,MAAM,EAAE;CAE3D,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO;CAEtC,IAAI;EACF,OAAO;GAAE,SAAS,QAAQ;GAAS,cAAc,cAAc,mBAAmB,MAAM,EAAE,CAAC;EAAE;CAC/F,QAAQ;EACN;CACF;AACF;AAEA,SAAS,cAAc,OAAuB;CAC5C,MAAM,MAAM,IAAI,IAAI,KAAK;CAEzB,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,SAAS,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,qCAAqC;CAEtG,OAAO,IAAI,SAAS;AACtB"}