@shapio/cms 0.0.0-stage → 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 (307) hide show
  1. package/README.md +27 -2
  2. package/dist/admin/apple-touch-icon.png +0 -0
  3. package/dist/admin/assets/AssistError-BITJ_tpg.js +2 -0
  4. package/dist/admin/assets/AssistError-BITJ_tpg.js.map +1 -0
  5. package/dist/admin/assets/BlockMenuItems-CcluK965.js +6 -0
  6. package/dist/admin/assets/BlockMenuItems-CcluK965.js.map +1 -0
  7. package/dist/admin/assets/Body-BXa9DhtH.js +2 -0
  8. package/dist/admin/assets/Body-BXa9DhtH.js.map +1 -0
  9. package/dist/admin/assets/Builder-DcpRfXuc.js +2 -0
  10. package/dist/admin/assets/Builder-DcpRfXuc.js.map +1 -0
  11. package/dist/admin/assets/ConfirmDialog-B9nWhIIz.js +2 -0
  12. package/dist/admin/assets/ConfirmDialog-B9nWhIIz.js.map +1 -0
  13. package/dist/admin/assets/CopyButton-BoWb-xi1.js +2 -0
  14. package/dist/admin/assets/CopyButton-BoWb-xi1.js.map +1 -0
  15. package/dist/admin/assets/CursorPager-BnxmTk47.js +2 -0
  16. package/dist/admin/assets/CursorPager-BnxmTk47.js.map +1 -0
  17. package/dist/admin/assets/ExternalLink-Eeb9mONJ.js +2 -0
  18. package/dist/admin/assets/ExternalLink-Eeb9mONJ.js.map +1 -0
  19. package/dist/admin/assets/Form-DZRLD3vH.js +2 -0
  20. package/dist/admin/assets/Form-DZRLD3vH.js.map +1 -0
  21. package/dist/admin/assets/FormCheckboxGroup-uIC2XQIL.js +2 -0
  22. package/dist/admin/assets/FormCheckboxGroup-uIC2XQIL.js.map +1 -0
  23. package/dist/admin/assets/FormRadioGroup-hd95vPOu.js +2 -0
  24. package/dist/admin/assets/FormRadioGroup-hd95vPOu.js.map +1 -0
  25. package/dist/admin/assets/FormSelectField-D7VHmnx5.js +2 -0
  26. package/dist/admin/assets/FormSelectField-D7VHmnx5.js.map +1 -0
  27. package/dist/admin/assets/FormSwitchField-ft8Jbe6E.js +2 -0
  28. package/dist/admin/assets/FormSwitchField-ft8Jbe6E.js.map +1 -0
  29. package/dist/admin/assets/FormTextareaField-DzyOzfZb.js +2 -0
  30. package/dist/admin/assets/FormTextareaField-DzyOzfZb.js.map +1 -0
  31. package/dist/admin/assets/HintedLabel-CvC46uy_.js +2 -0
  32. package/dist/admin/assets/HintedLabel-CvC46uy_.js.map +1 -0
  33. package/dist/admin/assets/InfoHint-GJLRVumb.js +2 -0
  34. package/dist/admin/assets/InfoHint-GJLRVumb.js.map +1 -0
  35. package/dist/admin/assets/InsertMenuItem-D976G0Rj.js +2 -0
  36. package/dist/admin/assets/InsertMenuItem-D976G0Rj.js.map +1 -0
  37. package/dist/admin/assets/LinkTabs-BZSlA57U.js +2 -0
  38. package/dist/admin/assets/LinkTabs-BZSlA57U.js.map +1 -0
  39. package/dist/admin/assets/Match-DdxTHHM4.js +2 -0
  40. package/dist/admin/assets/Match-DdxTHHM4.js.map +1 -0
  41. package/dist/admin/assets/Panel-iIKjEURi.js +2 -0
  42. package/dist/admin/assets/Panel-iIKjEURi.js.map +1 -0
  43. package/dist/admin/assets/QueryView-D6aZQJRN.js +2 -0
  44. package/dist/admin/assets/QueryView-D6aZQJRN.js.map +1 -0
  45. package/dist/admin/assets/RadioTile-BpB79rIK.js +2 -0
  46. package/dist/admin/assets/RadioTile-BpB79rIK.js.map +1 -0
  47. package/dist/admin/assets/RichTextField-BuHCONPu.js +144 -0
  48. package/dist/admin/assets/RichTextField-BuHCONPu.js.map +1 -0
  49. package/dist/admin/assets/RowTitle--uFCpx8n.js +2 -0
  50. package/dist/admin/assets/RowTitle--uFCpx8n.js.map +1 -0
  51. package/dist/admin/assets/SecretReveal-DFpzeNE0.js +2 -0
  52. package/dist/admin/assets/SecretReveal-DFpzeNE0.js.map +1 -0
  53. package/dist/admin/assets/SharedGlyph-Cqkx30tn.js +2 -0
  54. package/dist/admin/assets/SharedGlyph-Cqkx30tn.js.map +1 -0
  55. package/dist/admin/assets/StepList-BY5MuJPJ.js +2 -0
  56. package/dist/admin/assets/StepList-BY5MuJPJ.js.map +1 -0
  57. package/dist/admin/assets/Structure-CqRa2t7z.js +2 -0
  58. package/dist/admin/assets/Structure-CqRa2t7z.js.map +1 -0
  59. package/dist/admin/assets/SubNavLink-B2o4kSZ9.js +2 -0
  60. package/dist/admin/assets/SubNavLink-B2o4kSZ9.js.map +1 -0
  61. package/dist/admin/assets/SuggestAltButton-4rf2xhEJ.js +2 -0
  62. package/dist/admin/assets/SuggestAltButton-4rf2xhEJ.js.map +1 -0
  63. package/dist/admin/assets/TextLink-D15oyXlc.js +2 -0
  64. package/dist/admin/assets/TextLink-D15oyXlc.js.map +1 -0
  65. package/dist/admin/assets/Thumbnail-CP5mfgNY.js +2 -0
  66. package/dist/admin/assets/Thumbnail-CP5mfgNY.js.map +1 -0
  67. package/dist/admin/assets/UnsavedChangesGuard-DgOASh0p.js +2 -0
  68. package/dist/admin/assets/UnsavedChangesGuard-DgOASh0p.js.map +1 -0
  69. package/dist/admin/assets/UserAvatar-BocvNVL-.js +2 -0
  70. package/dist/admin/assets/UserAvatar-BocvNVL-.js.map +1 -0
  71. package/dist/admin/assets/View-BLsQYPow.js +11 -0
  72. package/dist/admin/assets/View-BLsQYPow.js.map +1 -0
  73. package/dist/admin/assets/arrow-up-gf_j6SVQ.js +2 -0
  74. package/dist/admin/assets/arrow-up-gf_j6SVQ.js.map +1 -0
  75. package/dist/admin/assets/auth-pcS9CCXu.js +2 -0
  76. package/dist/admin/assets/auth-pcS9CCXu.js.map +1 -0
  77. package/dist/admin/assets/badge-DD0mE96i.js +2 -0
  78. package/dist/admin/assets/badge-DD0mE96i.js.map +1 -0
  79. package/dist/admin/assets/boxes-DcK-kaSa.js +2 -0
  80. package/dist/admin/assets/boxes-DcK-kaSa.js.map +1 -0
  81. package/dist/admin/assets/calendar-clock-DEwACe0M.js +2 -0
  82. package/dist/admin/assets/calendar-clock-DEwACe0M.js.map +1 -0
  83. package/dist/admin/assets/changeSets-BjUEfYbj.js +2 -0
  84. package/dist/admin/assets/changeSets-BjUEfYbj.js.map +1 -0
  85. package/dist/admin/assets/chevron-left-BsQYDUEC.js +2 -0
  86. package/dist/admin/assets/chevron-left-BsQYDUEC.js.map +1 -0
  87. package/dist/admin/assets/circle-check-Dq1owihe.js +2 -0
  88. package/dist/admin/assets/circle-check-Dq1owihe.js.map +1 -0
  89. package/dist/admin/assets/circle-x-Dx6zIZko.js +2 -0
  90. package/dist/admin/assets/circle-x-Dx6zIZko.js.map +1 -0
  91. package/dist/admin/assets/client-C8vMCv-p.js +10 -0
  92. package/dist/admin/assets/client-C8vMCv-p.js.map +1 -0
  93. package/dist/admin/assets/clock-DQvkffqQ.js +2 -0
  94. package/dist/admin/assets/clock-DQvkffqQ.js.map +1 -0
  95. package/dist/admin/assets/cn-BQ3voEft.js +2 -0
  96. package/dist/admin/assets/cn-BQ3voEft.js.map +1 -0
  97. package/dist/admin/assets/coerce-OsqQRj19.js +2 -0
  98. package/dist/admin/assets/coerce-OsqQRj19.js.map +1 -0
  99. package/dist/admin/assets/constants-DCtq_UOe.js +2 -0
  100. package/dist/admin/assets/constants-DCtq_UOe.js.map +1 -0
  101. package/dist/admin/assets/constants-DUBUgzpU.js +2 -0
  102. package/dist/admin/assets/constants-DUBUgzpU.js.map +1 -0
  103. package/dist/admin/assets/constants-SrImR6C3.js +2 -0
  104. package/dist/admin/assets/constants-SrImR6C3.js.map +1 -0
  105. package/dist/admin/assets/content-_SLbbnfX.js +3 -0
  106. package/dist/admin/assets/content-_SLbbnfX.js.map +1 -0
  107. package/dist/admin/assets/contentCounts-Ch3uMXVU.js +2 -0
  108. package/dist/admin/assets/contentCounts-Ch3uMXVU.js.map +1 -0
  109. package/dist/admin/assets/contentTypes-BCOdUK_Z.js +2 -0
  110. package/dist/admin/assets/contentTypes-BCOdUK_Z.js.map +1 -0
  111. package/dist/admin/assets/copy-BDc3r0fO.js +2 -0
  112. package/dist/admin/assets/copy-BDc3r0fO.js.map +1 -0
  113. package/dist/admin/assets/dateTimeLocal-C92tyKwz.js +2 -0
  114. package/dist/admin/assets/dateTimeLocal-C92tyKwz.js.map +1 -0
  115. package/dist/admin/assets/defineEditor-CiJc766Y.js +2 -0
  116. package/dist/admin/assets/defineEditor-CiJc766Y.js.map +1 -0
  117. package/dist/admin/assets/develop-DS9TlDmv.js +11 -0
  118. package/dist/admin/assets/develop-DS9TlDmv.js.map +1 -0
  119. package/dist/admin/assets/dropdown-menu-gmP2Rp3n.js +2 -0
  120. package/dist/admin/assets/dropdown-menu-gmP2Rp3n.js.map +1 -0
  121. package/dist/admin/assets/ellipsis-NK0pWgqU.js +2 -0
  122. package/dist/admin/assets/ellipsis-NK0pWgqU.js.map +1 -0
  123. package/dist/admin/assets/external-link-D3Aoi2yX.js +2 -0
  124. package/dist/admin/assets/external-link-D3Aoi2yX.js.map +1 -0
  125. package/dist/admin/assets/file-text-DxXAmmxL.js +2 -0
  126. package/dist/admin/assets/file-text-DxXAmmxL.js.map +1 -0
  127. package/dist/admin/assets/fileRoute-C2tOrKhO.js +2 -0
  128. package/dist/admin/assets/fileRoute-C2tOrKhO.js.map +1 -0
  129. package/dist/admin/assets/followPlural-CN6cQfNk.js +2 -0
  130. package/dist/admin/assets/followPlural-CN6cQfNk.js.map +1 -0
  131. package/dist/admin/assets/globe-CuElSilX.js +2 -0
  132. package/dist/admin/assets/globe-CuElSilX.js.map +1 -0
  133. package/dist/admin/assets/image-CsH8dZve.js +2 -0
  134. package/dist/admin/assets/image-CsH8dZve.js.map +1 -0
  135. package/dist/admin/assets/image-off-B_uBCsYu.js +2 -0
  136. package/dist/admin/assets/image-off-B_uBCsYu.js.map +1 -0
  137. package/dist/admin/assets/inbox-3iAHL3pC.js +2 -0
  138. package/dist/admin/assets/inbox-3iAHL3pC.js.map +1 -0
  139. package/dist/admin/assets/inbox-DsuXNaKE.js +2 -0
  140. package/dist/admin/assets/inbox-DsuXNaKE.js.map +1 -0
  141. package/dist/admin/assets/index-BLYOgCKc.css +2 -0
  142. package/dist/admin/assets/index-BSzXA60W.js +4 -0
  143. package/dist/admin/assets/index-BSzXA60W.js.map +1 -0
  144. package/dist/admin/assets/jsx-runtime-DREnUpxT.js +2 -0
  145. package/dist/admin/assets/jsx-runtime-DREnUpxT.js.map +1 -0
  146. package/dist/admin/assets/key-round-B17HiT3K.js +2 -0
  147. package/dist/admin/assets/key-round-B17HiT3K.js.map +1 -0
  148. package/dist/admin/assets/link-2-off-hWGS8LW6.js +2 -0
  149. package/dist/admin/assets/link-2-off-hWGS8LW6.js.map +1 -0
  150. package/dist/admin/assets/link-bhHmG4Tc.js +2 -0
  151. package/dist/admin/assets/link-bhHmG4Tc.js.map +1 -0
  152. package/dist/admin/assets/list-DRtRdjBC.js +2 -0
  153. package/dist/admin/assets/list-DRtRdjBC.js.map +1 -0
  154. package/dist/admin/assets/locales-BzPbz8FF.js +2 -0
  155. package/dist/admin/assets/locales-BzPbz8FF.js.map +1 -0
  156. package/dist/admin/assets/media-WLnWaL7U.js +2 -0
  157. package/dist/admin/assets/media-WLnWaL7U.js.map +1 -0
  158. package/dist/admin/assets/media-Xzot1ueY.js +2 -0
  159. package/dist/admin/assets/media-Xzot1ueY.js.map +1 -0
  160. package/dist/admin/assets/modelPermissions-DZ1lWfQZ.js +2 -0
  161. package/dist/admin/assets/modelPermissions-DZ1lWfQZ.js.map +1 -0
  162. package/dist/admin/assets/network-DHGqLwji.js +2 -0
  163. package/dist/admin/assets/network-DHGqLwji.js.map +1 -0
  164. package/dist/admin/assets/pencil-Bdp2z9D_.js +2 -0
  165. package/dist/admin/assets/pencil-Bdp2z9D_.js.map +1 -0
  166. package/dist/admin/assets/plus-BN_iSsnp.js +2 -0
  167. package/dist/admin/assets/plus-BN_iSsnp.js.map +1 -0
  168. package/dist/admin/assets/preload-helper-DAbCfXID.js +2 -0
  169. package/dist/admin/assets/preload-helper-DAbCfXID.js.map +1 -0
  170. package/dist/admin/assets/publishing-B7zv1e7j.js +2 -0
  171. package/dist/admin/assets/publishing-B7zv1e7j.js.map +1 -0
  172. package/dist/admin/assets/publishing-d9yhMwgA.js +2 -0
  173. package/dist/admin/assets/publishing-d9yhMwgA.js.map +1 -0
  174. package/dist/admin/assets/radio-group-DHIxK-IU.js +2 -0
  175. package/dist/admin/assets/radio-group-DHIxK-IU.js.map +1 -0
  176. package/dist/admin/assets/react-CQOZoUwg.js +2 -0
  177. package/dist/admin/assets/react-CQOZoUwg.js.map +1 -0
  178. package/dist/admin/assets/react-dom-pEVw9mjF.js +2 -0
  179. package/dist/admin/assets/react-dom-pEVw9mjF.js.map +1 -0
  180. package/dist/admin/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
  181. package/dist/admin/assets/root-CDpNo7ef.js +2 -0
  182. package/dist/admin/assets/root-CDpNo7ef.js.map +1 -0
  183. package/dist/admin/assets/rotate-ccw-CBoZle-b.js +2 -0
  184. package/dist/admin/assets/rotate-ccw-CBoZle-b.js.map +1 -0
  185. package/dist/admin/assets/schedules-Dy89Nm6P.js +2 -0
  186. package/dist/admin/assets/schedules-Dy89Nm6P.js.map +1 -0
  187. package/dist/admin/assets/schema-B4smPFcR.js +2 -0
  188. package/dist/admin/assets/schema-B4smPFcR.js.map +1 -0
  189. package/dist/admin/assets/scroll-text-UbyzpWh-.js +2 -0
  190. package/dist/admin/assets/scroll-text-UbyzpWh-.js.map +1 -0
  191. package/dist/admin/assets/search-_YlNpPvU.js +2 -0
  192. package/dist/admin/assets/search-_YlNpPvU.js.map +1 -0
  193. package/dist/admin/assets/searchSchema-CvOhn4FV.js +2 -0
  194. package/dist/admin/assets/searchSchema-CvOhn4FV.js.map +1 -0
  195. package/dist/admin/assets/searchSchemas-BxRnxenn.js +2 -0
  196. package/dist/admin/assets/searchSchemas-BxRnxenn.js.map +1 -0
  197. package/dist/admin/assets/sections-Bb3Q4bcY.js +2 -0
  198. package/dist/admin/assets/sections-Bb3Q4bcY.js.map +1 -0
  199. package/dist/admin/assets/sections-DiySZZHb.js +2 -0
  200. package/dist/admin/assets/sections-DiySZZHb.js.map +1 -0
  201. package/dist/admin/assets/select-tHVWX85X.js +2 -0
  202. package/dist/admin/assets/select-tHVWX85X.js.map +1 -0
  203. package/dist/admin/assets/send-BqECHYi6.js +2 -0
  204. package/dist/admin/assets/send-BqECHYi6.js.map +1 -0
  205. package/dist/admin/assets/settings-D-v8gL8F.js +2 -0
  206. package/dist/admin/assets/settings-D-v8gL8F.js.map +1 -0
  207. package/dist/admin/assets/settle-LRKtTN_e.js +2 -0
  208. package/dist/admin/assets/settle-LRKtTN_e.js.map +1 -0
  209. package/dist/admin/assets/shared-react-KADNSNpb.js +1 -0
  210. package/dist/admin/assets/shared-react-dom-BpneAejY.js +1 -0
  211. package/dist/admin/assets/shared-react-dom-client-CnpZTXxo.js +1 -0
  212. package/dist/admin/assets/shared-react-jsx-runtime-CU_Fm1m8.js +1 -0
  213. package/dist/admin/assets/shared-shapio-editor-sdk-9ANIbEN0.js +1 -0
  214. package/dist/admin/assets/sites-C6_THCVK.js +2 -0
  215. package/dist/admin/assets/sites-C6_THCVK.js.map +1 -0
  216. package/dist/admin/assets/skeleton-C3QLIh7W.js +42 -0
  217. package/dist/admin/assets/skeleton-C3QLIh7W.js.map +1 -0
  218. package/dist/admin/assets/snapshots-BQrhsCmC.js +2 -0
  219. package/dist/admin/assets/snapshots-BQrhsCmC.js.map +1 -0
  220. package/dist/admin/assets/sparkles-BW4CbD6W.js +2 -0
  221. package/dist/admin/assets/sparkles-BW4CbD6W.js.map +1 -0
  222. package/dist/admin/assets/src-XaU0N8C-.js +4 -0
  223. package/dist/admin/assets/src-XaU0N8C-.js.map +1 -0
  224. package/dist/admin/assets/stableId-C9Yq5iUw.js +2 -0
  225. package/dist/admin/assets/stableId-C9Yq5iUw.js.map +1 -0
  226. package/dist/admin/assets/store-BphwUzV5.js +2 -0
  227. package/dist/admin/assets/store-BphwUzV5.js.map +1 -0
  228. package/dist/admin/assets/switch-BVy02Vc8.js +2 -0
  229. package/dist/admin/assets/switch-BVy02Vc8.js.map +1 -0
  230. package/dist/admin/assets/table-CZYtdoHn.js +56 -0
  231. package/dist/admin/assets/table-CZYtdoHn.js.map +1 -0
  232. package/dist/admin/assets/tabs-quHbeVxA.js +5 -0
  233. package/dist/admin/assets/tabs-quHbeVxA.js.map +1 -0
  234. package/dist/admin/assets/textarea-B8Vl5gJ1.js +2 -0
  235. package/dist/admin/assets/textarea-B8Vl5gJ1.js.map +1 -0
  236. package/dist/admin/assets/titles-B2z5ckxG.js +2 -0
  237. package/dist/admin/assets/titles-B2z5ckxG.js.map +1 -0
  238. package/dist/admin/assets/tokens-Fh_OeIlf.js +2 -0
  239. package/dist/admin/assets/tokens-Fh_OeIlf.js.map +1 -0
  240. package/dist/admin/assets/tooltip-DwqM3opE.js +2 -0
  241. package/dist/admin/assets/tooltip-DwqM3opE.js.map +1 -0
  242. package/dist/admin/assets/undo-2-D4Fz4JMZ.js +2 -0
  243. package/dist/admin/assets/undo-2-D4Fz4JMZ.js.map +1 -0
  244. package/dist/admin/assets/useAuditLabels-DKrsrciQ.js +2 -0
  245. package/dist/admin/assets/useAuditLabels-DKrsrciQ.js.map +1 -0
  246. package/dist/admin/assets/useConfirmTarget-Dp8mCulm.js +2 -0
  247. package/dist/admin/assets/useConfirmTarget-Dp8mCulm.js.map +1 -0
  248. package/dist/admin/assets/useContentSchema-Bv4_6VJR.js +2 -0
  249. package/dist/admin/assets/useContentSchema-Bv4_6VJR.js.map +1 -0
  250. package/dist/admin/assets/useCursorPager-B1upg5EU.js +2 -0
  251. package/dist/admin/assets/useCursorPager-B1upg5EU.js.map +1 -0
  252. package/dist/admin/assets/useDebouncedValue-Dqs3wwhn.js +2 -0
  253. package/dist/admin/assets/useDebouncedValue-Dqs3wwhn.js.map +1 -0
  254. package/dist/admin/assets/useDiscardGuard-34ynGJIk.js +2 -0
  255. package/dist/admin/assets/useDiscardGuard-34ynGJIk.js.map +1 -0
  256. package/dist/admin/assets/useMediaUploader-QXSjZStv.js +2 -0
  257. package/dist/admin/assets/useMediaUploader-QXSjZStv.js.map +1 -0
  258. package/dist/admin/assets/usePaletteItems-62-TZhy7.js +2 -0
  259. package/dist/admin/assets/usePaletteItems-62-TZhy7.js.map +1 -0
  260. package/dist/admin/assets/usePlaces-CY6f2DmI.js +2 -0
  261. package/dist/admin/assets/usePlaces-CY6f2DmI.js.map +1 -0
  262. package/dist/admin/assets/useQueries-BuKJBA0M.js +2 -0
  263. package/dist/admin/assets/useQueries-BuKJBA0M.js.map +1 -0
  264. package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js +2 -0
  265. package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js.map +1 -0
  266. package/dist/admin/assets/useSchemaScopeAccess-DUBeS9kU.js +2 -0
  267. package/dist/admin/assets/useSchemaScopeAccess-DUBeS9kU.js.map +1 -0
  268. package/dist/admin/assets/useSearchInput-1fDoEtXe.js +2 -0
  269. package/dist/admin/assets/useSearchInput-1fDoEtXe.js.map +1 -0
  270. package/dist/admin/assets/users-BOn2ohJQ.js +2 -0
  271. package/dist/admin/assets/users-BOn2ohJQ.js.map +1 -0
  272. package/dist/admin/assets/users-BkKc4MNB.js +2 -0
  273. package/dist/admin/assets/users-BkKc4MNB.js.map +1 -0
  274. package/dist/admin/assets/w3c-keyname-BOAvb0qz.js +2 -0
  275. package/dist/admin/assets/w3c-keyname-BOAvb0qz.js.map +1 -0
  276. package/dist/admin/assets/zod-BHAd1wTC.js +2 -0
  277. package/dist/admin/assets/zod-BHAd1wTC.js.map +1 -0
  278. package/dist/admin/favicon-32.png +0 -0
  279. package/dist/admin/favicon.svg +5 -0
  280. package/dist/admin/fonts/OFL-SourceSerif4.txt +93 -0
  281. package/dist/admin/fonts/OFL.txt +93 -0
  282. package/dist/admin/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  283. package/dist/admin/fonts/manrope-latin-wght-normal.woff2 +0 -0
  284. package/dist/admin/fonts/source-serif-4-latin-ext-wght-italic.woff2 +0 -0
  285. package/dist/admin/fonts/source-serif-4-latin-ext-wght-normal.woff2 +0 -0
  286. package/dist/admin/fonts/source-serif-4-latin-wght-italic.woff2 +0 -0
  287. package/dist/admin/fonts/source-serif-4-latin-wght-normal.woff2 +0 -0
  288. package/dist/admin/index.html +90 -0
  289. package/dist/admin/theme-init.js +18 -0
  290. package/dist/cli.js +5383 -0
  291. package/dist/cli.js.map +1 -0
  292. package/dist/config.d.ts +2 -0
  293. package/dist/config.js +39 -0
  294. package/dist/config.js.map +1 -0
  295. package/dist/index.d.ts +1056 -0
  296. package/dist/index.js +3 -0
  297. package/dist/public-CGO8RBn3.d.ts +1185 -0
  298. package/dist/worker-BLXy8aRW.js +47532 -0
  299. package/dist/worker-BLXy8aRW.js.map +1 -0
  300. package/package.json +97 -3
  301. package/vendor/graphiql/LICENSE.graphiql +21 -0
  302. package/vendor/graphiql/LICENSE.react +21 -0
  303. package/vendor/graphiql/LICENSE.react-dom +21 -0
  304. package/vendor/graphiql/graphiql.min.css +1 -0
  305. package/vendor/graphiql/graphiql.min.js +46 -0
  306. package/vendor/graphiql/react-dom.production.min.js +267 -0
  307. package/vendor/graphiql/react.production.min.js +31 -0
@@ -0,0 +1,1185 @@
1
+ import { FastifyBaseLogger, FastifyInstance, FastifyPluginAsync, preHandlerAsyncHookHandler } from "fastify";
2
+ import { ColumnType, Kysely, Transaction } from "kysely";
3
+ //#region src/db/contentData.d.ts
4
+ /**
5
+ * User content values: JSONB keyed by stable field IDs. The shape is only known at runtime from the active
6
+ * model schema, so it is validated by Shapio's validator, never by a per-model TypeScript type.
7
+ */
8
+ type ContentData = Record<string, unknown>;
9
+ //#endregion
10
+ //#region src/db/types.d.ts
11
+ type Generated<T> = T extends ColumnType<infer S, infer I, infer U> ? ColumnType<S, I | undefined, U> : ColumnType<T, T | undefined, T>;
12
+ type Int8 = ColumnType<string, bigint | number | string, bigint | number | string>;
13
+ type Json = JsonValue;
14
+ type JsonArray = JsonValue[];
15
+ type JsonObject = {
16
+ [x: string]: JsonValue | undefined;
17
+ };
18
+ type JsonPrimitive = boolean | number | string | null;
19
+ type JsonValue = JsonArray | JsonObject | JsonPrimitive;
20
+ type Timestamp = ColumnType<Date, Date | string, Date | string>;
21
+ interface AdminInvitations {
22
+ accepted_at: Timestamp | null;
23
+ created_at: Generated<Timestamp>;
24
+ email: string;
25
+ expires_at: Timestamp;
26
+ id: Generated<string>;
27
+ invited_by: string | null;
28
+ revoked_at: Timestamp | null;
29
+ role_assignments: Generated<Json>;
30
+ token_hash: string | null;
31
+ updated_at: Generated<Timestamp>;
32
+ }
33
+ interface AdminRolePermissions {
34
+ action: string;
35
+ condition: string | null;
36
+ created_at: Generated<Timestamp>;
37
+ field_ids: string[] | null;
38
+ id: Generated<string>;
39
+ model_id: string | null;
40
+ role_id: string;
41
+ updated_at: Generated<Timestamp>;
42
+ }
43
+ interface AdminRoles {
44
+ created_at: Generated<Timestamp>;
45
+ description: Generated<string>;
46
+ id: Generated<string>;
47
+ is_system: Generated<boolean>;
48
+ key: string;
49
+ kind: Generated<string>;
50
+ name: string;
51
+ updated_at: Generated<Timestamp>;
52
+ version: Generated<number>;
53
+ }
54
+ interface AdminSessions {
55
+ admin_user_id: string;
56
+ created_at: Generated<Timestamp>;
57
+ csrf_secret: string;
58
+ expires_at: Timestamp;
59
+ id: Generated<string>;
60
+ ip: string | null;
61
+ last_seen_at: Generated<Timestamp>;
62
+ revoked_at: Timestamp | null;
63
+ rotation_required: Generated<boolean>;
64
+ token_hash: string;
65
+ updated_at: Generated<Timestamp>;
66
+ user_agent: string | null;
67
+ }
68
+ interface AdminUserRoles {
69
+ admin_user_id: string;
70
+ created_at: Generated<Timestamp>;
71
+ id: Generated<string>;
72
+ role_id: string;
73
+ site_id: string | null;
74
+ updated_at: Generated<Timestamp>;
75
+ }
76
+ interface AdminUsers {
77
+ created_at: Generated<Timestamp>;
78
+ email: string;
79
+ id: Generated<string>;
80
+ last_login_at: Timestamp | null;
81
+ name: Generated<string>;
82
+ password_changed_at: Generated<Timestamp>;
83
+ password_hash: string;
84
+ status: Generated<string>;
85
+ updated_at: Generated<Timestamp>;
86
+ }
87
+ interface ApiTokens {
88
+ created_at: Generated<Timestamp>;
89
+ created_by: string | null;
90
+ expires_at: Timestamp | null;
91
+ id: Generated<string>;
92
+ last_used_at: Timestamp | null;
93
+ name: string;
94
+ revoked_at: Timestamp | null;
95
+ role_id: string;
96
+ site_id: string | null;
97
+ token_hash: string;
98
+ token_prefix: string;
99
+ updated_at: Generated<Timestamp>;
100
+ }
101
+ interface AppLoginCodes {
102
+ app_user_id: string;
103
+ code_challenge: string;
104
+ code_hash: string;
105
+ created_at: Generated<Timestamp>;
106
+ expires_at: Timestamp;
107
+ id: Generated<string>;
108
+ used_at: Timestamp | null;
109
+ }
110
+ interface AppOauthAccounts {
111
+ app_user_id: string;
112
+ created_at: Generated<Timestamp>;
113
+ email: string | null;
114
+ id: Generated<string>;
115
+ provider: string;
116
+ provider_user_id: string;
117
+ site_id: string;
118
+ updated_at: Generated<Timestamp>;
119
+ }
120
+ interface AppPasswordResets {
121
+ app_user_id: string;
122
+ created_at: Generated<Timestamp>;
123
+ email: string;
124
+ expires_at: Timestamp;
125
+ id: Generated<string>;
126
+ token_hash: string | null;
127
+ updated_at: Generated<Timestamp>;
128
+ used_at: Timestamp | null;
129
+ }
130
+ interface AppRefreshTokens {
131
+ app_user_id: string;
132
+ created_at: Generated<Timestamp>;
133
+ expires_at: Timestamp;
134
+ family_id: string;
135
+ id: Generated<string>;
136
+ ip: string | null;
137
+ reuse_grace_used_at: Timestamp | null;
138
+ revoked_at: Timestamp | null;
139
+ revoked_reason: string | null;
140
+ token_hash: string;
141
+ used_at: Timestamp | null;
142
+ user_agent: string | null;
143
+ }
144
+ interface AppRolePermissions {
145
+ action: string;
146
+ condition: string | null;
147
+ created_at: Generated<Timestamp>;
148
+ field_ids: string[] | null;
149
+ id: Generated<string>;
150
+ model_id: string | null;
151
+ role_id: string;
152
+ updated_at: Generated<Timestamp>;
153
+ }
154
+ interface AppRoles {
155
+ created_at: Generated<Timestamp>;
156
+ description: Generated<string>;
157
+ id: Generated<string>;
158
+ is_system: Generated<boolean>;
159
+ key: string;
160
+ name: string;
161
+ updated_at: Generated<Timestamp>;
162
+ version: Generated<number>;
163
+ }
164
+ interface AppUserRoles {
165
+ app_user_id: string;
166
+ created_at: Generated<Timestamp>;
167
+ role_id: string;
168
+ site_id: string;
169
+ }
170
+ interface AppUsers {
171
+ blocked_at: Timestamp | null;
172
+ confirmed_at: Timestamp | null;
173
+ created_at: Generated<Timestamp>;
174
+ deleted_at: Timestamp | null;
175
+ email: string;
176
+ id: Generated<string>;
177
+ last_login_at: Timestamp | null;
178
+ name: Generated<string>;
179
+ password_changed_at: Timestamp | null;
180
+ password_hash: string | null;
181
+ site_id: string;
182
+ token_version: Generated<number>;
183
+ updated_at: Generated<Timestamp>;
184
+ }
185
+ interface AssistRuns {
186
+ action: string;
187
+ actor_id: string;
188
+ actor_type: string;
189
+ created_at: Generated<Timestamp>;
190
+ duration_ms: Generated<number>;
191
+ error_code: string | null;
192
+ finished_at: Timestamp | null;
193
+ id: Generated<string>;
194
+ input_tokens: Generated<number>;
195
+ job_id: string | null;
196
+ model: string;
197
+ output_tokens: Generated<number>;
198
+ provider: string;
199
+ rule: string | null;
200
+ site_id: string;
201
+ status: string;
202
+ }
203
+ interface AuditEvents {
204
+ action: string;
205
+ actor_id: string | null;
206
+ actor_type: string;
207
+ id: Generated<string>;
208
+ ip: string | null;
209
+ metadata: Generated<Json>;
210
+ occurred_at: Generated<Timestamp>;
211
+ outcome: string;
212
+ request_id: string | null;
213
+ seq: Generated<Int8>;
214
+ site_id: string | null;
215
+ target_id: string | null;
216
+ target_type: string | null;
217
+ }
218
+ interface ChangeSetItems {
219
+ action: string | null;
220
+ change_set_id: string;
221
+ created_at: Generated<Timestamp>;
222
+ entry_id: string | null;
223
+ error: string | null;
224
+ id: Generated<string>;
225
+ kind: string;
226
+ locale: string | null;
227
+ model_id: string | null;
228
+ position: number;
229
+ schema_draft_id: string | null;
230
+ ship_state: Json | null;
231
+ site_id: string;
232
+ source_revision_id: string | null;
233
+ status: Generated<string>;
234
+ }
235
+ interface ChangeSets {
236
+ acknowledge_breaking: Generated<boolean>;
237
+ acknowledge_destructive: Generated<boolean>;
238
+ created_at: Generated<Timestamp>;
239
+ created_by: string | null;
240
+ created_by_token: string | null;
241
+ deployment_connection_id: string | null;
242
+ deployment_run_id: string | null;
243
+ description: Generated<string>;
244
+ error: Json | null;
245
+ id: Generated<string>;
246
+ restore_of_seq: Int8 | null;
247
+ restore_report: Generated<Json>;
248
+ schedule_job_id: string | null;
249
+ scheduled_by: string | null;
250
+ scheduled_by_token: string | null;
251
+ scheduled_for: Timestamp | null;
252
+ schema_version_after: number | null;
253
+ ship_job_id: string | null;
254
+ ship_mode: string | null;
255
+ ship_phase: string | null;
256
+ ship_requested_by: string | null;
257
+ ship_requested_by_token: string | null;
258
+ shipped_at: Timestamp | null;
259
+ shipped_seq: Int8 | null;
260
+ site_id: string;
261
+ source: Generated<string>;
262
+ status: Generated<string>;
263
+ title: string;
264
+ updated_at: Generated<Timestamp>;
265
+ version: Generated<number>;
266
+ }
267
+ interface ContentHealthFindings {
268
+ details: Generated<Json>;
269
+ entry_id: string;
270
+ first_seen_at: Generated<Timestamp>;
271
+ id: Generated<string>;
272
+ last_seen_at: Generated<Timestamp>;
273
+ locale: string;
274
+ model_id: string;
275
+ path: string | null;
276
+ resolved_at: Timestamp | null;
277
+ rule: string;
278
+ severity: string;
279
+ site_id: string;
280
+ subject: Generated<string>;
281
+ }
282
+ interface ContentRevisions {
283
+ author_id: string | null;
284
+ author_type: string;
285
+ created_at: Generated<Timestamp>;
286
+ data: ContentData;
287
+ entry_id: string;
288
+ id: Generated<string>;
289
+ locale: string;
290
+ parent_revision_id: string | null;
291
+ reason: string;
292
+ schema_revision_id: string;
293
+ }
294
+ interface DeploymentConnections {
295
+ allow_private_network: Generated<boolean>;
296
+ created_at: Generated<Timestamp>;
297
+ created_by: string | null;
298
+ debounce_seconds: Generated<number>;
299
+ delivery_role_id: string | null;
300
+ enabled: Generated<boolean>;
301
+ id: Generated<string>;
302
+ name: string;
303
+ preview_url_template: string | null;
304
+ provider: string;
305
+ secret_env_refs: Generated<Json>;
306
+ secrets_encrypted: string;
307
+ settings: Generated<Json>;
308
+ site_id: string;
309
+ trigger_policy: Generated<string[]>;
310
+ updated_at: Generated<Timestamp>;
311
+ version: Generated<number>;
312
+ }
313
+ interface DeploymentRuns {
314
+ change_set_id: string | null;
315
+ connection_id: string;
316
+ created_at: Generated<Timestamp>;
317
+ created_by: string | null;
318
+ error: string | null;
319
+ finished_at: Timestamp | null;
320
+ id: Generated<string>;
321
+ job_id: string | null;
322
+ log_url: string | null;
323
+ provider_ref: string | null;
324
+ retry_of: string | null;
325
+ schema_version: number | null;
326
+ site_url: string | null;
327
+ snapshot_seq: Int8 | null;
328
+ status: Generated<string>;
329
+ status_rank: Generated<number>;
330
+ timeline: Generated<Json>;
331
+ trigger: string;
332
+ triggered_at: Timestamp | null;
333
+ updated_at: Generated<Timestamp>;
334
+ }
335
+ interface EditorPresence {
336
+ admin_user_id: string;
337
+ entry_id: string;
338
+ last_seen_at: Generated<Timestamp>;
339
+ locale: string | null;
340
+ model_id: string;
341
+ started_at: Generated<Timestamp>;
342
+ tab_id: string;
343
+ }
344
+ interface EmailConfirmations {
345
+ app_user_id: string;
346
+ created_at: Generated<Timestamp>;
347
+ email: string;
348
+ expires_at: Timestamp;
349
+ id: Generated<string>;
350
+ token_hash: string | null;
351
+ updated_at: Generated<Timestamp>;
352
+ used_at: Timestamp | null;
353
+ }
354
+ interface Entries {
355
+ created_at: Generated<Timestamp>;
356
+ created_by_admin_id: string | null;
357
+ deleted_at: Timestamp | null;
358
+ id: Generated<string>;
359
+ model_id: string;
360
+ owner_app_user_id: string | null;
361
+ site_id: string;
362
+ updated_at: Generated<Timestamp>;
363
+ }
364
+ interface EntryHeads {
365
+ autosaved_at: Timestamp | null;
366
+ change_seq: Generated<Int8>;
367
+ created_at: Generated<Timestamp>;
368
+ data: ContentData;
369
+ entry_id: string;
370
+ locale: string;
371
+ model_id: string;
372
+ revision_id: string;
373
+ site_id: string;
374
+ state: string;
375
+ updated_at: Generated<Timestamp>;
376
+ version: Generated<number>;
377
+ }
378
+ interface ExtensionHookRuns {
379
+ completed_at: Generated<Timestamp>;
380
+ event_id: string;
381
+ hook: string;
382
+ job_id: string | null;
383
+ }
384
+ interface FieldReads {
385
+ day: Timestamp;
386
+ field_path: string;
387
+ last_read_at: Timestamp;
388
+ model_id: string;
389
+ principal_key: string;
390
+ reads: Generated<Int8>;
391
+ selection: string;
392
+ site_id: string;
393
+ }
394
+ interface Jobs {
395
+ attempts: Generated<number>;
396
+ checkpoint: Json | null;
397
+ created_at: Generated<Timestamp>;
398
+ finished_at: Timestamp | null;
399
+ id: Generated<string>;
400
+ idempotency_key: string | null;
401
+ last_error: string | null;
402
+ locked_by: string | null;
403
+ locked_until: Timestamp | null;
404
+ max_attempts: Generated<number>;
405
+ payload: Generated<Json>;
406
+ priority: Generated<number>;
407
+ result: Json | null;
408
+ run_at: Generated<Timestamp>;
409
+ status: Generated<string>;
410
+ type: string;
411
+ updated_at: Generated<Timestamp>;
412
+ }
413
+ interface Locales {
414
+ code: string;
415
+ created_at: Generated<Timestamp>;
416
+ fallbacks: Generated<string[]>;
417
+ is_default: Generated<boolean>;
418
+ label: string;
419
+ updated_at: Generated<Timestamp>;
420
+ }
421
+ interface MediaAssets {
422
+ alt: Generated<string>;
423
+ caption: Generated<string>;
424
+ checksum_sha256: string | null;
425
+ created_at: Generated<Timestamp>;
426
+ created_by: string | null;
427
+ deleted_at: Timestamp | null;
428
+ focal_x: number | null;
429
+ focal_y: number | null;
430
+ folder_id: string | null;
431
+ height: number | null;
432
+ id: string;
433
+ mime_type: string;
434
+ original_filename: string;
435
+ processing_error: string | null;
436
+ site_id: string;
437
+ size_bytes: Int8;
438
+ status: Generated<string>;
439
+ storage_driver: string;
440
+ storage_key: string;
441
+ updated_at: Generated<Timestamp>;
442
+ version: Generated<number>;
443
+ visibility: Generated<string>;
444
+ width: number | null;
445
+ }
446
+ interface MediaFolders {
447
+ created_at: Generated<Timestamp>;
448
+ created_by: string | null;
449
+ id: Generated<string>;
450
+ name: string;
451
+ parent_id: string | null;
452
+ site_id: string;
453
+ updated_at: Generated<Timestamp>;
454
+ version: Generated<number>;
455
+ }
456
+ interface MediaReferences {
457
+ asset_id: string;
458
+ created_at: Generated<Timestamp>;
459
+ entry_id: string;
460
+ field_id: string;
461
+ locale: string;
462
+ model_id: string;
463
+ state: string;
464
+ }
465
+ interface MediaUploadGrants {
466
+ asset_id: string;
467
+ consumed_at: Timestamp | null;
468
+ created_at: Generated<Timestamp>;
469
+ created_by: string | null;
470
+ created_by_principal: string;
471
+ declared_mime_type: string;
472
+ expires_at: Timestamp;
473
+ folder_id: string | null;
474
+ id: Generated<string>;
475
+ kind: string;
476
+ max_size_bytes: Int8;
477
+ original_filename: string;
478
+ site_id: string;
479
+ status: Generated<string>;
480
+ storage_driver: string;
481
+ storage_key: string;
482
+ visibility: string;
483
+ }
484
+ interface MediaVariants {
485
+ asset_id: string;
486
+ checksum_sha256: string | null;
487
+ created_at: Generated<Timestamp>;
488
+ error: string | null;
489
+ format: string;
490
+ height: number | null;
491
+ id: Generated<string>;
492
+ mime_type: string;
493
+ name: string;
494
+ size_bytes: Int8 | null;
495
+ status: Generated<string>;
496
+ storage_key: string | null;
497
+ updated_at: Generated<Timestamp>;
498
+ width: number | null;
499
+ }
500
+ interface ModelActiveVersions {
501
+ activated_at: Generated<Timestamp>;
502
+ model_id: string;
503
+ revision_id: string;
504
+ schema_version: number;
505
+ version: number;
506
+ }
507
+ interface Models {
508
+ api_key: string;
509
+ created_at: Generated<Timestamp>;
510
+ deleted_at: Timestamp | null;
511
+ id: string;
512
+ kind: string;
513
+ site_id: string | null;
514
+ updated_at: Generated<Timestamp>;
515
+ }
516
+ interface OutboxEvents {
517
+ aggregate_id: string;
518
+ aggregate_type: string;
519
+ created_at: Generated<Timestamp>;
520
+ dispatch_attempts: Generated<number>;
521
+ dispatched_at: Timestamp | null;
522
+ event_id: Generated<string>;
523
+ id: Generated<Int8>;
524
+ last_dispatch_error: string | null;
525
+ payload: Generated<Json>;
526
+ site_id: string | null;
527
+ type: string;
528
+ }
529
+ interface PasswordResets {
530
+ admin_user_id: string;
531
+ created_at: Generated<Timestamp>;
532
+ expires_at: Timestamp;
533
+ id: Generated<string>;
534
+ token_hash: string | null;
535
+ updated_at: Generated<Timestamp>;
536
+ used_at: Timestamp | null;
537
+ }
538
+ interface PreviewTokens {
539
+ connection_id: string | null;
540
+ created_at: Generated<Timestamp>;
541
+ created_by: string;
542
+ delivery_role_id: string | null;
543
+ entry_id: string;
544
+ expires_at: Timestamp;
545
+ id: Generated<string>;
546
+ last_used_at: Timestamp | null;
547
+ locale: string | null;
548
+ model_id: string;
549
+ revoked_at: Timestamp | null;
550
+ site_id: string;
551
+ token_hash: string;
552
+ token_prefix: string;
553
+ }
554
+ interface PublicationLog {
555
+ entry_id: string;
556
+ from_seq: Int8;
557
+ id: Generated<Int8>;
558
+ locale: string;
559
+ model_id: string;
560
+ published_at: Generated<Timestamp>;
561
+ revision_id: string;
562
+ site_id: string;
563
+ to_seq: Int8 | null;
564
+ }
565
+ interface PublicationSnapshots {
566
+ actor_id: string | null;
567
+ actor_type: string | null;
568
+ change_set_id: string | null;
569
+ created_at: Generated<Timestamp>;
570
+ schema_version: number | null;
571
+ seq: Int8;
572
+ site_id: string;
573
+ source: string;
574
+ }
575
+ interface PublicationState {
576
+ last_seq: Generated<Int8>;
577
+ site_id: string;
578
+ }
579
+ interface RelationEdges {
580
+ field_id: string;
581
+ locale: string;
582
+ position: number;
583
+ source_entry_id: string;
584
+ state: string;
585
+ target_entry_id: string;
586
+ }
587
+ interface ScheduledPublications {
588
+ action: string;
589
+ created_at: Generated<Timestamp>;
590
+ created_by: string | null;
591
+ created_by_token: string | null;
592
+ entry_id: string;
593
+ error: string | null;
594
+ executed_at: Timestamp | null;
595
+ id: Generated<string>;
596
+ job_id: string | null;
597
+ locale: string;
598
+ model_id: string;
599
+ run_at: Timestamp;
600
+ site_id: string;
601
+ snapshot_seq: Int8 | null;
602
+ status: Generated<string>;
603
+ updated_at: Generated<Timestamp>;
604
+ }
605
+ interface SchemaChangeJobs {
606
+ change_set_id: string | null;
607
+ created_at: Generated<Timestamp>;
608
+ error: Json | null;
609
+ finished_at: Timestamp | null;
610
+ from_revision_id: string | null;
611
+ id: Generated<string>;
612
+ job_id: string | null;
613
+ model_id: string | null;
614
+ plan: Generated<Json>;
615
+ requested_by_id: string | null;
616
+ requested_by_type: string;
617
+ status: Generated<string>;
618
+ target_id: string;
619
+ target_type: string;
620
+ to_revision_id: string | null;
621
+ updated_at: Generated<Timestamp>;
622
+ }
623
+ interface SchemaDrafts {
624
+ api_key: string;
625
+ base_version: number | null;
626
+ change_set_id: string;
627
+ created_at: Generated<Timestamp>;
628
+ definition: Json | null;
629
+ definition_id: string;
630
+ id: Generated<string>;
631
+ kind: string;
632
+ shared: Generated<boolean>;
633
+ updated_at: Generated<Timestamp>;
634
+ updated_by_id: string | null;
635
+ updated_by_type: string;
636
+ version: Generated<number>;
637
+ }
638
+ interface SchemaRevisions {
639
+ created_at: Generated<Timestamp>;
640
+ created_by_id: string | null;
641
+ created_by_type: string;
642
+ definition: Json;
643
+ hash: string;
644
+ id: Generated<string>;
645
+ model_id: string;
646
+ parent_revision_id: string | null;
647
+ version: number;
648
+ }
649
+ interface SchemaSettings {
650
+ id: Generated<boolean>;
651
+ read_only: Generated<boolean>;
652
+ read_only_reason: string | null;
653
+ updated_at: Generated<Timestamp>;
654
+ updated_by_id: string | null;
655
+ updated_by_type: string | null;
656
+ }
657
+ interface SetupTokens {
658
+ created_at: Generated<Timestamp>;
659
+ id: Generated<string>;
660
+ superseded_at: Timestamp | null;
661
+ token_hash: string;
662
+ updated_at: Generated<Timestamp>;
663
+ used_at: Timestamp | null;
664
+ }
665
+ interface SiteAppRoles {
666
+ audience: string;
667
+ created_at: Generated<Timestamp>;
668
+ role_id: string;
669
+ site_id: string;
670
+ }
671
+ interface Sites {
672
+ created_at: Generated<Timestamp>;
673
+ id: Generated<string>;
674
+ is_primary: Generated<boolean>;
675
+ key: string;
676
+ name: string;
677
+ updated_at: Generated<Timestamp>;
678
+ version: Generated<number>;
679
+ }
680
+ interface SystemSettings {
681
+ key: string;
682
+ updated_at: Generated<Timestamp>;
683
+ value: string;
684
+ }
685
+ interface SystemVersions {
686
+ id: Generated<boolean>;
687
+ permissions_version: Generated<number>;
688
+ schema_version: Generated<number>;
689
+ updated_at: Generated<Timestamp>;
690
+ }
691
+ interface TokenReads {
692
+ day: Timestamp;
693
+ last_read_at: Timestamp;
694
+ last_snapshot: Int8 | null;
695
+ principal_key: string;
696
+ requests: Generated<Int8>;
697
+ site_id: string;
698
+ }
699
+ interface UniqueValues {
700
+ entry_id: string;
701
+ field_id: string;
702
+ locale: string;
703
+ model_id: string;
704
+ site_id: string;
705
+ state: string;
706
+ value_hash: string;
707
+ }
708
+ interface WebhookDeliveries {
709
+ attempt_log: Generated<Json>;
710
+ attempts: Generated<number>;
711
+ created_at: Generated<Timestamp>;
712
+ delivered_at: Timestamp | null;
713
+ event_id: string | null;
714
+ event_type: string;
715
+ id: Generated<string>;
716
+ is_test: Generated<boolean>;
717
+ job_id: string | null;
718
+ last_error: string | null;
719
+ last_response_status: number | null;
720
+ payload: Json;
721
+ status: Generated<string>;
722
+ updated_at: Generated<Timestamp>;
723
+ webhook_id: string;
724
+ }
725
+ interface Webhooks {
726
+ allow_private_network: Generated<boolean>;
727
+ created_at: Generated<Timestamp>;
728
+ created_by: string | null;
729
+ enabled: Generated<boolean>;
730
+ events: Generated<string[]>;
731
+ id: Generated<string>;
732
+ max_attempts: Generated<number>;
733
+ name: string;
734
+ secret_encrypted: string;
735
+ site_id: string | null;
736
+ updated_at: Generated<Timestamp>;
737
+ url: string;
738
+ version: Generated<number>;
739
+ }
740
+ interface DB {
741
+ admin_invitations: AdminInvitations;
742
+ admin_role_permissions: AdminRolePermissions;
743
+ admin_roles: AdminRoles;
744
+ admin_sessions: AdminSessions;
745
+ admin_user_roles: AdminUserRoles;
746
+ admin_users: AdminUsers;
747
+ api_tokens: ApiTokens;
748
+ app_login_codes: AppLoginCodes;
749
+ app_oauth_accounts: AppOauthAccounts;
750
+ app_password_resets: AppPasswordResets;
751
+ app_refresh_tokens: AppRefreshTokens;
752
+ app_role_permissions: AppRolePermissions;
753
+ app_roles: AppRoles;
754
+ app_user_roles: AppUserRoles;
755
+ app_users: AppUsers;
756
+ assist_runs: AssistRuns;
757
+ audit_events: AuditEvents;
758
+ change_set_items: ChangeSetItems;
759
+ change_sets: ChangeSets;
760
+ content_health_findings: ContentHealthFindings;
761
+ content_revisions: ContentRevisions;
762
+ deployment_connections: DeploymentConnections;
763
+ deployment_runs: DeploymentRuns;
764
+ editor_presence: EditorPresence;
765
+ email_confirmations: EmailConfirmations;
766
+ entries: Entries;
767
+ entry_heads: EntryHeads;
768
+ extension_hook_runs: ExtensionHookRuns;
769
+ field_reads: FieldReads;
770
+ jobs: Jobs;
771
+ locales: Locales;
772
+ media_assets: MediaAssets;
773
+ media_folders: MediaFolders;
774
+ media_references: MediaReferences;
775
+ media_upload_grants: MediaUploadGrants;
776
+ media_variants: MediaVariants;
777
+ model_active_versions: ModelActiveVersions;
778
+ models: Models;
779
+ outbox_events: OutboxEvents;
780
+ password_resets: PasswordResets;
781
+ preview_tokens: PreviewTokens;
782
+ publication_log: PublicationLog;
783
+ publication_snapshots: PublicationSnapshots;
784
+ publication_state: PublicationState;
785
+ relation_edges: RelationEdges;
786
+ scheduled_publications: ScheduledPublications;
787
+ schema_change_jobs: SchemaChangeJobs;
788
+ schema_drafts: SchemaDrafts;
789
+ schema_revisions: SchemaRevisions;
790
+ schema_settings: SchemaSettings;
791
+ setup_tokens: SetupTokens;
792
+ site_app_roles: SiteAppRoles;
793
+ sites: Sites;
794
+ system_settings: SystemSettings;
795
+ system_versions: SystemVersions;
796
+ token_reads: TokenReads;
797
+ unique_values: UniqueValues;
798
+ webhook_deliveries: WebhookDeliveries;
799
+ webhooks: Webhooks;
800
+ }
801
+ //#endregion
802
+ //#region src/permissions/types.d.ts
803
+ /**
804
+ * Principals and policies (ADR 0005). One evaluator serves admin users, app users, tokens and anonymous
805
+ * callers, for REST and GraphQL alike. Package A ships the types and a deny-all evaluator; package B
806
+ * implements roles and the real evaluator against this interface.
807
+ */
808
+ /** One role held by an admin user: on one site, or on every site (`siteId` null). */
809
+ type RoleAssignment = {
810
+ roleId: string;
811
+ siteId: string | null;
812
+ };
813
+ /**
814
+ * An admin user narrowed to one site (sites plan §H). `roleIds`: roles assigned on this site or on every
815
+ * site; site actions and content actions are evaluated against them. `networkRoleIds`: roles assigned on
816
+ * every site only; network actions (users, roles, schema, audit, sites) are evaluated against them, so a
817
+ * site-only role can never reach the network. `siteId` null: a network route, where `roleIds` equals
818
+ * `networkRoleIds`.
819
+ */
820
+ type AdminPrincipal = {
821
+ kind: 'admin';
822
+ adminUserId: string;
823
+ sessionId: string;
824
+ /** Every assignment, on any site (which sites the admin works on). */
825
+ assignments: readonly RoleAssignment[];
826
+ siteId: string | null;
827
+ roleIds: readonly string[];
828
+ networkRoleIds: readonly string[];
829
+ };
830
+ /**
831
+ * An app user: an end user of one site (sites plan §H). `roleIds`: the custom app roles assigned to the
832
+ * account; the roles bound to the site's `authenticated` audience (`site_app_roles`) apply on top.
833
+ * `siteId`: the account's site, from the access token's `site` claim; the account acts on no other site.
834
+ */
835
+ type AppUserPrincipal = {
836
+ kind: 'appUser';
837
+ appUserId: string;
838
+ siteId: string;
839
+ roleIds: readonly string[];
840
+ };
841
+ /** API tokens bind to exactly one role: an admin role or a delivery role. */
842
+ type TokenPrincipal = {
843
+ kind: 'token';
844
+ tokenId: string;
845
+ scope: 'admin' | 'delivery';
846
+ roleId: string;
847
+ /**
848
+ * The token's site; null for a network admin token (its role applies on every site and to network
849
+ * actions). Delivery tokens always have a site.
850
+ */
851
+ siteId: string | null;
852
+ };
853
+ /**
854
+ * A caller without credentials. On a site route `siteId` is the request's site, and the roles bound to the
855
+ * site's `public` audience (`site_app_roles`) apply. Null before site resolution and on network routes,
856
+ * where an anonymous caller holds no role at all.
857
+ */
858
+ type AnonymousPrincipal = {
859
+ kind: 'anonymous';
860
+ siteId: string | null;
861
+ };
862
+ /** Work Shapio does on its own behalf: scheduled jobs, migrations, the worker. Never derived from a request. */
863
+ type SystemPrincipal = {
864
+ kind: 'system';
865
+ component: string;
866
+ };
867
+ type Principal = AdminPrincipal | AppUserPrincipal | TokenPrincipal | AnonymousPrincipal | SystemPrincipal;
868
+ declare const CONTENT_ACTIONS: readonly ["read", "create", "update", "delete", "publish", "schemaManage"];
869
+ type ContentAction = (typeof CONTENT_ACTIONS)[number];
870
+ declare const GLOBAL_ACTIONS: readonly ["schema.create", "users.manage", "roles.manage", "audit.read", "sites.manage", "tokens.manage", "media.read", "media.write", "media.manage", "publishing.manage", "webhooks.manage", "deployments.manage", "deployments.trigger", "changes.manage", "changes.ship"];
871
+ type GlobalAction = (typeof GLOBAL_ACTIONS)[number];
872
+ /** Field visibility by stable field ID. `all` means every field the schema exposes to this principal kind. */
873
+ type FieldMask = {
874
+ mode: 'all';
875
+ } | {
876
+ mode: 'only';
877
+ fieldIds: readonly string[];
878
+ };
879
+ /** Enumerated row conditions; compiled to SQL only by content/compiler. Never free-form expressions. */
880
+ type RowCondition = {
881
+ kind: 'ownedByPrincipal';
882
+ };
883
+ type RowFilter = RowCondition | {
884
+ kind: 'and';
885
+ filters: readonly RowFilter[];
886
+ } | {
887
+ kind: 'or';
888
+ filters: readonly RowFilter[];
889
+ };
890
+ type Policy = {
891
+ allowed: boolean;
892
+ /** Extra restriction on which rows the principal may act on. `null` means no restriction. */
893
+ rowFilter: RowFilter | null;
894
+ readMask: FieldMask;
895
+ writeMask: FieldMask;
896
+ };
897
+ type PolicyRequest = {
898
+ action: ContentAction;
899
+ modelId: string;
900
+ };
901
+ type PermissionEvaluator = {
902
+ evaluate: (principal: Principal, request: PolicyRequest) => Promise<Policy>;
903
+ canPerform: (principal: Principal, action: GlobalAction) => Promise<boolean>;
904
+ /**
905
+ * `canPerform` for the request's site: an action in `SITE_GRANTABLE_ACTIONS` also counts the roles that
906
+ * apply on `siteId` when the principal acts on that site (an admin narrowed to it, a site token of it, a
907
+ * network token). Any other action is `canPerform`.
908
+ */
909
+ canPerformOnSite: (principal: Principal, action: GlobalAction, siteId: string) => Promise<boolean>;
910
+ };
911
+ //#endregion
912
+ //#region src/plugins/auditDeclaration.d.ts
913
+ /**
914
+ * Every mutating route must say how it is audited (ADR 0005, build plan §3.11):
915
+ * `config: { audit: { action: 'schema.activate' } }`, or `config: { audit: { exempt: '<why>' } }` for
916
+ * routes whose changes are recorded elsewhere (content saves are recorded as revisions).
917
+ */
918
+ type RouteAuditConfig = {
919
+ action: string;
920
+ } | {
921
+ exempt: string;
922
+ };
923
+ declare module 'fastify' {
924
+ interface FastifyContextConfig {
925
+ audit?: RouteAuditConfig;
926
+ }
927
+ }
928
+ //#endregion
929
+ //#region src/extensions/public.d.ts
930
+ declare module 'fastify' {
931
+ interface FastifyRequest {
932
+ /** Who is calling. Anonymous unless a session cookie or API token resolved. Never null after onRequest. */
933
+ principal: Principal;
934
+ /**
935
+ * The request's site on a site route (custom routes are site routes): the credential's site, else the
936
+ * `Shapio-Site` header or `?site=`, else the primary site. Undefined on a route declaring
937
+ * `config.site = 'network'`.
938
+ */
939
+ site: {
940
+ id: string;
941
+ key: string;
942
+ } | undefined;
943
+ }
944
+ interface FastifyContextConfig {
945
+ /** Required on every mutating route: the audit action recorded on success, or `{ exempt: '<why>' }`. */
946
+ audit?: RouteAuditConfig;
947
+ /** `'network'` for a custom route that is about the whole instance rather than one site. */
948
+ site?: 'site' | 'network';
949
+ }
950
+ }
951
+ /**
952
+ * The project extension contract (ADR 0009), imported by project authors from `@shapio/cms/config`:
953
+ *
954
+ * ```ts
955
+ * import { defineConfig } from '@shapio/cms/config';
956
+ * export const config = defineConfig({ hooks: { article: { beforePublish: (ctx) => { ... } } } });
957
+ * ```
958
+ *
959
+ * Extensions are code: changing them needs a restart of Shapio (never a rebuild). Content models are never
960
+ * configured here; they change live in the admin. This file has no runtime imports from the server, so a
961
+ * config that imports it stays cheap to load.
962
+ *
963
+ * Stability: everything exported here follows semver with `EXTENSION_CONTRACT_VERSION`; Shapio's database
964
+ * tables (reachable through `trx`) are internal and may change in any release.
965
+ */
966
+ declare const EXTENSION_CONTRACT_VERSION = 1;
967
+ type BeforeHookEvent = 'beforeCreate' | 'beforeUpdate' | 'beforePublish' | 'beforeDelete';
968
+ type AfterHookEvent = 'afterCreate' | 'afterUpdate' | 'afterPublish' | 'afterDelete';
969
+ type HookEvent = BeforeHookEvent | AfterHookEvent;
970
+ /** A site of a multi-site instance: its stable ID and its key (sites share the schema, not content). */
971
+ type ExtensionSite = {
972
+ id: string;
973
+ key: string;
974
+ };
975
+ /** Entry data keyed by field API key (the admin API's shape; media and relations are IDs). */
976
+ type EntryData = Readonly<Record<string, unknown>>;
977
+ type HookModel = {
978
+ /** Stable model ID (never changes). */
979
+ id: string;
980
+ apiKey: string;
981
+ label: string;
982
+ kind: 'collection' | 'singleton';
983
+ localized: boolean;
984
+ draftAndPublish: boolean;
985
+ };
986
+ type HookEntry = {
987
+ id: string;
988
+ locale: string | null;
989
+ /** Which head the change is about: the draft (create/update), the live version (publish), or a delete. */
990
+ state: 'draft' | 'published' | 'deleted';
991
+ };
992
+ type ContentReadOptions = {
993
+ locale?: string;
994
+ /** Read as this principal (its permissions apply). Default: Shapio itself (everything). */
995
+ principal?: Principal;
996
+ };
997
+ type ContentReadEntry = {
998
+ id: string;
999
+ locale: string;
1000
+ status: string;
1001
+ data: Record<string, unknown>;
1002
+ };
1003
+ /** Read-only access to content (drafts, as the admin API shows them). Reads committed data. */
1004
+ type ContentReadService = {
1005
+ get: (modelKey: string, id: string, options?: ContentReadOptions) => Promise<ContentReadEntry>;
1006
+ /** `query` is a delivery-style querystring, e.g. `filters[title][$contains]=a&pageSize=10`. */
1007
+ list: (modelKey: string, query?: string, options?: Omit<ContentReadOptions, 'locale'>) => Promise<{
1008
+ items: ContentReadEntry[];
1009
+ total: number;
1010
+ }>;
1011
+ /** Number of (non-deleted) entries of a model. */
1012
+ count: (modelKey: string) => Promise<number>;
1013
+ /** The active content models (collections and singletons) of this site: shared ones and its own. */
1014
+ models: () => Promise<HookModel[]>;
1015
+ };
1016
+ type MediaUsage = {
1017
+ entryId: string;
1018
+ modelId: string;
1019
+ fieldId: string;
1020
+ locale: string;
1021
+ state: string;
1022
+ };
1023
+ type MediaReferenceService = {
1024
+ /** Where an asset is used (up to 100 references, plus the total). */
1025
+ usages: (assetId: string) => Promise<{
1026
+ items: MediaUsage[];
1027
+ total: number;
1028
+ }>;
1029
+ };
1030
+ type EnqueueOptions = {
1031
+ runAt?: Date;
1032
+ /** Enqueueing the same key twice creates one job. */
1033
+ idempotencyKey?: string;
1034
+ maxAttempts?: number;
1035
+ };
1036
+ type ExtensionJobService = {
1037
+ /** Enqueues one of the project's own jobs (`jobs` in the config), by its name without the `ext.` prefix. */
1038
+ enqueue: (name: string, payload?: Record<string, unknown>, options?: EnqueueOptions) => Promise<{
1039
+ id: string;
1040
+ created: boolean;
1041
+ }>;
1042
+ };
1043
+ /**
1044
+ * What Shapio offers extensions. Deliberately small; everything else goes through `trx` or HTTP.
1045
+ *
1046
+ * Content and media are per site. The services handed to a hook read the hook's site; the services given to
1047
+ * routes, jobs and service factories read the primary site. Use `forSite` for another one (in a custom
1048
+ * route: `services.forSite(request.site)`).
1049
+ */
1050
+ type ShapioServices = {
1051
+ /** The site `content` and `media` read. */
1052
+ site: ExtensionSite;
1053
+ /** The same services reading another site. */
1054
+ forSite: (site: ExtensionSite) => ShapioServices;
1055
+ content: ContentReadService;
1056
+ media: MediaReferenceService;
1057
+ jobs: ExtensionJobService;
1058
+ logger: FastifyBaseLogger;
1059
+ };
1060
+ /**
1061
+ * Your own services, by name. Augment it for typed access everywhere services appear:
1062
+ *
1063
+ * ```ts
1064
+ * declare module '@shapio/cms/config' {
1065
+ * interface CustomServices { stats: StatsService }
1066
+ * }
1067
+ * ```
1068
+ */
1069
+ interface CustomServices {}
1070
+ type ExtensionServices = ShapioServices & CustomServices;
1071
+ type HookContextBase = {
1072
+ /** The site the entry belongs to; `services` read this site. */
1073
+ site: ExtensionSite;
1074
+ model: HookModel;
1075
+ entry: HookEntry;
1076
+ locale: string | null;
1077
+ /** The document after the change (absent for deletes). */
1078
+ data: EntryData | undefined;
1079
+ /** The document before the change: the previous draft (update) or the live version (publish). */
1080
+ before: EntryData | undefined;
1081
+ /** Who made the change (an admin, an API token, an app user, or Shapio itself for scheduled work). */
1082
+ principal: Principal;
1083
+ services: ExtensionServices;
1084
+ logger: FastifyBaseLogger;
1085
+ /** Aborted when Shapio shuts down. */
1086
+ signal: AbortSignal;
1087
+ };
1088
+ /**
1089
+ * `before*` hooks run INSIDE the write's transaction, before it commits. Throw `HookError` (or call
1090
+ * `reject`) to abort the write with 422 `HOOK_REJECTED`; nothing of the write is kept. Other errors abort it
1091
+ * too, as a 500. Database work through `trx` commits or rolls back with the write.
1092
+ */
1093
+ type BeforeHookContext = HookContextBase & {
1094
+ event: BeforeHookEvent;
1095
+ trx: Transaction<DB>;
1096
+ reject: (message: string, details?: Record<string, unknown>) => never;
1097
+ };
1098
+ /**
1099
+ * `after*` hooks run AFTER the write committed, as a job (retried with backoff on error, never rolling the
1100
+ * write back). Database work through `trx` is exactly once: it commits together with the record that the
1101
+ * hook ran. Other side effects (HTTP calls) are at least once: make them idempotent with `idempotencyKey`.
1102
+ */
1103
+ type AfterHookContext = HookContextBase & {
1104
+ event: AfterHookEvent;
1105
+ trx: Transaction<DB>;
1106
+ /** The outbox event the hook runs for. */
1107
+ eventId: string;
1108
+ /** `<eventId>:<hook name>`: stable across retries. */
1109
+ idempotencyKey: string;
1110
+ attempt: number;
1111
+ };
1112
+ type BeforeHook = (context: BeforeHookContext) => Promise<void> | void;
1113
+ type AfterHook = (context: AfterHookContext) => Promise<void> | void;
1114
+ type ModelHooks = { [E in BeforeHookEvent]?: BeforeHook; } & { [E in AfterHookEvent]?: AfterHook; };
1115
+ type ServiceFactoryContext = {
1116
+ /** Kysely on Shapio's database. Shapio's own tables are internal and may change between releases. */
1117
+ db: Kysely<DB>;
1118
+ config: ExtensionHostConfig;
1119
+ logger: FastifyBaseLogger;
1120
+ /** Shapio's services plus the custom services declared before this one. */
1121
+ services: ExtensionServices;
1122
+ };
1123
+ type ExtensionHostConfig = {
1124
+ nodeEnv: 'development' | 'production' | 'test';
1125
+ /** PUBLIC_URL origin, without a trailing slash. */
1126
+ publicUrl: string;
1127
+ basePath: string;
1128
+ /** The directory holding shapio.config and extensions/. */
1129
+ projectDir: string;
1130
+ };
1131
+ type ServiceFactory = (context: ServiceFactoryContext) => unknown;
1132
+ /** Options every custom route plugin receives (also available as `app.ext`). */
1133
+ type ExtensionRouteOptions = {
1134
+ services: ExtensionServices;
1135
+ /** Shapio's permission evaluator: `permissions.evaluate(request.principal, { action, modelId })`. */
1136
+ permissions: PermissionEvaluator;
1137
+ logger: FastifyBaseLogger;
1138
+ /** preHandler: 401/403 unless the caller is an admin user or an admin API token. */
1139
+ requireAdmin: preHandlerAsyncHookHandler;
1140
+ };
1141
+ type ExtensionRoute = {
1142
+ /** Mounted at `/api/ext/<prefix>` (under BASE_PATH). Lower-case letters, digits and dashes. */
1143
+ prefix: string;
1144
+ plugin: FastifyPluginAsync<ExtensionRouteOptions>;
1145
+ };
1146
+ type JobHandlerContext = {
1147
+ jobId: string;
1148
+ payload: Record<string, unknown>;
1149
+ attempt: number;
1150
+ maxAttempts: number;
1151
+ idempotencyKey: string | null;
1152
+ services: ExtensionServices;
1153
+ logger: FastifyBaseLogger;
1154
+ signal: AbortSignal;
1155
+ };
1156
+ /** Throw to retry with backoff; the return value (JSON) is stored as the job result. */
1157
+ type ExtensionJobHandler = (context: JobHandlerContext) => Promise<unknown>;
1158
+ type ShapioConfig = {
1159
+ /** Lifecycle hooks by model API ID (or stable model UUID); `*` runs for every model. */
1160
+ hooks?: Record<string, ModelHooks>;
1161
+ routes?: ExtensionRoute[];
1162
+ /** Constructed once at startup, in order, and shared by hooks, routes and jobs. */
1163
+ services?: Record<string, ServiceFactory>;
1164
+ /** Custom field editor modules: file names inside `extensions/editors/` (built ES modules). */
1165
+ editors?: string[];
1166
+ /** Job handlers by name; registered as `ext.<name>`. */
1167
+ jobs?: Record<string, ExtensionJobHandler>;
1168
+ };
1169
+ /** Identity helper for completion and type checking in `shapio.config.ts`. */
1170
+ declare const defineConfig: (config: ShapioConfig) => ShapioConfig;
1171
+ declare const HOOK_ERROR_BRAND: unique symbol;
1172
+ /**
1173
+ * Thrown by a `before*` hook to reject a write: the API answers 422 with code `HOOK_REJECTED`, this message
1174
+ * and the details. Recognised by a brand, not `instanceof`, so a copy of this class loaded from another
1175
+ * path (a project's own `node_modules`) works the same.
1176
+ */
1177
+ declare class HookError extends Error {
1178
+ readonly details: Record<string, unknown> | undefined;
1179
+ readonly [HOOK_ERROR_BRAND] = true;
1180
+ constructor(message: string, details?: Record<string, unknown>);
1181
+ }
1182
+ declare const isHookError: (error: unknown) => error is HookError;
1183
+ //#endregion
1184
+ export { ServiceFactoryContext as A, HookEvent as C, MediaUsage as D, MediaReferenceService as E, PermissionEvaluator as F, Principal as I, DB as L, ShapioServices as M, defineConfig as N, ModelHooks as O, isHookError as P, OutboxEvents as R, HookError as S, JobHandlerContext as T, ExtensionRoute as _, BeforeHookContext as a, ExtensionSite as b, ContentReadOptions as c, EXTENSION_CONTRACT_VERSION as d, EnqueueOptions as f, ExtensionJobService as g, ExtensionJobHandler as h, BeforeHook as i, ShapioConfig as j, ServiceFactory as k, ContentReadService as l, ExtensionHostConfig as m, AfterHookContext as n, BeforeHookEvent as o, EntryData as p, AfterHookEvent as r, ContentReadEntry as s, AfterHook as t, CustomServices as u, ExtensionRouteOptions as v, HookModel as w, HookEntry as x, ExtensionServices as y, ContentData as z };
1185
+ //# sourceMappingURL=public-CGO8RBn3.d.ts.map